How can I add the total of the Total Value $ row and the result in input costs appear? [closed]

-2

var sumaValores = function(){
    //Obtengo la última fila ingresada en la tabla
    var fila = $("#tablaDetalleMaterialEinsumo").find('tr:last');
    //Obtengo el campo referente a la cantidad de insumo ':eq(2)'
    var campo1 = fila.find('input[type="text"]:eq(2)'); 
    //Obtengo el campo referente al precio_unitario_insumo ':eq(3)'
    var campo2 = fila.find('input[type="text"]:eq(3)');
    //Obtengo el campo donde se escribirá el resultado
    var destino = fila.find('input[type="text"]:eq(4)');

    campo1.on('change', function(){
        destino.val(parseInt(campo1.val())+parseInt(campo2.val()));
    });

    campo2.on('change', function(){
        destino.val(parseInt(campo1.val())+parseInt(campo2.val()));
    }); 
};

function funcNuevaDetalleMaterialEinsumo() 
{
  $("#tablaDetalleMaterialEinsumo")
  .append
  (
    $('<tr>')
    .append
    (
      $('<td>')
      .append
      (
        $('<input>').attr('type', 'text').addClass('form-control').attr('name', 'detalle_insumo[]')
        )
      )
    .append
    (
      $('<td>')
      .append
      (
        $('<input>').attr('type', 'text').addClass('form-control').attr('name', 'unidad_insumo[]')
        )
      )
    .append
    (
      $('<td>')
      .append
      (
        $('<input>').attr('type', 'text').addClass('form-control').attr('name', 'cantidad_insumo[]')
        )
      )
    .append
    (
     $('<td>')
     .append
     (
      $('<input>').attr('type', 'text').addClass('form-control').attr('name', 'precio_unitario_insumo[]')
      )
     )
    .append
    (
     $('<td>')
     .append
     (
      $('<input>').attr('type', 'text').addClass('form-control').attr('name', 'valor_total_insumo[]').attr('readonly')
      )
     )
    .append
    (
      $('<td>').addClass('text-center')

      .append
      (
        $('<div>').addClass('btn btn-danger').text('Eliminar')
        )            
      )        
    );

    sumaValores();
}



<div class="caja6">
  <div class="alcance">
    <h1>DETALLE MATERIALES, REPUESTO E INSUMOS</h1> 
  </div>
  <div class="container theme-showcase" role="main">

    <br>
    <div class="form-group">
      <label for="tablaDetalleMaterialEinsumo">
       <div class='btn btn-success' id="btnNuevaDetalleMaterialEinsumo">Nueva</div>
     </label>
     <table class='table table-bordered table-hover' id="tablaDetalleMaterialEinsumo">
      <tr>
        <th>Detalles De Insumos</th>
        <th>Unidad</th>
        <th>Cantidad</th>
        <th>Precio Unitario</th>
        <th>Valor Total ($)</th>
        <th>OPCION</th>
      </tr>
      <?php for($i=1; $i<sizeof($tabla2); ++$i) { ?>
      <tr>
        <td><input type="text" class="form-control" name="detalle_insumo[]" value="" ></td>
        <td><input type="text" class="form-control" name="unidad_insumo[]" value=""></td>
        <td><input type="text" class="form-control" name="cantidad_insumo[]" id="cantidad_insumo[]" value=""></td>
        <td><input type="text" class="form-control" name="precio_unitario_insumo[]" id="precio_unitario_insumo[]" value=""></td>
        <td><input type="text" class="form-control" name="valor_total_insumo[]" id="valor_total_insumo[]" value="" readonly ></td>
        <td class="text-center">

         <div class='btn btn-danger'>Eliminar</div>

       </td>
     </tr>
     <?php } ?>
   </table>                 
 </div>  
</div>
</div>
</form>

<br>
<br>
<div class="unitario">
  <h2>Costos de insumos</h2><input type="text" name="Valor_unitario" id="valor_unitario" class="form-input" placeholder="Valor Unitario"> 
</div>
    
asked by Monsiens 04.10.2017 в 19:14
source

1 answer

0

Add the new function I did to you and change the function sumaValores a little bit. It should look like this:

//Creo una función donde voy a sumar todos los valores totales de la última columna
var sumaTotales = function(){
  //Inicializo en 0 el valor a establecer indicando el resultado de la sumatoria
  var totales = 0;
  //Recorro todas las filas de la tabla
  $('tr','#tablaDetalleMaterialEinsumo').each(function(){
     //Obtengo el campo del cual quiero tomar el valor para sumarlo
     var campo_total = $(this).find('input[type="text"]');
     //Agrego a totales el nuevo valor
     totales += parseInt(campo_total.val());
  });
  //Establezco el resultado de la suma
  $('#valor_unitario').val(totales);
};

var sumaValores = function(){
    //Obtengo la última fila ingresada en la tabla
    var fila = $("#tablaDetalleMaterialEinsumo").find('tr:last');
    //Obtengo el campo referente a la cantidad de insumo ':eq(2)'
    var campo1 = fila.find('input[type="text"]:eq(2)'); 
    //Obtengo el campo referente al precio_unitario_insumo ':eq(3)'
    var campo2 = fila.find('input[type="text"]:eq(3)');
    //Obtengo el campo donde se escribirá el resultado
    var destino = fila.find('input[type="text"]:eq(4)');

    campo1.on('change', function(){
        destino.val(parseInt(campo1.val())+parseInt(campo2.val()));
        //Llamo a la función para que se actualice cada vez que se cambie algo en este campo
        sumaTotales();
    });

    campo2.on('change', function(){
        destino.val(parseInt(campo1.val())+parseInt(campo2.val()));
        //Llamo a la función para que se actualice cada vez que se cambie algo en este campo
        sumaTotales();
    }); 
};

I hope it works I have not tried it;)

    
answered by 04.10.2017 / 20:16
source