//-------------------------------------------------------------------------------------------- // FUNCIONES COMUNES A VARIOS ARCHIVOS //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA ELIMINAR DE UNA CADENA ESPACIOS EN BLANCO DEL PRINCIPIO Y EL FINAL function trim(cadena) { cadena=cadena.replace(/^\s+/, ''); cadena=cadena.replace(/\s+$/, ''); return cadena; } //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA CODIFICAR CARACTERES ESPECIALES EN URL function urlcodificar(cadena) { cadena=cadena.replace(/\+/g, '%2B'); cadena=cadena.replace(/\'/g, '%27'); cadena=cadena.replace(/\"/g, '%22'); return cadena; } //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA ENVIAR LA URL ACTUAL function direccion() { var direccion=document.URL; direccion=direccion.split("?", 1); //alert(direccion); return direccion; } //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA ENVIAR LA URL ACTUAL function direccion_conta(direccion) { if (direccion=="") { direccion=location.href.split("?", 1); } return String(direccion); } function direccion_index(direccion) { //var contenido=document.getElementById("contenido"); //if (direccion=="") //{ contenido.location.href=direccion; //} //return String(direccion); } //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA ENVIAR LA URL DE LA VENTANA PADRE function direccion_opener() { var direccion=opener.document.URL; direccion=direccion.split("?", 1); //alert(direccion); return direccion; } //-------------------------------------------------------------------------------------------- // FUNCIÓN DE LLAMADA AL BUSCADOR DE LA CUENTA: function buscar(event,tabla,buscar,campo1,valor1,campo2,valor2,campo3,valor3,campo4,valor4,campo5,valor5,campo6,valor6,senyal) { /*alert("ANTES:\nevent.target:'"+event.target+"'\nevent.target.alt:'"+event.target.alt+"'\nbuscar:'"+buscar+"'\nvalor1:'"+valor1+"'");*/ var navegador = navigator.appName if (navegador == "Netscape") { if (event.target=="[object HTMLImageElement]" || (event.target.readOnly==false && (event.target.alt=="buscando" || event.target.value!=""))) { event.target.alt=""; var pag_buscar = 'funciones/buscar.php?tabla='+tabla+'&buscar='+buscar+'&'+campo1+'='+valor1+'&'+campo2+'='+valor2+'&'+campo3+'='+valor3+'&'+campo4+'='+valor4+'&'+campo5+'='+valor5+'&'+campo6+'='+valor6+'&senyal='+senyal+'&direccion='+direccion()+'&id_caja='+event.target.id; //alert(pag_buscar); var ventana_buscar = window.open(urlcodificar(pag_buscar),'','width=900,height=1024,scrollbars=yes,menubar=yes,statusbar=yes'); } // Fin de if (event.target } //Fin de if (navegador == "Netscape") else { if (event.srcElement=="[object HTMLImageElement]" || (event.srcElement.readOnly==false && (event.srcElement.alt=="buscando" || event.srcElement.value!=""))) { event.srcElement.alt=""; /*alert("DESPUÉS:\nevent.srcElement.alt:'"+event.srcElement.alt+"'\nbuscar:'"+buscar+"'\nvalor1:'"+valor1+"'");*/ var pag_buscar = 'funciones/buscar.php?tabla='+tabla+'&buscar='+buscar+'&'+campo1+'='+valor1+'&'+campo2+'='+valor2+'&'+campo3+'='+valor3+'&'+campo4+'='+valor4+'&'+campo5+'='+valor5+'&'+campo6+'='+valor6+'&senyal='+senyal+'&direccion='+direccion()+'&id_caja='+event.srcElement.id; //alert(pag_buscar); var ventana_buscar = window.open(urlcodificar(pag_buscar),'','width=900,height=1024,scrollbars=yes,menubar=yes,statusbar=yes'); } // Fin de if (event.srcElement } // Fin de else } // Fin de function //-------------------------------------------------------------------------------------------- // FUNCIÓN DE LLAMADA AL BUSCADOR DE LA CONTABILIDAD: function buscar_conta(event,tabla,buscar,campo1,valor1,campo2,valor2,campo3,valor3,campo4,valor4,campo5,valor5,campo6,valor6,senyal) { //alert("ANTES:\nevent.target:'"+event.target+"'\nevent.target.alt:'"+event.target.alt+"'\nbuscar:'"+buscar+"'\nvalor1:'"+valor1+"'"); if (event.target=="[object HTMLImageElement]" || (event.target.readOnly==false && (event.target.alt=="buscando" || event.target.value!=""))) { event.target.alt=""; //alert("DESPUÉS:\nevent.target.alt:'"+event.target.alt+"'\nbuscar:'"+buscar+"'\nvalor1:'"+valor1+"'"); var pag_buscar = 'funciones/conta_buscar.php?tabla='+tabla+'&buscar='+buscar+'&'+campo1+'='+valor1+'&'+campo2+'='+valor2+'&'+campo3+'='+valor3+'&'+campo4+'='+valor4+'&'+campo5+'='+valor5+'&'+campo6+'='+valor6+'&senyal='+senyal+'&direccion='+direccion()+'&id_caja='+event.target.id; //alert(pag_buscar); var ventana_buscar = window.open(urlcodificar(pag_buscar),'','width=900,height=1024,scrollbars=yes,menubar=yes,statusbar=yes'); } // Fin de if (buscar!='') } // Fin de function //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA EJECUTAR onBlur EN UN OBJETO input type="text" function abrir(event,campo) { //alert('abrir: '+campo); var caja_texto = document.getElementById(campo); // Si caja_texto no tiene ningún valor y el atributo readonly está deshabilitado, abrimos buscador: if (caja_texto.value=='' && caja_texto.readOnly==false) { //caja_texto.value=' '; // Asignamos un espacio en blanco para saber que buscamos desde esta función. caja_texto.alt='buscando'; caja_texto.focus(); caja_texto.blur(); //caja_texto.value=''; // Eliminamos el espacio en blanco. } } // Fin de function //-------------------------------------------------------------------------------------------- // FUNCIÓN DE APERTURA DE VENTANA: function mostrar(direccion,campo1,valor1,campo2,valor2,campo3,valor3,campo4,valor4,campo5,valor5,campo6,valor6,campo7,valor7,campo8,valor8,campo9,valor9,campo10,valor10) { var pag_mostrar = direccion+'?'+campo1+'='+valor1+'&'+campo2+'='+valor2+'&'+campo3+'='+valor3+'&'+campo4+'='+valor4+'&'+campo5+'='+valor5+'&'+campo6+'='+valor6+'&'+campo7+'='+valor7+'&'+campo8+'='+valor8+'&'+campo9+'='+valor9+'&'+campo10+'='+valor10; //alert(pag_mostrar); var ventana_mostrar = window.open(urlcodificar(pag_mostrar),'','width=960,height=1024,scrollbars=yes,menubar=yes,statusbar=yes'); } //-------------------------------------------------------------------------------------------- // FUNCIÓN DE VÍNCULOS GENERAL function enlace(direccion,campo1,valor1,campo2,valor2,campo3,valor3,campo4,valor4,campo5,valor5,campo6,valor6,campo7,valor7,campo8,valor8,campo9,valor9,campo10,valor10) { var enlace = direccion+'?'+campo1+'='+valor1+'&'+campo2+'='+valor2+'&'+campo3+'='+valor3+'&'+campo4+'='+valor4+'&'+campo5+'='+valor5+'&'+campo6+'='+valor6+'&'+campo7+'='+valor7+'&'+campo8+'='+valor8+'&'+campo9+'='+valor9+'&'+campo10+'='+valor10; document.location.href=urlcodificar(enlace); //alert("enlace="+enlace); } //-------------------------------------------------------------------------------------------- // FUNCIÓN DE ELIMINAR GENERAL function eliminar(event,codigo) { var cod_empresa=''; var mensaje=''; var estado=''; // Si el documento contiene cod_empresa, obtenemos su valor: if (document.getElementById("cod_empresa")) { cod_empresa=document.getElementById("cod_empresa").value; mensaje=" de la Empresa "+ cod_empresa; } //alert("cod_empresa: "+cod_empresa); if (document.getElementById("estado")) { estado=document.getElementById("estado").value; if(estado=='f') { alert('Orden Facturada. No se puede eliminar.'); return false; } } var valor=document.getElementById(codigo).value; // Si codigo es la primera parte de un artículo, adaptamos codigo y obtenemos el valor completo: if (codigo=='cod_articulo1') { codigo='cod_articulo'; valor = valor + document.getElementById("cod_articulo2").value; //alert("valor: "+valor); } // Si codigo es la primera parte de una cuenta, adaptamos codigo y obtenemos el valor completo: if (codigo=='cod_cuenta1') { codigo='cod_cuenta'; //codigo2='cod_cuenta1'; valor = valor + document.getElementById("cod_cuenta2").value + document.getElementById("cod_cuenta3").value; //alert("valor: "+valor); // Si valor únicamente contiene la empresa, alertamos para que seleccionen una cuenta: if ((valor==document.getElementById("cod_cuenta1").value)) { alert('Para eliminar, seleccione primero un registro.'); return false; } } // Fin de if (codigo=='cod_cuenta1') // Si valor está vacío, alertamos para que seleccionen un registro: if(valor=='') { alert('Para eliminar, seleccione primero un registro.'); return false; } else if (confirm('¿Desea borrar el registro nº '+ valor + mensaje +'?')) { enlace(direccion_conta(''),codigo,valor,'cod_empresa',cod_empresa,'eliminar','2','','','','','','','','','','','','','',''); } // Fin de else if } // Fin de funtion //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA ABRIR LA CALCULADORA function calcular(campo,valor) { var pag_calcular = '/comun/funciones/calcular.php?campo='+campo+'&valor='+valor; ventana_calcular = window.open(pag_calcular,'','width=350,height=160,scrollbars=no,menubar=no,statusbar=no'); } //-------------------------------------------------------------------------------------------- // FUNCIÓN PARA SUMAR UN AÑO A UNA FECHA: function sumaranyo(fecha) { var nuevafecha=new String(); fecha=fecha.split("-", 3); fecha[2]=parseInt(fecha[2])+1; fecha[2]=String(fecha[2]); nuevafecha=nuevafecha.concat(fecha[0],'-',fecha[1],'-',fecha[2]); document.getElementById('fecha_fin').value=nuevafecha; } //-------------------------------------------------------------------------------------------- // MOSTRAR FECHA ACTUAL function fecha_actual() { var fecha = new Date(); var dia = fecha.getDate(); var mes = fecha.getMonth() + 1; var any = fecha.getFullYear(); var actual=dia + '-' + mes + '-' + any; document.getElementById('fecha').value=actual; } //-------------------------------------------------------------------------------------------- // TABULAR CON LA TECLA INTRO function tabular(event) { var tecla = event; if (tecla.keyCode == 13) { var i; var a=0; var b=0; var numero=document.forms[0].length; var ultimo=numero-1; for (i = 0; i < numero; i++) { if (document.forms[0].elements[i].id == event.target.id) { b=i+1; var tipo=document.forms[0].elements[b].type; // Si es el último elemento o bien es igual a submit/reset/button, pasa al primero: if (i == ultimo || (tipo=="submit" || tipo=="reset" || tipo=="button")) document.forms[0].elements[0].focus(); else document.forms[0].elements[b].focus(); a=1; } if (a==1) break; } //alert('\n Tecla:'+tecla.keyCode+'\n Evento:'+event.type+'\n Cancelable:'+event.cancelable+'\n Objeto origen:'+event.target.id+'\n Elementos:'+numero+'\n Contador:'+i+'\n Tipo objeto:'+tipo); // Detenemos la acción por defecto del evento (si se puede detener): tecla.preventDefault(); } } //-------------------------------------------------------------------------------------------- // FUNCIÓN GENERAL DE CONTROL DE ERRORES function control_errores(no_vacio,ambos,numero,campo1,campo2,campo3,campo4,campo5,campo6,campo7,campo8,campo9,campo10,campo11,campo12,campo13,campo14,campo15,campo16,campo17,campo18,campo19,campo20,campo21,campo22,campo23,campo24,campo25,campo26,campo27,campo28,campo29,campo30,campo31,campo32,campo33,campo34,campo35,campo36,campo37,campo38,campo39,campo40) { // control_errores(no_vacio,ambos,numero,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''); var campo = new Array (campo1,campo2,campo3,campo4,campo5,campo6,campo7,campo8,campo9,campo10,campo11,campo12,campo13,campo14,campo15,campo16,campo17,campo18,campo19,campo20,campo21,campo22,campo23,campo24,campo25,campo26,campo27,campo28,campo29,campo30,campo31,campo32,campo33,campo34,campo35,campo36,campo37,campo38,campo39,campo40); var nombre = new Array (); var valor = new Array (); var mensaje = ""; var i; var cont=0; //alert('No Vacío:'+no_vacio+'\n Ambos:'+ambos+'\n Número:'+numero+'\n No Vacío + Ambos:'+(no_vacio + ambos)+'\n No vacío + Ambos + Número:'+(no_vacio + ambos + numero)); // Esta corrección es necesaria para ajustar los campos a la numeración de la matriz: no_vacio-=1; for (i=0; i <= 39; i++) { var elemento = document.getElementById(campo[i]); nombre[i]=""; valor[i]=""; if(elemento) { // Controlar que no esté vacío: if (i <= no_vacio && elemento.value=="") { cont++; nombre[i]=elemento.title; valor[i]=elemento.value; } // Controlar que no esté vacío y sea un número: if (i > no_vacio && i <= (no_vacio + ambos) && (elemento.value=="" || isNaN(elemento.value))) { cont++; nombre[i]=elemento.title; valor[i]=elemento.value; } // Controlar que sea un número: if (i > (no_vacio + ambos) && i <= (no_vacio + ambos + numero) && isNaN(elemento.value)) { cont++; nombre[i]=elemento.title; valor[i]=elemento.value; } } // Fin de if(elemento) } // Fin de for if (cont > 0) { for (i=0; i <= 39; i++) { if (nombre[i] != "") mensaje += nombre[i] + ' = ' + valor[i] + '\n'; } alert('CAMPOS CON VALOR INCORRECTO: \n' + mensaje); return false; } else return true; } // Fin de control_errores //-------------------------------------------------------------------------------------------- // FUNCIÓN GENERAL DE CONTROL DE FECHAS function control_fechas(campo, fecha) { var campo=document.getElementById(campo); var fecha_ceros = /^(0){1,2}-(0){1,2}-(0){4}$/; var son_ceros = fecha.search(fecha_ceros); // Devuelve -1 si no encuentra la expresión regular. // Si la fecha está vacía o compuesta de ceros, no continuamos: if (fecha=="" || son_ceros!=-1) { return true; } // Reemplazamos cualquier carácter que no sea dígito por guiones: fecha=fecha.replace(/[^0-9]/g, "-"); // Insertamos la fecha revisada: campo.value=fecha; //alert(fecha); // Establecemos un patrón correcto: var regfecha = /^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$/; var existe=fecha.search(regfecha); // Si la fecha no responde al patrón correcto, no continuamos: if (existe==-1) { alert('Formato incorrecto: \n'+campo.title+' = ' + fecha + '\nFormato correcto: dd-mm-aaaa'); return false; } // Si la fecha tiene formato correcto pero no existe en el calendario, no continuamos: else { // Eliminamos los ceros innecesarios, si los hay, del día y el mes: //fecha=fecha.replace(/0(?=[0-9]{1}-)/g, ""); var fechas = fecha.split("-"); var dia=fechas[0]; var mes=fechas[1]; var any=fechas[2]; var resto=any%4; // Si el resto es 0, el año es bisiesto. //alert("dia:'"+dia+"'\nmes:'"+mes+"'\nany:'"+any+"'\nresto:'"+resto+"'"); if (mes < 1 || mes > 12 || dia < 1 || dia > 31 || ((mes==4 || mes==6 || mes==9 || mes==11) && dia > 30) || (mes==2 && ((resto!=0 && dia > 28) || (resto==0 && dia > 29)))) { alert('Fecha incorrecta: \n'+campo.title+' = ' + fecha + '\nRevise día, mes y año.'); return false; } else return true; } // Fin de else => if (existe==-1) } // Fin de function //-------------------------------------------------------------------------------------------- // FUNCIÓN GENERAL DE CONTROL DE FECHAS function control_fechas_conta(event) { var campo=document.getElementById(event.target.id); var fecha=campo.value; var fecha_ceros = /^(0){1,2}-(0){1,2}-(0){4}$/; var son_ceros = fecha.search(fecha_ceros); // Devuelve -1 si no encuentra la expresión regular. // Si la fecha está vacía o compuesta de ceros, no continuamos: if (fecha=="" || son_ceros!=-1) { return true; } // Reemplazamos cualquier carácter que no sea dígito por guiones: fecha=fecha.replace(/[^0-9]/g, "-"); // Insertamos la fecha revisada: campo.value=fecha; //alert(fecha); // Establecemos un patrón correcto: var regfecha = /^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$/; var existe=fecha.search(regfecha); // Si la fecha no responde al patrón correcto, no continuamos: if (existe==-1) { alert('Formato incorrecto: \n'+campo.title+' = ' + fecha + '\nFormato correcto: dd-mm-aaaa'); return false; } // Si la fecha tiene formato correcto pero no existe en el calendario, no continuamos: else { // Eliminamos los ceros innecesarios, si los hay, del día y el mes: //fecha=fecha.replace(/0(?=[0-9]{1}-)/g, ""); var fechas = fecha.split("-"); var dia=fechas[0]; var mes=fechas[1]; var any=fechas[2]; var resto=any%4; // Si el resto es 0, el año es bisiesto. //alert("dia:'"+dia+"'\nmes:'"+mes+"'\nany:'"+any+"'\nresto:'"+resto+"'"); if (mes < 1 || mes > 12 || dia < 1 || dia > 31 || ((mes==4 || mes==6 || mes==9 || mes==11) && dia > 30) || (mes==2 && ((resto!=0 && dia > 28) || (resto==0 && dia > 29)))) { alert('Fecha incorrecta: \n'+campo.title+' = ' + fecha + '\nRevise día, mes y año.'); return false; } else return true; } // Fin de else => if (existe==-1) } // Fin de function //-------------------------------------------------------------------------------------------- // FUNCIÓN GENERAL DE ENVÍO DE FORMULARIOS (de momento no es necesaria) function enviar_form() { var formulario = document.forms[0]; //formulario.action=direccion(); //alert(formulario.action+'+'+formulario.method); if (formulario.onsubmit) formulario.submit(); alert(formulario.onsubmit); } //-------------------------------------------------------------------------------------------- // FUNCIÓN JENNY PARA REDONDEAR A 2 DECIMALES function redondear(cantidad, decimales) { var cantidad = parseFloat(cantidad); var decimales = parseFloat(decimales); decimales = (!decimales ? 2 : decimales); return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales); } //-------------------------------------------------------------------------------------------- function muestraCalendario(raiz,formulario_destino,campo_destino,mes_destino,ano_destino) { var pag_calendario = "calendario/index.php?formulario="+formulario_destino+"&nomcampo="+campo_destino; var ventana_calendario = window.open(pag_calendario,"calendario","width=300,height=300,left=100,top=100,scrollbars=no,menubars=no,statusbar=NO,status=NO,resizable=YES,location=NO"); } //--------------------------------------------------------------------------------------------