From 4a5bf615c4564e446dea6ebfe31bf99e780c9f0d Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Mon, 8 Oct 2018 14:13:16 -0500 Subject: [PATCH] Cuentas de banco para clientes nuevos --- source/app/models/main.py | 22 ++++++++++++++++------ source/static/js/controller/partners.js | 14 +++++++++++++- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/source/app/models/main.py b/source/app/models/main.py index 7a9153f..ee1a788 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -2655,6 +2655,7 @@ class Socios(BaseModel): @classmethod def add(cls, values): + accounts = util.loads(values.pop('accounts', '[]')) fields = cls._clean(cls, values) try: obj = Socios.create(**fields) @@ -2665,6 +2666,19 @@ class Socios(BaseModel): #~ ToDo Agregar tags + for account in accounts: + try: + bank = SATBancos.get_by_name(account['banco']) + fields = { + 'socio': obj, + 'banco': bank, + 'cuenta': account['cuenta'], + 'clabe': account['clabe'], + } + o = SociosCuentasBanco.create(**fields) + except IntegrityError: + pass + row = { 'id': obj.id, 'rfc': obj.rfc, @@ -2704,15 +2718,11 @@ class Socios(BaseModel): if count: return False + q = SociosCuentasBanco.delete().where(SociosCuentasBanco.socio==id) + q.execute() q = Socios.delete().where(Socios.id==id) return bool(q.execute()) - # ~ def _reset_saldo(self, id): - # ~ obj = Socios.get(Socios.id==id) - # ~ obj.saldo_cliente = 0.0 - # ~ obj.save() - # ~ return {'ok': True} - @classmethod def opt(cls, args): opt = args.get('opt', '') diff --git a/source/static/js/controller/partners.js b/source/static/js/controller/partners.js index 611f275..9c6d329 100644 --- a/source/static/js/controller/partners.js +++ b/source/static/js/controller/partners.js @@ -78,6 +78,8 @@ function get_condicion_pago(){ function cmd_new_partner_click(id, e, node){ $$('form_partner').clearValidation() + $$('form_partner_account_bank').clearValidation() + $$('form_partner').setValues({ id: 0, pais: 'México', tipo_persona: 1, es_activo: true, partner_balance: 0.00}) @@ -106,6 +108,8 @@ function cmd_edit_partner_click(){ var msg = '' var row = $$('grid_partners').getSelectedItem() + $$('form_partner_account_bank').clearValidation() + if (row == undefined){ msg = 'Selecciona un Socio de Negocio' msg_error(msg) @@ -235,6 +239,8 @@ function cmd_save_partner_click(id, e, node){ } } + values['accounts'] = $$('grid_partner_account_bank').data.getRange() + webix.ajax().post('/partners', values, { error:function(text, data, XmlHttpRequest){ msg = 'Ocurrio un error, consulta a soporte técnico'; @@ -570,6 +576,8 @@ function grid_partner_account_bank_click(id, e, node){ if(id.column != 'delete'){ return } + var id_partner = $$('form_partner').getValues().id + var grid = $$('grid_partner_account_bank') var msg = '¿Estás seguro de eliminar la cuenta de banco seleccionada?

' msg += 'ESTA ACCION NO SE PUEDE DESHACER' @@ -581,7 +589,11 @@ function grid_partner_account_bank_click(id, e, node){ text: msg, callback:function(result){ if (result){ - partner_delete_account_bank(id.row) + if(id_partner){ + partner_delete_account_bank(id.row) + }else{ + grid.remove(id.row) + } } } })