diff --git a/source/app/models/main.py b/source/app/models/main.py index b66197d..60ef522 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -5383,6 +5383,36 @@ class CfdiPagos(BaseModel): opt = values.pop('opt') return getattr(cls, '_{}'.format(opt))(cls, values) + def _delete(self, values): + id_mov = int(values['id_mov']) + + filters = ( + (CfdiPagos.movimiento==id_mov) + ) + last = CfdiPagos.select().where(filters) + if not last: + msg = 'El depósito no tiene facturas de pago' + data = {'ok': False, 'msg': msg} + return data + + if len(last) > 1: + msg = 'Hay más de una factura activa para este depósito' + data = {'ok': False, 'msg': msg} + return data + + last = last[0] + if last.uuid: + msg = 'La factura esta timbrada, no se puede eliminar' + data = {'ok': False, 'msg': msg} + return data + + q = CfdiPagos.delete().where(CfdiPagos.id==last.id) + q.execute() + + msg = 'Factura de pago eliminada correctamente' + data = {'ok': True, 'msg': msg} + return data + def _cancel(self, values): id_mov = int(values['id_mov']) diff --git a/source/static/js/controller/bancos.js b/source/static/js/controller/bancos.js index 28cd425..5d0aeaa 100644 --- a/source/static/js/controller/bancos.js +++ b/source/static/js/controller/bancos.js @@ -41,6 +41,7 @@ var bancos_controllers = { $$('cmd_pay_stamp').attachEvent('onItemClick', cmd_pay_stamp_click) $$('cmd_pay_cancel').attachEvent('onItemClick', cmd_pay_cancel_click) + $$('cmd_pay_delete').attachEvent('onItemClick', cmd_pay_delete_click) $$('grid_cfdi_pay').attachEvent('onItemClick', grid_cfdi_pay_click) $$('grid_cfdi_por_pagar').attachEvent('onItemDblClick', grid_cfdi_por_pagar_double_click) $$('grid_cfdi_este_deposito').attachEvent('onItemDblClick', grid_cfdi_este_deposito_double_click) @@ -948,6 +949,48 @@ function cmd_pay_cancel_click(){ } +function cmd_pay_delete_click(){ + var form = $$('form_bank_pay') + var values = form.getValues() + var data = {'opt': 'delete', 'id_mov': values.id_mov} + + var grid = $$('grid_cfdi_pay') + if(grid.count() == 0){ + msg_error('El depósito no tiene facturas de pago') + return + } + + msg = '¿Estás seguro de eliminar esta factura?

ASEGURATE QUE NO ESTE TIMBRADA

ESTA ACCIÓN NO SE PUEDE DESHACER' + webix.confirm({ + title: 'Eliminar Factura', + ok: 'Si', + cancel: 'No', + type: 'confirm-error', + text: msg, + callback:function(result){ + if(result){ + webix.ajax().post('/cfdipay', data, { + error:function(text, data, XmlHttpRequest){ + msg = 'Ocurrio un error, consulta a soporte técnico' + msg_error(msg) + }, + success:function(text, data, XmlHttpRequest){ + values = data.json(); + if(values.ok){ + grid.remove(grid.getFirstId()) + msg_ok(values.msg) + }else{ + msg_error(values.msg) + } + } + }) + } + } + }) + +} + + function send_cfdi_email(row){ if(!row.uuid){ msg_error('La factura no esta timbrada') diff --git a/source/static/js/ui/bancos.js b/source/static/js/ui/bancos.js index 2f61cbb..94c0f60 100644 --- a/source/static/js/ui/bancos.js +++ b/source/static/js/ui/bancos.js @@ -270,6 +270,8 @@ var toolbar_bank_pay = [ {view: 'button', id: 'cmd_pay_stamp', label: 'Timbrar', type: 'iconButton', autowidth: true, icon: 'ticket'}, {view: 'button', id: 'cmd_pay_cancel', label: 'Cancelar', + type: 'iconButton', autowidth: true, icon: 'minus'}, + {view: 'button', id: 'cmd_pay_delete', label: 'Eliminar', type: 'iconButton', autowidth: true, icon: 'ban'}, {}, {view: 'icon', click: '$$("multi_bancos").setValue("banco_home")',