From 398894e9a0ed52a02a8e3dc7ab2cf366eccae590 Mon Sep 17 00:00:00 2001 From: Wilson Gomez Date: Wed, 10 May 2023 15:51:49 -0500 Subject: [PATCH] set options discounts --- sale.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/sale.py b/sale.py index 7acc0e6..af3fe15 100644 --- a/sale.py +++ b/sale.py @@ -298,6 +298,17 @@ class Sale(metaclass=PoolMeta): 'ctx': ctx, } + @classmethod + def dash_get_reverse_sale_price_taxed(cls, args): + pool = Pool() + Tax = pool.get('account.tax') + Product = pool.get('product.product') + product = Product(args['product']) + sale_price_taxed = args['sale_price_taxed'] + taxes = product.customer_taxes_used + unit_price = Tax.reverse_compute(Decimal(sale_price_taxed), taxes) + return {'unit_price': unit_price} + @classmethod def dash_get_line(cls, args, ctx): if not args.get('product'): @@ -373,6 +384,9 @@ class Sale(metaclass=PoolMeta): if v.get('unit_price'): v['unit_price'] = Decimal(str(v['unit_price'])) + else: + v['unit_price'] = product.list_price + v['base_price'] = product.list_price v['unit'] = product.template.default_uom.id v['description'] = product.name v['product'] = v['product']['id'] @@ -394,15 +408,17 @@ class Sale(metaclass=PoolMeta): shipment_date = None if args.get('shipment_date'): shipment_date = args['shipment_date'] - delivery = args.get('delivery', None) + delivery = args.get('delivery_amount', 0) if args.get('delivery_invoice') and delivery and int(delivery) > 0: product = config.delivery_product args['lines'].append({ 'product': product.id, 'quantity': 1, + 'type': 'line', + 'description': product.name, 'unit': product.default_uom.id, 'unit_price': Decimal(delivery)}) - delivery = None + delivery = 0 description = args.get('description', '') @@ -412,7 +428,7 @@ class Sale(metaclass=PoolMeta): 'consumer': args['consumer']['id'], 'source': args['source']['id'], 'kind': args['kind'], - 'delivery': delivery, + 'delivery_amount': delivery, 'shop': shop.id, 'position': args.get('position', ''), 'payment_method': args['payment_method'], @@ -438,6 +454,7 @@ class Sale(metaclass=PoolMeta): to_create['consumer'] = args['consumer']['id'] order_status_time = OrderStatusTime.create([{ 'requested': datetime.now()}]) to_create['order_status_time'] = order_status_time[0].id + print(to_create, 'validate to create') sale, = cls.create([to_create]) OrderStatusTime.write(order_status_time, {'sale': sale.id}) cls.set_number([sale])