refactory printer receip_sale

This commit is contained in:
Wilson Gomez 2023-11-02 16:22:50 -05:00
parent ef61961792
commit f3b49f5a3f
3 changed files with 37 additions and 28 deletions

View File

@ -89,8 +89,8 @@ class AppWindow(FrontWindow):
self.journal = {}
self.active_usb_printers = []
if os.name == 'posix' and os.path.exists(PATH_PRINTERS):
self.set_printers_usb(PATH_PRINTERS)
# if os.name == 'posix' and os.path.exists(PATH_PRINTERS):
# self.set_printers_usb(PATH_PRINTERS)
self.set_printing_context()
self.statusbar = StatusBar(self)
@ -214,6 +214,7 @@ class AppWindow(FrontWindow):
ctx_printing = self.Sale.get_printing_context(
args=[{'device_id': self.device['id']}])
ctx_printing['row_characters'] = self.row_characters
ctx_printing['params'] = self.ctx['params']
ctx_printing['delta_locale'] = DELTA_LOCALE
locale_logo = ''
if self.logo:
@ -235,16 +236,16 @@ class AppWindow(FrontWindow):
self.set_default_printer()
def set_default_printer(self, printer=None):
if self.active_usb_printers:
self.printer_sale_name = self.active_usb_printers[0]
if not printer and self.printer_sale_name:
printer = {
'interface': self.printer_sale_name[0],
'device': self.printer_sale_name[1],
'profile': self.profile_printer,
}
if printer:
self.receipt_sale.config_printer(printer)
# if self.active_usb_printers:
# self.printer_sale_name = self.active_usb_printers[0]
# if not printer and self.printer_sale_name:
# printer = {
# 'interface': self.printer_sale_name[0],
# 'device': self.printer_sale_name[1],
# 'profile': self.profile_printer,
# }
# if printer:
self.receipt_sale.config_printer(printer)
def button_new_sale_pressed(self):
self.create_new_sale()
@ -1042,7 +1043,7 @@ class AppWindow(FrontWindow):
self.message_bar.set('system_ready')
return True
def print_invoice(self, sale_id=None, type_doc='invoice', open_box=False, copies=1):
def print_invoice(self, sale_id=None, type_doc='invoice', open_box=False):
if not sale_id:
sale_id = self.store.sale_id
args = {
@ -1052,11 +1053,9 @@ class AppWindow(FrontWindow):
data = self.Sale.get_data(args)
if not data:
return
for i in range(copies):
msg = self.receipt_sale.print_sale(data, type_doc, open_box)
if isinstance(msg, dict) and msg.get('error'):
self.dialog('print_error', extra_message=msg['error'])
break
msg = self.receipt_sale.print_sale(data, type_doc, open_box)
if isinstance(msg, dict) and msg.get('error'):
self.dialog('print_error', extra_message=msg['error'])
# def button_duplicate_sale(self):
# if self.sale_customer_selected:
@ -3733,8 +3732,6 @@ class AppWindow(FrontWindow):
sale_id = self.sale_id
current_row = self.dialog_search_folio_transfer.current_row
guest = current_row['main_guest.name']
party = sale['party']['name']
number = sale['number']
room = current_row['room.code']
msg = f"\n\n HABITACION: {room} \n HUESPED: {guest}"
dialog = self.dialog('confirm_transfer_sale', response=True, extra_message=msg)
@ -3752,7 +3749,6 @@ class AppWindow(FrontWindow):
if not target_sale_id:
return
current_row = self.dialog_search_sale_transfer.current_row
print(current_row, 'hisdhid')
msg = f"\n\n VENTA: {current_row['number']} \n CLIENTE: {current_row['party.name']} \n DESCRIPCION: {current_row['description']}"
dialog = self.dialog('confirm_transfer_sale', response=True, extra_message=msg)
dialog.adjustSize()

View File

@ -95,6 +95,7 @@ class Receipt(object):
self.order_copies = context.get('order_copies') or 0
self.invoice_copies = context.get('invoice_copies') or 0
self.order_kind = 'command' if environment == 'restaurant' else 'dispatch'
self.params = context.get('params')
self._row_characters = _ROW_CHARACTERS
if context.get('row_characters'):
@ -174,14 +175,25 @@ class Receipt(object):
# self._printer.beep()
def config_printer(self, printer):
if dev_printers.get(printer['device']):
device = dev_printers[printer['device']]
if printer:
self._device = printer['device']
self._interface = printer['interface']
self._profile = printer['profile']
elif dev_printers:
self._interface = 'usb'
self._device = dev_printers['usb']
self._profile = self.params.get('profile_printer')
else:
device = printer['device']
self._device = self.params.get('printer_sale_name')[1]
self._interface = self.params.get('printer_sale_name')[0]
self._profile = self.params.get('profile_printer')
self._interface = printer['interface']
self._device = device
self._profile = printer['profile']
# if dev_printers.get(printer['device']):
# device = dev_printers[printer['device']]
# else:
# device = printer['device']
# self._profile = printer['profile']
def check_status(self, interface, device):
status = False
@ -223,6 +235,7 @@ class Receipt(object):
if port:
self._printer = printer.Network(host, port=int(port), timeout=5)
else:
print(host, 'VALIDATE o')
self._printer = printer.Network(host, timeout=5)
if not self._printer:
msg = "Warning: Can not found Printer!"

View File

@ -1 +1 @@
__version__ = "6.0.28"
__version__ = "6.0.29"