Código:
Los errores vienen a partir de cuando calcuo los totales, el total de linea se muestra bien por sospecho que el error viene de aqui:$(document).ready(function() { $('#totalbeneficios').attr('value','0'+'€'); $('#porcentajebeneficios').attr('value','0'+'%'); }); function calculos() { var num = $('.registro').length; //cantidad de lineas que tenemos var importe = ''; var incremento = ''; var operador = ''; var unidades = ''; var totalunitario = ''; var totallinea = ''; var totalsinincremento = ''; var totalconincremento = ''; var totalbeneficios = ''; var porcentajebeneficios = ''; for (var i = 1; i <= num; i++) { importe = document.getElementById('importe' + i).value; incremento = document.getElementById('incremento' + i).value; operador = document.getElementById('operador' + i).value; unidades = document.getElementById('unidades' + i).value; if (operador == '+') { totalunitario = (parseFloat(importe) + parseFloat(incremento)); totallinea = (parseFloat(totalunitario) * parseFloat(unidades)); } else { totalunitario = (parseFloat(importe) * ((parseFloat(incremento)+100)/100)); totallinea = (parseFloat(totalunitario) * parseFloat(unidades)); } ///////////////////////////////////////////////////////////////////// totalsinincremento = parseFloat(totalsinincremento) + parseFloat(importe); totalconincremento = parseFloat(totalconincremento) + parseFloat(totallinea); ///////////////////////////////////////////////////////////////////////// $('#total' + i).attr('value',totallinea+'€'); $('#totalbruto').attr('value',totalsinincremento+'€'); $('#totalsiniva').attr('value',totalconincremento+'€'); $('#totalconiva').attr('value',(totalconincremento * 1.21)+'€'); } totalbeneficios = (parseFloat(totalconincremento) - parseFloat(totalsinincremento)); porcentajebeneficios = ((parseFloat(totalconincremento)/parseFloat(totalsinincremento))*100); $('#porcentajebeneficios').attr('value',porcentajebeneficios+'%'); $('#totalbeneficios').attr('value',totalbeneficios+'€'); }
Código:
La unica diferencia que veo con el resto de operaciones es que en esta uso la misma variable a la que llamamos para sumarle la otra variable tal y como hacía en PHP no se si tendrá algo que ver pero lo señalo por si acaso, gracias de antemano por la ayuda, saludos Pablo. ///////////////////////////////////////////////////////////////////// totalsinincremento = parseFloat(totalsinincremento) + parseFloat(importe); totalconincremento = parseFloat(totalconincremento) + parseFloat(totallinea); /////////////////////////////////////////////////////////////////////////