Y estas son las diferentes funciones javascript que utilizo para calcular primero el precio de las horas trabajadas, y después la suma del total de horas y del total del importe de las horas.
Código PHP:
function sumarhoras() {
var totalhoras=verificar("totalhoras");
var horastrabajador1=verificar("horastrabajador1");
var horastrabajador2=verificar("horastrabajador2");
var horastrabajador3=verificar("horastrabajador3");
var horastrabajador4=verificar("horastrabajador4");
var horastrabajador5=verificar("horastrabajador5");
var horastrabajador6=verificar("horastrabajador6");
var horastrabajador7=verificar("horastrabajador7");
var horastrabajador8=verificar("horastrabajador8");
var horastrabajador9=verificar("horastrabajador9");
var horastrabajador10=verificar("horastrabajador10");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totalhoras").value=parseFloat(horastrabajador1)+parseFloat(horastrabajador2)+parseFloat(horastrabajador3)+parseFloat(horastrabajador4)+parseFloat(horastrabajador5)+parseFloat(horastrabajador6)+parseFloat(horastrabajador7)+parseFloat(horastrabajador8)+parseFloat(horastrabajador9)+parseFloat(horastrabajador10);
}
function sumartrab1() {
var costehoratrabajador1=verificar("costehoratrabajador1");
var horastrabajador1 =verificar("horastrabajador1");
var totaltrabajador1=verificar("totaltrabajador1");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador1").value=parseFloat(horastrabajador1)*parseFloat(costehoratrabajador1);
}
function sumartrab2() {
var costehoratrabajador2=verificar("costehoratrabajador2");
var horastrabajador2 =verificar("horastrabajador2");
var totaltrabajador2=verificar("totaltrabajador2");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador2").value=parseFloat(horastrabajador2)*parseFloat(costehoratrabajador2);
}
function sumartrab3() {
var costehoratrabajador3=verificar("costehoratrabajador3");
var horastrabajador3 =verificar("horastrabajador3");
var totaltrabajador3=verificar("totaltrabajador3");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador3").value=parseFloat(horastrabajador3)*parseFloat(costehoratrabajador3);
}
function sumartrab4() {
var costehoratrabajador4=verificar("costehoratrabajador4");
var horastrabajador4 =verificar("horastrabajador4");
var totaltrabajador4=verificar("totaltrabajador4");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador4").value=parseFloat(horastrabajador4)*parseFloat(costehoratrabajador4);
}
function sumartrab5() {
var costehoratrabajador5=verificar("costehoratrabajador5");
var horastrabajador5 =verificar("horastrabajador5");
var totaltrabajador5=verificar("totaltrabajador5");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador5").value=parseFloat(horastrabajador5)*parseFloat(costehoratrabajador5);
}
function sumartrab6() {
var costehoratrabajador6=verificar("costehoratrabajador6");
var horastrabajador6 =verificar("horastrabajador6");
var totaltrabajador6=verificar("totaltrabajador6");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador6").value=parseFloat(horastrabajador6)*parseFloat(costehoratrabajador6);
}
function sumartrab7() {
var costehoratrabajador7=verificar("costehoratrabajador7");
var horastrabajador7 =verificar("horastrabajador7");
var totaltrabajador7=verificar("totaltrabajador7");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador7").value=parseFloat(horastrabajador7)*parseFloat(costehoratrabajador7);
}
function sumartrab8() {
var costehoratrabajador8=verificar("costehoratrabajador8");
var horastrabajador8 =verificar("horastrabajador8");
var totaltrabajador8=verificar("totaltrabajador8");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador8").value=parseFloat(horastrabajador8)*parseFloat(costehoratrabajador8);
}
function sumartrab9() {
var costehoratrabajador9=verificar("costehoratrabajador9");
var horastrabajador9 =verificar("horastrabajador9");
var totaltrabajador9=verificar("totaltrabajador9");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador9").value=parseFloat(horastrabajador9)*parseFloat(costehoratrabajador9);
}
function sumartrab10() {
var costehoratrabajador10=verificar("costehoratrabajador10");
var horastrabajador10 =verificar("horastrabajador10");
var totaltrabajador10=verificar("totaltrabajador10");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("totaltrabajador10").value=parseFloat(horastrabajador10)*parseFloat(costehoratrabajador10);
}
function importetotalhoras() {
var importetotalhoras =verificar("importetotalhoras");
var totaltrabajador1=verificar("totaltrabajador1");
var totaltrabajador2=verificar("totaltrabajador2");
var totaltrabajador3=verificar("totaltrabajador3");
var totaltrabajador4=verificar("totaltrabajador4");
var totaltrabajador5=verificar("totaltrabajador5");
var totaltrabajador6=verificar("totaltrabajador6");
var totaltrabajador7=verificar("totaltrabajador7");
var totaltrabajador8=verificar("totaltrabajador8");
var totaltrabajador9=verificar("totaltrabajador9");
var totaltrabajador10=verificar("totaltrabajador10");
// realizamos la suma de los valores y los ponemos en la casilla del
// formulario que contiene el total
document.getElementById("importetotalhoras").value=parseFloat(totaltrabajador1)+parseFloat(totaltrabajador2)+parseFloat(totaltrabajador3)+parseFloat(totaltrabajador4)+parseFloat(totaltrabajador5)+parseFloat(totaltrabajador6)+parseFloat(totaltrabajador7)+parseFloat(totaltrabajador8)+parseFloat(totaltrabajador9)+parseFloat(totaltrabajador10);
}
/** * Funcion para verificar los valores de los cuadros de texto. Si no es un * valor numerico, cambia de color el borde del cuadro de texto */
function verificar(id)
{
var obj=document.getElementById(id);
if(obj.value=="")
value="0";
else
value=obj.value;
if(validate_importe(value,2))
{
// marcamos como erroneo
obj.style.borderColor="#808080";
return value;
}else{
// marcamos como erroneo
obj.style.borderColor="#f00";
return 0;
}
}
/** * Funcion para validar el importe * Tiene que recibir:
* El valor del importe (Ej. document.formName.operator)
* Determina si permite o no decimales [1-si|0-no]
* Devuelve:
* true-Todo correcto
* false-Incorrecto
*/
function validate_importe(value,decimal)
{
if(decimal==undefined)
decimal=0;
if(decimal==2)
{
// Permite decimales tanto por . como por ,
var patron=new RegExp("^[0-9]+((,|\.)[0-9]{1,2})?$");
}else{
// Numero entero normal
var patron=new RegExp("^([0-9])*$")
}
if(value && value.search(patron)==0)
{
return true;
}
return false;
}
Perdón por el tocho.