Skip to content

Instantly share code, notes, and snippets.

@davidtaubmann
Created March 8, 2017 10:16
Show Gist options
  • Save davidtaubmann/ebe42590b2ee9834df57a829a2d925f5 to your computer and use it in GitHub Desktop.
Save davidtaubmann/ebe42590b2ee9834df57a829a2d925f5 to your computer and use it in GitHub Desktop.
/**
* 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&oacute;odigo &Uacute;nico del Evento</b> ("+CUE+")<br />";
ERRg+="Falto C&oacute;odigo &Uacute;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&oacute;odigo &Uacute;nico del Evento</b> ("+CUE+")<br />";
ERRg+="Falto C&oacute;odigo &Uacute;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&ntilde;a inv&aacute;lida:"+f.substr(-1)+" != "+cp[1].substr(1,1)+"</b><br />";
ERRg+="Contrase&ntilde;a inv&aacute;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 &oacute; inv&aacute;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&oacute; a &eacute;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+" &oacute; 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&oacute;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&Oacute;N x BACKPASS: YA pas&oacute; a &eacute;ste Evento, CORROBORE LA RAZ&Oacute;N DE SU VUELTA!</b> (ERR-FCE1-81)<br />";
ERRg+="Medio BackPass y Vuelve,";
BPy=1;
}
else {
ERRs+="<b>YA pas&oacute; a &eacute;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&oacute; a &eacute;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