Comunidad de diseño web y desarrollo en internet online

Aplicación para hacer facturas

Citar            
MensajeEscrito el 14 Oct 2015 06:04 pm
Hola, estoy tratando de hacerme una app web para hacer facturas y tengo varias dudas de como hacer según que cosas.

el código esta aquí https://jsfiddle.net/gf2pkks2/ para que lo veáis funcionando y todo lo que usa para ello.

Sobre todo ahora mismo tengo la duda para sumar y restar los totales, tengo conseguido que me lo haga sobre la linea de inserción de datos, pero no que me lo sume en el total definitivo.

también al borrar debería recalcular los importes.

he buscado ejemplos de código que suma arrays pero nada...

Por si a alguien le sirve el código hace lo siguiente:
-Te permite agregar lineas dinamicamente ( yo lo he puesto con <b> por que no quiero que se puedan editar ya que va a guardarse en mysql según se agrega cada linea y claro si se edita directamente puede ser una locura )

-También permite ordenar las lineas ya insertadas arrastrándolas por si acaso quieres cambiar el orden

Por Killpe

6 de clabLevel



 

safari
Citar            
MensajeEscrito el 20 Oct 2015 11:45 am
Bueno, parece que nadie sabe resolverlo, así que os pongo la solución que le he dado por si a alguien le vale para algo:

el código html es este:

Código HTML :

<form method="post">

       <table id="table-data">
      <thead>
         <tr> 
            <th class="primera 10porcien">Nombre</th>
            <th class="centro_listados 10porcien">cantidad</th>
            <th class="centro_listados 10porcien">precio</th>
            <th class="centro_listados 10porcien">Total</th>
            <th class="ultima 10porcien">Opciones</th>
         </tr>
      </thead>
      
      <tbody id="itemRows" class="ordenable" style="background: white;">
   <tr>
      <td><input type="text" name="nombre" placeholder="Nombre"></td>
      <td><input type="text" name="cantidad" id="cantidad" placeholder="Cantidad"></td>
      <td><input type="text" name="precio" id="precio" placeholder="precio" value="100"></td>
      <td><input type="text" name="total" disabled id="total" placeholder="Total"></td>
      <td><input onclick="AddLinea(this.form);" type="button" class="botonverde" value="agregar" /></td>
   </tr>
      </tbody>
       </table>
   </form>
</div>
<br />
            <div id="Totales">
                Subtotal <input type="text" name="Subtotal" placeholder="Subtotal"><br />
                Impuestos <input type="text" name="Impuestos" placeholder="Impuestos"><br />
                Total <input type="text" name="Supertotal" placeholder="Total">
             </div>            
<script>   
var LineaNum = 0;
function AddLinea(frm) {
   LineaNum ++;
   var Linea = '<tr id="LineaNum'+LineaNum+'"><td><b>'+frm.nombre.value+'</b></td><td><b>'+frm.cantidad.value+'</b></td><td><b>'+frm.precio.value+'</b></td><td><input type="text" name="total[]" disabled value="'+frm.total.value+'"></td><td><input type="button" class="botonrojo" value="Borrar" onclick="EliminarLinea('+LineaNum+','+frm.total.value+');"></td></tr>';
   jQuery('#itemRows').append(Linea);
   frm.nombre.value = '';
   frm.cantidad.value = '';
   frm.precio.value = '';
   frm.total.value = '';
}


function EliminarLinea(rnum,descontar) {
   jQuery('#LineaNum'+rnum).remove();
        var subtotal = $('input[name=Subtotal]').val();
         if (!isNaN(descontar)){ subtotal -= parseFloat(descontar);
         }else{
        return true;
        }
         
      $('input[name=Subtotal]').val(subtotal); 
    
}
</script> 


este el jQuery

Código Javascript :

$(document).ready(function() {    
//suma subtotales
        $("#cantidad, #precio").keyup(function (e) {
            var canti = $("#cantidad").val();
            var preci = $("#precio").val();
            var iva = $("#iva").val();
            //var resultado = parseFloat(mat) + parseFloat(price);
            var baseimpo = parseFloat(canti) * parseFloat(preci);
            $("#total").val(baseimpo);
            sumar_total();
        });

 //suma totales
 function sumar_total(){
             var subtotal = 0;
           var totales = $('input[name^=total]');
      totales.each(function(){
           var valor = $(this).val();
        if (!isNaN(valor)){ subtotal += parseFloat(valor);
         }else{
        return true;
        }
       }); 
      $('input[name=Subtotal]').val(subtotal);    
};
    
//ordenable     
    $( ".ordenable" ).sortable({
        stop: function () {
            var inputs = $('input.posicion');
            var nbElems = inputs.length;
            $('input.posicion').each(function(idx) {
                $(this).val(nbElems - idx);
            });
        }
    });
    $( ".ordenable" ).disableSelection();   
          
});


y aqui lo podeis ver funcionando https://jsfiddle.net/gf2pkks2/13/

faltaria por poner los impuestos y total mas impuestos pero con este código es simplemente meter otro calculo para los impuestos y que escriba el total definitivo...


Muchas gracias a todos y espero que a alguien le sirva :wink:

Por Killpe

6 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.