add new option to print order

This commit is contained in:
wilsongomez 2022-05-20 08:55:32 -05:00
parent 8292e69d03
commit ebdeffc60c
2 changed files with 50 additions and 26 deletions

View File

@ -247,6 +247,11 @@ class AppWindow(FrontWindow):
if self.check_salesman():
# self.state_disabled()
pass
try:
self.action_send_order(sale_id=self._sale['id'], init_view=False)
except:
pass
try:
self.Sale.generate_shipment({
'sale_id': self._sale['id'],
@ -256,6 +261,7 @@ class AppWindow(FrontWindow):
except:
self.dialog('error_order_dispatched')
def button_to_draft_pressed(self):
# Return sale to draft state
if hasattr(self, '_sale'):
@ -789,10 +795,10 @@ class AppWindow(FrontWindow):
'id': self._sale_line['id'],
'quantity': quantity,
}
if self._config.get('use_price_list'):
args['use_price_list'] = True
# if self._config.get('use_price_list'):
# args['use_price_list'] = True
ctx = None
if hasattr(self, 'field_list_price'):
if hasattr(self, 'field_list_price') and self._config.get('use_price_list'):
ctx = {'price_list': self.field_list_price.get_id()}
rec = self.SaleLine.faster_set_quantity(args, ctx=ctx)
except:
@ -1581,7 +1587,10 @@ class AppWindow(FrontWindow):
self.model_sale_lines.update_record(line)
self.store.set({'number': sale_number})
self.order_number.setText(sale_number)
result = self.receipt_order.print_orders(orders, reversion, kind)
if self.enviroment != 'restaurant':
result = self.receipt_sale.print_orders(orders, reversion, kind)
else:
result = self.receipt_order.print_orders(orders, reversion, kind)
except:
logging.error('Printing order fail!')
return result
@ -1635,7 +1644,6 @@ class AppWindow(FrontWindow):
kind = 'dispatch'
if self.enviroment == 'restaurant':
kind = 'command'
if not sale_id and self._sale['id']:
sale_id = self._sale['id']
@ -3162,10 +3170,10 @@ class AppWindow(FrontWindow):
'id': data['id'],
'quantity': to_float(v, 2)
}
if self._config.get('use_price_list'):
qty_data['use_price_list'] = True
# if self._config.get('use_price_list'):
# qty_data['use_price_list'] = True
ctx = None
if hasattr(self, 'field_list_price'):
if hasattr(self, 'field_list_price') and self._config.get('use_price_list'):
ctx = {'price_list': self.field_list_price.get_id()}
self.SaleLine.faster_set_quantity(qty_data, ctx=ctx)
elif k == 'update_base_price':

View File

@ -216,10 +216,14 @@ class Receipt(object):
self.logger.info("Warning: Can not found Printer!")
return
self.logger.info("Info: Printer is OK!")
if type_doc == 'invoice' or self._environment == 'retail':
self._print_sale(sale, type_doc, open_box)
else:
self._print_sale_verification(sale)
try:
if type_doc == 'invoice' or self._environment == 'retail':
self._print_sale(sale, type_doc, open_box)
else:
self._print_sale_verification(sale)
except:
pass
self._printer.close()
except:
self.logger.info("Warning: Printer error or device not found!")
@ -402,20 +406,20 @@ class Receipt(object):
self.print_logo()
self._printer.set(align='center')
if self._header != '' and self._header is not None:
self._printer.text(self._header)
self.print_enter()
self._printer.text(self._company)
self.print_enter()
self._printer.text(self._shop)
self.print_enter()
self._printer.textln(self._header)
# self.print_enter()
self._printer.textln(self._company)
# self.print_enter()
self._printer.textln(self._shop)
# self.print_enter()
if self._id_number:
self._printer.text('NIT:' + self._id_number)
if self._regime_tax:
self._printer.text(' ' + self._regime_tax)
self.print_enter()
if self._street:
self._printer.text(self._street)
self.print_enter()
self._printer.textln(self._street)
# self.print_enter()
if self._city:
self._printer.text(self._city)
if self._phone:
@ -424,8 +428,9 @@ class Receipt(object):
self._printer.text('Telefono:' + self._phone)
if self._city or self._phone:
self.print_enter()
self.print_enter()
self.print_enter()
self._printer.ln(2)
# self.print_enter()
# self.print_enter()
def print_horinzontal_line(self, size=None):
if size == 'big':
@ -783,23 +788,34 @@ class Receipt(object):
self._printer = printer.File(host)
elif os.name == 'nt':
self._printer = printer.Win32Raw(host)
self._printer.open()
# self._printer.open()
elif order['interface'] == 'network':
self._printer = printer.Network(host, timeout=15)
elif order['interface'] == 'ssh':
self._printer = FileSSH(*host.split('@'))
if self._printer:
self._printer.open()
# if self._printer:
# self._printer.open()
elif order['interface'] == 'cups':
pass
if not hasattr(self, '_printer') and self._environment != 'restaurant':
self.set_printer()
if not self._printer:
self.logger.info(
"Warning: Interface not found for printer!")
res.append(None)
continue
else:
try:
self._printer.open()
except:
pass
self.logger.info("Info: Printer is OK!")
res.append(self._print_order(order, reversion))
try:
res.append(self._print_order(order, reversion))
except:
pass
self._printer.close()
except:
self.logger.info("Warning: Can not found Printer!")