Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2016, 12:26
erickmpos
 
Fecha de Ingreso: enero-2016
Ubicación: Heredia
Mensajes: 35
Antigüedad: 9 años
Puntos: 0
Pregunta Suma mis datos al dar click fuera de la ventana

Compañeros,

Tengo la siguiente duda o consulta, tengo una ventana HTML que llama un JS, lo que pasa es que cuando ingreso el "costo" y el "Precio de Venta"y escojo el Tipo de Impuesto de Venta (son 2 opciones: Gravado 13% y Exento 0%), me realiza unas formulas donde me llena automaticamente los campos: Impuesto de Venta, Utilidad Colones y Utilidad Porcentual, hasta aqui todo marcha perfecto.
El problema es que si yo cambio por ejemplo el "costo" y le doy click a cualquier parte de la ventana HTML, automaticamente me cambia los valores de I.V y utilidades, hace algun tipo de formula que a veces pone el doble del valor de los campos, o mucho mas alto el valor. Y solamente funciona si yo vuelvo al tipo de impuesto y hago el cambio de pasar de Gravado 13% a exento 0% y volver a Gravado 13%.
Que me aconsejan, para que, si yo cambio el valor del costo o precio venta, me obligue a cambiar el tipo de impuesto de venta (Gravado o Exento).
Les paso el codigo, para ver si me doy a entender mas.
1.
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.  
  3.     <head>
  4.         <title>Test</title>
  5.        
  6.         <meta charset="UTF-8">
  7.         <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8.     </head>
  9.     <body>
  10.         <script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>
  11.         <script type="text/javascript" src="pruebaerick.js"></script>
  12.         <p>Calculo automatico del impuesto de Venta y la Utilidad.</p>
  13.         <input type="text" name="articulo" placeholder="Articulo" />
  14.  
  15.         <input type="text" name="pVenta" placeholder="Precio de Venta"/>
  16.         <input type="text" name="costo" placeholder="Costo"/>
  17.         <select id="imp">
  18.           <option value="Seleccione Impuesto">Seleccione Impuesto</option>
  19.           <option value="13">Gravado 13%</option>
  20.           <option value="0">Exento 0%</option>
  21.         </select>
  22.         <br><hr>
  23.         <label for="">Impuesto de Venta</label>
  24.         <input type="text" name="impVenta" placeholder="Impuesto de Venta" value="Seleccione Impuesto" readonly/><br><br>
  25.         <label for="">Utilidad colones</label>
  26.         <input type="text" name="utilidad" placeholder="Utilidad Colones"/>
  27.         <label for="">Utilidad Porcentual</label>
  28.         <input type="text" name="utilidadP" placeholder="Utilidad Porcentual"/>
  29.     </body>
  30. </html>

2.
Código Javascript:
Ver original
  1. $(document).on("ready", function(){
  2.    /*Verificamos el valor del impuesto seleccionado y llamamos a la funcion que realiza el calculo*/
  3.         $("select[id=imp]").on("change", function(){
  4.  
  5.           $("input[name=impVenta]").val($(this).val());
  6.  
  7.           calcula();
  8.  
  9.         });
  10.         /*Calcula la utilidad basado en el impuesto seleccionado*/
  11.         function calcula(){
  12.  
  13.                 if($("input[name=impVenta]").val()=== "Seleccione Impuesto"){
  14.  
  15.                                 $("input[name=utilidad]").val(0);
  16.                                 $("input[name=utilidadP]").val(0);
  17.  
  18.                 }else{
  19.  
  20.                         var pv = parseInt($("input[name=pVenta]").val());
  21.                         var costo = parseInt($("input[name=costo]").val());
  22.                         var iv = parseInt($("input[name=costo]").val() *
  23.                                 $("input[name=impVenta]").val()/100);
  24.                         var utilidad = parseInt($("input[name=pVenta]").val() -
  25.                                 ($("input[name=costo]").val() *
  26.                                  $("input[name=impVenta]").val()/100) -
  27.                                  $("input[name=costo]").val());
  28.                                
  29.                        
  30.                         $("input[name=impVenta]").val(iv);
  31.                        
  32.                         $("input[name=utilidad]").val(utilidad);
  33.                        
  34.                         $("input[name=utilidadP]").val((utilidad * 100)/pv);
  35.  
  36.                 }
  37.  
  38.         }
  39.  
  40.         /*Verifica en tiempo real si hay algun cambio en el campo costo para recalcular la utilidad de este nuevo monto*/
  41.         $("input[name=costo]").on("change", function(){
  42.  
  43.                 calcula();
  44.  
  45.         });
  46. });

De antemano muchas gracias compañeros.