Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2013, 16:51
hernan2212
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta sumar, restar importe en tablas dinamicas

Hola, estoy utilizando una funcion para agregar filas dinamicas y otra para borrarlas, que ademas de hacer dicha funcion agrege la suma y la resta de importes,
a la hora de sumar no hay problemas y a la hora de restar, en el caso que elimine la ultima fila agregada hace la cuenta de manera correcta, si elimino una intermedia toma el ultimo importe y no el dea fila especifica.
Espero haber sido claro.
Aca la dos funciones que utilizo:

Esta para agregar las filas:
Código Javascript:
Ver original
  1. function agregarFila(obj){
  2.         obj.value = parseInt(obj.value) + 1;
  3.         var oId = obj.value;
  4.         var codigo = document.getElementById("cod");
  5.         var descripcion = document.getElementById("descripcion");
  6.         var cantidad = document.getElementById("cantidad");
  7.         var precioventa = document.getElementById("precioventa");
  8.         var neto = document.getElementById("total6");
  9.         var id = document.getElementById("id");
  10.         var stock = document.getElementById("stock");
  11.         var ivaart = document.getElementById("ivaart");
  12.         var ivatotal = document.getElementById("ivatotal");
  13.         var importe = document.getElementById("importe");
  14.        
  15.         var strHtml1 = codigo.value + '<input type="hidden" id="hdncodigo_' + oId + '" name="hdncodigo_' + oId + '" value="' + codigo.value + '"/>' ;
  16.         var strHtml2 = descripcion.value + '<input type="hidden" id="hdndescripcion_' + oId + '" name="hdndescripcion_' + oId + '" value="' + descripcion.value + '"/>' ;
  17.         var strHtml3 = cantidad.value + '<input type="hidden" id="hdncantidad_' + oId + '" name="hdncantidad_' + oId + '" value="' + cantidad.value + '"/>' ;
  18.         var strHtml4 = precioventa.value + '<input type="hidden" id="hdnprecioventa_' + oId + '" name="hdnprecioventa_' + oId + '" value="' + precioventa.value + '"/>' ;
  19.         var strHtml5 = importe.value + '<input type="hidden" id="hdnimporte_' + oId + '" name="hdnimporte_' + oId + '" value="' + importe.value + '"/>' ;
  20.             var strHtml6 = '<img src="images/delete.png" width="16" height="16" alt="Eliminar" onclick="if(confirm(\'Realmente desea eliminar este articulo?\')){eliminarFila(' + oId + ');}"/>';
  21.             var strHtml7 = id.value + '<input type="hidden" id="hdnid_' + oId + '" name="hdnid_' + oId + '" value="' + id.value + '"/>' ;
  22.         var strHtml8 = stock.value + '<input type="hidden" id="hdnstock_' + oId + '" name="hdnstock_' + oId + '" value="' + stock.value + '"/>' ;
  23.         var strHtml9 = ivaart.value + '<input type="hidden" id="hdniva_' + oId + '" name="hdniva_' + oId + '" value="' + ivaart.value + '"/>' ;
  24.         var strHtml10 = ivatotal.value + '<input type="hidden" id="hdnivatotal_' + oId + '" name="hdnivatotal_' + oId + '" value="' + ivatotal.value + '"/>' ; 
  25.         strHtml9 += '<input type="hidden" id="hdnIdCampos_' + oId +'" name="hdnIdCampos[]" value="' + oId + '" />';
  26.        
  27.         var objTr = document.createElement("tr");
  28.         objTr.id = "rowDetalle_" + oId;
  29.        
  30.         var objTd1 = document.createElement("td");
  31.         objTd1.id = "tdDetalle_1_" + oId;
  32.         objTd1.innerHTML = strHtml1;
  33.        
  34.         var objTd2 = document.createElement("td");
  35.         objTd2.id = "tdDetalle_2_" + oId;  
  36.         objTd2.innerHTML = strHtml2;
  37.        
  38.         var objTd3 = document.createElement("td");
  39.         objTd3.id = "tdDetall_3_" + oId;   
  40.         objTd3.innerHTML = strHtml3;
  41.        
  42.         var objTd4 = document.createElement("td");
  43.         objTd4.id = "tdDetalle_4_" + oId;  
  44.         objTd4.innerHTML = strHtml4;
  45.        
  46.         var objTd5 = document.createElement("td");
  47.         objTd5.id = "tdDetalle_5_" + oId;  
  48.         objTd5.innerHTML = strHtml5;
  49.        
  50.         var objTd6 = document.createElement("td");
  51.         objTd6.id = "tdDetalle_6_" + oId;  
  52.         objTd6.innerHTML = strHtml6;
  53.        
  54.         var objTd7 = document.createElement("hidden");
  55.         objTd7.id = "tdDetalle_7_" + oId;  
  56.         objTd7.innerHTML = strHtml7;
  57.        
  58.         var objTd8 = document.createElement("hidden");
  59.         objTd8.id = "tdDetalle_8_" + oId;  
  60.         objTd8.innerHTML = strHtml8;
  61.  
  62.         var objTd9 = document.createElement("hidden");
  63.         objTd9.id = "tdDetalle_9_" + oId;  
  64.         objTd9.innerHTML = strHtml9;
  65.        
  66.         var objTd10 = document.createElement("hidden");
  67.         objTd10.id = "tdDetalle_10_" + oId;
  68.         objTd10.innerHTML = strHtml10;
  69.                
  70.         objTr.appendChild(objTd1);
  71.         objTr.appendChild(objTd2);
  72.         objTr.appendChild(objTd3);
  73.         objTr.appendChild(objTd4);
  74.         objTr.appendChild(objTd5);
  75.         objTr.appendChild(objTd6);
  76.         objTr.appendChild(objTd7);
  77.         objTr.appendChild(objTd8);
  78.         objTr.appendChild(objTd9);
  79.         objTr.appendChild(objTd10);
  80.        
  81.  
  82.         var objTbody = document.getElementById("tbDetalle");
  83.         objTbody.appendChild(objTr);
  84.        
  85.        
  86.     document.getElementById("baseimponible").value=parseFloat(Math.round(document.getElementById("baseimponible").value*100)/100) + parseFloat(document.getElementById("importe").value);
  87.        
  88.         return false;   //evita que haya un submit por equivocacion.
  89.     }


Y esta para eliminar las filas, donde esta mi problema:

Código Javascript:
Ver original
  1. function eliminarFila(oId){
  2.         var objHijo = document.getElementById('rowDetalle_' + oId);
  3.         var objPadre = objHijo.parentNode;
  4.         objPadre.removeChild(objHijo);
  5.        
  6.                 document.getElementById("baseimponible").value=parseFloat(Math.round(document.getElementById("baseimponible").value*100)/100) - parseFloat(document.getElementById("importe").value);
  7.         }

Espero y agradezco la ayuda
Saludos!!

Última edición por hernan2212; 15/05/2013 a las 12:54