Created
March 8, 2017 10:16
-
-
Save davidtaubmann/ebe42590b2ee9834df57a829a2d925f5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* HMCO HandHeld Web System | |
* File: f_checa_codigo.js | |
* Version : 1.0 | |
* author: David Taubmann | |
* descr: Funciones Variadas de Revisión de código | |
* | |
*/ | |
// JavaScript Document | |
// Función de Checar el Código Capturado. | |
// Refs para checaCodigoEstadios: | |
// R : Recintos (tienen Grupos de Puertas y Aparte Puertas) | |
// E : Eventos (son del Recinto y tienen Grupos de Fechas) | |
// Gp : Grupo de Puertas del Recinto (los que pueden traer las acreditaciones.) | |
// Ps : Puertas del Recinto (de donde se selecciona la puerta de la Handheld) | |
// Fs : Fechas del Evento que pueden traer las acreditaciones | |
// MiP: Puerta Seleccionada en la HandHeld que captura | |
// c: Código Versión 1.0 | |
// cp: Array del código con las siguientes variables numéricas: | |
// ESTRUCTURA: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | |
// ESTRUCTURA: f | - | v | - | - | ef | ta | - | | |
// ESTRUCTURA: Folio |Backpass |Version |Recinto|AccesoNormal(P)|Evto/Fecha |Zona(GPs) |Contraseña | | |
// EJEMPLO(L): 1407 | 0 |1.0 |R11 |A6 |E1213 |Z115 | |
// EJEMPLO(Q): H9-5745 | 0 |1.0 |R12 |ATODAS |E9 |ZAll Access | |
// c: Código Versión 0.5 | |
// cp: Array del código con las siguientes variables numéricas: | |
// ESTRUCTURA: 0 | 1 | 2 | 3 | 4 | 5 | 6 |-| | |
// ESTRUCTURA: f | - | v | - | ta | - | - |-| | |
// ESTRUCTURA: Folio|Backpass|Version|Recinto|Zona(GPs)|Evto/Fecha|Contraseña|-| | |
// EJEMPLO: 100|0|0.5|NOU_CAMP|P10|LEON-Pumas|8DF | |
// Establecer las variables vacias a usar en las funciones: | |
var TotERRs = ""; // Total de Errores posibles ACTIVOS en ésta fórmula. | |
var MisERRs = ""; // Errores | |
var Gp=T_Recintos[R]["GP"]; //Grupo de Puertas del Recinto que pueden traer las acreditaciones. | |
var Ps=T_Recintos[R]["P"]; //Puertas del Recinto de donde se selecciona la puerta de la Handheld. | |
var Fs=T_Eventos[R][E]; //Fechas del Evento que pueden traer las acreditaciones. | |
var ERRs; // Errores a mostrar en pantalla | |
var ERRg; // Errores a grabar en base de datos | |
var MiP; // La Puerta Seleccionada | |
var c; // El código introducido | |
var cp; // El código introducido | |
var f; // Folio del código introducido | |
var F; // Folio del código introducido en Mayúsculas | |
var v; // Version del código introducido | |
var V; // Version del código introducido en Mayúsculas | |
var ef; // Evento o Fecha del Código | |
//var EF; // Evento o Fecha del Código en Mayúsculas | |
var ta; // Zona (ó Grupo de Puertas ó Tipo de Acceso) del código introducido | |
var TA; // Zona (ó Grupo de Puertas ó Tipo de Acceso) del código introducido en Mayúsculas | |
function ArrancaRevision(){ | |
window.efp=0; // Posicion del punto (.) en string de Evento o Fecha del Código | |
window.ef1=0; // Primera Parte de Fecha del Evento en el Código (ej. E30) | |
window.ef2=0; // Segunda Parte de Fecha del Evento en el Código (ej. 12) | |
window.efn=0; // Nombre de Fecha del Evento según las Fechas (Fs) del Evento (E) (ej. QRO-Leon) | |
window.tac=0; // Posicion del punto (.) en string de Zona del código | |
window.tas=0; // Matriz de Zonas del código, si no es matriz, equivale a 0 | |
window.BPy=0; // Bandera sobre medio BackPass y Vuelta, para lanzar Amarillo | |
//alert("Arrancado: "+efp+efn+tac+tas); | |
} | |
function ArrancaRevision2(splitter){ | |
ArrancaRevision() | |
//alert("Arrancado: "+efp+efn+tac+tas); | |
window.ERRs=""; // Limpiar Errores a mostrar en pantalla | |
window.ERRg=""; // Limpiar Errores a grabar en base de datos | |
// Establecer las variables a usar en las funciones: | |
window.Plist = document.forms['form1'].MiP; | |
window.MiP = Plist.options[Plist.selectedIndex].value; | |
window.ci = document.forms['form1'].c.value; | |
// Si no hay un codigo establecido, dejarlo claro. | |
if(window.ci==undefined) window.pc = false; | |
// Si sí hay un codigo establecido, arreglarlo... | |
else { | |
window.pc = decodeURI(ci); | |
pc = pc.replace("%2B"," "); | |
pc = pc.replace("\+"," "); | |
pc = pc.toUpperCase(); | |
// Dejar lista la referencia global al código (falso ó arreglado). | |
c = pc; | |
window.cp = c.split(splitter); | |
// Revisar si es válido usando la función de chequeo. | |
} | |
window.va = 0; | |
} | |
// ################################### CICLO ENTRA/SALE ####################################### | |
// ################################### CICLO ENTRA/SALE ####################################### | |
// EN DESARROLLO... AUN NO ESTA TERMINADO! | |
// Ejemplo: http://ELA13.hamco.mx/?c=ELA135ih | |
function checaCodigoCiclo() { // Ver de código 0.1 | |
TotERRs = 2; // Total de Errores posibles ACTIVOS en ésta fórmula. | |
MisERRs = 0; | |
ArrancaRevision2(Separ); | |
if(c && cp){ | |
if(AlertasChequeo) alert("Chequeo Inicializado: "+c+"-\n"+cp[0]+"-\n"+cp[3]); | |
//Extrae el Código Definitivo | |
var cd=""; | |
cd=c.substr(-7) ; | |
//if(cp[0].indexOf("http")<0) cd=c; else cd=cp[3].substr(3) ; | |
if(AlertasChequeo) alert("Codigo Definitivo: "+cd); | |
//############### LA REVISION ################# | |
//############### LA REVISION ################# | |
/**/ // ERR 1 // ESTA DENTRO DE LOS DENEGADOS? | |
if(!DENEGA2.inArray(cd) && !DENEGA2.inArray(cd)) va ++; else { | |
ERRs+="<b style='background:red;'>Acreditacion Denegada, debe retenerla</b><br />"; | |
ERRg+="Acreditacion Denegada,"; | |
} | |
/**/ | |
/**/ // ERR 2 // Esta el Código Único del Evento dentro de el primer ó 4 dato? | |
if(cd.indexOf(CUE) || cd.indexOf(CUE)) va ++; else { | |
ERRs+="<b>Falta Cóodigo Único del Evento</b> ("+CUE+")<br />"; | |
ERRg+="Falto Cóodigo Único del Evento,"; | |
} | |
/**/ | |
if(AlertasChequeo) alert("Chequeo Procesado"); | |
} else { va=0; ERRs="Codigo VACIO ¿¿??<br />";} | |
if(va==TotERRs) return true; | |
else { | |
MisERRs=TotERRs-va; | |
if(MisERRs!=1)ERRs="<b>"+(MisERRs)+" ERRORES:</b><br />"+ERRs; | |
ERRg=(MisERRs)+": "+ERRg; | |
return false; | |
} | |
if(AlertasChequeo) alert("Chequeo Finaliza"); | |
} | |
// ############################# Asistencia ####################################### | |
// ############################# Asistencia ####################################### | |
// EN DESARROLLO... AUN NO ESTA TERMINADO! | |
// Ejemplo: http://ELA13.hamco.mx/?c=ELA135ih | |
function checaCodigoAsistencia() { // Ver de código 0.1 | |
TotERRs = 1; // Total de Errores posibles ACTIVOS en ésta fórmula. | |
MisERRs = 0; // Conteo de Errores | |
ArrancaRevision2(Separ); | |
if(c && cp){ | |
if(AlertasChequeo) alert("Chequeo Inicializado: "+c+"-\n"+cp[0]+"-\n"+cp[3]); | |
//Extrae el Código Definitivo | |
var cd=""; | |
cd=c.substr(-7) ; | |
//if(cp[0].indexOf("http")<0) cd=c; else cd=cp[3].substr(3) ; | |
if(AlertasChequeo) alert("Codigo Definitivo: "+cd); | |
//############### LA REVISION ################# | |
//############### LA REVISION ################# | |
/**/ // ERR 1 // ESTA DENTRO DE LOS DENEGADOS? | |
if(c.indexOf(Separ)===-1) { | |
ERRs+="<b style='background:red;'>Acreditacion Incompatible</b><br />"; | |
ERRg+="Acreditacion Incompatible,"; | |
} else { | |
va ++; | |
} | |
/**/ | |
/*/ // ERR 2 // Esta el Código Único del Evento dentro de el primer ó 4 dato? | |
if(cd.indexOf(CUE) || cd.indexOf(CUE)) va ++; else { | |
ERRs+="<b>Falta Cóodigo Único del Evento</b> ("+CUE+")<br />"; | |
ERRg+="Falto Cóodigo Único del Evento,"; | |
} | |
/**/ | |
if(AlertasChequeo) alert("Chequeo Procesado"); | |
} else { va=0; ERRs="Codigo VACIO ¿¿??<br />";} | |
if(va===TotERRs) return true; | |
else { | |
MisERRs=TotERRs-va; | |
if(MisERRs!=1)ERRs="<b>"+(MisERRs)+" ERRORES:</b><br />"+ERRs; | |
ERRg=(MisERRs)+": "+ERRg; | |
return false; | |
} | |
if(AlertasChequeo) alert("Chequeo Finaliza"); | |
} | |
// ############################### CONTRASENA ####################################### | |
// ############################### CONTRASENA ####################################### | |
function checaCodigoContra() { // Ver de código 0.5 | |
if(AlertasChequeo) alert("Chequeo Arranca"); | |
TotERRs = 3; // Total de Errores posibles ACTIVOS en ésta fórmula. | |
MisERRs = 0; | |
ERRs=""; // Limpiar Errores a mostrar en pantalla | |
ERRg=""; // Limpiar Errores a grabar en base de datos | |
// Establecer las variables a usar en las funciones: | |
var Plist = document.forms['form1'].MiP; | |
MiP = Plist.options[Plist.selectedIndex].value; | |
var ci = document.forms['form1'].c.value; | |
// Si no hay un codigo establecido, dejarlo claro. | |
if(ci==undefined) var pc = false; | |
// Si sí hay un codigo establecido, arreglarlo... | |
else { | |
var pc = decodeURI(ci); | |
pc = pc.replace("%2B"," "); | |
pc = pc.replace("\+"," "); | |
pc = pc.toUpperCase(); | |
// Dejar lista la referencia global al código (falso ó arreglado). | |
c = pc; | |
var cp = c.split(Separ); | |
// Obtener el Folio, la Version y la Zona (ó G_Ps ó Tipo de Acceso) | |
f = cp[0]; | |
if(cp.length>2){ | |
v = cp[2]; | |
ta = cp[4]; | |
} else { | |
v= ""; | |
ta = cp[0]; | |
} | |
// Revisar si es válido usando la función de chequeo. | |
} | |
var va = 0; | |
if(c && cp){ | |
if(AlertasChequeo) alert("Chequeo Inicializado"); | |
//############### LA REVISION ################# | |
//############### LA REVISION ################# | |
/**/ // ERR 1 // ESTA DENTRO DE LOS DENEGADOS? | |
if(!DENEGA2.inArray(f)) va ++; else { | |
ERRs+="<b style='background:red;'>Acreditacion Denegada, debe retenerla</b><br />"; | |
ERRg+="Acreditacion Denegada,"; | |
} | |
/**/ | |
// Capturados en automatico y con contraseña: | |
if(cp.length>1){ | |
/**/ // ERR 2 // Esta el Prefijo dentro de la Lista? | |
if(ContraPfs.inArray(f.substr(0,4))) va ++; else { | |
ERRs+="<b>Prefijo No Existente</b> ("+f.substr(0,4)+")"+cp.length+"<br />"; | |
ERRg+="Prefijo No Existente,"; | |
} | |
/**/ | |
/**/ // ERR 3 // La Contraseña (segundo dato) es correspondiente al folio? | |
if(f.substr(-1)==cp[1].substr(1,1)) va ++; else { | |
ERRs+="<b>Contraseña inválida:"+f.substr(-1)+" != "+cp[1].substr(1,1)+"</b><br />"; | |
ERRg+="Contraseña inválida,"; | |
} | |
/**/ | |
// PARA LAS CAPTURAS MANUALES (Y LOS GAFETES DE PUEBLA 2012): | |
} else { | |
// ERR 2B // Esta el Prefijo dentro de la Lista? | |
if(ContraPfs.inArray(f.substr(0,4))) va ++; else { | |
// Si el Folio es Numerico es probablemente un Gafete | |
if(parseInt(f)>0){ | |
// Gafete Debe ser menor a 1000 (LOS GAFETES DE PUEBLA 2012) | |
if(parseInt(f)<=1000) va ++; else { | |
ERRs+="<b>Gafete ó inválido!</b><br />"; | |
ERRg+="Folio Invalido"; | |
} | |
} else { | |
ERRs+="<b>Tipo de Acreditacion No Existente</b> ("+f.substr(0,4)+")<br />"; | |
ERRg+="Prefijo No Existente,"; | |
} | |
} | |
// ERR 3 // Como no tienen contraseña no se puede corroborar | |
va ++; | |
} | |
/*/ // ERR 6 // Checar Backpass, buscandolo en la base de datos acumulada. AUN NO SE USA. | |
if(cp[1]==1){va ++; | |
var NoBackPassText=''; | |
for(x in NoBackPass){NoBackPassText+=x+'-'+NoBackPass[x]+',\n';} | |
alert(c+'\n\n'+NoBackPassText); | |
} | |
else { | |
if(!NoBackPass.inArray(c)){ va ++; } | |
else { | |
ERRs+="<b>No tiene Backpass y ya pasó a éste Evento</b>"; | |
ERRg+="Sin BackPass y Repite,"; | |
} | |
} | |
/**/ | |
if(AlertasChequeo) alert("Chequeo Procesado"); | |
} else { va=0; ERRs="Codigo VACIO ¿¿??<br />";} | |
if(va==TotERRs) return true; | |
else { | |
MisERRs=TotERRs-va; | |
if(MisERRs!=1)ERRs="<b>"+(MisERRs)+" ERRORES:</b><br />"+ERRs; | |
ERRg=(MisERRs)+": "+ERRg; | |
return false; | |
} | |
if(AlertasChequeo) alert("Chequeo Finaliza"); | |
} | |
// ################################## UNICO ######################################### | |
// ################################## UNICO ######################################### | |
function checaCodigoUnico() { // Ver de código 0.5 | |
TotERRs = 2; // Total de Errores posibles ACTIVOS en ésta fórmula. | |
MisERRs = 0; | |
ERRs=""; // Limpiar Errores a mostrar en pantalla | |
ERRg=""; // Limpiar Errores a grabar en base de datos | |
// Establecer las variables a usar en las funciones: | |
var Plist = document.forms['form1'].MiP; | |
MiP = Plist.options[Plist.selectedIndex].value; | |
var ci = document.forms['form1'].c.value; | |
// Si no hay un codigo establecido, dejarlo claro. | |
if(ci==undefined) var pc = false; | |
// Si sí hay un codigo establecido, arreglarlo... | |
else { | |
var pc = decodeURI(ci); | |
pc = pc.replace("%2B"," "); | |
pc = pc.replace("\+"," "); | |
pc = pc.toUpperCase(); | |
// Dejar lista la referencia global al código (falso ó arreglado). | |
c = pc; | |
var cp = c.split(Separ); | |
// Obtener el Folio, la Version y la Zona (ó G_Ps ó Tipo de Acceso) | |
f = cp[0]; | |
v = cp[2]; | |
ta = cp[6]; | |
} | |
var va = 0; | |
if(c && cp){ | |
//############### LA REVISION ################# | |
//############### LA REVISION ################# | |
// ERR 1 // Folio es Numerico? | |
if(parseInt(f)>=0) va ++; else { | |
ERRs+="<b>Folio no es Numerico</b><br />"; | |
ERRg+="Folio NaN,"; | |
} | |
/*/ // ERR 2 // Recinto Existe? | |
if(T_Recintos.inArray(cp[3])) va ++; else { | |
ERRs+="<b>Recinto no Existe</b> ("+cp[3]+")<br />"; | |
ERRg+="Recinto Inexistente,"; | |
} | |
/**/ | |
/*/ // ERR 3 // Esta la puerta entre las Puertas o Grupos de Puertas del Recinto? | |
if(!Ps.inArray(cp[4]) && !Gp.inArray(cp[4])){ | |
ERRs+="<b>Puerta no existe en Recinto</b><br />("+cp[4]+" != "+Ps+" ó en "+Gp+" )<br />"; | |
ERRg+="Puerta Inexistente,"; | |
} else { | |
va ++; | |
/**/ | |
/*/ // ERR 4 | |
// Si es idéntico a alguna de las Ps del Recinto, ¿es idéntico a Mi Puerta? | |
if(Ps.inArray(cp[4])){ | |
if(cp[4]==MiP) va ++; else { | |
ERRs+="<b>Puerta incorrecta</b> ("+cp[4]+" != "+MiP+")<br />"; | |
ERRg+="Puerta Incorrecta,"; | |
} | |
} else { | |
// En cambio, si está en el Gp del Recinto, ¿es Mi Puerta (MiP) parte del Gp de la Acreditación? | |
if(Gp[cp[4]].inArray(MiP)) va++; | |
else { | |
ERRs+="<b>Puerta incorrecta</b><br />("+cp[4]+" sólo pasa por puerta(s) "+Gp[cp[4]]+")<br />"; | |
ERRg+="Puerta Incorrecta,"; | |
} | |
} | |
// if(cp[4]==MiP) va ++; | |
// else { | |
// } | |
} | |
/**/ | |
/*/ // ERR 5 // Concuerda la Fecha? | |
if(Fs.inArray(cp[5])) va ++; else { | |
ERRs+="<b>Fecha no Concuerda</b> <br />("+cp[5]+" != "+Fs+")<br />"; | |
ERRg+="Fecha,"; | |
} | |
/**/ | |
/**/ // ERR 6 // Esta el Folio dentro de los Generados (Impresos)? | |
if(f>5000 && f<10001) va ++; else { | |
ERRs+="<b>Folio No concuerda</b> (5mil<"+f+"<10mil)<br />"; | |
ERRg+="Folio No concuerda,"; | |
} | |
/**/ | |
/*/ // ERR 7 // Hay segundo número? si sí, su segundo carácter es el último del anterior? | |
if(cp[1]!=""){ | |
alert(f.substr(3,1)); | |
// if(cp[1].substr(1,1)==f.substr(3)) va ++; else { | |
// ERRs+="<b>Contraseña no pasa</b> (2 carácter)<br />"; | |
// ERRg+="Contraseña no pasa,"; | |
// } | |
} | |
/**/ | |
} else { va=0; ERRs="Codigo VACIO ¿¿??<br />";} | |
if(va==TotERRs) return true; | |
else { | |
MisERRs=TotERRs-va; | |
if(MisERRs!=1)ERRs="<b>"+(MisERRs)+" ERRORES:</b><br />"+ERRs; | |
ERRg=(MisERRs)+": "+ERRg; | |
return false; | |
} | |
if(AlertasChequeo) alert("Chequeo Finaliza"); | |
} | |
// ############################# ESTADIOS 1.0 #################################### | |
// ############################# ESTADIOS 1.0 #################################### | |
function checaCodigoEstadios() { // Ver de código 1.1 | |
TotERRs = 7; // Total de Errores posibles ACTIVOS en ésta fórmula. | |
MisERRs = 0; | |
ArrancaRevision(); | |
if(AlertasChequeo) alert("Chequeo Inicializado: "+c); | |
ERRs=""; // Limpiar Errores a mostrar en pantalla | |
ERRg=""; // Limpiar Errores a grabar en base de datos | |
// Establecer las variables a usar en las funciones: | |
var Plist = document.forms['form1'].MiP; | |
MiP = Plist.options[Plist.selectedIndex].value; | |
var ci = document.forms['form1'].c.value; | |
// Si no hay un codigo establecido, dejarlo claro. | |
if(ci==undefined) var pc = false; | |
// Si sí hay un codigo establecido, arreglarlo (PreCodigo)... | |
else { | |
var pc = decodeURI(ci); | |
pc = pc.replace("%2B"," "); | |
pc = pc.replace("\+"," "); | |
//pc = pc.toUpperCase(); | |
// Dejar lista la referencia global al código (falso ó arreglado). | |
c = pc; | |
cp = c.split(Separ); | |
// Obtener el Folio, la Version y la Zona (ó G_Ps ó Tipo de Acceso) | |
f = cp[0]; | |
if(cp.length>5){ | |
v = cp[2]; | |
if(cp[5]){ | |
// ef = cp[5].substr(1); | |
ef = cp[5]; | |
ef = ef.toUpperCase(); // Fecha en el código (la 6a parte) en MAYUSCULAS | |
efp=ef.indexOf('.'); // Evento Fecha Posición del Punto | |
if(efp!=-1){ // Si hay un punto | |
ef1=ef.substr(0,efp); // Evento Parte 1 -Evento (ej. E30) | |
ef2=ef.substr(efp+1); // Evento Parte 2 -Fecha (ej. 12) | |
if(T_Eventos[R][ef1]!=null){ | |
efn=T_Eventos[R][ef1][ef2]; // Fecha Nombre (ej. QRO-Leon) | |
} | |
} | |
} | |
if(cp[6]){ | |
// ta = cp[6].substr(1); | |
ta = cp[6]; | |
TA = ta.toUpperCase(); | |
/*/ | |
tac=TA.indexOf(','); | |
/*/ | |
tac=TA.lastIndexOf(','); | |
if(TA.length==tac+1){ | |
TA=TA.substr(0,TA.length-1); | |
tac=TA.lastIndexOf(','); | |
} | |
/**/ | |
if(tac!=-1){ | |
tas=TA.split(','); | |
} //else tas= new Array(ta); | |
} | |
} | |
} | |
var va = 0; | |
var cp = c.split(Separ); | |
var CP = c.toUpperCase().split(Separ); | |
if(!c || !cp){ va=0; ERRs="Codigo VACIO ¿¿??<br />ESTO NO DEBERIA PASAR!<br />REVISAR SISTEMA! (ERR-FCE1-00)";} | |
else if(!cp.length>5){ va=0; ERRs="Codigo INSUFICIENTE para éste Evento! (ERR-FCE1-10)";} | |
else { | |
//#################### LA REVISION ######################## | |
//#################### LA REVISION ######################## | |
//ERR 1 // Es Numerico el último dígito del Folio ? | |
if(parseInt(f.substr(f.length-1))>=0) va ++; else { | |
ERRs+="<b>Folio NO es Numerico</b> (ERR-FCE1-20)<br />"; | |
ERRg+="Folio NaN,"; | |
} | |
//ERR 2 //RECINTO | |
// Recinto Existe? | |
if(T_Recintos.inArray(cp[3]) || T_Recintos.inArray(CP[3])){ | |
// Recinto Correcto? | |
if(cp[3]==R || CP[3]==R.toUpperCase()) va ++; else { | |
ERRs+="<b>Recinto Incorrecto</b><br />("+CP[3]+") (ERR-FCE1-30)<br />"; | |
ERRg+="Recinto Incorrecto,"; | |
} | |
} else { | |
ERRs+="<b>Recinto Inexistente</b><br />("+cp[3]+") (ERR-FCE1-40)<br />"; | |
ERRg+="Recinto Inexistente,"; | |
} | |
//ERR 3 // Esta su puerta entre las Puertas o Grupos de Puertas del Recinto? | |
if(!tac && !Ps.inArray(ta) && !Ps.inArray(TA) && !Gp.inArray(ta) && !Gp.inArray(TA)){ | |
ERRs+="<b>Puerta No existe en Recinto</b><br />("+ta+") (ERR-FCE1-50)<br />"; | |
if(0)ERRs+="(Ps: "+print_r(Ps)+")<br />"; | |
if(0)ERRs+="(Gp: "+print_r(Gp)+")<br />"; | |
ERRg+="Puerta Inexistente,"; | |
} else { | |
va ++; | |
//ERR 4 // Como sí está entre las Puertas ó Grupos de Puertas del Recino, CHECAR SI PASA AQUI... | |
// SI hay un conjunto de ta (Tipo de Accesos Separados por coma) | |
if(tac!=-1){ | |
// hay que checar a cada una hasta que alguna pase, o se acaben | |
var tasxGo=0; //Apuntador para Tipos de Acceso Separados) | |
//alert("Tas.L: "+tas.length); | |
for(var tasx in tas){ | |
//alert("Var Tas "+tasx+": -"+tas[tasx]+"-"); | |
/*/ | |
//Verificar zonas reales y evitar el prototipo inArray | |
if(Gp.inArray(tas[tasx]) && tasx!="inArray"){ | |
alert("Gp "+tasx+": -"+tas[tasx]+"- TAS:"+tas.length); | |
if(Gp[tas[tasx]].inArray(MiP)) tasxGo=1; //Sí está MiPuerta en la zona que tiene autorizada | |
} | |
/*/ | |
var tmpTASx=tas[tasx]; | |
if(tmpTASx!="" && tasx!="inArray"){//Evitar vacios y el prototipo inArray | |
if(tmpTASx.indexOf('Z')==-1) tmpTASx="Z"+tmpTASx; //Si no tiene una Z de prefijo, ponérsela | |
//alert("Convertido "+tasx+": -"+tmpTASx+"-"); | |
if(Gp.inArray(tmpTASx)){ // Si existe en el Grupo de Puertas | |
//alert("Existe en Gp -"+tmpTASx+"-"); | |
if(Gp[tmpTASx].inArray(MiP)) tasxGo=1; //Sí está MiPuerta en la zona que tiene autorizada | |
} | |
} | |
/**/ | |
} | |
if(tasxGo) va ++; else { | |
ERRs+="<b>Zona No Autorizada</b><br />"+ta+" NO tiene autorizado el accesos por "+MiP+" (ERR-FCE1-60)<br />"; | |
ERRg+="Zona No Autorizada,"; | |
} | |
} | |
// SECCION VIEJA: En cambio, si sólo es un ta establecido en el código.... | |
else if(Ps.inArray(ta) || Ps.inArray(TA)){ | |
// Si está en las Ps del Recinto, ¿es idéntico a Mi Puerta? | |
if(TA==MiP.toUpperCase()) va ++; else { | |
ERRs+="<b>Puerta Incorrecta</b><br />NO pasa por "+MiP.toUpperCase()+" (ERR-FCE1-61)<br />"; | |
ERRg+="Puerta Incorrecta,"; | |
} | |
} | |
// En cambio (si no está en las Ps del Recinto), | |
// Verificar que el Grupo de Puertas (Zonas) del Recinto contenga la Puerta de la HandHeld (MiP)... | |
// En minúsculas... | |
else if(Gp.inArray(ta)){ | |
// entonces... ¿es Mi Puerta (MiP) parte del Gp de la Acreditación? //("+Gp[ta]+") | |
if(Gp[ta].inArray(MiP)) va ++; else { | |
ERRs+="<b>Zona Incorrecta</b><br />"+ta+" NO pasa por "+MiP+" (ERR-FCE1-62)<br />"; | |
ERRg+="Zona Incorrecta,"; | |
} | |
} | |
// En mayúsculas... | |
else if(Gp.inArray(TA)){ | |
// entonces... ¿es Mi Puerta (MiP) parte del Gp de la Acreditación? //("+Gp[TA]+") | |
if(Gp[TA].inArray(MiP)) va ++; else { | |
ERRs+="<b>Zona Incorrecta</b><br />"+TA+" NO pasa por "+MiP+" (ERR-FCE1-63)<br />"; | |
ERRg+="Zona Incorrecta,"; | |
} | |
} | |
// PARA VENDEDORES DE GALLOS 2015 | |
else if(E=="E34" && (ef=="E34" || ef=="E35")){ | |
// cuando la zona no está especificada (iban a Zona Azul pero no existía la zona 40 en los tipos de zona) | |
if(ta=="Z," && (MiP=="ZAzul" || MiP=="Vend" )) va ++; else { | |
ERRs+="<b>Zona Incorrecta</b><br />"+TA+" NO pasa por "+MiP+" (ERR-FCE1-63)<br />"; | |
ERRg+="Zona Incorrecta,"; | |
} | |
} | |
// Si no, algo estuvo MAL... | |
else { | |
ERRs+="<b>ERROR en Zonas de HH, CHEQUE CON TECNICO</b><br />("+ta+" debe poder pasar) (ERR-FCE1-64)<br />"; | |
ERRg+="ERROR en HH (FCE1-64:Falta GP-"+ta+"),"; | |
if(0)alert(print_r(Gp)); | |
} | |
// if(ta==MiP) va ++; | |
// else { | |
// } | |
} | |
// ERR 5 // Concuerda el Evento (y la Fecha si se usa) con el actual? | |
// TEMPORAL PARA ACEPTAR EVENTO DOBLE PARA GALLOS VENDEDORES 2015 (34 y 35) | |
if(T_Eventos[R][ef1]!=null){ | |
if( ef==E || ( ef1==E && Fs[ef2]==FE ) || (E=="E37" && ef=="E38")) va ++; else { | |
// ESTE ES EL BUENO DE SIEMPRE: | |
//(Gafetes:) E30==E34 || (Brazaletes:) E30==E34 && QRO-Leon==QRO-Leon | |
//if( ef==E || ( ef1==E && Fs[ef2]==FE ) ) va ++; else { | |
//VIEJO, FALLA: | |
//if(ef==E || EF==E.toUpperCase() || Fs.inArray(ef) || Fs.inArray(EF)) va ++; else { | |
ERRs+="<b>Fecha no Concuerda</b><br />(ERR-FCE1-70)<br />"; | |
ERRg+="Fecha"; | |
if(efn!=0){ | |
//ERRs+="(sirve para "+efn+")<br />" | |
ERRs+="(ef="+ef+",E="+E+",ef1="+ef1+",ef2="+ef2+",Fs="+Fs+",FE="+FE+")<br />" | |
ERRg+=" ("+efn+")"; | |
} | |
ERRg+=","; | |
} | |
} else { | |
ERRs+="<b>Evento no Activo</b><br />(ERR-FCE1-71)<br />"; | |
ERRg+="Evento"; | |
if(ef1!=0){ | |
ERRs+="("+ef1+")<br />" | |
ERRg+=" ("+ef1+")"; | |
} | |
ERRg+=","; | |
} | |
// ERR 6 // Checar Backpass, buscandolo en la base de datos acumulada. AUN NO SE USA. | |
if(RevisaBackPass==0 || (cp[1]==1 && ef!="E34.27")){va ++; //TEMPORAL para fila de boletos de la FINAL | |
//if(RevisaBackPass==0 || cp[1]==1){va ++; | |
// var NoBackPassText=''; | |
// for(x in NoBackPass){NoBackPassText+=x+'-'+NoBackPass[x]+',\n';} | |
// alert(c+'\n\n'+NoBackPassText); | |
// (ERR-FCE1-80) | |
} | |
else { | |
if(!NoBackPass.inArray(c))va ++; | |
else if(cp[1]=="0.5"){ | |
ERRs+="<b>ATENCIÓN x BACKPASS: YA pasó a éste Evento, CORROBORE LA RAZÓN DE SU VUELTA!</b> (ERR-FCE1-81)<br />"; | |
ERRg+="Medio BackPass y Vuelve,"; | |
BPy=1; | |
} | |
else { | |
ERRs+="<b>YA pasó a éste Evento y NO tiene Backpass</b> (ERR-FCE1-82)<br />"; | |
ERRg+="Sin BackPass e Intenta Repetir,"; | |
} | |
} | |
/**/ // ERR 7 // ESTA DENTRO DE LOS DENEGADOS? | |
if(!DENEGA2.inArray(f)) va ++; else { | |
ERRs+="<b style='background:red;'>Acreditacion Denegada, DEBE RETENERLA</b><br />"; | |
ERRg+="Acreditacion Denegada,"; | |
} | |
/**/ | |
} | |
if(va==TotERRs) return true; | |
else { | |
MisERRs=TotERRs-va; | |
if(MisERRs!=1)ERRs="<b>"+(MisERRs)+" ERRORES:</b><br />"+ERRs; | |
ERRg=(MisERRs)+": "+ERRg; | |
return false; | |
} | |
if(AlertasChequeo) alert("Chequeo Finaliza"); | |
} | |
// ################################## ESTADIOS 0.5 ############################# | |
// ################################## ESTADIOS 0.5 ############################# | |
function checaCodigoEstadios0_5() { // Ver de código 0.5 | |
TotERRs = 6; // Total de Errores posibles ACTIVOS en ésta fórmula. | |
MisERRs = 0; | |
ERRs=""; // Limpiar Errores a mostrar en pantalla | |
ERRg=""; // Limpiar Errores a grabar en base de datos | |
// Establecer las variables a usar en las funciones: | |
var Plist = document.forms['form1'].MiP; | |
MiP = Plist.options[Plist.selectedIndex].value; | |
var ci = document.forms['form1'].c.value; | |
// Si no hay un codigo establecido, dejarlo claro. | |
if(ci==undefined) var pc = false; | |
// Si sí hay un codigo establecido, arreglarlo (PreCodigo)... | |
else { | |
var pc = decodeURI(ci); | |
pc = pc.replace("%2B"," "); | |
pc = pc.replace("\+"," "); | |
//pc = pc.toUpperCase(); | |
// Dejar lista la referencia global al código (falso ó arreglado). | |
// Dejar lista la referencia global al código (falso ó arreglado). | |
c = pc; | |
var cp = c.split(Separ); | |
// Obtener el Folio, la Version y la Zona (ó G_Ps ó Tipo de Acceso) | |
f = cp[0]; | |
v = cp[2]; | |
ta = cp[6]; | |
} | |
var va = 0; | |
var cp = c.split(Separ); | |
var CP = c.toUpperCase().split(Separ); | |
if(c && cp){ | |
//#################### LA REVISION ######################## | |
//#################### LA REVISION ######################## | |
//ERR 1 // Es el último dígito del Folio Numerico? | |
if(parseInt(f.substr(f.length-1))>=0) va ++; else { | |
ERRs+="<b>Folio NO es Numerico</b><br />"; | |
ERRg+="Folio NaN,"; | |
} | |
//ERR 2 //RECINTO | |
// Recinto Existe? | |
if(T_Recintos.inArray(cp[3]) || T_Recintos.inArray(CP[3])){ | |
// Recinto Correcto? | |
if(cp[3]==R || CP[3]==R.toUpperCase()) va ++; else { | |
ERRs+="<b>Recinto Incorrecto</b><br />("+CP[3]+")<br />"; | |
ERRg+="Recinto Incorrecto,"; | |
} | |
} else { | |
ERRs+="<b>Recinto Inexistente</b><br />("+cp[3]+")<br />"; | |
ERRg+="Recinto Inexistente,"; | |
} | |
//ERR 3 // Esta su puerta entre las Puertas o Grupos de Puertas del Recinto? | |
if(!Ps.inArray(cp[4]) && !Ps.inArray(CP[4]) && !Gp.inArray(cp[4]) && !Gp.inArray(CP[4])){ | |
ERRs+="<b>Puerta No existe en Recinto</b><br />("+cp[4]+")<br />"; | |
ERRg+="Puerta Inexistente,"; | |
} else { | |
va ++; | |
//ERR 4 // Como sí está entre las Puertas ó Grupos de Puertas del Recino, CHECAR SI PASA AQUI... | |
// Si está en las Ps del Recinto, ¿es idéntico a Mi Puerta? | |
if(Ps.inArray(cp[4]) || Ps.inArray(CP[4])){ | |
if(CP[4]==MiP.toUpperCase()) va ++; else { | |
ERRs+="<b>Puerta Incorrecta</b><br />NO pasa por "+MiP.toUpperCase()+"<br />"; | |
ERRg+="Puerta Incorrecta,"; | |
} | |
} | |
// En cambio (si no está en las Ps del Recinto), | |
// Verificar que el Grupo de Puertas (Zonas) del Recinto contenga la Puerta de la HandHeld (MiP)... | |
// En minúsculas... | |
else if(Gp.inArray(cp[4])){ | |
// entonces... ¿es Mi Puerta (MiP) parte del Gp de la Acreditación? //("+Gp[cp[4]]+") | |
if(Gp[cp[4]].inArray(MiP)) va ++; else { | |
ERRs+="<b>Zona Incorrecta</b><br />"+cp[4]+" NO pasa por "+MiP+"<br />"; | |
ERRg+="Zona Incorrecta,"; | |
} | |
} | |
// En mayúsculas... | |
else if(Gp.inArray(CP[4])){ | |
// entonces... ¿es Mi Puerta (MiP) parte del Gp de la Acreditación? //("+Gp[CP[4]]+") | |
if(Gp[CP[4]].inArray(MiP.toUpperCase())) va ++; else { | |
ERRs+="<b>Zona Incorrecta</b><br />"+CP[4]+" NO pasa por "+MiP+"<br />"; | |
ERRg+="Zona Incorrecta,"; | |
} | |
} | |
// Si no, algo estuvo MAL... | |
else { | |
ERRs+="<b>ERROR en Puertas de Sistema</b><br />("+cp[4]+" debe poder pasar)<br />"; | |
ERRg+="ERROR en Puertas,"; | |
} | |
// if(cp[4]==MiP) va ++; | |
// else { | |
// } | |
} | |
// ERR 5 // Concuerda la Fecha con el Evento o sus Fechas? | |
if(cp[5]==E || CP[5]==E.toUpperCase() || Fs.inArray(cp[5]) || Fs.inArray(CP[5]) || ( (CP[6]=="89" || CP[6]=="90" || CP[6]=="91" || CP[6]=="92" || CP[6]=="94" || CP[6]=="96") && cp[5]=="Apertura 2011") ) va ++; else { | |
ERRs+="<b>Fecha no Concuerda</b><br />("+cp[5]+" != "+E+" y "+Fs+")<br />(SOLO PASAN PALCOS, NO ADICIONALES)<br />"; | |
ERRg+="Fecha,"; | |
} | |
// ERR 6 // Checar Backpass, buscandolo en la base de datos acumulada. AUN NO SE USA. | |
if(RevisaBackPass==0 || cp[1]==1){va ++; | |
var NoBackPassText=''; | |
for(x in NoBackPass){NoBackPassText+=x+'-'+NoBackPass[x]+',\n';} | |
alert(c+'\n\n'+NoBackPassText); | |
} | |
else { | |
if(!NoBackPass.inArray(c)){va ++; | |
} | |
else { | |
ERRs+="<b>No tiene Backpass y YA pasó a éste Evento</b>"; | |
ERRg+="Sin BackPass y Repite,"; | |
} | |
} | |
} else { va=0; ERRs="Codigo VACIO ¿¿??<br />ESTO NO DEBERIA PASAR!<br />REVISAR SISTEMA!";} | |
if(va==TotERRs) return true; | |
else { | |
MisERRs=TotERRs-va; | |
if(MisERRs!=1)ERRs="<b>"+(MisERRs)+" ERRORES:</b><br />"+ERRs; | |
ERRg=(MisERRs)+": "+ERRg; | |
return false; | |
} | |
} | |
if(AlertasCarga) alert("Cargo ChecaCodigo"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment