Minor fixes

This commit is contained in:
Oscar Alvarez 2021-02-23 14:46:28 -05:00
parent eef02846bf
commit 7d3478aead
4 changed files with 40 additions and 32 deletions

View file

@ -1,6 +1,6 @@
import os
from operator import itemgetter
from datetime import timedelta
from datetime import timedelta, datetime
from PyQt5.QtCore import (
Qt, QVariant, QAbstractTableModel, pyqtSignal, QModelIndex
)
@ -11,7 +11,7 @@ from PyQt5.QtWidgets import (
from PyQt5.QtGui import QPixmap, QIcon
from .buttons import ActionButton
from ..tools import get_icon, get_screen
from ..tools import get_screen
__all__ = ['Item', 'SearchWindow', 'TableModel']
@ -333,8 +333,14 @@ class TableModel(QAbstractTableModel):
elif data['type'] == 'number':
val = '{0:,}'.format(val)
elif data['type'] == 'datetime':
mod_hours = val + timedelta(hours=DELTA_LOCALE)
print(val, type(val))
value_obj = datetime.strptime(val, '%Y-%m-%dT%H:%M:%S.%f')
mod_hours = value_obj + timedelta(hours=DELTA_LOCALE)
val = mod_hours.strftime('%d/%m/%Y %I:%M %p')
elif data['type'] == 'time':
value_obj = datetime.strptime(val, '%Y-%m-%dT%H:%M:%S.%f')
mod_hours = value_obj + timedelta(hours=DELTA_LOCALE)
val = mod_hours.strftime('%I:%M %p')
if data['type'] == 'icon':
val = self.icons['icon_' + data['icon']]

View file

@ -161,6 +161,8 @@ class SearchSale(SearchWindow):
widths.append(110)
headers['consumer.rec_name'] = {'desc': 'CONSUMIDOR', 'type': 'char'}
widths.append(320)
headers['create_date'] = {'desc': 'HORA', 'type': 'time'}
widths.append(120)
else:
headers['sale_date'] = {'desc': 'FECHA', 'type': 'char'}
widths.append(80)

View file

@ -1330,7 +1330,7 @@ class AppWindow(FrontWindow):
def _print_order(self, sale_id, kind, reversion=False):
result = False
try:
if 1: #try:
args = {
'sale_id': sale_id,
'repeat': False,
@ -1342,7 +1342,7 @@ class AppWindow(FrontWindow):
self.store.set({'number': sale_number})
self.order_number.setText(sale_number)
result = self.receipt_order.print_orders(orders, reversion, kind)
except:
else: #except:
logging.error('Printing order fail!')
return result
@ -1490,7 +1490,6 @@ class AppWindow(FrontWindow):
('create_date', '>=', delta),
]
elif self.type_pos_user == 'frontend':
print('self.device...', self.device['id'])
dom = [
('state', 'in', ['draft', 'quotation', 'confirmed']),
('sale_device', '=', self.device['id']),

View file

@ -171,7 +171,6 @@ class Receipt(object):
self.conn = cups.Connection()
self._file = open(TEMP_INVOICE_FILE, 'w')
self._printer = CupsPrinter(self._file, self._row_characters)
print('xxxxxxx', self._printer)
if not self._printer:
self.logger.info("Warning: Can not found Printer!")
return
@ -452,6 +451,31 @@ class Receipt(object):
self.print_split(msg_residual, money(change))
self.print_enter()
def _print_info_consumer(self, sale):
consumer_name = sale.get('consumer_name', None)
if consumer_name:
payment_method = sale.get('payment_method', None)
consumer_address = sale.get('consumer_address', '')
consumer_phone = sale.get('consumer_phone', '')
self.print_horinzontal_line()
self.print_enter()
self._printer.set(align='center')
self._printer.text('========== 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()
if payment_method and payment_method == 'terminal':
payment_method = '--- PAGA CON DATAFONO'
else:
payment_method = '--- PAGA EN EFECTIVO'
self._printer.text(f'MEDIO DE PAGO: {payment_method}')
self.print_enter()
def print_body(self, sale, type_doc='invoice'):
self._printer.set(font=_FONT_B)
kind_string = sale.get('kind_string', None)
@ -500,31 +524,7 @@ class Receipt(object):
self._printer.text('Forma de Pago: %s' % sale['payment_term'])
self.print_enter()
consumer_name = sale.get('consumer_name', None)
if consumer_name:
payment_method = sale.get('payment_method', None)
consumer_address = sale.get('consumer_address', '')
consumer_phone = sale.get('consumer_phone', '')
self.print_horinzontal_line()
self.print_enter()
self._printer.set(align='center')
self._printer.text('========== 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()
if payment_method and payment_method == 'terminal':
payment_method = '--- PAGA CON DATAFONO'
else:
payment_method = '--- PAGA EN EFECTIVO'
self._printer.text(f'MEDIO DE PAGO: {payment_method}')
self.print_enter()
self._print_info_consumer(sale)
self.print_sale_lines(sale)
self.print_totals(sale)
@ -689,6 +689,7 @@ class Receipt(object):
def _print_order(self, order, reversion):
self.print_body_order(order, reversion)
self._print_info_consumer(order.get('consumer', {}))
self._printer.cut()
self._row_characters = order['row_characters']
return True