From dbdde639050f2cfa2a8c61c544a2c28d51ebd4f1 Mon Sep 17 00:00:00 2001 From: oscar alvarez Date: Fri, 8 Apr 2022 18:44:59 -0500 Subject: [PATCH] Fix --- sale.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/sale.py b/sale.py index 45886c0..2da6c4c 100644 --- a/sale.py +++ b/sale.py @@ -170,12 +170,14 @@ class Sale(metaclass=PoolMeta): return res @classmethod - def _set_line(cls, val): + def _set_line(cls, val, context): del val['id'] Product = Pool().get('product.product') val['type'] = 'line' product = Product(val['product']) - unit_price = product.template.list_price + with Transaction().set_context(context): + unit_price = product.list_price + # unit_price = product.template.list_price unit_price = unit_price.quantize(Decimal(str(10.0 ** -4))) val['unit_price'] = unit_price val['base_price'] = unit_price @@ -207,6 +209,9 @@ class Sale(metaclass=PoolMeta): User = Pool().get('res.user') context = Transaction().context today = date.today() + user_id = context.get('user') + user = User(user_id) + action = 'create' if args['id'] > 0: action = 'edit' @@ -215,27 +220,29 @@ class Sale(metaclass=PoolMeta): if context.get('shop'): shop = Shop(context['shop']) else: - user_id = context.get('user') - user = User(user_id) shop = user.shop + context['price_list'] = shop.price_list for v in args['lines']: - cls._set_line(v) + cls._set_line(v, context) party = shop.party to_create = { 'shop': shop.id, 'party': party.id, 'invoice_type':'P', - 'table_assigned': args['table_assigned']['id'], + 'table_assigned': args['table_assigned']['id'] if args.get('table_asigned') else None, 'shipment_address': party.addresses[0].id, 'invoice_address': party.addresses[0].id, 'company': shop.company.id, 'sale_date': today, 'shipment_date': today, + 'kind': 'to_table', 'price_list': shop.price_list, 'payment_term': shop.payment_term.id, 'state': 'draft', + 'salesman': user.employee.id if user.employee else None, 'order_status': 'commanded', + 'sale_device': user.sale_device.id, 'lines': [('create', args['lines'])], } if args.get('description'): @@ -255,7 +262,8 @@ class Sale(metaclass=PoolMeta): for v in args['lines']: line_id = v.get('id') if line_id < 0: - to_add.append(cls._set_line(v)) + context['price_list'] = sale.shop.price_list + to_add.append(cls._set_line(v, context)) try: if to_add: to_write['lines'] = [('create', to_add)]