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<!DOCTYPE html>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://code.jquery.com/jquery-1.12.1.min.js"></script> <script type="text/javascript" src="pruebaerick.js"></script> <p>Calculo automatico del impuesto de Venta y la Utilidad.
</p> <input type="text" name="articulo" placeholder="Articulo" />
<input type="text" name="pVenta" placeholder="Precio de Venta"/> <input type="text" name="costo" placeholder="Costo"/> <option value="Seleccione Impuesto">Seleccione Impuesto
</option> <input type="text" name="impVenta" placeholder="Impuesto de Venta" value="Seleccione Impuesto" readonly/><br><br> <input type="text" name="utilidad" placeholder="Utilidad Colones"/> <input type="text" name="utilidadP" placeholder="Utilidad Porcentual"/>
2.
Código Javascript
:
Ver original$(document).on("ready", function(){
/*Verificamos el valor del impuesto seleccionado y llamamos a la funcion que realiza el calculo*/
$("select[id=imp]").on("change", function(){
$("input[name=impVenta]").val($(this).val());
calcula();
});
/*Calcula la utilidad basado en el impuesto seleccionado*/
function calcula(){
if($("input[name=impVenta]").val()=== "Seleccione Impuesto"){
$("input[name=utilidad]").val(0);
$("input[name=utilidadP]").val(0);
}else{
var pv = parseInt($("input[name=pVenta]").val());
var costo = parseInt($("input[name=costo]").val());
var iv = parseInt($("input[name=costo]").val() *
$("input[name=impVenta]").val()/100);
var utilidad = parseInt($("input[name=pVenta]").val() -
($("input[name=costo]").val() *
$("input[name=impVenta]").val()/100) -
$("input[name=costo]").val());
$("input[name=impVenta]").val(iv);
$("input[name=utilidad]").val(utilidad);
$("input[name=utilidadP]").val((utilidad * 100)/pv);
}
}
/*Verifica en tiempo real si hay algun cambio en el campo costo para recalcular la utilidad de este nuevo monto*/
$("input[name=costo]").on("change", function(){
calcula();
});
});
De antemano muchas gracias compañeros.