fix get command
This commit is contained in:
parent
6b437d7e6b
commit
bf949199d9
|
@ -101,10 +101,10 @@ class Task(ModelSQL, ModelView):
|
|||
|
||||
@classmethod
|
||||
def get_tasks_to_print(cls, args):
|
||||
one_hour_ago = str(datetime.now() - timedelta(hours=1))
|
||||
thirty_minutes_ago = str(datetime.now() - timedelta(minutes=30))
|
||||
dom = [
|
||||
('state', '=', 'pending'),
|
||||
('create_date', '>=', one_hour_ago)
|
||||
('create_date', '>=', thirty_minutes_ago)
|
||||
]
|
||||
if args.get('sale_id'):
|
||||
dom.append('line.sale', '=', args['sale_id'])
|
||||
|
|
100
sale.py
100
sale.py
|
@ -209,39 +209,38 @@ class Sale(metaclass=PoolMeta):
|
|||
shop = self.shop
|
||||
line_commanded = []
|
||||
for line in self.lines:
|
||||
if not line.task_printed:
|
||||
line_commanded.append(line)
|
||||
qty = line.quantity
|
||||
note = line.note
|
||||
line_id = line.id
|
||||
tasks = line.product.tasks
|
||||
att_getter = attrgetter("name")
|
||||
att_getter_p = attrgetter("host", "interface", "port", "row_characters")
|
||||
for t in tasks:
|
||||
station = t.work_station
|
||||
station_id = station.id
|
||||
name = att_getter(t)
|
||||
value = {
|
||||
'name': name, 'qty': qty, 'note': note,
|
||||
'id': line_id, 'task_id': t.id}
|
||||
for p in t.work_station.printers:
|
||||
key = str(p.id) + '_' + str(station_id)
|
||||
if p.shop == shop:
|
||||
try:
|
||||
data_grouped_printer[key]['lines'].append(value)
|
||||
except Exception:
|
||||
host, interface, port, row_characters = att_getter_p(p)
|
||||
value_printer = {
|
||||
'device': host,
|
||||
'interface': interface,
|
||||
'profile': '',
|
||||
'row_characters': row_characters
|
||||
}
|
||||
data_grouped_printer[key] = {}
|
||||
data_grouped_printer[key]['printer'] = value_printer
|
||||
data_grouped_printer[key]['sale'] = data_sale
|
||||
data_grouped_printer[key]['work_station'] = station.name
|
||||
data_grouped_printer[key]['lines'] = [value]
|
||||
line_commanded.append(line)
|
||||
qty = line.quantity
|
||||
note = line.note
|
||||
line_id = line.id
|
||||
tasks = line.product.tasks
|
||||
att_getter = attrgetter("name")
|
||||
att_getter_p = attrgetter("host", "interface", "port", "row_characters")
|
||||
for t in tasks:
|
||||
station = t.work_station
|
||||
station_id = station.id
|
||||
name = att_getter(t)
|
||||
value = {
|
||||
'name': name, 'qty': qty, 'note': note,
|
||||
'id': line_id, 'task_id': t.id}
|
||||
for p in t.work_station.printers:
|
||||
key = str(p.id) + '_' + str(station_id)
|
||||
if p.shop == shop:
|
||||
try:
|
||||
data_grouped_printer[key]['lines'].append(value)
|
||||
except Exception:
|
||||
host, interface, port, row_characters = att_getter_p(p)
|
||||
value_printer = {
|
||||
'device': host,
|
||||
'interface': interface,
|
||||
'profile': '',
|
||||
'row_characters': row_characters
|
||||
}
|
||||
data_grouped_printer[key] = {}
|
||||
data_grouped_printer[key]['printer'] = value_printer
|
||||
data_grouped_printer[key]['sale'] = data_sale
|
||||
data_grouped_printer[key]['work_station'] = station.name
|
||||
data_grouped_printer[key]['lines'] = [value]
|
||||
# Line.write(line_commanded, {'status_order': 'commanded'})
|
||||
return data_grouped_printer
|
||||
|
||||
|
@ -524,13 +523,14 @@ class SaleLine(metaclass=PoolMeta):
|
|||
Sale = Pool().get('sale.sale')
|
||||
Printer = Pool().get('sale.pos_printer')
|
||||
|
||||
one_hour_ago = str(datetime.now() - timedelta(hours=1))
|
||||
thirty_minutes_ago = str(datetime.now() - timedelta(minutes=30))
|
||||
shop = args.get('shop')
|
||||
|
||||
fields_printer = [
|
||||
'shop', 'name',
|
||||
'host', 'interface',
|
||||
'port', 'row_characters',
|
||||
'categories.sequence', 'categories.category.name'
|
||||
]
|
||||
printers = Printer.search_read(['shop', '=', shop],
|
||||
fields_names=fields_printer)
|
||||
|
@ -539,7 +539,7 @@ class SaleLine(metaclass=PoolMeta):
|
|||
("sale.shop", "=", shop),
|
||||
("sale.state", "in", ("draft", "quotation")),
|
||||
("status_order", "=", 'requested'),
|
||||
("create_date", ">=", one_hour_ago),
|
||||
("create_date", ">=", thirty_minutes_ago),
|
||||
]
|
||||
if args.get('sale_id'):
|
||||
dom.append(('sale', '=', args['sale_id']))
|
||||
|
@ -572,13 +572,13 @@ class SaleLine(metaclass=PoolMeta):
|
|||
'party': s.get('party.', {}).get('name'),
|
||||
'kind': s['kind'],
|
||||
'delivery_amount': s['delivery_amount'],
|
||||
'salesman': s.get('salesman.', {}).get('rec_name'),
|
||||
'salesman': s.get('salesman.').get('rec_name') if s.get('salesman.') else '',
|
||||
'comment': s.get('comment', ''),
|
||||
'payment_term': s.get('payment_term.', {}).get('name', ''),
|
||||
'delivery_charge': s['delivery_charge'],
|
||||
'total_amount': str(s['total_amount']),
|
||||
'shop': s.get('shop.', {}).get('name', ''),
|
||||
'table_assigned': s.get('table_assigned.', {}).get('name', ''),
|
||||
'table_assigned': s.get('table_assigned.').get('name', '') if s.get('table_assigned.') else '',
|
||||
}
|
||||
for s in sales
|
||||
}
|
||||
|
@ -610,29 +610,26 @@ class SaleLine(metaclass=PoolMeta):
|
|||
|
||||
if key not in orders:
|
||||
orders[key] = {**printer, **sale, 'lines': []}
|
||||
|
||||
if 'categories.' in printer:
|
||||
orders[key]['lines'] = {
|
||||
c['sequence']: {
|
||||
'name': c.get('category.', {}).get('name'),
|
||||
'lines': []} for c in printer['categories']}
|
||||
orders[key]['categories'] = {c['category.']['id']: c['sequence'] for c in printer['categories.']}
|
||||
if len(printer.get('categories.')) > 1:
|
||||
orders[key]['lines'] = {
|
||||
c['sequence']: {
|
||||
'name': c.get('category.', {}).get('name'),
|
||||
'lines': []} for c in printer['categories.']}
|
||||
orders[key]['categories'] = {c['category.']['id']: c['sequence'] for c in printer['categories.']}
|
||||
|
||||
if isinstance(orders[key]['lines'], list):
|
||||
orders[key]['lines'].append(value_line)
|
||||
else:
|
||||
key_id = orders[key]['categories'].get(categories[0], 'others')
|
||||
|
||||
if 'others' not in orders[key]['lines']:
|
||||
key_id = str(orders[key]['categories'].get(categories[0], 'others'))
|
||||
if key_id == 'others' and 'others' not in orders[key]['lines']:
|
||||
orders[key]['lines']['others'] = {'name': 'OTROS', 'lines': []}
|
||||
|
||||
orders[key]['lines'][key_id]['lines'].append(value_line)
|
||||
return list(orders.values())
|
||||
|
||||
@classmethod
|
||||
def get_data_tasks(cls, args):
|
||||
Task = Pool().get('production.task')
|
||||
one_hour_ago = str(datetime.now() - timedelta(hours=1))
|
||||
thirty_minutes_ago = str(datetime.now() - timedelta(minutes=30))
|
||||
shop = args['shop']
|
||||
fields = [
|
||||
'sale.number', 'quantity', 'note',
|
||||
|
@ -646,19 +643,18 @@ class SaleLine(metaclass=PoolMeta):
|
|||
dom = [
|
||||
("sale.shop", "=", shop),
|
||||
("sale.state", "in", ("draft", "quotation")),
|
||||
("create_date", ">=", one_hour_ago),
|
||||
("create_date", ">=", thirty_minutes_ago),
|
||||
("without_task", "!=", True),
|
||||
("tasks", '=', None)
|
||||
]
|
||||
if args.get('sale_id'):
|
||||
dom.append(('sale', '=', args['sale']))
|
||||
dom.append(('sale', '=', args['sale_id']))
|
||||
lines = cls.search_read(
|
||||
dom, fields_names=fields,
|
||||
order=[('sale', 'ASC'), ('id', 'DESC')])
|
||||
|
||||
to_create = []
|
||||
lines_without_tasks = []
|
||||
print(lines, 'validate tasks')
|
||||
for line in lines:
|
||||
quantity = line['quantity']
|
||||
note = line['note']
|
||||
|
|
Loading…
Reference in New Issue