add auto-calculation of Itr and Ao form and also back-to dashboard button commit
This commit is contained in:
83
static/js/itr_calc.js
Normal file
83
static/js/itr_calc.js
Normal file
@@ -0,0 +1,83 @@
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const fields = [
|
||||
"gross_total_income", "disallowance_14a", "disallowance_37",
|
||||
"deduction_80ia_business", "deduction_80ia_misc", "deduction_80ia_other",
|
||||
"deduction_sec37_disallowance", "deduction_80g", "net_taxable_income",
|
||||
"tax_30_percent", "tax_book_profit_18_5", "tax_payable", "surcharge_12",
|
||||
"edu_cess_3", "total_tax_payable", "mat_credit", "interest_234c",
|
||||
"total_tax", "advance_tax", "tds", "tcs", "tax_on_assessment", "refund"
|
||||
];
|
||||
|
||||
function getValue(id) {
|
||||
return parseFloat(document.getElementsByName(id)[0].value) || 0;
|
||||
}
|
||||
|
||||
function setValue(id, val) {
|
||||
document.getElementsByName(id)[0].value = val.toFixed(2);
|
||||
}
|
||||
|
||||
function calculate() {
|
||||
|
||||
let gross_total_income = getValue("gross_total_income");
|
||||
let disallowance_14a = getValue("disallowance_14a");
|
||||
let disallowance_37 = getValue("disallowance_37");
|
||||
|
||||
// FORMULAS
|
||||
setValue("gross_total_income", disallowance_37 + gross_total_income);
|
||||
setValue("disallowance_37", disallowance_14a + disallowance_37);
|
||||
|
||||
// Deductions
|
||||
let d80_business = getValue("deduction_80ia_business");
|
||||
let d80_misc = getValue("deduction_80ia_misc");
|
||||
let d80_other = getValue("deduction_80ia_other");
|
||||
|
||||
let deduction_sec37 = d80_business + d80_misc + d80_other - 1.35;
|
||||
setValue("deduction_sec37_disallowance", deduction_sec37);
|
||||
|
||||
let deduction_80g = getValue("deduction_80g");
|
||||
|
||||
// Net taxable income
|
||||
let net_taxable_income = gross_total_income - deduction_sec37 - deduction_80g;
|
||||
setValue("net_taxable_income", net_taxable_income);
|
||||
|
||||
// Tax calculations
|
||||
setValue("tax_30_percent", net_taxable_income * 0.30);
|
||||
|
||||
let tax_book_profit = getValue("tax_book_profit_18_5");
|
||||
setValue("tax_payable", tax_book_profit);
|
||||
|
||||
let surcharge = tax_book_profit * 0.12;
|
||||
setValue("surcharge_12", surcharge);
|
||||
|
||||
let edu_cess = (tax_book_profit + surcharge) * 0.03;
|
||||
setValue("edu_cess_3", edu_cess);
|
||||
|
||||
let total_tax_payable = tax_book_profit + surcharge + edu_cess;
|
||||
setValue("total_tax_payable", total_tax_payable);
|
||||
|
||||
let mat_credit = getValue("mat_credit");
|
||||
let interest_234c = getValue("interest_234c");
|
||||
|
||||
let total_tax = total_tax_payable + mat_credit + interest_234c;
|
||||
setValue("total_tax", total_tax);
|
||||
|
||||
// Assessment
|
||||
let adv_tax = getValue("advance_tax");
|
||||
let tds = getValue("tds");
|
||||
let tcs = getValue("tcs");
|
||||
|
||||
let tax_on_assessment = adv_tax + tds + tcs;
|
||||
setValue("tax_on_assessment", tax_on_assessment);
|
||||
|
||||
let refund = total_tax - tax_on_assessment;
|
||||
setValue("refund", refund);
|
||||
}
|
||||
|
||||
// Attach event listeners
|
||||
fields.forEach(id => {
|
||||
const element = document.getElementsByName(id)[0];
|
||||
if (element) {
|
||||
element.addEventListener("input", calculate);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user