Compare commits

...

4 Commits

Author SHA1 Message Date
eb12d4cd2e Merge pull request 'swapnil-dev' (#3) from swapnil-dev into main
Reviewed-on: #3
2026-02-07 13:42:20 +00:00
Swapnil9693
32b6ab9b10 AO_Form_New_Updated 2026-02-07 18:50:08 +05:30
Swapnil9693
b8d540263b AO_Form_New_Updated 2026-02-07 18:36:31 +05:30
Swapnil9693
a8e47af61c Summary report UI improvements and JS preview logic 2026-02-05 14:57:38 +05:30
5 changed files with 249 additions and 141 deletions

2
.env
View File

@@ -21,5 +21,5 @@ DB_HOST=127.0.0.1
DB_PORT=3306 DB_PORT=3306
DB_NAME=test_income_taxdb DB_NAME=test_income_taxdb
DB_USER=root DB_USER=root
DB_PASSWORD=root DB_PASSWORD=tiger

View File

@@ -1,5 +1,4 @@
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
function getValue(id) { function getValue(id) {
var el = document.getElementsByName(id)[0]; var el = document.getElementsByName(id)[0];
return el ? parseFloat(el.value) || 0 : 0; return el ? parseFloat(el.value) || 0 : 0;
@@ -11,14 +10,14 @@ document.addEventListener("DOMContentLoaded", function () {
} }
window.calculate = function () { window.calculate = function () {
// --- BASIC INPUTS --- // --- BASIC INPUTS ---
var gross_total_income = getValue("gross_total_income"); var gross_total_income = getValue("gross_total_income");
var disallowance_14a = getValue("disallowance_14a"); var disallowance_14a = getValue("disallowance_14a");
var disallowance_37 = getValue("disallowance_37"); var disallowance_37 = getValue("disallowance_37");
// -- total gross income -- // -- total gross income --
var gross_total = gross_total_income + disallowance_37 + disallowance_14a var gross_total = gross_total_income + disallowance_37 + disallowance_14a;
setValue("gti_as_per_ao", gross_total);
// console.log("gross_total income:: " + gross_total) // console.log("gross_total income:: " + gross_total)
// --- DEDUCTIONS --- // --- DEDUCTIONS ---
@@ -27,6 +26,24 @@ document.addEventListener("DOMContentLoaded", function () {
var d80_other = getValue("deduction_80ia_other"); var d80_other = getValue("deduction_80ia_other");
var d80_sec37 = getValue("deduction_sec37_disallowance"); var d80_sec37 = getValue("deduction_sec37_disallowance");
// -- TAX A CALCULATIONS --
var per_a = getValue("per_a");
var tax_a = getValue("tax_a");
var per_surcharge_a = getValue("per_surcharge_a");
var surcharge_a = getValue("surcharge_a");
var per_cess_a = getValue("per_cess_a");
var edu_cess_a = getValue("edu_cess_a");
// -- TAX b CALCULATIONS --
var tax_book_profit = getValue("tax_book_profit");
console.log(tax_book_profit);
var per_surcharge_b = getValue("per_surcharge_b");
var surcharge_b = getValue("surcharge_b");
var per_cess_b = getValue("per_cess_b");
var edu_cess_b = getValue("edu_cess_b");
var deduction = d80_business + d80_misc + d80_other + d80_sec37 - 1.35; var deduction = d80_business + d80_misc + d80_other + d80_sec37 - 1.35;
var deduction_80g = getValue("deduction_80g"); var deduction_80g = getValue("deduction_80g");
@@ -35,15 +52,44 @@ document.addEventListener("DOMContentLoaded", function () {
var net_taxable_income = gross_total - deduction - deduction_80g; var net_taxable_income = gross_total - deduction - deduction_80g;
setValue("net_taxable_income", net_taxable_income); setValue("net_taxable_income", net_taxable_income);
// --- TAX 30% --- // --- TAX (A)% AMOUNT ---
var tax30 = net_taxable_income * 0.30; var tax_a = net_taxable_income * (per_a / 100);
setValue("tax_30_percent", tax30); setValue("tax_a", tax_a);
// --- SURCHARGE (A)% AMOUNT ---
var surcharge_a = tax_a * (per_surcharge_a / 100);
setValue("surcharge_a", surcharge_a);
// --- CESS (A)% AMOUNT ---
var edu_cess_a = (surcharge_a + tax_a) * (per_cess_a / 100);
setValue("edu_cess_a", edu_cess_a);
//SUM OF (A)%
var sum_of_a = tax_a + surcharge_a + edu_cess_a;
setValue("sum_of_a", sum_of_a);
//-----------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------
// --- SURCHARGE (B)% AMOUNT ---
var surcharge_b = tax_book_profit * (per_surcharge_b / 100);
setValue("surcharge_b", surcharge_b);
// --- CESS (B)% AMOUNT ---
var edu_cess_b = (surcharge_b + tax_book_profit) * (per_cess_b / 100);
setValue("edu_cess_b", edu_cess_b);
//SUM OF (B)%
var sum_of_b = tax_book_profit + surcharge_b + edu_cess_b;
setValue("sum_of_b", sum_of_b);
// --- TAX PAYABLE (18.5%) --- // --- TAX PAYABLE (18.5%) ---
var tax185 = getValue("tax_book_profit_18_5"); var tax185 = getValue("tax_book_profit_18_5");
// --- Education Cess 3% --- // --- Education Cess 3% ---
var tax_payable = (tax30 > tax185) ? tax30 : tax185; var tax_payable = tax_a > tax_book_profit ? tax_a : tax_book_profit;
setValue("tax_payable", tax_payable); setValue("tax_payable", tax_payable);
// --- SURCHARGE --- // --- SURCHARGE ---
@@ -57,7 +103,7 @@ document.addEventListener("DOMContentLoaded", function () {
setValue("edu_cess", edu_cess); setValue("edu_cess", edu_cess);
// --- total tax payable --- // --- total tax payable ---
var total_tax_payable = tax_payable + surcharge + edu_cess; var total_tax_payable = sum_of_a > sum_of_b ? sum_of_a : sum_of_b;
setValue("total_tax_payable", total_tax_payable); setValue("total_tax_payable", total_tax_payable);
// // --- mat_credit_created --- new // // --- mat_credit_created --- new
@@ -66,31 +112,28 @@ document.addEventListener("DOMContentLoaded", function () {
// setValue("mat_credit_utilized", Math.max(total_tax_payable - tax185, 0)); // setValue("mat_credit_utilized", Math.max(total_tax_payable - tax185, 0));
// --- MAT credit and utilized --- // --- MAT credit and utilized ---
var a = tax185 var a = sum_of_a;
var b = total_tax_payable var b = sum_of_b;
var result = 0 var result = 0;
if (a > b) { var zero = 0;
result = a - b if (b > a) {
setValue("mat_credit_created", result); result = a - b;
}
else {
setValue("mat_credit_created", result); setValue("mat_credit_created", result);
setValue("mat_credit_utilized", zero);
} }
if (b > a) { if (a > b) {
result = b - a result = b - a;
setValue("mat_credit_utilized", result);
}
else {
setValue("mat_credit_utilized", result); setValue("mat_credit_utilized", result);
setValue("mat_credit_created", zero);
} }
// --- FINAL TAX --- // --- FINAL TAX ---
var mat_credit = getValue("mat_credit_utilized"); var mat_credit_uti = getValue("mat_credit_utilized");
var interest_234c = getValue("interest_234c"); var interest_234c = getValue("interest_234c");
// var total_tax = total_tax_payable + mat_credit + interest_234c; // var total_tax = total_tax_payable + mat_credit + interest_234c;
var total_tax = total_tax_payable - mat_credit + interest_234c; var total_tax = total_tax_payable + interest_234c - mat_credit_uti;
setValue("total_tax", total_tax); setValue("total_tax", total_tax);
// --- ASSESSMENT --- // --- ASSESSMENT ---

View File

@@ -45,6 +45,14 @@ document.getElementById("year").addEventListener("change", function () {
// Show preview // Show preview
previewDiv.style.display = "block"; previewDiv.style.display = "block";
<<<<<<< HEAD
=======
>>>>>>> a8e47af61c86ea9e13f18c0133e8c687573bf392
}) })
.catch(err => console.error("Preview load error:", err)); .catch(err => console.error("Preview load error:", err));
}); });

View File

@@ -1,6 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block title %}Add New AO Record{% endblock %} {% block title %}Add New AO Record{% endblock %}
{% block extra_css %} {% block extra_css %}
<!-- Child page CSS --> <!-- Child page CSS -->
<link rel="stylesheet" href="{{ url_for('static', filename='css/add_model.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='css/add_model.css') }}">
@@ -8,8 +9,7 @@
{% block content %} {% block content %}
<div class="container"> <div class="container">
<h2 style="text-align:center;">New AO Form</h2>
<h2 style="text-align:center;">New Assessing Officer Form</h2>
<form id="ao" method="POST" enctype="multipart/form-data"> <form id="ao" method="POST" enctype="multipart/form-data">
<input type="hidden" name="stage" value="ao"> <input type="hidden" name="stage" value="ao">
<div class="form-group full-width inline-2"> <div class="form-group full-width inline-2">
@@ -27,7 +27,6 @@
<input type="date" name="created_at" value="{{ current_date }}" required> <input type="date" name="created_at" value="{{ current_date }}" required>
</div> </div>
</div> </div>
<div class="form-group full-width inline-2"> <div class="form-group full-width inline-2">
<div> <div>
<label>Gross Total Income:</label> <label>Gross Total Income:</label>
@@ -42,6 +41,12 @@
<input type="number" name="disallowance_37" step="any" value="0.00" oninput="calculate()" required> <input type="number" name="disallowance_37" step="any" value="0.00" oninput="calculate()" required>
</div> </div>
</div> </div>
<div class="form-group full-width inline-2">
<div>
<label>GTI as per AO</label>
<input type="number" name="gti_as_per_ao" class="auto" step="any" value="0.00" readonly>
</div>
</div>
<div class="form-group full-width inline-2"> <div class="form-group full-width inline-2">
<div> <div>
@@ -60,7 +65,6 @@
</div> </div>
<div class="form-group full-width inline-2"> <div class="form-group full-width inline-2">
<div> <div>
<label>Less :Deduction Sec 37 Disallowance:</label> <label>Less :Deduction Sec 37 Disallowance:</label>
<input type="number" name="deduction_sec37_disallowance" step="any" value="0.00" oninput="calculate()" <input type="number" name="deduction_sec37_disallowance" step="any" value="0.00" oninput="calculate()"
@@ -70,50 +74,92 @@
<label>Less: Deduction 80G: </label> <label>Less: Deduction 80G: </label>
<input type="number" name="deduction_80g" step="any" value="0.00" oninput="calculate()" required> <input type="number" name="deduction_80g" step="any" value="0.00" oninput="calculate()" required>
</div> </div>
</div>
<div class="form-group">
<label>Net Taxable Income:</label>
<input type="number" name="net_taxable_income" class="auto" step="any" value="0.00" readonly>
</div> </div>
<div class="form-group full-width inline-2"> <div class="form-group full-width inline-2">
<div> <div>
<label>Tax @ 30% (A):</label> <label>Net Taxable Income:</label>
<input type="number" name="tax_30_percent" step="any" value="0.00" oninput="calculate()" required> <input type="number" name="net_taxable_income" class="auto" step="any" value="0.00" readonly>
</div>
</div>
<div class="form-group full-width inline-2">
<div>
<label>Enter Percentage(%) calculate: Tax(A):</label>
<input type="number" name="per_a" step="any" value="0.00" oninput="calculate()">
</div> </div>
<div> <div>
<label>Tax @ 18.5% on Book Profit (B):</label> <label>Tax @(A):</label>
<input type="number" name="tax_book_profit_18_5" step="any" value="0.00" oninput="calculate()" required> <input type="number" name="tax_a" class="auto" step="any" value="0.00" oninput="calculate()"
readonly>
</div> </div>
<div>
<label>Enter Percentage(%) calculate: Tax(B): readonly</label>
<input type="number" name="per_b" step="any" value="0.00" placeholder="Field Currently Unavailable" oninput="calculate()">
</div>
<div>
<label>Tax @ on Book Profit(B):</label>
<input type="number" name="tax_book_profit" step="any" value="0.00" oninput="calculate()" required>
</div>
</div>
<div class="form-group full-width inline-2">
<div>
<label>Enter Percentage(%) Surcharge:Tax(A):</label>
<input type="number" name="per_surcharge_a" step="any" value="0.00" oninput="calculate()">
</div>
<div>
<label>Surcharge on Tax(A):</label>
<input type="number" name="surcharge_a" class="auto" value="0.00" readonly>
</div>
<div>
<label>Enter Percentage(%) Surcharge:Tax(B)</label>
<input type="number" name="per_surcharge_b" step="any" value="0.00" oninput="calculate()">
</div>
<div>
<label>Surcharge on Tax(B):</label>
<input type="number" name="surcharge_b" class="auto" value="0.00" readonly>
</div>
</div>
<div class="form-group full-width inline-2">
<div>
<label>Enter Percentage(%) Cess:Tax(A):</label>
<input type="number" name="per_cess_a" step="any" value="0.00" oninput="calculate()">
</div>
<div>
<label>Education Cess:Tax(A): </label>
<input type="number" name="edu_cess_a" class="auto" step="any" value="0.00" readonly>
</div>
<div>
<label>Enter Percentage(%) Cess:Tax(B):</label>
<input type="number" name="per_cess_b" step="any" value="0.00" oninput="calculate()">
</div>
<div>
<label>Education Cess:Tax(B): </label>
<input type="number" name="edu_cess_b" class="auto" step="any" value="0.00" readonly>
</div>
</div>
<div class="form-group full-width inline-2">
<div>
<label>Total cal Tax(A): </label>
<input type="number" name="sum_of_a" class="auto" step="any" value="0.00" readonly>
</div>
<div>
<label>Total cal Tax(B): </label>
<input type="number" name="sum_of_b" class="auto" step="any" value="0.00" readonly>
</div>
</div>
<div class="form-group full-width inline-2">
<div> <div>
<label>Tax Payable (Higher of A or B):</label> <label>Tax Payable (Higher of A or B):</label>
<input type="number" name="tax_payable" class="auto" step="any" value="0.00" readonly> <input type="number" name="tax_payable" class="auto" step="any" value="0.00" readonly>
</div> </div>
</div> </div>
<div class="form-group full-width inline-2">
<div>
<label>Enter Percentage (%) Surcharge:</label>
<input type="number" name="persentage" step="any" value="0.00" oninput="calculate()">
</div>
<div>
<label>Surcharge:</label>
<input type="number" name="surcharge" class="auto" value="0.00" readonly>
</div>
<div>
<label>Enter Percentage (%) Cess:</label>
<input type="number" name="persentage_cess" step="any" value="0.00" oninput="calculate()">
</div>
<div>
<label>Education Cess:</label>
<input type="number" name="edu_cess" class="auto" step="any" value="0.00" readonly>
</div>
</div>
<div class="form-group full-width inline-2"> <div class="form-group full-width inline-2">
<div> <div>
<label>Total tax Payable:</label> <label>Total tax Payable:</label>
@@ -134,10 +180,13 @@
<input type="number" name="interest_234c" step="any" value="0.00" oninput="calculate()" required> <input type="number" name="interest_234c" step="any" value="0.00" oninput="calculate()" required>
</div> </div>
</div> </div>
<div class="form-group">
<div class="form-group full-width inline-2">
<div>
<label>Total Tax:</label> <label>Total Tax:</label>
<input type="number" name="total_tax" step="any" class="auto" value="0.00" readonly> <input type="number" name="total_tax" step="any" class="auto" value="0.00" readonly>
</div> </div>
</div>
<div class="form-group full-width inline-2"> <div class="form-group full-width inline-2">
<div> <div>
@@ -162,11 +211,10 @@
</div> </div>
<div> <div>
<label>Tax on Regular Assessment:</label> <label>Tax on Regular Assessment:</label>
<input type="number" name="tax_on_assessment" step="any" value="0.00" oninput="calculate()" required> <input type="number" name="tax_on_assessment" step="any" value="0.00" oninput="calculate()">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Refund:</label> <label>Refund:</label>
<input type="number" name="refund" class="auto" step="any" value="0.00" readonly> <input type="number" name="refund" class="auto" step="any" value="0.00" readonly>
@@ -183,11 +231,9 @@
</div> </div>
</div> </div>
<button type="submit">Submit</button> <button type="submit">Submit</button>
</form> </form>
</div> </div>
{% endblock %} {% endblock %}
{% block extra_js %} {% block extra_js %}

View File

@@ -1,6 +1,13 @@
{% extends "base.html" %} {% block title %}Download Summary Report{% endblock %} {% extends "base.html" %} {% block title %}Download Summary Report{% endblock %}
{% block extra_css %} {% block extra_css %}
<<<<<<< HEAD
<link rel="stylesheet" href="{{ url_for('static', filename='css/summary.css') }}" /> <link rel="stylesheet" href="{{ url_for('static', filename='css/summary.css') }}" />
=======
<link
rel="stylesheet"
href="{{ url_for('static', filename='css/summary.css') }}"
/>
>>>>>>> a8e47af61c86ea9e13f18c0133e8c687573bf392
{% endblock %} {% block content %} {% endblock %} {% block content %}
<div class="container"> <div class="container">
<div class="head"> <div class="head">
@@ -31,4 +38,8 @@
</div> </div>
{% endblock %} {% block extra_js %} {% endblock %} {% block extra_js %}
<script src="{{ url_for('static', filename='js/summary_preview.js') }}"></script> <script src="{{ url_for('static', filename='js/summary_preview.js') }}"></script>
<<<<<<< HEAD
{% endblock %} {% endblock %}
=======
{% endblock %}
>>>>>>> a8e47af61c86ea9e13f18c0133e8c687573bf392