From a515246bcbe8e117a04932d6a4f6720a6f851543 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Mon, 2 Oct 2017 22:21:51 -0500 Subject: [PATCH] Actualizar socio de negocio correctamente --- source/app/models/db.py | 18 +---------- source/app/models/main.py | 40 +++++++++++++++++++------ source/static/js/controller/partners.js | 6 ++-- source/static/js/controller/util.js | 8 ++++- 4 files changed, 42 insertions(+), 30 deletions(-) diff --git a/source/app/models/db.py b/source/app/models/db.py index eddcf3b..61a938a 100644 --- a/source/app/models/db.py +++ b/source/app/models/db.py @@ -32,25 +32,9 @@ class StorageEngine(object): id = int(values['id']) del values['id'] if id: - return main.Socios.update(values, id) + return main.Socios.actualizar(values, id) return main.Socios.add(values) - def update_partner(self, values): - id = int(values['id']) - del values['id'] - fields = util.clean(values) - fields['rfc'] = fields['rfc'].upper() - q = Clients.update(**values).where(Clients.id==id) - q.execute() - row = { - 'id': id, - 'cia': fields['cia'], - 'rfc': fields['rfc'], - 'name': fields['name'], - } - data = {'ok': True, 'row': row, 'new': False} - return data - diff --git a/source/app/models/main.py b/source/app/models/main.py index fd73192..5a311b2 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -331,6 +331,17 @@ class Socios(BaseModel): (('rfc', 'slug'), True), ) + def _clean(self, values): + fields = util.clean(values) + fields['rfc'] = fields['rfc'].upper() + fields['nombre'] = util.spaces(fields['nombre']) + fields['slug'] = util.to_slug(fields['nombre']) + fb = ('dias_habiles', 'es_activo', 'es_cliente', + 'es_proveedor', 'es_ong') + for name in fb: + fields[name] = bool(fields[name].replace('0', '')) + return fields + @classmethod def get(cls, values): if values: @@ -343,15 +354,7 @@ class Socios(BaseModel): @classmethod def add(cls, values): - fields = util.clean(values) - fields['rfc'] = fields['rfc'].upper() - fields['nombre'] = util.spaces(fields['nombre']) - fields['slug'] = util.to_slug(fields['nombre']) - fb = ('dias_habiles', 'es_activo', 'es_cliente', - 'es_proveedor', 'es_ong') - for name in fb: - fields[name] = bool(fields[name].replace('0', '')) - + fields = cls._clean(cls, values) try: obj = Socios.create(**fields) except IntegrityError: @@ -369,6 +372,25 @@ class Socios(BaseModel): data = {'ok': True, 'row': row, 'new': True} return data + @classmethod + def actualizar(cls, values, id): + fields = cls._clean(cls, values) + try: + q = Socios.update(**fields).where(Socios.id==id) + q.execute() + except IntegrityError: + msg = 'Ya existe el RFC y Razón Social' + data = {'ok': False, 'row': {}, 'new': True, 'msg': msg} + return data + + row = { + 'id': id, + 'rfc': fields['rfc'], + 'nombre': fields['nombre'], + } + data = {'ok': True, 'row': row, 'new': False} + return data + @classmethod def remove(cls, id): count = (Facturas diff --git a/source/static/js/controller/partners.js b/source/static/js/controller/partners.js index 892619d..6d55add 100644 --- a/source/static/js/controller/partners.js +++ b/source/static/js/controller/partners.js @@ -123,16 +123,16 @@ function cmd_save_partner_click(id, e, node){ function update_grid_partner(values){ - var msg = 'Cliente agregado correctamente' + var msg = 'Socio de negocio agregado correctamente' if (values.new){ $$('form_partner').clear() $$('grid_partners').add(values.row) }else{ - msg = 'Cliente actualizado correctamente' + msg = 'Socio de negocio actualizado correctamente' $$("grid_partners").updateItem(values.row['id'], values.row) } $$('multi_partners').setValue('partners_home') - webix.message({type:'success', text:msg}) + webix.message({type:'success', text: msg}) } diff --git a/source/static/js/controller/util.js b/source/static/js/controller/util.js index 6383e6a..952b7e0 100644 --- a/source/static/js/controller/util.js +++ b/source/static/js/controller/util.js @@ -61,4 +61,10 @@ function validate_rfc(value){ } return true -}; +} + + +function validate_email(email){ + var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ + return re.test(email) +}