Este es mi AS2
Código:
He logrado que todos los campos funciones menos el de base_imponible es el único campo que al llenar el input no me arroja información. Espero puedan ayudarme, gracias. function calc_imp(ingreso, deduccion, base, opcion) { base_imponible = ingreso - deduccion; for (var _loc1 = 0; _loc1 < base.length; ++_loc1) { if (base_imponible >= base[_loc1][0] && base_imponible <= base[_loc1][1]) { rango = _loc1; } // end if } // end of for impuesto = base[rango][2] + (base_imponible - base[rango][0]) * base[rango][3] / 100; if (base_imponible > 0) { ir = Math.abs(impuesto / ingreso * 100); } else { ir = 0; } // end else if if (opcion == 1) { return (Math.abs(impuesto)); } // end if if (opcion == 2) { return (ir); } // end if } // End of the function var base = [[0, 8909, 0, 0], [8910, 11349, 0, 5], [11350, 14189, 122, 10], [14190, 17029, 406, 12], [17030, 34059, 747, 15], [34060, 51079, 3301, 20], [51080, 68109, 6705, 25], [68110, 90809, 10963, 30], [90810, 1000000, 17773, 35]]; ingresos_totales.onChanged = function (textfield_txt) { if (ingresos_totales.text / 2 > 11583) { deduccion_maxima.text = 11583; base_imponible.text = Number(ingresos_totales.text) - Number(deduccion_maxima.text); impuesto2010.text = calc_imp(ingresos_totales.text, deduccion_maxima.text, base, 1); ir_ingresostotales.text = calc_imp(ingresos_totales.text, deduccion_maxima.text, base, 2); } else { deduccion_maxima.text = ingresos_totales.text / 2; base_imponible.text = Number(ingresos_totales.text) - Number(deduccion_maxima.text); impuesto2010.text = calc_imp(ingresos_totales.text, deduccion_maxima.text, base, 1); ir_ingresostotales.text = calc_imp(ingresos_totales.text, deduccion_maxima.text, base, 2); } // Testing }; ingresostotalesb.onChanged = function (textfield_txt) { base_imponibleb.text = base_imponibleb.text = Number(ingresos_totalesb.text) - Number(deduccion_maximab.text); impuesto2010b.text = calc_imp(ingresostotalesb.text, deduccion_maximab.text, base, 1); ir_ingresostotalesb.text = calc_imp(ingresostotalesb.text, deduccion_maximab.text, base, 2); }; deduccion_maximab.onChanged = function (textfield_txt) { base_imponibleb.text = base_imponibleb.text = Number(ingresos_totalesb.text) - Number(deduccion_maximab.text); impuesto2010b.text = calc_imp(ingresostotalesb.text, deduccion_maximab.text, base, 1); ir_ingresostotalesb.text = calc_imp(ingresostotalesb.text, deduccion_maximab.text, base, 2); }; ingreso = 20000; deduccion = 10000; test = calc_imp(ingreso, deduccion, base, 1);