From 1180a750ee9ab5aee6d8a5a541c80ee81d1f0d40 Mon Sep 17 00:00:00 2001 From: Wilson Gomez Date: Sat, 28 Oct 2023 11:45:09 -0500 Subject: [PATCH] add button for transfer sales to folios release version 6.0.26 --- app/dialogs.py | 13 +++++++------ app/frontwindow.py | 2 +- app/main.py | 17 ++++++++++------- app/proxy.py | 10 ++++++++-- app/stack_messages.py | 3 ++- app/version.py | 2 +- 6 files changed, 29 insertions(+), 18 deletions(-) diff --git a/app/dialogs.py b/app/dialogs.py index d7442e0..367cb5a 100644 --- a/app/dialogs.py +++ b/app/dialogs.py @@ -301,18 +301,19 @@ class SearchFolio(SearchWindow): def __init__(self, parent): headers = OrderedDict() headers['id'] = {'desc': 'ID', 'type': 'char'} - headers['id_number'] = {'desc': 'NUMERO ID', 'type': 'char'} - headers['name'] = {'desc': 'NOMBRE', 'type': 'char'} - headers['phone'] = {'desc': 'TELEFONO', 'type': 'char'} - headers['street'] = {'desc': 'DIRECCION', 'type': 'char'} + headers['room.code'] = {'desc': 'HABITACION', 'type': 'char'} + headers['main_guest.name'] = {'desc': 'NOMBRE HUESPED', 'type': 'char'} + headers['registration_state'] = {'desc': 'ESTADO', 'type': 'char'} + headers['arrival_date'] = {'desc': 'FECHA INGRESO', 'type': 'char'} + headers['departure_date'] = {'desc': 'FECHA SALIDA', 'type': 'char'} title = 'BUSCAR FOLIO' methods = { 'on_selected_method': 'on_selected_folio', - 'on_return_method': 'on_search_folio', + # 'on_return_method': 'on_search_folio', } super(SearchFolio, self).__init__(parent, headers, None, methods, - filter_column=[], cols_width=[60, 120, 270, 190, 90], + filter_column=[1, 2], cols_width=[10, 220, 670, 220, 220, 220], title=title, fill=True) diff --git a/app/frontwindow.py b/app/frontwindow.py index 237ee30..cfd0bff 100644 --- a/app/frontwindow.py +++ b/app/frontwindow.py @@ -329,7 +329,7 @@ class FrontWindow(QMainWindow): self.RestTables = Model('sale.shop.table', self.ctx, main_window=self) self.Consumer = Model('party.consumer', self.ctx, main_window=self) self.printers_shop, self.products_printers = self.Sale.get_product_printers( - self.shop['id']) + args=[self.shop['id']]) self._action_report_invoice, = self.ActionReport.find([ ('report_name', '=', 'account.invoice'), diff --git a/app/main.py b/app/main.py index 63e6ee8..163e795 100644 --- a/app/main.py +++ b/app/main.py @@ -217,7 +217,7 @@ class AppWindow(FrontWindow): def set_printing_context(self): ctx_printing = self.Sale.get_printing_context( - {'device_id': self.device['id']}) + args=[{'device_id': self.device['id']}]) ctx_printing['row_characters'] = self.row_characters ctx_printing['delta_locale'] = DELTA_LOCALE locale_logo = '' @@ -3426,9 +3426,8 @@ class AppWindow(FrontWindow): def action_transfer_to_folio(self): folios = self.Folio.get_current_folios() - print(folios, 'validate folios') - self.dialog_search_folio.set_from_values(folios) self.dialog_search_folio.show() + self.dialog_search_folio.set_from_values(folios) def key_pressed(self, text): if self._state == 'disabled': @@ -3736,7 +3735,11 @@ class AppWindow(FrontWindow): self.dialog_test_printer.exec_() def on_selected_folio(self): - pass - - def on_search_folio(self): - pass + folio_id = self.dialog_search_folio.get_id() + if not folio_id: + return + sale_id = self.sale_id + current_row = self.dialog_search_folio.current_row + result = self.Sale.transfer_to_folio(args=[sale_id, folio_id]) + if result == 'ok': + self.dialog('transfer_folio', extra_message='\n' + current_row['main_guest.name']) diff --git a/app/proxy.py b/app/proxy.py index 9a34cb8..7286277 100644 --- a/app/proxy.py +++ b/app/proxy.py @@ -2,6 +2,7 @@ import os import base64 import tempfile +import logging from datetime import date from decimal import Decimal from http.client import HTTPConnection, HTTPSConnection @@ -54,8 +55,10 @@ def logout(ctx): }, default=encoder) conn.request('POST', url, body=payload, headers=HEADERS) response = conn.getresponse() + print(response.status, 'status logout') if response.status != 200: res = response.read() + logging.error(f'error request {res}') else: res = json.loads(response.read()) conn.close() @@ -208,8 +211,8 @@ class Model(object): response = conn.getresponse() res = json.loads(response.read()) if response.status != 200: + logging.error(f'error request {str(res)}') if self.main_window and hasattr(self.main_window, 'statusbar'): - print(res, 'valida') self.main_window.dialog( 'error_server', extra_message=res['detail']['error']) @@ -217,7 +220,7 @@ class Model(object): conn.close() return res - def __call__(self, values=None, ctx=None): + def __call__(self, values=None, args=None, ctx=None): if ctx: self.ctx.update(ctx) args_ = { @@ -227,7 +230,10 @@ class Model(object): 'context': self.ctx, } if values: + logging.warning(f'deprecate option values call method with list instance. \n model: {self.model} method: {self.method}') args_['args'] = [values] + if args: + args_['args'] = args res = self.get_connection('POST', '/method', args_) return res diff --git a/app/stack_messages.py b/app/stack_messages.py index ec9fd32..bd34530 100644 --- a/app/stack_messages.py +++ b/app/stack_messages.py @@ -70,5 +70,6 @@ class StackMessages(QWidget): 'qty_combo_min_req': ('error', 'Cantidad minima requerida!'), 'error_server': ('error', 'Error'), 'print_error': ('error', 'Error de ImpresiĆ³n'), - 'test_printer': ('error', 'Resultado Test: ') + 'test_printer': ('error', 'Resultado Test: '), + 'transfer_folio': ('info', 'VENTA TRANSFERIDA A FOLIO DE: ') } diff --git a/app/version.py b/app/version.py index 52a42bb..a6ee900 100644 --- a/app/version.py +++ b/app/version.py @@ -1 +1 @@ -__version__ = "6.0.25" +__version__ = "6.0.26"