Foros del Web » Programando para Internet » Jquery »

Suma mis datos al dar click fuera de la ventana

Estas en el tema de Suma mis datos al dar click fuera de la ventana en el foro de Jquery en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/03/2016, 12:26
 
Fecha de Ingreso: enero-2016
Ubicación: Heredia
Mensajes: 35
Antigüedad: 8 años, 3 meses
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.
  #2 (permalink)  
Antiguo 15/03/2016, 15:36
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 10 meses
Puntos: 32
Respuesta: Suma mis datos al dar click fuera de la ventana

hola denuevo xD
no entiendo xk haces esto
Código Javascript:
Ver original
  1. var utilidad = parseInt($("input[name=pVenta]").val() -
  2.                                     ($("input[name=costo]").val() *
  3.                                      $("input[name=impVenta]").val()/100) -
  4.                                      $("input[name=costo]").val());
" - $("input[name=costo]").val()" xk vuelves a restar el costo? no le encuentor mucho sentido pero si para ti esta bien no hay problema... pienso que el problema radica en los dos lugares donde haces
Código Javascript:
Ver original
  1. $("input[name=impVenta]").val()/100)
estas sacando el porcentaje de ese campo cuando deberias sacarlo del select, es decir remplazar eso con
Código Javascript:
Ver original
  1. $("select")
en los casos que lo usas
  #3 (permalink)  
Antiguo 16/03/2016, 11:33
 
Fecha de Ingreso: enero-2016
Ubicación: Heredia
Mensajes: 35
Antigüedad: 8 años, 3 meses
Puntos: 0
Pregunta Respuesta: Suma mis datos al dar click fuera de la ventana

Buenas Andres,

mas bien muchas gracias por toda la ayuda, porque de JS no se nada jaja,

Yo hice esto al final:
Código Javascript:
Ver original
  1. var pv = parseInt($("input[name=precioventa]").val());
  2.                     var iv = parseInt($("input[name=costo]").val() *
  3.                            $("input[name=impventa]").val()/100);
  4.                     var utilidad = parseInt($("input[name=precioventa]").val() -
  5.                            ($("input[name=costo]").val() *
  6.                             $("input[name=impventa]").val()/100) -
  7.                             $("input[name=costo]").val());
  8.                    
  9.                     $("input[name=impventa]").val(iv);
  10.                     $("input[name=uc]").val(utilidad);
  11.                     $("input[name=up]").val((utilidad * 100)/pv);
Para sacar la utilidad de un producto seria: Precio de venta, digamos 500
Costo: 200
Impuesto de venta: 13%
lo que hago es : 500 - ((200*13)/100) - 200 = 500- 26 - 200 = 274 que seria la utilidad del producto.

Es que lo intente con variables, sin hacer tanta formula, pero algo hice mal porque no me funcionaba y como no conozco, no se como hacerlo, al final asi me da el resultado correcto, no se que tan bueno sea dejarlo asi.

ahora si me funciona, pero tuve que hacer una funcion nueva asi:
Código Javascript:
Ver original
  1. function calcula_verifica(){
  2.             $("input[name=impventa]").val("Seleccione Impuesto");
  3.             $("select[id=imp]").val("Seleccione Impuesto");
  4.             $("input[name=uc]").val(0);
  5.             $("input[name=up]").val(0);
  6.         }
  7.        
  8.  
  9.         /*Verifica en tiempo real si hay algun cambio en el campo costo para recalcular la utilidad de este nuevo monto*/
  10.         $("input[name=costo]").on("change", function(){
  11.              
  12.              calcula_verifica();
  13.  
  14.         });
  15.        
  16.         /*Verifica en tiempo real si hay algun cambio en el campo Impuesto de Venta para recalcular la utilidad de este nuevo monto*/
  17.         $("input[name=precioventa]").on("change", function(){
  18.              
  19.              calcula_verifica();
  20.  
  21.         });
Entonces cada vez que hago un nuevo clic, me pone los valores en 0, obligando a que tengan que poner los datos nuevamente del "select."

Pero me queda una gran duda, como hago para que el valor que yo escogi en el "select" lo pueda pasar a una nueva pagina.
ejemplo:
Código HTML:
Ver original
  1. <select id="imp">
  2.                 <option value="Seleccione Impuesto">Seleccione Impuesto</option>
  3.                 <option value="13">Gravado 13%</option>
  4.                 <option value="0">Exento 0%</option>
  5.             </select>
Si escojo la opcion: Gravado 13%, como lo paso a una nueva pagina con php, lo hago de 2 formas, pero no funciona:
Código PHP:
Ver original
  1. $imp = $_POST['select[id=imp]'];
  2. $imp = $_POST['imp'];
Como lograria pasar el valor a la otra pagina?

Gracias de nuevo!
  #4 (permalink)  
Antiguo 16/03/2016, 18:12
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Suma mis datos al dar click fuera de la ventana

al select colocale un nombre no pases la id no te va a funcionar

Código HTML:
Ver original
  1. <select name="impuesto">
  2. <option value="loquesea">Lo que sea</option>

Código PHP:
Ver original
  1. $a = $_POST["impuesto"];
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 17/03/2016, 09:35
 
Fecha de Ingreso: enero-2016
Ubicación: Heredia
Mensajes: 35
Antigüedad: 8 años, 3 meses
Puntos: 0
Sonrisa Respuesta: Suma mis datos al dar click fuera de la ventana

Muchas gracias xfxstudios, ahora si me deja pasar el valor!
Gracias por la ayuda!

Etiquetas: fuera, suma, ventana
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 16:17.