minor fix mark_commanded

This commit is contained in:
Wilson Gomez 2023-10-11 14:22:23 -05:00
parent 040c9fecd8
commit 7e6a98c677
1 changed files with 11 additions and 34 deletions

45
sale.py
View File

@ -62,8 +62,8 @@ class Sale(metaclass=PoolMeta):
order_status_string = order_status.translated('order_status')
# delivery_time = fields.Numeric('Delivery Time (Min)', help="In Minutes")
# shipping_time = fields.DateTime('Shipping Time')
waiting_time = fields.Function(fields.Integer('Shipping Time',
help="In Minutes"), 'get_waiting_time')
# waiting_time = fields.Function(fields.Integer('Shipping Time',
# help="In Minutes"), 'get_waiting_time')
order_status_time = fields.Many2One('sale.order_status.time', string='Times Order Status')
@classmethod
@ -74,26 +74,6 @@ class Sale(metaclass=PoolMeta):
def default_order_status():
return 'draft'
def get_waiting_time(self, name=None):
now = datetime.now()
if self.state in ('draft', 'quotation', 'confirmed', 'processing'):
delta = int((now - self.create_date).seconds / 60)
return delta
@classmethod
def write(cls, *args):
actions = iter(args)
delivery_sales = []
for sales, values in zip(actions, actions):
if 'delivery_party' in values:
delivery_sales.extend(sales)
if delivery_sales:
now = datetime.now()
order_status = [sale.order_status_time for sale in delivery_sales if sale.order_status_time]
if order_status:
Order = order_status[0].__class__
Order.write(order_status, {'dispatched': now})
super(Sale, cls).write(*args)
@classmethod
def mark_commanded(cls, args):
@ -101,25 +81,22 @@ class Sale(metaclass=PoolMeta):
This method mark as commanded all products in sale, previous
positive response of local printer
"""
Status = Pool().get('sale.order_status.time')
Line = Pool().get('sale.line')
sale = cls(args['sale_id'])
sale.order_status = 'commanded'
to_write = {'order_status': 'commanded'}
now = datetime.now()
if sale.order_status_time:
sale.order_status_time.commanded = now
sale.order_status_time.save()
order_time = sale.order_status_time
if order_time:
Status.write([order_time], {'commanded': now})
else:
Status = Pool().get('sale.order_status.time')
status, = Status.create([{'commanded': now, 'requested': now, 'sale': args['sale_id']}])
sale.order_status_time = status
sale.save()
if sale.lines:
to_write['order_status_time'] = status
cls.write([sale], to_write)
if args.get('lines_ids'):
lines_ids = args['lines_ids']
Line = sale.lines[0].__class__
lines = Line.browse(lines_ids)
Line.write(list(lines), {'order_sended': True, 'status_order': 'commanded'})
# for line in sale.lines:
# line.order_sended = True
# line.save()
@classmethod
def do(cls, sales):