From dd2ff53e6a50ef550d689baa2de1aaf90053e467 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sat, 30 Dec 2017 00:19:48 -0600 Subject: [PATCH] Enviar factura en ZIP --- source/app/models/main.py | 23 ++++++++++++++++++++--- source/static/js/controller/admin.js | 1 + source/static/js/ui/admin.js | 4 +++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/source/app/models/main.py b/source/app/models/main.py index 928e3f6..d023511 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -150,6 +150,16 @@ class Configuracion(BaseModel): def __str__(self): return '{} = {}'.format(self.clave, self.valor) + @classmethod + def get_bool(cls, key): + data = (Configuracion + .select(Configuracion.valor) + .where(Configuracion.clave == key) + ) + if data: + return util.get_bool(data[0].valor) + return False + @classmethod def get_(cls, keys): if isinstance(keys, str): @@ -206,6 +216,7 @@ class Configuracion(BaseModel): fields = ( 'chk_config_ocultar_metodo_pago', 'chk_config_ocultar_condiciones_pago', + 'chk_config_send_zip', 'chk_config_anticipo', 'chk_config_cuenta_predial', 'chk_config_codigo_barras', @@ -2532,6 +2543,8 @@ class Facturas(BaseModel): @classmethod def send(cls, id, rfc): values = Configuracion.get_({'fields': 'correo'}) + in_zip = Configuracion.get_bool('chk_config_send_zip') + if not values: msg = 'No esta configurado el servidor de correo de salida' return {'ok': False, 'msg': msg} @@ -2545,7 +2558,10 @@ class Facturas(BaseModel): msg = 'El cliente no tiene configurado el correo para facturas' return {'ok': False, 'msg': msg} - files = (cls.get_zip(id, rfc),) + if in_zip: + files = (cls.get_zip(id, rfc),) + else: + files = (cls.get_pdf(id, rfc), cls.get_xml(id)) fields = util.make_fields(obj.xml) server = { @@ -2558,6 +2574,7 @@ class Facturas(BaseModel): options = { 'para': obj.cliente.correo_facturas, 'copia': values['correo_copia'], + 'confirmar': util.get_bool(values['correo_confirmacion']), 'asunto': util.make_info_mail(values['correo_asunto'], fields), 'mensaje': util.make_info_mail(values['correo_mensaje'], fields), 'files': files, @@ -4347,7 +4364,7 @@ def test_correo(values): server = { 'servidor': values['correo_servidor'], 'puerto': values['correo_puerto'], - 'ssl': bool(values['correo_ssl'].replace('0', '')), + 'ssl': util.get_bool(values['correo_ssl']), 'usuario': values['correo_usuario'], 'contra': values['correo_contra'], } @@ -4355,7 +4372,7 @@ def test_correo(values): options = { 'para': values['correo_usuario'], 'copia': ccp, - 'confirmar': bool(values['correo_confirmacion'].replace('0', '')), + 'confirmar': util.get_bool(values['correo_confirmacion']), 'asunto': values['correo_asunto'], 'mensaje': values['correo_mensaje'].replace('\n', '
'), 'files': [], diff --git a/source/static/js/controller/admin.js b/source/static/js/controller/admin.js index 4e63fde..3ec4a22 100644 --- a/source/static/js/controller/admin.js +++ b/source/static/js/controller/admin.js @@ -52,6 +52,7 @@ var controllers = { $$('txt_plantilla_donataria').attachEvent('onItemClick', txt_plantilla_donataria_click) $$('chk_config_ocultar_metodo_pago').attachEvent('onItemClick', chk_config_item_click) $$('chk_config_ocultar_condiciones_pago').attachEvent('onItemClick', chk_config_item_click) + $$('chk_config_send_zip').attachEvent('onItemClick', chk_config_item_click) $$('chk_config_anticipo').attachEvent('onItemClick', chk_config_item_click) $$('chk_config_ine').attachEvent('onItemClick', chk_config_item_click) $$('chk_config_cuenta_predial').attachEvent('onItemClick', chk_config_item_click) diff --git a/source/static/js/ui/admin.js b/source/static/js/ui/admin.js index d91cb41..100fbab 100644 --- a/source/static/js/ui/admin.js +++ b/source/static/js/ui/admin.js @@ -497,7 +497,9 @@ var options_admin_otros = [ labelRight: 'Ocultar método de pago'}, {view: 'checkbox', id: 'chk_config_ocultar_condiciones_pago', labelWidth: 0, labelRight: 'Ocultar condiciones de pago'}, - {}]}, + {view: 'checkbox', id: 'chk_config_send_zip', labelWidth: 0, + labelRight: 'Enviar factura en ZIP'}, + ]}, {maxHeight: 20}, {template: 'Ayudas varias', type: 'section'}, {cols: [{maxWidth: 15},