var PUBLICO = "Público en general"; var RFC_PUBLICO = "XAXX010101000"; var RFC_EXTRANJERO = "XEXX010101000"; var PAIS = "México"; var db = new loki('data.db'); var table_config = db.addCollection('config') var table_taxes = db.addCollection('taxes') var table_pt = db.addCollection('productstaxes') var table_totals = db.addCollection('totals', {unique: ['tax']}) var table_series = db.addCollection('series') var table_usocfdi = db.addCollection('usocfdi') function show(values){ webix.message(JSON.stringify(values, null, 2)) } webix.protoUI({ $cssName: "text", name: "currency", $init:function(){ this.attachEvent("onItemClick", function(){ this.$setValue(this.config.raw, true) }) this.attachEvent("onBlur", function(){ this.$setValue(this.config.value) }) }, $render:function(){ this.$setValue(this.config.value) }, $setValue:function(value, raw){ this.config.raw = value if(!raw){ value = webix.i18n.priceFormat(value) } this.getInputNode().value = value } }, webix.ui.text) webix.ui.datafilter.rowCount = webix.extend({ refresh:function(master, node, value){ node.firstChild.innerHTML = master.count(); } }, webix.ui.datafilter.summColumn) function validate_rfc(value){ rfc = value.trim().toUpperCase(); if ( rfc == ""){ webix.message({ type:"error", text:"El RFC no puede estar vacío" }); return false } var tipo_persona = $$('tipo_persona').getValue() var length = 13 var start = 4 if(tipo_persona==2){ length = 12 start = 2 } if (rfc.length != length){ webix.message({ type:"error", text:"Longitud incorrecta del RFC" }); return false } if (tipo_persona < 3 && (rfc == RFC_PUBLICO || rfc == RFC_EXTRANJERO)){ webix.message({ type:"error", text:"RFC incorrecto" }); return false } var part = rfc.slice(0, start); var re = new RegExp('[a-z&Ñ]{' + start + '}', 'i'); if (!part.match(re)){ webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al inicio" }); return false } part = rfc.slice(-3); re = new RegExp('[a-z0-9]{3}', 'i'); if (!part.match(re)){ webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al final" }); return false } part = rfc.slice(-9, -3); re = new RegExp('[0-9]{6}', 'i'); if (!part.match(re)){ webix.message({ type:"error", text: "Fecha inválida" }); return false } var month = parseInt(part.slice(-4, -2)) if (month == 0 || month > 12 ){ webix.message({ type:"error", text: "Fecha inválida" }); return false } var day = parseInt(part.slice(-2)) if (day == 0 || day > 31 ){ webix.message({ type:"error", text: "Fecha inválida" }); return false } 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) } function add_config(args){ var key = table_config.findOne({key: args.key}) if(key===null){ table_config.insert(args) }else{ key.value = args.value table_config.update(key) } } function get_config(value){ var key = table_config.findOne({key: value}) if(key===null){ return '' }else{ return key.value } }