/** Funciones Compartidas * AVATAR * Programado por Alvaro Mora * Propiedad Intelectual Asesoría AKTEK S.A. * Enero 2007 - Set 2008 * Todos los Derechos Reservados **/ // Contantes de Operacion General para Mantenimientos // Estos valores deben concordar con las Connstantes var __MODO_INSERT = "1"; // Efectua el Insert en la Base de datos. Viene desde el MS. var __MODO_CAMBIO = "2"; // Efectua el Cambio en la Base de datos. Viene desde el MS. var __MODO_BAJA = "3"; // Efectua el Borrado en la Base de datos. Viene desde el MS. var __MODO_SELECT = "4"; // Efectua un select a la Base de datos. Viene desde el SN. var __MODO_NUEVO = "5"; // Indica que se va a incluir un registro nuevo. Viene desde el SN. var __MODO_APLICAR = "100"; // Operacion de Aplicar (Aplicación del Grupo hacia Contabilidad) var __MODO_TERMINAR = "110"; // Terminación de Facturas var __MODO_ANULAR = "120"; // Operacion de Anular var __MODO_CONCILIAR = "130"; // Conciliacion de Documentos var __MODO_CONCILIAR_BANCOS = "140" // Conciliacion Bancos - Bancos var __MODO_CONCILIAR_LIBROS = "150" // Conciliacion Libros - Libros var __MODO_REVERSAR = "160"; // Reversar * USO GENERAL * (Conciliación) var __MODO_REVERSAR_BANCOS = "170"; // Reversar Conciliacion Bancos Bancos (SCB34ARC) var __MODO_REVERSAR_LIBROS = "180"; // Reversar Conciliacion Libros Libros (SCB48ARC) var __MODO_IMPRIMIR = "190"; // Modo Imprimir var __MODO_CERRAR = "200"; // Realizar Operaciones de Cierre var __MODO_AUTOMATICA = "210"; // Conciliacion Automatica // Contantes para el Manejo del Tecla var __KEY_ENTER = 13; // ENTER -> ENTER var __KEY_ESCAPE = 27; // ESCAPE -> ESC var __KEY_DELETE = 46; // DELETE -> F8 // CrearScript // Realiza la Carga dinámica de Scripts en la sección de memoria indicada function CrearScript(strFileName,strScriptID, _callback) { //alert('Voy a crear el script...'+strFileName); var head = document.getElementsByTagName('head').item(0) var scriptTag = document.getElementById(strScriptID); if(scriptTag) { //alert('Script ya cargado...'+strScriptID); head.removeChild(scriptTag); //return; } var script = document.createElement('script'); script.src = strFileName; script.type = 'text/javascript'; script.id = strScriptID; if (!Undefined (_callback)) { script.onload = function(){ _callback(); }; } head.appendChild(script); //alert('Script Listo...'+strFileName); } // Key // Manejador General de Teclas (KeyUp especialmente) function Key(evento) { var version4 = window.Event ? true : false; if (version4) // Navigator 4.0x var whichCode = evento.keyCode else // Internet Explorer 4.0x if (evento.type == "keyup") // the user entered a character var whichCode = evento.keyCode else var whichCode = evento.button; return whichCode } function Key2(evt) { var charCode; evt = (evt) ? evt : (window.event) ? event : null; if (evt) { charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 0); } return charCode; } // RowOn // Maneja el estilo de los registros en las listas, evento mouseOver // Cubre pulga en IE ya que no vé bien los estilos CSS function RowOn(pObj){ pObj.style.background="lightyellow"; // pObj.style.fontWeight="bold"; } // RowOn // Maneja el estilo de los registros en las listas, evento mouseOut // Cubre pulga en IE ya que no vé bien los estilos CSS function RowOff(pObj){ pObj.style.background="white"; pObj.style.fontWeight="normal"; } function Undefined (str){ if (str == "undefined") return true; if (str == undefined) return true; if (str == null) return true; return false; } // CargarHTML // Uso exclusivo para cargar el link en la sección de datos principal function CargarHTML(strURL,strParams, strArregloXML, strScript, strEfecto) { // Cargo el link indicado en el div Principal if (Undefined(strParams)) strParams = ""; if (Undefined(strScript)) strScript = ""; if (Undefined(strEfecto)) strEfecto = ""; var blnEnviarXML = false; var xmlhttp = new xmlHttp(); if (!Undefined(strArregloXML)) { xmlhttp.LoadXML (strArregloXML); blnEnviarXML = true; } xmlhttp.CargarLinkEnDiv(strURL,strParams,false,"div_principal",true, blnEnviarXML, strScript); xmlhttp = null; } // CargarHTMLEnDiv function CargarHTMLEnDiv(strURL, strParams, strDivName, blnScript, strEfecto, strArregloXML, _CallBack) { var blnEnviarXML = false; if (xmlhttp == null) xmlhttp = new xmlHttp(); if (!Undefined(strArregloXML)) { xmlhttp.LoadXML (strArregloXML); blnEnviarXML = true; } xmlhttp.CargarLinkEnDiv(strURL,strParams,false,strDivName,blnScript, blnEnviarXML,null,_CallBack); } function CambiarSistema(strS02COD) { document.getElementById('mnuS02COD').value = strS02COD; document.forms['frmMenuS02COD'].submit(); } function AbrirSistemaEnOtraVentana(strS02COD) { if (strS02COD = "MAR") { window.open (BaseURL() + 'generales/pla98arc/lstPLA98ARC.jsp'); } else window.open (BaseURL() + 'principal.jsp?mnuS02COD='+strS02COD); window.status = ''; } function CargarSistema(strS02COD, strURL) { window.location.href = strURL + '?mnuS02COD='+strS02COD; } function CambiarMenuHorizontal(strS13COD) { window.status = ''; var strS02COD = document.getElementById("cboS02COD").value; window.location.href = 'principal.jsp?mnuS02COD='+strS02COD+'&mnuS13COD='+strS13COD; window.status = ''; } function CambiarContrasena() { window.status = ''; //document.getElementById('containerTodo').style.display = "none"; // Libero los objetos ocupados en memoria LiberarMemoria(); var strURL = "generales/CambiarContrasena"; CargarHTML(strURL,"",null,null, "Appear"); $("#containerTodo").fadeIn(); window.status = ''; } function MenuPrincipal(strU) { window.status = ''; window.location.href = BaseURL() + "log/menu.jsp"; window.status = ''; } function CambiarMenuNuevo(strS02COD, strS13COD, strS14COD,strS14URL, strParam) { window.status = ''; $('#div_principal').show(); $('#div_secundario').hide(); //document.getElementById('containerTodo').style.display = "none"; // Libero los objetos ocupados en memoria LiberarMemoria(); // Ahora comienza la diversion!! // AJAX is comming! if (Undefined(strParam)) strParam = ""; else strParam = "&" + strParam; var strParams = "mnuS02COD="+strS02COD+"&mnuS13COD="+strS13COD+"&mnuS14COD="+strS14COD + strParam; CargarHTML(strS14URL,strParams,null,null, "Appear"); $("#containerTodo").fadeIn(); window.status = ''; } function CambiarMenuVertical(objMenuSeleccionado, strS02COD, strS13COD, strS14COD,strS14URL,strParamsAdicionales) { window.status = ''; if (strParamsAdicionales == undefined) strParamsAdicionales = ""; /* var s = document.getElementsByName("mnu_Vertical"); for (i=0;i= 0) { var obj = CtrlGenOp[iCantidad]; try { obj.Dispose(); CtrlGenOp[iCantidad] = null; } catch (e) {} iCantidad--; } CtrlGenOp = new Array(); } function ShowStatusMsg(Msg) { window.status = Msg; } function DemeParam(strCampo, arrValores, blnSinDescripcion, blnPermitirBlanco) { var blnExiste = false; var strRes = ""; if (blnSinDescripcion == undefined) blnSinDescripcion = false; if (blnPermitirBlanco == undefined) blnPermitirBlanco = false; for (i = 0; i < arrValores.length ; i ++) { var strData = arrValores[i]; if (strData[0] == strCampo) { strRes = (blnSinDescripcion ? "" : strCampo+ "=") + strData[1]; blnExiste = true; break; } } if (strRes == "") { // El campo es blanco if (!blnExiste) // No existe, erro de fijo alert("Error al encontrar el valor del parámetro " + strCampo); else // Existe, pero es blanco. Si es blanco, la variable debe venir encendida if (!blnPermitirBlanco) alert("Error al encontrar el valor del parámetro " + strCampo); } return strRes; } function NoHacerNada() { } function Desconectar() { if (!confirm("Está seguro(a) que desea salir de la aplicación?")) return; window.location.href = BaseURL () + 'Security_Check?_accion=logout'; } // Trim(Cadena) // Limpia los espacios blancos antes y despues function Trim(Cadena) { while (Cadena.charAt(0) == " ") Cadena = Cadena.substring(1, Cadena.length); Cadena = RTrim(Cadena); return Cadena; } // RTrim(Cadena) // Limpia los espacios blancos a la derecha function RTrim(Cadena) { while (Cadena.charAt(Cadena.length-1) == " ") Cadena = Cadena.substring(0, (Cadena.length-1)); return Cadena; } // SeleccionarFila // Selecciona visualmente una fila. Usese en tablas unicamente, con el css .fila // No combinar con RowOn y RowOff // Recibe como parámetro la fila de la tabla a colorear function SeleccionarFila(pRow) { var strTemp = pRow.className; if (pRow.className.indexOf("seleccionada") <0) { strTemp = strTemp +' seleccionada'; } else { strTemp = strTemp.replace ('seleccionada',''); } strTemp = strTemp.replace(/ +/g, " "); pRow.className = strTemp; } function MS_MostrarAyuda (strMensaje, strDivName) { if (strDivName == undefined) strDivName = "AyudaOpcion"; var doc = document.getElementById(strDivName); if (doc) doc.innerHTML = strMensaje; } // DemeNumeroDelMonto // Recibe la cadena de numeros separada por comas // Retorna el Float de ese NUMERO function DemeNumeroDelMonto(Cadena) { var strCadena = new String(Cadena); var a = "" Caracter = "" for (j=1; j <= strCadena.length; j++) { Caracter = strCadena.substring(j-1, j) if (Caracter != ",") a += Caracter } return parseFloat(a); } // Format Number // Formatea un Número // Retorna el Float de ese NUMERO function FormatNumber( pNumber, pCantDec ){ var arrElem = pNumber.toString().split('.'); var sNumber = arrElem[0]; //controlo cantidad de decimales var iCantDec = (typeof(pCantDec) == 'undefined')? 2: parseInt(pCantDec); var sDec = ''; //ajusto cantidad de decimales if (iCantDec>0){ for (var i=0; i<=iCantDec; i++){ sDec += '0'; } if (arrElem.length>1){ sDec = arrElem[1].substr(0,iCantDec)+ sDec; } sNumber += '.'+ sDec.substr(0,iCantDec); } return(sNumber); } function CheckTodosGenerico(obj){ CheckTodosGenericoByName ("", obj); } function LimpiarCombo (objId, blnOpcionSeleccion, strTexto){ var objCombo = document.getElementById(objId); while (objCombo.getElementsByTagName("option").length>0){ objCombo.removeChild(objCombo.getElementsByTagName("option").item(0)); } if (blnOpcionSeleccion) { if (strTexto == "") strTexto = "-- Seleccione --"; var newoption = new Option(strTexto,""); objCombo.options[0] = newoption; } } function LlenarCombo(objId, strURL, blnOpcionSeleccion, strMensajeNoHayDatos, blnAlertar, blnLlenarSiSoloHayUno){ if (Undefined(strMensajeNoHayDatos)) strMensajeNoHayDatos=""; if (Undefined(blnOpcionSeleccion)) blnOpcionSeleccion = false; if (Undefined(blnAlertar)) blnAlertar= false; if (Undefined(blnLlenarSiSoloHayUno)) blnLlenarSiSoloHayUno = true; var objCombo = document.getElementById(objId); // Ejecuto el Request var xmlhttp = new xmlHttp(); var idxTodos = 0; if (xmlhttp.Ejecutar(strURL,false)){ // Limpio las opciones while (objCombo.getElementsByTagName("option").length>0){ objCombo.removeChild(objCombo.getElementsByTagName("option").item(0)); } // Obtengo el XML y lo recorro var xml = xmlhttp.responseXML(); var results = xml.getElementsByTagName('results')[0].childNodes; if (results.length> 0) { // Agrego la opción en blanco if (blnOpcionSeleccion) { var newoption = new Option("-- Seleccione --",""); objCombo.options[0] = newoption; idxTodos = 1; } // Recorro las entradas del XML y genero las opciones en el combo for (var i=0;i 0) { var newoption = new Option(strMensajeNoHayDatos,""); objCombo.options[0] = newoption; if (blnAlertar) alert(strMensajeNoHayDatos); } } } //Codigo para selecionar por defecto si solo hay un objeto en el combo. if (blnLlenarSiSoloHayUno) { var obj = document.getElementById(objId); if(obj.length==2){ if (obj.options[0].value == "") { obj.options[1].setAttribute("selected","selected"); obj.selectedIndex = 1; if (!Undefined(obj.onchange)) obj.onchange(); } } } } function CheckTodosGenericoByName(strName, obj){ if (strName == undefined) strName = "chkElementoFila"; if (strName == "") strName = "chkElementoFila"; var blnEstado = obj.checked; var chkElements = document.getElementsByName(strName); for (var index=0; index < chkElements.length; index++) { if (!chkElements[index].disabled) { chkElements[index].checked = blnEstado; } } } function Pregunta(strPregunta, fn) { $("#dialog-modal").dialog('close'); $("#dialog-modal").dialog('destroy'); $("#dialog-modal").html (strPregunta); $("#dialog-modal").dialog({ resizable: true, height:200, modal: true, buttons: { 'SI': function() { fn(); $(this).dialog('close'); $(this).dialog('destroy'); }, 'NO': function() { $(this).dialog('close'); $(this).dialog('destroy'); } } }); } function Mensaje(strMensaje, fn) { if (Undefined(typeof $)) { alert(strMensaje); } else { if (document.getElementById("dialog-mensajes")){ $("#dialog-mensajes").dialog('close'); $("#dialog-mensajes").dialog('destroy'); $("#dialog-mensajes").html (strMensaje); $("#dialog-mensajes").dialog({ modal: true, resizable: true, height:200, buttons: { Ok: function() { if (!Undefined(fn)) fn(); $(this).dialog('close'); $(this).dialog('destroy'); } } }); } else alert(strMensaje); } } function Error(strError) { if (Undefined(typeof $)) { alert(strError); } else { if (document.getElementById("dialog-modal-error")){ strError = strError.replace(/\n/gi,'
') ; $("#dialog-modal-error").dialog('close'); $("#dialog-modal-error").dialog('destroy'); $("#dialog-modal-error").html ('
' + strError + '
'); $("#dialog-modal-error").dialog({ modal: true, width: 700, buttons: { Ok: function() { $(this).dialog('close'); $(this).dialog('destroy'); } } }); } else alert(strError); } } function EjecutarArrayGenerico (strURL, strNameElementos, idxControlador, strID, objElemento, blnRefrescar, blnMensaje){ if (!Undefined(objElemento)) if(!DesactivarBoton(objElemento)) return; if (Undefined(blnRefrescar)) blnRefrescar = true; if (Undefined(blnMensaje)) blnMensaje = true; if (Undefined(strID)) strID = ""; if (strID != "") strID = strID + "."; var chkElements = document.getElementsByName(strID + strNameElementos); var blnExisteSel = false; var arr = new Array(); for (var index=0; index < chkElements.length; index++) { if(chkElements[index].checked){ blnExisteSel = true; var arrFila = eval(document.getElementById(strID + 'Keys_' +index).value); arr = arr.concat (new Array(arrFila)); } } if (!blnExisteSel) { Mensaje('Debe seleccionar al menos un documento en la lista.'); } else { var xmlhttp = new xmlHttp(); xmlhttp.LoadXML (arr); if (xmlhttp.Ejecutar(strURL,true)) { var strError = Trim(xmlhttp.getData("ERROR_MSG")); if (strError != "") Error(strError); else { if (!Undefined(objElemento)) ActivarBoton(objElemento); if (blnMensaje) Mensaje('Operación exitosa.'); if (blnRefrescar) CtrlGenOp[idxControlador].Buscar(); } } else { Error('Ocurrió un error al ejecutar la operación indicada.'); alert(xmlhttp.responseText()); } if (!Undefined(objElemento)) ActivarBoton(objElemento); xmlhttp = null; } if (!Undefined(objElemento)) ActivarBoton(objElemento); } function EjecutarGenerico (strURL, objElemento, blnMensaje, strMensaje){ if (!Undefined(objElemento)) if(!DesactivarBoton(objElemento)) return; if (Undefined(blnMensaje)) blnMensaje = true; if (Undefined(strMensaje)) strMensaje = ""; var xmlhttp = new xmlHttp(); if (xmlhttp.Ejecutar(strURL)){ var strError = Trim(xmlhttp.getData("ERROR_MSG")); if (strError != "") { Error(strError); return false; } else { if (!Undefined(objElemento)) ActivarBoton(objElemento); if (blnMensaje) Mensaje(strMensaje == "" ? "Operación exitosa" : strMensaje); return true; } } else { Error('Ocurrió un error al ejecutar la operación indicada.'); alert(xmlhttp.responseText()); } if (!Undefined(objElemento)) ActivarBoton(objElemento); xmlhttp = null; } function ExisteError (oXmlHttp, blnMostrarlo) { var strError = ""; var xml =oXmlHttp.responseXML ; if (Undefined(blnMostrarlo)) blnMostrarlo = true; // Verifico si viene formado xml var blnXML = (xml?true:false); if (blnXML) { // Verifico si viene la entrada de Error var results = xml.getElementsByTagName('ERROR_MSG'); blnXML = (results != null) ; if (blnXML) blnXML = (results[0] != null) ; if (blnXML) blnXML = (results[0].childNodes[0] != null) ; // Sí viene la entrada de Error, solo me falta // verificar si tiene algo if (blnXML) { strError = results[0].childNodes[0].nodeValue; blnXML = !(Undefined(strError)); if (blnXML) blnXML = Trim(strError) != ""; } } if (blnXML && blnMostrarlo) { Error(strError); } return blnXML; } function ObtenerXMLDato (oXmlHttp, strLlave) { var xml =oXmlHttp.responseXML ; var blnXML = (xml?true:false); var strRes = ""; if (blnXML) { var strXML = xml.getElementsByTagName(strLlave); blnXML = (strXML[0] != null) ; if (blnXML && strXML[0].childNodes[0]) strRes = strXML[0].childNodes[0].nodeValue; } return strRes; } function ValidarCorreo (obj, blnObligatorio) { if (Undefined(blnObligatorio)) blnObligatorio = false; var strEMA = Trim(escape(obj.value)); if (strEMA == "" && !blnObligatorio) return true; // Fix almora 2020.03.11 if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(strEMA))){ alert("Correo electrónico incorrecto, Verifique"); return false; } return true; } function ValidarFecha (objFecha, blnAlertar, blnPermitirSuperiorHoy, blnObligatoria, strMensaje) { if (Undefined(blnAlertar)) blnAlertar = false; if (Undefined(blnObligatoria)) blnObligatoria = false; if (Undefined(strMensaje)) strMensaje = "Fecha inválida"; if (Undefined(blnPermitirSuperiorHoy)) blnPermitirSuperiorHoy=true; var fecha = objFecha.value; fecha = fecha.replace("-",""); fecha = fecha.replace("-",""); fecha = fecha.replace("/",""); fecha = fecha.replace("/",""); if (fecha.length == 8 || fecha.length == 6) { dia = fecha.substring(0,2); mes = fecha.substring(2,4); ano = fecha.substring(4,8); if (ano.length==2) ano = "20" + ano; fecha = dia + "/" + mes + "/" + ano; objFecha.value = fecha; } if (fecha.length == 0 && blnObligatoria) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (fecha.length == 0 && !blnObligatoria) { return true; } if (fecha.length != 10) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } dia = fecha.substring(0,2); slash1 = fecha.substring(2,3); mes = fecha.substring(3,5); slash2 = fecha.substring(5,6); ano = fecha.substring(6,10); var fecActual = new Date(); var fecIndicada = new Date(ano,mes-1,dia) ; if (!blnPermitirSuperiorHoy){ if (fecIndicada > fecActual) { objFecha.value = ""; if (blnAlertar) alert('La fecha indicada no puede ser superior a hoy.'); return false; } } if (isNaN(parseInt(dia))) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (isNaN(parseInt(mes))) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (isNaN(parseInt(ano))) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (mes < 1 || mes > 12) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (slash1 != '/') { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (dia < 1 || dia > 31) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (slash2 != '/') { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (ano < 0 || ano > 3000) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (mes ==4 || mes == 6 || mes == 9 || mes == 11) { if (dia == 31) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } } if (mes == 2) { var Bisiesto = parseInt(ano / 4); if (isNaN(Bisiesto)) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (dia > 29) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } if (dia ==29 && ((ano/4) != parseInt(ano/4))) { if (blnAlertar) alert(strMensaje); objFecha.value = ""; return false; } } return true; } function DesactivarBoton(objButton){ if (Undefined(objButton)) return true; if (objButton.disabled) return false; objButton.disabled = true; return true; } function ActivarBoton(objButton){ if (!Undefined(objButton)) { objButton.disabled = false; } } function HayErrorMD (xmlhttp, strJSP) { var blnOK = false; var strError = xmlhttp.getData("ERROR_MSG"); if (strError != "") { document.getElementById('div_'+strJSP+'_ErrorGeneralMSG').innerHTML = strError.replace(/\n/gi,'
'); document.getElementById('div_'+strJSP+'_ErrorGeneralContainer').style.display = 'inline'; blnOK = true; } return blnOK; } function PathServer() { var strProtocol = window.location.protocol; var strServerName = window.location.host; var strBase = window.location.pathname; var index = (strBase.substring(1,strBase.length)).indexOf("/"); if (index > 0) strBase = strBase.substring(0,index+2); return strProtocol + "//"+strServerName+strBase; } function MostrarCL (fnc_retorno, strRutaCL, strParams, blnCLNuevo){ blnCLNuevo = Undefined(blnCLNuevo) ? true : blnCLNuevo; strParams = Undefined(strParams) ? "" : strParams; if (!blnCLNuevo) { top.fnc_clRetorno = fnc_retorno; MostrarLista(strRutaCL.replace(".jsp",""), strParams); } else { top.Retorno = fnc_retorno; $.modal('