add auto-calculation of Itr and Ao form and also back-to dashboard button commit
This commit is contained in:
93
static/js/ao_calc.js
Normal file
93
static/js/ao_calc.js
Normal file
@@ -0,0 +1,93 @@
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
|
||||
// All fields that must trigger calculation
|
||||
const fields = [
|
||||
"gross_total_income", "disallowance_14a", "disallowance_37",
|
||||
"deduction_80ia_business", "deduction_sec37_disallowance", "deduction_80g",
|
||||
"net_taxable_income", "tax_30_percent", "tax_book_profit_18_5",
|
||||
"surcharge_12", "edu_cess_3", "total_tax_payable", "mat_credit",
|
||||
"interest_234c", "total_tax", "advance_tax", "tds", "tcs",
|
||||
"tax_on_assessment", "refund"
|
||||
];
|
||||
|
||||
function getVal(id) {
|
||||
return parseFloat(document.getElementsByName(id)[0].value) || 0;
|
||||
}
|
||||
|
||||
function setVal(id, value) {
|
||||
document.getElementsByName(id)[0].value = Number(value).toFixed(2);
|
||||
}
|
||||
|
||||
function calculate() {
|
||||
|
||||
// 1️ Base Values
|
||||
let gross_total_income = getVal("gross_total_income");
|
||||
let disallowance_14a = getVal("disallowance_14a");
|
||||
let disallowance_37 = getVal("disallowance_37");
|
||||
|
||||
// 2️ Deductions
|
||||
let d80_business = getVal("deduction_80ia_business");
|
||||
let deduction_sec37 = getVal("deduction_sec37_disallowance");
|
||||
let deduction_80g = getVal("deduction_80g");
|
||||
|
||||
// 3️ Formula: TOTAL DEDUCTION
|
||||
let total_deductions = d80_business + deduction_sec37;
|
||||
// (deduction_80ia_business + deduction_sec37_disallowance)
|
||||
|
||||
// 4️ Net Taxable Income
|
||||
let net_taxable_income =
|
||||
(gross_total_income + disallowance_14a + disallowance_37)
|
||||
- total_deductions
|
||||
- deduction_80g;
|
||||
|
||||
setVal("net_taxable_income", net_taxable_income);
|
||||
|
||||
// 5️ Tax @ 30%
|
||||
let tax_30_percent = net_taxable_income * 0.30;
|
||||
setVal("tax_30_percent", tax_30_percent);
|
||||
|
||||
// 6️ Book Profit – Tax Payable
|
||||
let tax_payable = getVal("tax_book_profit_18_5");
|
||||
// (tax_payable = tax_book_profit_18_5)
|
||||
|
||||
// 7️ Surcharge
|
||||
let surcharge_12 = tax_30_percent * 0.12;
|
||||
setVal("surcharge_12", surcharge_12);
|
||||
|
||||
// 8️ Education Cess
|
||||
let edu_cess_3 = (tax_30_percent + surcharge_12) * 0.03;
|
||||
setVal("edu_cess_3", edu_cess_3);
|
||||
|
||||
// 9️ Total Tax Payable
|
||||
let total_tax_payable = tax_30_percent + surcharge_12 + edu_cess_3;
|
||||
setVal("total_tax_payable", total_tax_payable);
|
||||
|
||||
// MAT Credit & Interest
|
||||
let mat_credit = getVal("mat_credit");
|
||||
let interest_234c = getVal("interest_234c");
|
||||
|
||||
// 1️1️ Total Tax
|
||||
let total_tax = total_tax_payable + mat_credit + interest_234c;
|
||||
setVal("total_tax", total_tax);
|
||||
|
||||
// 1️2️ Assessment side – Advance Tax, TDS, TCS
|
||||
let advance_tax = getVal("advance_tax");
|
||||
let tds = getVal("tds");
|
||||
let tcs = getVal("tcs");
|
||||
|
||||
let tax_on_assessment = advance_tax + tds + tcs;
|
||||
setVal("tax_on_assessment", tax_on_assessment);
|
||||
|
||||
// 1️3️ Refund / Payable
|
||||
let refund = total_tax - tax_on_assessment;
|
||||
setVal("refund", refund);
|
||||
}
|
||||
|
||||
// Attach input listeners
|
||||
fields.forEach(id => {
|
||||
let input = document.getElementsByName(id)[0];
|
||||
if (input) {
|
||||
input.addEventListener("input", calculate);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user