diff --git a/source/app/models/db.py b/source/app/models/db.py index c41252e..4d5becd 100644 --- a/source/app/models/db.py +++ b/source/app/models/db.py @@ -14,6 +14,9 @@ class StorageEngine(object): def get_values(self, table, values=None): return getattr(self, '_get_{}'.format(table))(values) + def _get_configtimbrar(self, values): + return main.config_timbrar() + def _get_validartimbrar(self, values): return main.validar_timbrar() diff --git a/source/app/models/main.py b/source/app/models/main.py index ef1ac74..2c7fb0a 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -102,6 +102,20 @@ def validar_timbrar(): return {'ok': True, 'msg': msg} +def config_timbrar(): + try: + obj = Emisor.select()[0] + except IndexError: + return {'cfdi_donativo': False} + + conf = { + 'cfdi_anticipo': Configuracion.get_('chk_config_anticipo'), + 'cfdi_donativo': obj.es_ong, + } + + return conf + + class Configuracion(BaseModel): clave = TextField(unique=True) valor = TextField(default='') @@ -143,6 +157,13 @@ class Configuracion(BaseModel): .select() .where(Configuracion.clave.in_(fields)) ) + elif keys['fields'] == 'configotros': + fields = ( + 'chk_config_anticipo',) + data = (Configuracion + .select() + .where(Configuracion.clave.in_(fields)) + ) values = {r.clave: r.valor for r in data} return values @@ -151,6 +172,7 @@ class Configuracion(BaseModel): def add(cls, values): try: for k, v in values.items(): + print (k, v) obj, created = Configuracion.get_or_create(clave=k) obj.valor = v obj.save() diff --git a/source/static/js/controller/admin.js b/source/static/js/controller/admin.js index 17377c0..121eaa4 100644 --- a/source/static/js/controller/admin.js +++ b/source/static/js/controller/admin.js @@ -39,6 +39,7 @@ var controllers = { tb_options.attachEvent('onChange', tab_options_change) $$('txt_plantilla_factura_32').attachEvent('onItemClick', txt_plantilla_factura_32_click) $$('txt_plantilla_factura_33').attachEvent('onItemClick', txt_plantilla_factura_33_click) + $$('chk_config_anticipo').attachEvent('onItemClick', chk_config_item_click) } } @@ -297,6 +298,7 @@ function get_config_values(opt){ }, success: function(text, data, xhr) { var values = data.json() + showvar(values) Object.keys(values).forEach(function(key){ $$(key).setValue(values[key]) }) @@ -808,6 +810,7 @@ function txt_plantilla_factura_32_click(e){ function tab_options_change(nv, ov){ var cv = { Plantillas: 'templates', + Otros: 'configotros', } get_config_values(cv[nv]) } @@ -1185,3 +1188,23 @@ function cmd_emisor_eliminar_cuenta_click(){ } }) } + + +function chk_config_item_click(id, e){ + var values = {} + values[id] = $$(id).getValue() + + webix.ajax().sync().post('/config', values, { + error: function(text, data, xhr) { + msg = 'Error al guardar la configuraciĆ³n' + msg_error(msg) + }, + success: function(text, data, xhr) { + var values = data.json(); + if (!values.ok){ + msg_error(values.msg) + } + } + }) + +} diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js index 0bce3da..10ede99 100644 --- a/source/static/js/controller/invoices.js +++ b/source/static/js/controller/invoices.js @@ -56,7 +56,6 @@ function get_monedas(){ $$('lst_moneda').setValue(pre.id) if(values.length == 1){ $$('fs_moneda').hide() - //~ $$('fs_moneda').refresh() } }) } @@ -77,7 +76,6 @@ function get_regimen_fiscal(){ $$('lst_regimen_fiscal').setValue(pre.id) if(values.length == 1){ $$('fs_regimen_fiscal').hide() - //~ $$('fs_regimen_fiscal').refresh() } }) } @@ -109,6 +107,13 @@ function default_config(){ $$('cmd_timbrar').enable() } }) + + webix.ajax().sync().get('/values/configtimbrar', function(text, data){ + var values = data.json() + show('chk_cfdi_anticipo', values.cfdi_anticipo) + show('chk_cfdi_donativo', values.cfdi_donativo) + + }) } @@ -808,7 +813,7 @@ function grid_details_header_click(id){ function cmd_refacturar_click(){ - show('Refacturar') + showvar('Refacturar') } @@ -1014,7 +1019,7 @@ function cmd_invoice_sat_click(){ webix.ajax().get('/values/statussat', {id: row.id}, function(text, data){ var values = data.json() - show(values) + showvar(values) }) } diff --git a/source/static/js/controller/util.js b/source/static/js/controller/util.js index 3a81c1a..c89af4d 100644 --- a/source/static/js/controller/util.js +++ b/source/static/js/controller/util.js @@ -33,11 +33,23 @@ var months = [ ] -function show(values){ +function showvar(values){ webix.message(JSON.stringify(values, null, 2)) } +function show(nombre, value){ + if(value == '0'){ + value = false + } + if(value){ + $$(nombre).show() + }else{ + $$(nombre).hide() + } +} + + function msg_error(msg){ webix.message({type: 'error', text: msg}) } diff --git a/source/static/js/ui/admin.js b/source/static/js/ui/admin.js index 6a5862d..d418e5f 100644 --- a/source/static/js/ui/admin.js +++ b/source/static/js/ui/admin.js @@ -430,6 +430,16 @@ var options_templates = [ {}] +var options_admin_otros = [ + {maxHeight: 15}, + {cols: [{maxWidth: 15}, + {view: 'checkbox', id: 'chk_config_anticipo', labelWidth: 0, + labelRight: 'Ayuda para generar anticipos'}, + {}]}, + {maxHeight: 20}, +{}] + + var tab_options = { view: 'tabview', id: 'tab_options', @@ -440,7 +450,7 @@ var tab_options = { animate: true, cells: [ {id: 'Plantillas', rows: options_templates}, - {id: 'Otros', rows: [{}]}, + {id: 'Otros', rows: options_admin_otros}, {}, ], } diff --git a/source/static/js/ui/invoices.js b/source/static/js/ui/invoices.js index a688939..32fa67e 100644 --- a/source/static/js/ui/invoices.js +++ b/source/static/js/ui/invoices.js @@ -163,8 +163,11 @@ var toolbar_invoices_util = [ var toolbar_invoices_generate = {view: 'toolbar', elements: [{}, {view: 'button', id: 'cmd_cfdi_relacionados', label: 'CFDI Relacionados', type: 'iconButton', autowidth: true, icon: 'file-o'}, - {view: 'checkbox', id: 'chk_cfdi_anticipo', label: 'Es Anticipo', width: 100}, -]} + {view: 'checkbox', id: 'chk_cfdi_anticipo', labelRight: 'Es Anticipo', + labelWidth: 0, width: 100, hidden: true}, + {view: 'checkbox', id: 'chk_cfdi_donativo', labelRight: 'Es Donativo', + labelWidth: 0, width: 100, hidden: true}, +{}]} var toolbar_invoices_filter = [