ITR model update code
This commit is contained in:
127
templates/add_ao.html
Normal file
127
templates/add_ao.html
Normal file
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>AO Form Entry</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
<style>
|
||||
/* Reset and base styles */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: #f5f7fa;
|
||||
color: #333;
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 90%;
|
||||
max-width: 700px;
|
||||
margin: auto;
|
||||
background-color: #fff;
|
||||
padding: 40px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
h2 {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
font-size: 28px;
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 6px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
input[type="number"]:focus {
|
||||
border-color: #007BFF;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button[type="submit"] {
|
||||
margin-top: 30px;
|
||||
padding: 12px;
|
||||
background-color: #007BFF;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
button[type="submit"]:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.container {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
button[type="submit"] {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>AO Form Entry</h2>
|
||||
<form method="POST" onsubmit="return showSuccessMessage()">
|
||||
<label>Year:</label>
|
||||
<input type="number" name="year" required>
|
||||
{% for field in [
|
||||
"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"
|
||||
] %}
|
||||
<label for="{{ field }}">{{ field.replace("_", " ").title() }}:</label>
|
||||
<input type="number" name="{{ field }}" step="0.01" required>
|
||||
{% endfor %}
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- JavaScript Alert -->
|
||||
<script>
|
||||
function showSuccessMessage() {
|
||||
alert("Form submitted successfully!");
|
||||
return true; // allow form to submit after showing alert
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
124
templates/add_cit.html
Normal file
124
templates/add_cit.html
Normal file
@@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CIT Form Entry</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
<style>
|
||||
/* ...existing styles... (no changes needed) */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: #f5f7fa;
|
||||
color: #333;
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 90%;
|
||||
max-width: 700px;
|
||||
margin: auto;
|
||||
background-color: #fff;
|
||||
padding: 40px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
h2 {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
font-size: 28px;
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 6px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
input[type="number"]:focus {
|
||||
border-color: #007BFF;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button[type="submit"] {
|
||||
margin-top: 30px;
|
||||
padding: 12px;
|
||||
background-color: #007BFF;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button[type="submit"]:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.container {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
button[type="submit"] {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>CIT Form Entry</h2>
|
||||
<form method="POST">
|
||||
<label>Year:</label>
|
||||
<input type="number" name="year" required value="{{ record.year if record else '' }}">
|
||||
|
||||
{% for field in [
|
||||
"gross_total_income", "deduction_80ia_business", "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"
|
||||
] %}
|
||||
<label for="{{ field }}">{{ field.replace("_", " ").title() }}:</label>
|
||||
<input type="number" name="{{ field }}" step="0.01" required value="{{ record[field] if record else '' }}">
|
||||
{% endfor %}
|
||||
<button type="submit">{{ 'Update' if record else 'Submit' }}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function showSuccessMessage() {
|
||||
alert("Form submitted successfully!");
|
||||
return true; // continue with form submission
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
126
templates/add_itat.html
Normal file
126
templates/add_itat.html
Normal file
@@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>ITAT Form Entry</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
<style>
|
||||
/* Same styling for layout */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: #f5f7fa;
|
||||
color: #333;
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 90%;
|
||||
max-width: 700px;
|
||||
margin: auto;
|
||||
background-color: #fff;
|
||||
padding: 40px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
h2 {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
font-size: 28px;
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 6px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
input[type="number"]:focus {
|
||||
border-color: #007BFF;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button[type="submit"] {
|
||||
margin-top: 30px;
|
||||
padding: 12px;
|
||||
background-color: #007BFF;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button[type="submit"]:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.container {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
button[type="submit"] {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>ITAT Form Entry</h2>
|
||||
<form method="POST" onsubmit="return showSuccessMessage()">
|
||||
<label>Year:</label>
|
||||
<input type="number" name="year" step="0.01" required>
|
||||
|
||||
<label>MAT Tax Credit:</label>
|
||||
<input type="number" name="mat_tax_credit" step="0.01" required>
|
||||
|
||||
<label>Surcharge:</label>
|
||||
<input type="number" name="surcharge" step="0.01" required>
|
||||
|
||||
<label>Cess:</label>
|
||||
<input type="number" name="cess" step="0.01" required>
|
||||
|
||||
<label>Total Credit:</label>
|
||||
<input type="number" name="total_credit" step="0.01" required>
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function showSuccessMessage() {
|
||||
alert("Form submitted successfully!");
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,19 +1,133 @@
|
||||
<div class="container">
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Add New Income Tax Return Record</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
||||
background: #eef2f7;
|
||||
margin: 0;
|
||||
padding: 40px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 900px;
|
||||
margin: auto;
|
||||
background: #fff;
|
||||
padding: 40px 50px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 6px 25px rgba(0, 0, 0, 0.1);
|
||||
transition: box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
.container:hover {
|
||||
box-shadow: 0 10px 35px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
h2 {
|
||||
text-align: center;
|
||||
margin-bottom: 35px;
|
||||
font-size: 30px;
|
||||
color: #2c3e50;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
form {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 20px 30px;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px;
|
||||
color: #555;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #ccd1d9;
|
||||
border-radius: 6px;
|
||||
font-size: 15px;
|
||||
background-color: #fafafa;
|
||||
transition: all 0.25s ease-in-out;
|
||||
}
|
||||
|
||||
input[type="number"]:focus {
|
||||
border-color: #007BFF;
|
||||
background: #fff;
|
||||
box-shadow: 0 0 8px rgba(0, 123, 255, 0.25);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button[type="submit"] {
|
||||
grid-column: span 2;
|
||||
margin-top: 25px;
|
||||
padding: 15px;
|
||||
background: linear-gradient(135deg, #007BFF, #0056b3);
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
color: #fff;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: transform 0.2s, background 0.3s;
|
||||
}
|
||||
|
||||
button[type="submit"]:hover {
|
||||
background: linear-gradient(135deg, #0056b3, #00408f);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 768px) {
|
||||
form {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>Add New Income Tax Return Record</h2>
|
||||
<form method="POST" action="{{ url_for('add_itr') }}">
|
||||
<div class="form-group">
|
||||
<label>Year:</label>
|
||||
<input type="number" name="year" required>
|
||||
{% for field in [
|
||||
"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"
|
||||
] %}
|
||||
<label>{{ field.replace("_", " ").title() }}:</label>
|
||||
<input type="number" name="{{ field }}" step="any" value="0.00" required>
|
||||
{% endfor %}
|
||||
<button type="submit">Submit</button>
|
||||
</div>
|
||||
|
||||
{% for field in [
|
||||
"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"
|
||||
] %}
|
||||
<div class="form-group">
|
||||
<label>{{ field.replace("_", " ").title() }}:</label>
|
||||
<input type="number" name="{{ field }}" step="any" value="0.00" required>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
78
templates/display_ao.html
Normal file
78
templates/display_ao.html
Normal file
@@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>AO Records</title>
|
||||
<style>
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background-color: #f8f9fa; padding: 20px; color: #333; }
|
||||
.container { max-width: 95%; margin: auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
|
||||
h2 { text-align: center; margin-bottom: 20px; }
|
||||
.btn { padding: 8px 15px; border-radius: 5px; text-decoration: none; color: white; border: none; cursor: pointer; font-size: 14px; }
|
||||
.btn-add { background-color: #28a745; display: inline-block; margin-bottom: 20px; }
|
||||
.btn-update { background-color: #007bff; }
|
||||
.btn-delete { background-color: #dc3545; }
|
||||
.action-cell form { display: inline-block; margin-left: 5px; }
|
||||
.table-wrapper { overflow-x: auto; }
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
|
||||
th, td { padding: 12px; border: 1px solid #dee2e6; text-align: right; white-space: nowrap; }
|
||||
th { background-color: #343a40; color: white; text-align: center; }
|
||||
tr:nth-child(even) { background-color: #f2f2f2; }
|
||||
td:first-child, th:first-child { text-align: left; }
|
||||
.alert { padding: 10px 15px; margin-bottom: 20px; border-radius: 5px; }
|
||||
.alert-success { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
|
||||
.alert-danger { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>Assessing Officer Records 👨💼</h2>
|
||||
|
||||
<!-- Flash Messages -->
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
{% if messages %}
|
||||
{% for category, message in messages %}
|
||||
<div class="alert alert-{{ category }}">{{ message }}</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
<a href="{{ url_for('add_ao') }}" class="btn btn-add">➕ Add AO Record</a>
|
||||
|
||||
{% if ao_records %}
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Year</th>
|
||||
<th>Gross Total Income</th>
|
||||
<th>Net Taxable Income</th>
|
||||
<th>Total Tax</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ao in ao_records %}
|
||||
<tr>
|
||||
<td>{{ ao.id }}</td>
|
||||
<td>{{ ao.year }}</td>
|
||||
<td>{{ ao.gross_total_income }}</td>
|
||||
<td>{{ ao.net_taxable_income }}</td>
|
||||
<td>{{ ao.total_tax }}</td>
|
||||
<td class="action-cell">
|
||||
<a href="{{ url_for('update_ao', id=ao.id) }}" class="btn btn-update">Edit</a>
|
||||
<form action="{{ url_for('delete_ao', id=ao.id) }}" method="POST" style="display:inline;">
|
||||
<button type="submit" class="btn btn-delete" onclick="return confirm('Are you sure you want to delete this AO?');">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p style="text-align: center; margin-top: 20px;">No AO records found. Add one above!</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
66
templates/display_cit.html
Normal file
66
templates/display_cit.html
Normal file
@@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>CIT Records</title>
|
||||
<style>
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background-color: #f8f9fa; padding: 20px; color: #333; }
|
||||
.container { max-width: 95%; margin: auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
|
||||
h2 { text-align: center; margin-bottom: 20px; }
|
||||
.btn { padding: 8px 15px; border-radius: 5px; text-decoration: none; color: white; border: none; cursor: pointer; font-size: 14px; }
|
||||
.btn-add { background-color: #28a745; display: inline-block; margin-bottom: 20px; }
|
||||
.btn-update { background-color: #007bff; }
|
||||
.btn-delete { background-color: #dc3545; }
|
||||
.action-cell form { display: inline-block; margin-left: 5px; }
|
||||
.table-wrapper { overflow-x: auto; }
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
|
||||
th, td { padding: 12px; border: 1px solid #dee2e6; text-align: right; white-space: nowrap; }
|
||||
th { background-color: #343a40; color: white; text-align: center; }
|
||||
tr:nth-child(even) { background-color: #f2f2f2; }
|
||||
td:first-child, th:first-child { text-align: left; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>CIT Records 🧾</h2>
|
||||
<a href="{{ url_for('add_cit') }}" class="btn btn-add">➕ Add New Record</a>
|
||||
|
||||
{% if cit_records %}
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Year</th>
|
||||
<th>Gross Total Income</th>
|
||||
<th>Net Taxable Income</th>
|
||||
<th>Total Tax Payable</th>
|
||||
<th>Refund</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for record in cit_records %}
|
||||
<tr>
|
||||
<td>{{ record.year }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.gross_total_income) }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.net_taxable_income) }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.total_tax_payable) }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.refund) }}</td>
|
||||
<td class="action-cell">
|
||||
<a href="{{ url_for('update_cit', id=record.id) }}" class="btn btn-update">Edit</a>
|
||||
|
||||
<form action="{{ url_for('delete_cit', id=record.id) }}" method="post" onsubmit="return confirm('Are you sure you want to delete this record?');">
|
||||
<button type="submit" class="btn btn-delete">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p style="text-align: center; margin-top: 20px;">No records found. Click the button above to add one!</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
75
templates/display_itat.html
Normal file
75
templates/display_itat.html
Normal file
@@ -0,0 +1,75 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>ITAT Records</title>
|
||||
<style>
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background-color: #f8f9fa; padding: 20px; color: #333; }
|
||||
.container { max-width: 95%; margin: auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
|
||||
h2 { text-align: center; margin-bottom: 20px; }
|
||||
.btn { padding: 8px 15px; border-radius: 5px; text-decoration: none; color: white; border: none; cursor: pointer; font-size: 14px; }
|
||||
.btn-add { background-color: #28a745; display: inline-block; margin-bottom: 20px; }
|
||||
.btn-update { background-color: #007bff; }
|
||||
.btn-delete { background-color: #dc3545; }
|
||||
.action-cell form { display: inline-block; margin-left: 5px; }
|
||||
.table-wrapper { overflow-x: auto; }
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
|
||||
th, td { padding: 12px; border: 1px solid #dee2e6; text-align: right; white-space: nowrap; }
|
||||
th { background-color: #343a40; color: white; text-align: center; }
|
||||
tr:nth-child(even) { background-color: #f2f2f2; }
|
||||
td:first-child, th:first-child { text-align: left; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>ITAT Records 📄</h2>
|
||||
<a href="{{ url_for('add_itat') }}" class="btn btn-add">➕ Add New Record</a>
|
||||
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
{% if messages %}
|
||||
{% for category, message in messages %}
|
||||
<div class="alert alert-{{ category }}">{{ message }}</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
{% if records %}
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Year</th>
|
||||
<th>MAT Tax Credit</th>
|
||||
<th>Surcharge</th>
|
||||
<th>Cess</th>
|
||||
<th>Total Credit</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for record in records %}
|
||||
<tr>
|
||||
<td>{{ record.year }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.mat_tax_credit) }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.surcharge) }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.cess) }}</td>
|
||||
<td>{{ "{:,.2f}".format(record.total_credit) }}</td>
|
||||
<td class="action-cell">
|
||||
<a href="{{ url_for('update_itat', id=record.id) }}" class="btn btn-update">Edit</a>
|
||||
|
||||
|
||||
<form action="{{ url_for('delete_itat', id=record.id) }}" method="post" onsubmit="return confirm('Are you sure you want to delete this record?');">
|
||||
<button type="submit" class="btn btn-delete">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p style="text-align: center; margin-top: 20px;">No ITAT records found. Click the button above to add one!</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -4,247 +4,245 @@
|
||||
|
||||
<head>
|
||||
|
||||
<title>ITR Form Entry</title>
|
||||
<title>ITR Form Entry</title>
|
||||
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
|
||||
<style>
|
||||
<style>
|
||||
/* Existing CSS here... */
|
||||
|
||||
/* Existing CSS here... */
|
||||
* {
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background-color: #f5f7fa;
|
||||
|
||||
background-color: #f5f7fa;
|
||||
color: #333;
|
||||
|
||||
color: #333;
|
||||
padding: 30px 0;
|
||||
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
.container {
|
||||
|
||||
.container {
|
||||
width: 90%;
|
||||
|
||||
width: 90%;
|
||||
max-width: 700px;
|
||||
|
||||
max-width: 700px;
|
||||
margin: auto;
|
||||
|
||||
margin: auto;
|
||||
background-color: #fff;
|
||||
|
||||
background-color: #fff;
|
||||
padding: 40px;
|
||||
|
||||
padding: 40px;
|
||||
border-radius: 12px;
|
||||
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
|
||||
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
h2 {
|
||||
|
||||
h2 {
|
||||
text-align: center;
|
||||
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
|
||||
margin-bottom: 30px;
|
||||
font-size: 28px;
|
||||
|
||||
font-size: 28px;
|
||||
color: #2c3e50;
|
||||
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
form {
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
label {
|
||||
|
||||
label {
|
||||
margin-top: 15px;
|
||||
|
||||
margin-top: 15px;
|
||||
margin-bottom: 6px;
|
||||
|
||||
margin-bottom: 6px;
|
||||
font-weight: 600;
|
||||
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
input[type="number"] {
|
||||
|
||||
input[type="number"] {
|
||||
padding: 10px 12px;
|
||||
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #ccc;
|
||||
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 6px;
|
||||
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
|
||||
font-size: 16px;
|
||||
transition: border-color 0.3s ease;
|
||||
|
||||
transition: border-color 0.3s ease;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
input[type="number"]:focus {
|
||||
|
||||
input[type="number"]:focus {
|
||||
border-color: #007BFF;
|
||||
|
||||
border-color: #007BFF;
|
||||
outline: none;
|
||||
|
||||
outline: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
button[type="submit"] {
|
||||
|
||||
button[type="submit"] {
|
||||
margin-top: 30px;
|
||||
|
||||
margin-top: 30px;
|
||||
padding: 12px;
|
||||
|
||||
padding: 12px;
|
||||
background-color: #007BFF;
|
||||
|
||||
background-color: #007BFF;
|
||||
border: none;
|
||||
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
|
||||
border-radius: 6px;
|
||||
color: white;
|
||||
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease;
|
||||
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
button[type="submit"]:hover {
|
||||
|
||||
button[type="submit"]:hover {
|
||||
background-color: #0056b3;
|
||||
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 600px) {
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.container {
|
||||
|
||||
.container {
|
||||
padding: 20px;
|
||||
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
h2 {
|
||||
|
||||
h2 {
|
||||
font-size: 22px;
|
||||
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
input[type="number"] {
|
||||
|
||||
input[type="number"] {
|
||||
font-size: 15px;
|
||||
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
button[type="submit"] {
|
||||
|
||||
button[type="submit"] {
|
||||
font-size: 16px;
|
||||
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<div class="container">
|
||||
|
||||
<h2>Income Tax Return Form</h2>
|
||||
<h2>Income Tax Return Form</h2>
|
||||
|
||||
<form method="POST" onsubmit="showSuccessMessage()">
|
||||
<form method="POST" onsubmit="showSuccessMessage()">
|
||||
|
||||
<label>Year:</label>
|
||||
<label>Year:</label>
|
||||
|
||||
<input type="number" name="year" required>
|
||||
<input type="number" name="year" required>
|
||||
|
||||
|
||||
|
||||
{% for field in [
|
||||
{% for field in [
|
||||
|
||||
"gross_total_income", "disallowance_14a", "disallowance_37",
|
||||
"gross_total_income", "disallowance_14a", "disallowance_37",
|
||||
|
||||
"deduction_80ia_business", "deduction_80ia_misc", "deduction_80ia_other",
|
||||
"deduction_80ia_business", "deduction_80ia_misc", "deduction_80ia_other",
|
||||
|
||||
"deduction_sec37_disallowance", "deduction_80g", "net_taxable_income",
|
||||
"deduction_sec37_disallowance", "deduction_80g", "net_taxable_income",
|
||||
|
||||
"tax_30_percent", "tax_book_profit_18_5", "tax_payable", "surcharge_12",
|
||||
"tax_30_percent", "tax_book_profit_18_5", "tax_payable", "surcharge_12",
|
||||
|
||||
"edu_cess_3", "total_tax_payable", "mat_credit", "interest_234c",
|
||||
"edu_cess_3", "total_tax_payable", "mat_credit", "interest_234c",
|
||||
|
||||
"total_tax", "advance_tax", "tds", "tcs", "tax_on_assessment", "refund"
|
||||
"total_tax", "advance_tax", "tds", "tcs", "tax_on_assessment", "refund"
|
||||
|
||||
] %}
|
||||
] %}
|
||||
|
||||
<label>{{ field.replace("_", " ").title() }}:</label>
|
||||
<label>{{ field.replace("_", " ").title() }}:</label>
|
||||
|
||||
<input type="number" name="{{ field }}" step="0.01" required>
|
||||
<input type="number" name="{{ field }}" step="0.01" required>
|
||||
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
<button type="submit">Submit</button>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- JavaScript to show popup -->
|
||||
<!-- JavaScript to show popup -->
|
||||
|
||||
<script>
|
||||
<script>
|
||||
|
||||
function showSuccessMessage() {
|
||||
function showSuccessMessage() {
|
||||
|
||||
alert("Form submitted successfully!");
|
||||
alert("Form submitted successfully!");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
30
templates/update_ao.html
Normal file
30
templates/update_ao.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Update AO Record</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
<style>
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background-color: #f8f9fa; padding: 20px; color: #333; }
|
||||
.container { max-width: 600px; margin: auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
|
||||
h2 { text-align: center; margin-bottom: 20px; }
|
||||
label { display: block; margin-top: 10px; font-weight: bold; }
|
||||
input { width: 100%; padding: 8px; margin-top: 5px; border-radius: 5px; border: 1px solid #ccc; }
|
||||
button { margin-top: 20px; padding: 10px 15px; border: none; border-radius: 5px; background-color: #007bff; color: white; cursor: pointer; font-size: 16px; }
|
||||
button:hover { background-color: #0056b3; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>Update AO Record for Year {{ record.year }}</h2>
|
||||
<form method="POST" action="{{ url_for('update_ao', id=record.id) }}">
|
||||
{% for field in record.keys() if field != 'id' %}
|
||||
<label>{{ field.replace("_", " ").title() }}:</label>
|
||||
<input type="number" step="any" name="{{ field }}" value="{{ record[field] }}" required>
|
||||
{% endfor %}
|
||||
<button type="submit">Update Record</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
29
templates/update_cit.html
Normal file
29
templates/update_cit.html
Normal file
@@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Update CIT Record</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
<style>
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background-color: #f8f9fa; padding: 20px; color: #333; }
|
||||
.container { max-width: 700px; margin: auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
|
||||
h2 { text-align: center; margin-bottom: 20px; }
|
||||
label { display: block; margin-top: 15px; font-weight: bold; }
|
||||
input[type="number"] { width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #ccc; border-radius: 5px; }
|
||||
button[type="submit"] { margin-top: 20px; padding: 12px 20px; background-color: #007bff; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; }
|
||||
button[type="submit"]:hover { background-color: #0056b3; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>Update CIT Record for Year {{ record.year }}</h2>
|
||||
<form method="POST" action="{{ url_for('update_cit', id=record.id) }}">
|
||||
{% for field in record.keys() if field != 'id' %}
|
||||
<label>{{ field.replace("_", " ").title() }}:</label>
|
||||
<input type="number" name="{{ field }}" step="0.01" value="{{ record[field] }}" required>
|
||||
{% endfor %}
|
||||
<button type="submit">Update Record</button>
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
30
templates/update_itat.html
Normal file
30
templates/update_itat.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Update ITAT Record</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='index.css') }}">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>Update ITAT Record for Year {{ record.year }}</h2>
|
||||
<form method="POST" action="{{ url_for('update_itat', id=record.id) }}">
|
||||
<label>Year:</label>
|
||||
<input type="number" name="year" step="1" value="{{ record.year }}" required>
|
||||
|
||||
<label>MAT Tax Credit:</label>
|
||||
<input type="number" name="mat_tax_credit" step="0.01" value="{{ record.mat_tax_credit }}" required>
|
||||
|
||||
<label>Surcharge:</label>
|
||||
<input type="number" name="surcharge" step="0.01" value="{{ record.surcharge }}" required>
|
||||
|
||||
<label>Cess:</label>
|
||||
<input type="number" name="cess" step="0.01" value="{{ record.cess }}" required>
|
||||
|
||||
<label>Total Credit:</label>
|
||||
<input type="number" name="total_credit" step="0.01" value="{{ record.total_credit }}" required>
|
||||
|
||||
<button type="submit">Update Record</button>
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,5 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>View Documents</title>
|
||||
<style>
|
||||
@@ -72,7 +73,8 @@
|
||||
color: white;
|
||||
}
|
||||
|
||||
th, td {
|
||||
th,
|
||||
td {
|
||||
padding: 12px 15px;
|
||||
border: 1px solid #ddd;
|
||||
text-align: center;
|
||||
@@ -108,6 +110,7 @@
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<h2>Document Records</h2>
|
||||
@@ -154,11 +157,13 @@
|
||||
<td>{{ doc.year }}</td>
|
||||
<td>{{ doc.uploaded_at }}</td>
|
||||
<td><a href="{{ url_for('uploaded_file', filename=doc.filename) }}?mode=download">Download</a></td>
|
||||
<td><a href="{{ url_for('uploaded_file', filename=doc.filename) }}?mode=view" target="_blank">View</a></td>
|
||||
<td><a href="{{ url_for('uploaded_file', filename=doc.filename) }}?mode=view"
|
||||
target="_blank">View</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user