set options discounts

This commit is contained in:
Wilson Gomez 2023-05-10 15:51:49 -05:00
parent f81124e5dc
commit 398894e9a0
1 changed files with 20 additions and 3 deletions

23
sale.py
View File

@ -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])