diff --git a/CHANGELOG.md b/CHANGELOG.md index fe9437a..8df9aa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +v 1.42.0 [20-Abr-2021] +---------------------- + - OpciĆ³n para que solo un admin pueda cancelar. + + v 1.41.4 [13-Abr-2021] ---------------------- - Error - Ticket #4 diff --git a/VERSION b/VERSION index 87b9edf..7297bfe 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -1.41.4 +1.42.0 diff --git a/source/app/models/db.py b/source/app/models/db.py index 2219a2d..d049e5f 100644 --- a/source/app/models/db.py +++ b/source/app/models/db.py @@ -120,12 +120,6 @@ class StorageEngine(object): def enviar_prefac(self, values): return main.PreFacturas.enviar(values['id']) - # ~ def _get_cancelinvoice(self, values): - # ~ return main.Facturas.cancel(values['id']) - - # ~ def _get_statussat(self, values): - # ~ return main.Facturas.get_status_sat(values['id']) - def _get_verifysat(self, values): return main.Facturas.get_verify_sat(values['id']) @@ -372,7 +366,7 @@ class StorageEngine(object): if opt == 'add': return main.Tickets.add(values, user) if opt == 'cancel': - return main.Tickets.cancel(values) + return main.Tickets.cancel(values, user) if opt == 'invoice': return main.Tickets.invoice(values, user) if opt == 'print': diff --git a/source/app/models/main.py b/source/app/models/main.py index f150210..913b658 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -614,6 +614,8 @@ class Configuracion(BaseModel): 'chk_ticket_user_show_doc', 'chk_config_invoice_by_ticket', 'chk_config_show_total_cant', + 'chk_cancel_invoices_by_admin', + 'chk_cancel_tickets_by_admin', ) data = (Configuracion .select() @@ -5512,6 +5514,12 @@ class Facturas(BaseModel): return cls.timbrar(args, user) if args['opt'] == 'cancel': + admin_cancel = Configuracion.get_bool('chk_cancel_invoices_by_admin') + if admin_cancel and not user.es_admin: + msg = 'Solo un admin puede cancelar' + result = {'ok': False, 'msg': msg, 'row': {}} + return result + result = cls.cancel(args['id']) if result['ok']: m = 'C {}'.format(args['id']) @@ -7487,7 +7495,13 @@ class Tickets(BaseModel): return @classmethod - def cancel(cls, values): + def cancel(cls, values, user): + admin_cancel = Configuracion.get_bool('chk_cancel_tickets_by_admin') + if admin_cancel and not user.es_admin: + msg = 'Solo un admin puede cancelar tickets' + result = {'ok': False, 'msg': msg, 'row': {}} + return result + id = int(values['id']) msg = 'Ticket cancelado correctamente' u = {'cancelado': True, 'estatus': 'Cancelado'} diff --git a/source/app/settings.py b/source/app/settings.py index 17c0b61..e6b5705 100644 --- a/source/app/settings.py +++ b/source/app/settings.py @@ -42,7 +42,7 @@ except ImportError: DEBUG = DEBUG -VERSION = '1.41.4' +VERSION = '1.42.0' EMAIL_SUPPORT = ('soporte@empresalibre.mx',) TITLE_APP = '{} v{}'.format(TITLE_APP, VERSION) diff --git a/source/static/js/controller/admin.js b/source/static/js/controller/admin.js index 2755339..8f2df92 100644 --- a/source/static/js/controller/admin.js +++ b/source/static/js/controller/admin.js @@ -129,6 +129,7 @@ var controllers = { $$('chk_config_user_show_doc').attachEvent('onItemClick', chk_config_item_click) $$('chk_config_invoice_by_ticket').attachEvent('onItemClick', chk_config_item_click) $$('chk_config_show_total_cant').attachEvent('onItemClick', chk_config_item_click) + $$('chk_cancel_invoices_by_admin').attachEvent('onItemClick', chk_config_item_click) $$('chk_config_anticipo').attachEvent('onItemClick', chk_config_item_click) @@ -138,6 +139,7 @@ var controllers = { $$('chk_ticket_edit_cant').attachEvent('onItemClick', chk_config_item_click) $$('chk_ticket_total_up').attachEvent('onItemClick', chk_config_item_click) $$('chk_ticket_user_show_doc').attachEvent('onItemClick', chk_config_item_click) + $$('chk_cancel_tickets_by_admin').attachEvent('onItemClick', chk_config_item_click) $$('txt_ticket_printer').attachEvent('onKeyPress', txt_ticket_printer_key_press) $$('lst_pac').attachEvent('onChange', lst_pac_on_change) $$('cmd_save_pac').attachEvent('onItemClick', cmd_save_pac_click) diff --git a/source/static/js/ui/admin.js b/source/static/js/ui/admin.js index 5af4922..ec93bdb 100644 --- a/source/static/js/ui/admin.js +++ b/source/static/js/ui/admin.js @@ -690,7 +690,12 @@ var options_admin_otros = [ labelRight: 'Factura global por ticket'}, {view: 'checkbox', id: 'chk_config_show_total_cant', labelWidth: 0, labelRight: 'Mostrar total de cantidades'}, - {}, + {} + ]}, + {cols: [{maxWidth: 15}, + {view: 'checkbox', id: 'chk_cancel_invoices_by_admin', labelWidth: 0, + labelRight: 'Solo admins pueden cancelar'}, + {} ]}, {maxHeight: 15}, @@ -739,6 +744,11 @@ var options_admin_otros = [ {view: 'checkbox', id: 'chk_ticket_user_show_doc', labelWidth: 0, labelRight: 'Usuarios pueden ver todos los documentos'} ]}, + {cols: [{maxWidth: 15}, + {view: 'checkbox', id: 'chk_cancel_tickets_by_admin', labelWidth: 0, + labelRight: 'Solo admins pueden cancelar'}, + {} + ]}, {maxHeight: 20}, {}]