add option print invoice in short form
This commit is contained in:
parent
b83ccbfc7c
commit
999f616d59
|
@ -1005,6 +1005,7 @@ class AppWindow(FrontWindow):
|
|||
data = self.Sale.get_data(args)
|
||||
if not data:
|
||||
return
|
||||
# set type_doc
|
||||
for i in range(copies):
|
||||
self.receipt_sale.print_sale(data, type_doc, open_box)
|
||||
|
||||
|
@ -1453,10 +1454,13 @@ class AppWindow(FrontWindow):
|
|||
|
||||
def action_print_sale(self):
|
||||
number = self.field_invoice_number.text()
|
||||
type_doc = 'invoice'
|
||||
if not number:
|
||||
type_doc = 'order'
|
||||
number = self.field_number.text()
|
||||
if number:
|
||||
self.field_invoice_number_ask.setText(number)
|
||||
self.field_type_ask.set_from_id(type_doc)
|
||||
res = self.dialog_print_invoice.exec_()
|
||||
if res == DIALOG_REPLY_NO:
|
||||
return
|
||||
|
@ -1756,9 +1760,7 @@ class AppWindow(FrontWindow):
|
|||
response = dialog.exec_()
|
||||
if response == DIALOG_REPLY_NO:
|
||||
return
|
||||
print('va a cancelar')
|
||||
self.Sale.cancel_sale({'id': self._sale['id']})
|
||||
print('paso')
|
||||
self.field_password_for_cancel_ask.setText('')
|
||||
self.set_state('cancel')
|
||||
self.clear_right_panel()
|
||||
|
@ -1846,7 +1848,6 @@ class AppWindow(FrontWindow):
|
|||
('shop', '=', shop_id),
|
||||
('create_date', '>=', delta),
|
||||
]
|
||||
print(_type, 'this type')
|
||||
if _type == 'cash':
|
||||
dom.append(['payment_term', '=', self.default_payment_term['id']])
|
||||
dom.append(['reservation', '!=', True])
|
||||
|
@ -1857,7 +1858,6 @@ class AppWindow(FrontWindow):
|
|||
dom.append(('reservation', '=', True))
|
||||
# dom.append(['payment_method', '!=', 'all_paid'])
|
||||
fields = self.dialog_search_sales.fields_names
|
||||
print(dom, 'dom', _type)
|
||||
sales = self.Sale.find(dom, fields=fields, order=[('id', 'DESC')])
|
||||
self.dialog_search_sales.set_from_values(sales)
|
||||
if self.enviroment == 'retail':
|
||||
|
|
305
app/reporting.py
305
app/reporting.py
|
@ -152,9 +152,7 @@ class Receipt(object):
|
|||
pass
|
||||
self.print_enter()
|
||||
self.print_header()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(3)
|
||||
self._printer.cut()
|
||||
self._printer.cashdraw(2)
|
||||
# self._printer.beep()
|
||||
|
@ -228,16 +226,20 @@ class Receipt(object):
|
|||
self.logger.info("Warning: Printer error or device not found!")
|
||||
|
||||
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'])
|
||||
try:
|
||||
if sale.get('qr_code'):
|
||||
self.print_qrcode(sale['qr_code'])
|
||||
except:
|
||||
pass
|
||||
self.print_footer(open_box)
|
||||
short = sale['short_invoice']
|
||||
self.print_header(short)
|
||||
self.print_body(sale, type_doc, short)
|
||||
if not short:
|
||||
if sale.get('cufe'):
|
||||
self._printer.text('CUFE: ' + sale['cufe'])
|
||||
try:
|
||||
if sale.get('qr_code'):
|
||||
self.print_qrcode(sale['qr_code'])
|
||||
except:
|
||||
pass
|
||||
self.print_footer(open_box)
|
||||
else:
|
||||
self._printer.cut()
|
||||
# self.print_extra_info(sale)
|
||||
if self._interface == 'cups':
|
||||
self._file.close()
|
||||
|
@ -250,12 +252,9 @@ class Receipt(object):
|
|||
self.print_header_sale_verification(sale)
|
||||
self.print_sale_lines(sale)
|
||||
self.print_totals(sale)
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(3)
|
||||
self._printer.cut()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self._printer.close()
|
||||
|
||||
def print_line(self, *args):
|
||||
|
@ -276,8 +275,7 @@ class Receipt(object):
|
|||
self.set_printer()
|
||||
self._printer.set(align='center')
|
||||
self._printer.text('REPORTE DE ENTREGA DE DOMICILIARIOS')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self.print_horinzontal_line()
|
||||
self._printer.set(align='left')
|
||||
name = data['name']
|
||||
|
@ -297,14 +295,12 @@ class Receipt(object):
|
|||
address = address[:character_address]
|
||||
address = self.word_space(address, character_address, 'left')
|
||||
self.print_line(sale_number, address, sale_total)
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
total = money(data['total'])
|
||||
self._printer.text(f'TOTAL: {total}')
|
||||
self.print_enter()
|
||||
self._printer.cut()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self._printer.close()
|
||||
|
||||
def print_count_money(self, data):
|
||||
|
@ -312,8 +308,7 @@ class Receipt(object):
|
|||
self._printer.set(align='center')
|
||||
self.print_enter()
|
||||
self._printer.text('REPORTE DE DINERO EN CAJA')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self.print_horinzontal_line()
|
||||
self._printer.set(align='left')
|
||||
type_ = data['type']
|
||||
|
@ -342,27 +337,23 @@ class Receipt(object):
|
|||
self._printer.text(f'TOTAL: {_total}')
|
||||
self.print_enter()
|
||||
self._printer.cut()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self._printer.close()
|
||||
|
||||
def print_header_sale_verification(self, sale):
|
||||
title = 'VERIFICACION DE CUENTA'
|
||||
msg = """ESTIMADO CLIENTE UNA VEZ REALICE EL \n PAGO DE LA CUENTA POR \n FAVOR EXIJA SU RESPECTIVA FACTURA"""
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self._printer.set(custom_size=True, width=2, height=2, align='center')
|
||||
self._printer.text(title)
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line('big')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self._printer.set(align='center')
|
||||
self._printer.text(msg)
|
||||
self.print_enter()
|
||||
self._printer.set(align='left')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
create_date = sale.get('create_date')
|
||||
if create_date:
|
||||
self._printer.text(f'FECHA: {create_date}')
|
||||
|
@ -401,17 +392,15 @@ class Receipt(object):
|
|||
self._printer.qr(qrcode, center=True, size=5)
|
||||
self.print_enter()
|
||||
|
||||
def print_header(self):
|
||||
if self._img_logo:
|
||||
self.print_logo()
|
||||
self._printer.set(align='center')
|
||||
if self._header != '' and self._header is not None:
|
||||
self._printer.textln(self._header)
|
||||
# self.print_enter()
|
||||
def print_header(self, short=False):
|
||||
if not short:
|
||||
if self._img_logo:
|
||||
self.print_logo()
|
||||
self._printer.set(align='center')
|
||||
if self._header != '' and self._header is not None:
|
||||
self._printer.textln(self._header)
|
||||
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:
|
||||
|
@ -419,26 +408,23 @@ class Receipt(object):
|
|||
self.print_enter()
|
||||
if self._street:
|
||||
self._printer.textln(self._street)
|
||||
# self.print_enter()
|
||||
if self._city:
|
||||
self._printer.text(self._city)
|
||||
if self._phone:
|
||||
if not short:
|
||||
if self._city:
|
||||
self._printer.text(' ')
|
||||
self._printer.text('Telefono:' + self._phone)
|
||||
if self._city or self._phone:
|
||||
self.print_enter()
|
||||
self._printer.text(self._city)
|
||||
if self._phone:
|
||||
if self._city:
|
||||
self._printer.text(' ')
|
||||
self._printer.text('Telefono:' + self._phone)
|
||||
if self._city or self._phone:
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
# self.print_enter()
|
||||
# self.print_enter()
|
||||
|
||||
def print_horinzontal_line(self, size=None):
|
||||
if size == 'big':
|
||||
row_characters = '-' * int(self._row_characters / 2)
|
||||
else:
|
||||
row_characters = '-' * self._row_characters
|
||||
self._printer.text(row_characters)
|
||||
self.print_enter()
|
||||
self._printer.textln(row_characters)
|
||||
|
||||
def print_horinzontal_double_line(self):
|
||||
self._printer.text('=' * self._row_characters)
|
||||
|
@ -455,7 +441,8 @@ class Receipt(object):
|
|||
right = right.decode("utf-8")
|
||||
left += (len_left - len(left) + 1) * ' '
|
||||
self._printer.text(left)
|
||||
self._printer.text(right + '\n')
|
||||
self._printer.text(right)
|
||||
self.print_enter()
|
||||
|
||||
def print_sale_lines(self, sale):
|
||||
self.print_enter()
|
||||
|
@ -508,7 +495,7 @@ class Receipt(object):
|
|||
if line['discount'] and Decimal(line['discount']) and self._show_discount:
|
||||
self.print_split(initial, discount)
|
||||
|
||||
def print_totals(self, sale):
|
||||
def print_totals(self, sale, short):
|
||||
untaxed_amount = sale['untaxed_amount']
|
||||
total_amount = sale['total_amount']
|
||||
self.print_split('', '----------------')
|
||||
|
@ -516,28 +503,25 @@ class Receipt(object):
|
|||
self.print_split('Impuesto:', money(sale['tax_amount']))
|
||||
self.print_split('', '----------------')
|
||||
self.print_split('Total:', money(total_amount))
|
||||
self.print_enter()
|
||||
|
||||
net_amount = sale['total_amount']
|
||||
delivery_amount = sale.get('delivery_amount', 0)
|
||||
if delivery_amount and delivery_amount > 0:
|
||||
net_amount = net_amount + delivery_amount
|
||||
if not short:
|
||||
self.print_enter()
|
||||
delivery_amount = sale.get('delivery_amount', 0)
|
||||
if delivery_amount and delivery_amount > 0:
|
||||
net_amount = net_amount + delivery_amount
|
||||
|
||||
tip_amount = sale.get('tip_amount', 0)
|
||||
if tip_amount and tip_amount > 0:
|
||||
net_amount = net_amount + tip_amount
|
||||
tip_amount = sale.get('tip_amount', 0)
|
||||
if tip_amount and tip_amount > 0:
|
||||
net_amount = net_amount + tip_amount
|
||||
|
||||
if tip_amount:
|
||||
self.print_split('Propina:', money(tip_amount))
|
||||
if delivery_amount:
|
||||
self.print_split('Domicilio:', money(delivery_amount))
|
||||
if tip_amount:
|
||||
self.print_split('Propina:', money(tip_amount))
|
||||
if delivery_amount:
|
||||
self.print_split('Domicilio:', money(delivery_amount))
|
||||
|
||||
if tip_amount or delivery_amount:
|
||||
self.print_split('Valor Neto:', money(net_amount))
|
||||
|
||||
# if self._show_discount:
|
||||
# self.print_split('Descuento:', money(sale['discount']))
|
||||
self.print_enter()
|
||||
if tip_amount or delivery_amount:
|
||||
self.print_split('Valor Neto:', money(net_amount))
|
||||
self.print_enter()
|
||||
if sale['cash_received']:
|
||||
self.print_split('Recibido:', money(sale['cash_received']))
|
||||
else:
|
||||
|
@ -547,14 +531,12 @@ class Receipt(object):
|
|||
msg_residual = 'Pendiente:'
|
||||
else:
|
||||
msg_residual = 'Cambio:'
|
||||
|
||||
self.print_split(msg_residual, money(change))
|
||||
self.print_enter()
|
||||
|
||||
order = sale.get('order')
|
||||
if order:
|
||||
self._printer.text(f'CODIGO: {order}')
|
||||
self.print_enter()
|
||||
if not short:
|
||||
order = sale.get('order')
|
||||
if order:
|
||||
self._printer.textln(f'CODIGO: {order}')
|
||||
|
||||
def _print_info_consumer(self, sale):
|
||||
consumer = sale.get('consumer', None)
|
||||
|
@ -566,15 +548,12 @@ class Receipt(object):
|
|||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
self._printer.set(align='center')
|
||||
self._printer.text('========== INFO CONSUMIDOR ==========')
|
||||
self._printer.textln('========== INFO CONSUMIDOR ==========')
|
||||
self.print_enter()
|
||||
self._printer.set(align='left')
|
||||
self._printer.text('NOMBRE: %s' % consumer_name)
|
||||
self.print_enter()
|
||||
self._printer.text('DIRECCION: %s' % consumer_address)
|
||||
self.print_enter()
|
||||
self._printer.text('TELEFONO: %s' % consumer_phone)
|
||||
self.print_enter()
|
||||
self._printer.textln('NOMBRE: %s' % consumer_name)
|
||||
self._printer.textln('DIRECCION: %s' % consumer_address)
|
||||
self._printer.textln('TELEFONO: %s' % consumer_phone)
|
||||
if payment_method and payment_method == 'terminal':
|
||||
payment_method = '- PAGA CON DATAFONO'
|
||||
elif payment_method and payment_method == 'all_paid':
|
||||
|
@ -584,14 +563,12 @@ class Receipt(object):
|
|||
else:
|
||||
payment_method = '- PAGA EN EFECTIVO'
|
||||
self._printer.text(f'MEDIO DE PAGO: {payment_method}')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
delivery_amount = money(sale.get('delivery_amount', 0))
|
||||
self._printer.text(f'Domicilio: {delivery_amount}')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
|
||||
def print_body(self, sale, type_doc='invoice'):
|
||||
def print_body(self, sale, type_doc='invoice', short=False):
|
||||
self._printer.set(font=_FONT_B)
|
||||
kind_string = sale.get('kind_string', None)
|
||||
if type_doc != 'invoice' and kind_string and self._environment != 'retail':
|
||||
|
@ -599,8 +576,7 @@ class Receipt(object):
|
|||
height=2, align='center')
|
||||
kind = f'- - - {kind_string} - - -'
|
||||
self._printer.text(kind)
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
self._printer.set(custom_size=False)
|
||||
self._printer.set(align='left')
|
||||
if type_doc == 'invoice':
|
||||
|
@ -618,10 +594,11 @@ class Receipt(object):
|
|||
if sale.get('invoice_time'):
|
||||
self._printer.text(' Hora:%s' % sale['invoice_time'])
|
||||
self.print_enter()
|
||||
if sale.get('turn') and sale['turn'] != 0:
|
||||
self._printer.text('Turno: %s - ' % str(sale['turn']))
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
if not short:
|
||||
if sale.get('turn') and sale['turn'] != 0:
|
||||
self._printer.text('Turno: %s - ' % str(sale['turn']))
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
party_name = 'Cliente: %s ' % sale['party']
|
||||
party_id_number = 'Id: %s' % sale.get('party_id_number', '')
|
||||
if len(party_name + party_id_number) > self._row_characters:
|
||||
|
@ -630,23 +607,24 @@ class Receipt(object):
|
|||
self._printer.text(party_id_number)
|
||||
else:
|
||||
self._printer.text(party_name + party_id_number)
|
||||
if sale.get('party_address'):
|
||||
self.print_enter()
|
||||
self._printer.text('Direccion: %s' % sale['party_address'])
|
||||
if sale.get('party_phone'):
|
||||
self.print_enter()
|
||||
self._printer.text('Telefono: %s' % sale['party_phone'])
|
||||
if sale.get('payment_term'):
|
||||
self.print_enter()
|
||||
self._printer.text('Forma de Pago: %s' % sale['payment_term'])
|
||||
if not short:
|
||||
if sale.get('party_address'):
|
||||
self.print_enter()
|
||||
self._printer.text('Direccion: %s' % sale['party_address'])
|
||||
if sale.get('party_phone'):
|
||||
self.print_enter()
|
||||
self._printer.text('Telefono: %s' % sale['party_phone'])
|
||||
if sale.get('payment_term'):
|
||||
self.print_enter()
|
||||
self._printer.text('Forma de Pago: %s' % sale['payment_term'])
|
||||
|
||||
self.print_enter()
|
||||
self._print_info_consumer(sale)
|
||||
self.print_enter()
|
||||
self._print_info_consumer(sale)
|
||||
self.print_sale_lines(sale)
|
||||
self.print_totals(sale)
|
||||
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
self.print_totals(sale, short)
|
||||
if not short:
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
self._printer.set(align='left')
|
||||
self._printer.text('DETALLE DE IMPUESTOS')
|
||||
self.print_enter()
|
||||
|
@ -664,63 +642,59 @@ class Receipt(object):
|
|||
self.print_col(
|
||||
str(int(taxes[tax]['tax'])), self.taxes_col_width3)
|
||||
self.print_enter()
|
||||
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
if sale.get('payments'):
|
||||
self.print_enter()
|
||||
self.print_col('MEDIO PAGO', self.payments_col_width1)
|
||||
self.print_col('# APROB', self.payments_col_width2)
|
||||
self.print_col('VALOR', self.payments_col_width3)
|
||||
self.print_enter()
|
||||
payments = sale['payments']
|
||||
for p in payments:
|
||||
self.print_col(str(p['name']) + ' ', self.payments_col_width1)
|
||||
self.print_col(str(p['voucher']) + ' ',
|
||||
self.payments_col_width2)
|
||||
self.print_col(str(int(p['amount'])), self.payments_col_width3)
|
||||
|
||||
if not short:
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
no_products = 'No ITEMS: %s' % str(sale['num_products'])
|
||||
self._printer.text(no_products)
|
||||
self.print_enter()
|
||||
if sale.get('payments'):
|
||||
self.print_enter()
|
||||
self.print_col('MEDIO PAGO', self.payments_col_width1)
|
||||
self.print_col('# APROB', self.payments_col_width2)
|
||||
self.print_col('VALOR', self.payments_col_width3)
|
||||
self.print_enter()
|
||||
payments = sale['payments']
|
||||
for p in payments:
|
||||
self.print_col(str(p['name']) + ' ', self.payments_col_width1)
|
||||
self.print_col(str(p['voucher']) + ' ',
|
||||
self.payments_col_width2)
|
||||
self.print_col(str(int(p['amount'])), self.payments_col_width3)
|
||||
|
||||
comment = sale.get('comment')
|
||||
if comment:
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
no_products = 'No ITEMS: %s' % str(sale['num_products'])
|
||||
self._printer.text(no_products)
|
||||
self.print_enter()
|
||||
self._printer.text(f'NOTAS: {comment}')
|
||||
|
||||
comment = sale.get('comment')
|
||||
if comment:
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
self._printer.text(f'NOTAS: {comment}')
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
|
||||
register = 'CAJA No. %s' % self._sale_device
|
||||
self._printer.text(register)
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
|
||||
# if type_doc == 'invoice':
|
||||
# self._printer.text('No PEDIDO: ' + sale['order'])
|
||||
# self.print_enter()
|
||||
|
||||
register = 'CAJA No. %s' % self._sale_device
|
||||
self._printer.text(register)
|
||||
self.print_enter()
|
||||
|
||||
self._printer.text('CAJERO: %s' % self._user)
|
||||
self._printer.text('CAJERO: %s' % self._user)
|
||||
self.print_enter()
|
||||
if sale.get('salesman'):
|
||||
self._printer.text('VENDEDOR: %s' % sale['salesman'])
|
||||
self.print_enter()
|
||||
if not short:
|
||||
if sale.get('channel'):
|
||||
self._printer.text('CANAL DE VENTA: %s' % sale['channel'])
|
||||
self.print_enter()
|
||||
|
||||
if sale.get('channel'):
|
||||
self._printer.text('CANAL DE VENTA: %s' % sale['channel'])
|
||||
self.print_enter()
|
||||
if sale.get('delivery_party'):
|
||||
self._printer.text('DOMICILIARIO: %s' % sale['delivery_party'])
|
||||
self.print_enter()
|
||||
print(self._show_position, sale['position'], '*************')
|
||||
if self._show_position:
|
||||
self._printer.text('POSICION: %s' % str(sale['position']))
|
||||
self.print_enter()
|
||||
|
||||
if sale.get('delivery_party'):
|
||||
self._printer.text('DOMICILIARIO: %s' % sale['delivery_party'])
|
||||
self.print_enter()
|
||||
print(self._show_position, sale['position'], '*************')
|
||||
if self._show_position:
|
||||
self._printer.text('POSICION: %s' % str(sale['position']))
|
||||
self.print_enter()
|
||||
|
||||
self.print_horinzontal_line()
|
||||
self.print_horinzontal_line()
|
||||
|
||||
auth_kind = sale.get('auth_kind', None)
|
||||
if auth_kind and sale['state'] not in ['draft']:
|
||||
|
@ -730,10 +704,9 @@ class Receipt(object):
|
|||
elif self._gta_info and sale['state'] not in ['draft']:
|
||||
self._printer.text(self._gta_info)
|
||||
self.print_enter()
|
||||
self._printer.text('Fecha de creacion: %s' % sale["create_date"])
|
||||
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
if not short:
|
||||
self._printer.text('Fecha de creacion: %s' % sale["create_date"])
|
||||
self._printer.ln(2)
|
||||
|
||||
def print_extra_info(self, sale):
|
||||
if sale.get('pos_notes'):
|
||||
|
@ -838,8 +811,7 @@ class Receipt(object):
|
|||
turn = order.get('turn')
|
||||
if turn:
|
||||
self._printer.text('TURNO: %s' % str(turn))
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
if self._environment != 'retail':
|
||||
kind = order.get('kind', 'delivery')
|
||||
if kind == 'take_away':
|
||||
|
@ -947,8 +919,7 @@ class Receipt(object):
|
|||
if order['comment']:
|
||||
self._printer.text(str(order['comment']))
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.ln(2)
|
||||
# if self._environment != 'retail':
|
||||
# self._printer.set(custom_size=True, width=2, height=2, align='center')
|
||||
# title = f'+ + + {_kind} + + +'
|
||||
|
|
Loading…
Reference in New Issue