Minor fixes

This commit is contained in:
Oscar Alvarez 2020-12-22 09:37:20 -05:00
parent 983b9c2178
commit 2c3beafdf4
3 changed files with 17 additions and 16 deletions

View file

@ -168,10 +168,10 @@ class TableModel(QAbstractTableModel):
if digits or digits == 0:
field_format = field['format'] % str(digits)
if isinstance(raw_value, str):
# raw_value = float(raw_value)
pass
raw_value = float(raw_value)
if field_format == '{:,d}':
raw_value = int(raw_value)
print(raw_value)
fmt_value = field_format.format(raw_value)
else:
fmt_value = raw_value

View file

@ -1048,7 +1048,7 @@ class MainWindow(FrontWindow):
if self.print_receipt == 'automatic':
_copies = self.device['shop']['invoice_copies']
if not is_credit:
self.print_invoice(copies=_copies)
self.print_invoice(copies=_copies, open_box=True)
if self.print_order and self.print_auto_order:
self.action_print_order()
except:
@ -1066,7 +1066,7 @@ class MainWindow(FrontWindow):
self.message_bar.set('system_ready')
return True
def print_invoice(self, sale_id=None, type_doc='invoice', copies=1):
def print_invoice(self, sale_id=None, type_doc='invoice', open_box=False, copies=1):
if not sale_id:
sale_id = self._sale['id']
args = {
@ -1074,9 +1074,8 @@ class MainWindow(FrontWindow):
'type_doc': type_doc,
}
data = self.Sale.get_data(args)
print('=====', data)
for i in range(copies):
self.receipt_sale.print_sale(data, type_doc)
self.receipt_sale.print_sale(data, type_doc, open_box)
def button_duplicate_sale(self):
if self.sale_customer_selected:
@ -1125,6 +1124,8 @@ class MainWindow(FrontWindow):
return
self.set_amounts(res)
self._sale['number'] = res['number']
self.field_order_number.setText(self._sale['number'])
self.field_invoice.setText(res['invoice_number'])
self.field_amount.setText('')
@ -1448,7 +1449,9 @@ class MainWindow(FrontWindow):
'reversion': reversion,
'repeat': False,
}
orders = self.Sale.get_order2print(args)
orders, sale_number = self.Sale.get_order2print(args)
self._sale['number'] = sale_number
self.field_order_number.setText(self._sale['number'])
result = self.receipt_order.print_orders(orders, reversion, kind)
except:
logging.error('Printing order fail!')

View file

@ -147,7 +147,7 @@ class Receipt(object):
self._device = device
self._profile = printer['profile']
def print_sale(self, sale, type_doc=None):
def print_sale(self, sale, type_doc=None, open_box=False):
try:
if self._interface == 'usb':
if os.name == 'posix':
@ -168,18 +168,18 @@ class Receipt(object):
self.logger.info("Warning: Can not found Printer!")
return
self.logger.info("Info: Printer is OK!")
self._print_sale(sale, type_doc)
self._print_sale(sale, type_doc, open_box)
except:
self.logger.info("Warning: Printer error or device not found!")
def _print_sale(self, sale, type_doc=None):
def _print_sale(self, sale, type_doc=None, open_box=False):
self.print_header()
self.print_body(sale, type_doc)
if sale.get('cufe'):
self._printer.text('CUFE: ' + sale['cufe'])
if sale.get('qr_code'):
self.print_qrcode(sale['qr_code'])
self.print_footer()
self.print_footer(open_box)
# self.print_extra_info(sale)
if self._interface == 'cups':
self._file.close()
@ -254,7 +254,6 @@ class Receipt(object):
self._printer.text(right + '\n')
def print_body(self, sale, type_doc='invoice'):
self._cashdraw = True
self._printer.set(font=_FONT_B)
kind_string = sale.get('kind_string', None)
if type_doc != 'invoice' and kind_string:
@ -272,7 +271,6 @@ class Receipt(object):
else:
self._printer.text('NOTA CREDITO No. ' + sale['number'])
elif type_doc in ['order', 'delivery']:
self._cashdraw = False
self._printer.text('PEDIDO: ' + sale['order'])
self.print_enter()
@ -392,7 +390,7 @@ class Receipt(object):
self.print_horinzontal_line()
self.print_enter()
if self._printing_taxes:
self.print_col('Tipo', self.taxes_col_width + 2)
self.print_col('Tipo', self.taxes_col_width)
self.print_col('Base', self.taxes_col_width)
self.print_col('Imp.', self.taxes_col_width)
taxes = sale['taxes']
@ -491,14 +489,14 @@ class Receipt(object):
def print_col(self, x, l):
self._printer.text(x[:l] + (l - len(x)) * ' ')
def print_footer(self, ):
def print_footer(self, open_box=False):
if self._footer:
self._printer.text(self._footer)
self.print_enter()
self._printer.text('SOFTWARE TRYTON - www.presik.com')
self.print_enter()
self._printer.cut()
if self._cashdraw:
if open_box:
self._printer.cashdraw(2)
self.print_enter()