Foros del Web » Programando para Internet » Javascript »

sumar, restar importe en tablas dinamicas

Estas en el tema de sumar, restar importe en tablas dinamicas en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/05/2013, 16:51
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
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
  #2 (permalink)  
Antiguo 15/05/2013, 14:17
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Respuesta: sumar, restar importe en tablas dinamicas

Sino hay solucion, alguien tiene un script que se pueda adaptar a las necesidades que estoy buscando?
  #3 (permalink)  
Antiguo 15/05/2013, 14:36
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: sumar, restar importe en tablas dinamicas

Offtopic: Tratá de que tus funciones sean más chicas (idealmente deberían hacer una única cosa). Divide y conquistarás.
__________________
blog | @aijoona
  #4 (permalink)  
Antiguo 15/05/2013, 19:34
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Respuesta: sumar, restar importe en tablas dinamicas

Gracias Aijoona por responder ante todo. Podrias darme una mano con mi problema?, probe cambiando "importe" en eliminar por todas las var y no doy con la tecla.
Gracias de ante mano.
Saludos
  #5 (permalink)  
Antiguo 16/05/2013, 17:46
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Respuesta: sumar, restar importe en tablas dinamicas

Alguien más tiene alguna idea?

Etiquetas: dinamicas, filas, resta, suma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:38.