This commit is contained in:
oscar alvarez 2022-04-08 18:44:59 -05:00
parent b93d5cc1f0
commit dbdde63905
1 changed files with 15 additions and 7 deletions

22
sale.py
View File

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