var msg = '' var controllers = { init: function(){ //~ Admin $$('menu_user').attachEvent('onMenuItemClick', menu_user_click) $$('multi_admin').attachEvent('onViewChange', multi_admin_change) //~ Emisor $$('cmd_save_emisor').attachEvent('onItemClick', cmd_save_emisor_click) $$('emisor_cp').attachEvent('onKeyPress', emisor_postal_code_key_press) $$('emisor_cp').attachEvent('onTimedKeyPress', emisor_postal_code_key_up) $$('chk_escuela').attachEvent('onChange', chk_escuela_change) $$('chk_ong').attachEvent('onChange', chk_ong_change) $$('cmd_subir_certificado').attachEvent('onItemClick', cmd_subir_certificado_click) $$('up_cert').attachEvent('onUploadComplete', up_cert_upload_complete) $$('cmd_agregar_serie').attachEvent('onItemClick', cmd_agregar_serie_click) $$('grid_folios').attachEvent('onItemClick', grid_folios_click) } } function menu_user_click(id, e, node){ if (id == 1){ window.location = '/logout' return } } function cmd_home_click(){ window.location = '/main' } function cmd_save_emisor_click(){ var valid_cp = false var form = $$('form_emisor') if (!form.validate()){ msg = 'Valores inválidos' msg_error(msg) return } var values = form.getValues() var ids = $$('lst_emisor_regimen').getSelectedId() if(!ids){ msg = 'Selecciona al menos un Regimen Fiscal' msg_error(msg) return } if(values.emisor_cp && values.emisor_cp.length != 5){ msg = 'Longitud inválida del C.P.' msg_error(msg) return } if(values.emisor_cp2 && values.emisor_cp2.length != 5){ msg = 'Longitud inválida del C.P. de Expedición' msg_error(msg) return }else if(values.emisor_cp2){ webix.ajax().sync().get('/values/cp', {cp: values.emisor_cp2}, { error: function(text, data, xhr) { msg = 'Error al consultar el C.P. de Expedición' msg_error(msg) }, success: function(text, data, xhr) { var values = data.json(); if (values.estado == undefined){ msg = 'No se encontró el C.P., asegurate de que sea correcto' msg_error(msg) }else{ valid_cp = true } } }) } if(!valid_cp){ return } if(values.es_ong){ if(!values.ong_autorizacion){ msg = 'Si es ONG, el Número de Autorización del SAT es requerido' msg_error(msg) return } if(!values.ong_fecha){ msg = 'Si es ONG, la Fecha de Autorización del SAT es requerida' msg_error(msg) return } if(!values.ong_fecha_dof){ msg = 'Si es ONG, la Fecha de Publicación en DOF es requerida' msg_error(msg) return } } values['regimenes'] = ids webix.ajax().post('/emisor', values, { error:function(text, data, XmlHttpRequest){ msg = 'Ocurrio un error, consulta a soporte técnico' msg_error(msg) }, success:function(text, data, XmlHttpRequest){ var values = data.json() if(values.ok){ msg_sucess('Emisor guardado correctamente') }else{ msg_error(values.msg) } } }) } function get_emisor(){ var form = $$('form_emisor') webix.ajax().get("/emisor", {}, { error: function(text, data, xhr) { msg = 'Error al consultar' msg_error(msg) }, success: function(text, data, xhr) { var values = data.json() if (values.ok){ var emisor = values.row.emisor $$('lst_emisor_regimen').parse(values.row.regimenes) form.setValues(emisor, true) $$('lst_emisor_regimen').select(emisor.regimenes) }else{ msg_error(values.msg) } } }) } function get_certificado(){ var form = $$('form_cert') webix.ajax().get("/values/cert", {}, { error: function(text, data, xhr) { msg = 'Error al consultar' msg_error(msg) }, success: function(text, data, xhr) { var values = data.json() form.setValues(values) } }) } function get_table_folios(){ webix.ajax().get("/folios", {}, { error: function(text, data, xhr) { msg = 'Error al consultar' msg_error(msg) }, success: function(text, data, xhr) { var values = data.json() $$('grid_folios').parse(values) } }) } function multi_admin_change(prevID, nextID){ //~ webix.message(nextID) if(nextID == 'app_emisor'){ $$('tab_emisor').setValue('Datos Fiscales') get_emisor() get_certificado() return } if(nextID == 'app_folios'){ get_table_folios() return } } function emisor_postal_code_key_up(){ var value = this.getValue() if( value.length == 5 ){ webix.ajax().get('/values/cp', {cp: value}, { error: function(text, data, xhr) { msg = 'Error al consultar el C.P.' msg_error(msg) }, success: function(text, data, xhr) { var values = data.json(); if (values.estado == undefined){ msg = 'No se encontró el C.P., asegurate de que sea correcto' msg_error(msg) } else { $$('form_emisor').setValues({ emisor_cp2: value, emisor_estado: values.estado, emisor_municipio: values.municipio, emisor_colonia: ''}, true) $$('emisor_colonia').define('suggest', []) if (webix.isArray(values.colonia)){ $$('emisor_colonia').define('suggest', values.colonia) }else{ $$('form_emisor').setValues( {emisor_colonia: values.colonia}, true) } $$('emisor_colonia').refresh() } } }) } } function emisor_postal_code_key_press(code, e){ var data = [8, 9, 37, 39, 46] if ( data.indexOf(code) >= 0 ){ return true; } if ( code < 48 || code > 57){ return false; } } function chk_escuela_change(new_value, old_value){ var value = Boolean(new_value) if (value){ $$('cmd_niveles').enable() } else { $$('cmd_niveles').disable() } } function chk_ong_change(new_value, old_value){ var value = Boolean(new_value) if (value){ $$('ong_autorizacion').enable() $$('ong_fecha').enable() $$('ong_fecha_dof').enable() } else { $$('ong_autorizacion').disable() $$('ong_fecha').disable() $$('ong_fecha_dof').disable() } } function cmd_subir_certificado_click(){ var form = $$('form_upload') if (!form.validate()){ msg = 'Valores inválidos' msg_error(msg) return } var values = form.getValues() if(!values.contra.trim()){ msg = 'La contraseña no puede estar vacía' msg_error(msg) return } if($$('lst_cert').count() < 2){ msg = 'Selecciona al menos dos archivos: CER y KEY del certificado.' msg_error(msg) return } if($$('lst_cert').count() > 2){ msg = 'Selecciona solo dos archivos: CER y KEY del certificado.' msg_error(msg) return } var fo1 = $$('up_cert').files.getItem($$('up_cert').files.getFirstId()) var fo2 = $$('up_cert').files.getItem($$('up_cert').files.getLastId()) var ext = ['key', 'cer'] if(ext.indexOf(fo1.type.toLowerCase()) == -1 || ext.indexOf(fo2.type.toLowerCase()) == -1){ msg = 'Archivos inválidos, se requiere un archivo CER y un KEY.' msg_error(msg) return } if(fo1.type == fo2.type && fo1.size == fo2.size){ msg = 'Selecciona archivos diferentes: un archivo CER y un KEY.' msg_error(msg) return } var rfc = $$('form_cert').getValues()['cert_rfc'] if(rfc){ msg = 'Ya existe un certificado guardado

¿Deseas reemplazarlo?' webix.confirm({ title: 'Certificado Existente', ok: 'Si', cancel: 'No', type: 'confirm-error', text: msg, callback:function(result){ if(result){ $$('up_cert').send() } } }) } } function up_cert_upload_complete(response){ if(response.status != 'server'){ msg = 'Ocurrio un error al subir los archivos' msg_error(msg) return } msg = 'Archivos subidos correctamente. Esperando validación' msg_sucess(msg) var values = $$('form_upload').getValues() $$('form_upload').setValues({}) $$('up_cert').files.data.clearAll() webix.ajax().post('/values/cert', values, { error:function(text, data, XmlHttpRequest){ msg = 'Ocurrio un error, consulta a soporte técnico' msg_error(msg) }, success:function(text, data, XmlHttpRequest){ var values = data.json() if(values.ok){ $$('form_cert').setValues(values.data) msg_sucess(values.msg) }else{ msg_error(values.msg) } } }) } function cmd_agregar_serie_click(){ var form = $$('form_folios') var grid = $$('grid_folios') if (!form.validate()){ msg = 'Valores inválidos' msg_error(msg) return } var values = form.getValues() var reg = /^[a-z]+$/i if(!reg.test(values.folio_serie)){ msg = 'Introduce una serie válida. Solo letras.' msg_error(msg) return } var pre = '1' if(grid.count() > 0){ pre = '' } var usarcon = '' if(values.folio_usarcon != 'S'){ usarcon = values.folio_usarcon } var values = { serie: values.folio_serie.trim().toUpperCase(), inicio: values.folio_inicio, usarcon: usarcon, default: pre, } webix.ajax().post('/folios', values, { error:function(text, data, XmlHttpRequest){ msg = 'Ocurrio un error, consulta a soporte técnico' msg_error(msg) }, success:function(text, data, XmlHttpRequest){ var values = data.json() if(values.ok){ form.setValues( {folio_serie: '', folio_inicio: 1, folio_usarcon: 'S'}) grid.add(values.row) msg = 'Serie agregada correctamente' msg_sucess(msg) }else{ msg_error(values.msg) } } }) } function grid_folios_click(id, e, node){ if(id.column != 'delete'){ return } msg = '¿Estás seguro de borrar esta serie?

ESTA ACCIÓN NO SE PUEDE DESHACER' webix.confirm({ title: 'Borrar Serie', ok: 'Si', cancel: 'No', type: 'confirm-error', text: msg, callback:function(result){ if(result){ webix.ajax().del('/folios', {id: id.row}, function(text, xml, xhr){ msg = 'Serie eliminada correctamente' if(xhr.status == 200){ $$('grid_folios').remove(id.row) msg_sucess(msg) }else{ msg = 'No se pudo eliminar' msg_error(msg) } }) } } }) }