add itai model and irt report download code commit.
This commit is contained in:
@@ -1,5 +1,17 @@
|
||||
from AppCode.Config import DBConfig
|
||||
import mysql.connector
|
||||
from AppCode.YearGet import YearGet
|
||||
|
||||
import pandas as pd
|
||||
import pymysql
|
||||
import io
|
||||
|
||||
# new
|
||||
from AppCode.Config import DBConfig
|
||||
import mysql.connector
|
||||
import pandas as pd
|
||||
import io
|
||||
from flask import send_file, render_template, request
|
||||
|
||||
|
||||
|
||||
@@ -61,8 +73,24 @@ class ITRHandler:
|
||||
|
||||
|
||||
# UPDATE ITR RECORD by ITR id
|
||||
def update(self, id, data):
|
||||
# def update(self, id, data):
|
||||
# columns = [
|
||||
# 'year', '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'
|
||||
# ]
|
||||
|
||||
# values = [data.get(col, 0) for col in columns]
|
||||
# values.insert(0, id) # first argument is ID
|
||||
|
||||
# print("values.insert(0, id)-->",values.insert(0, id))
|
||||
# self.cursor.callproc("UpdateITR", values)
|
||||
# self.conn.commit()
|
||||
|
||||
def update(self, id, data):
|
||||
columns = [
|
||||
'year', 'gross_total_income', 'disallowance_14a', 'disallowance_37',
|
||||
'deduction_80ia_business', 'deduction_80ia_misc', 'deduction_80ia_other',
|
||||
@@ -72,14 +100,11 @@ class ITRHandler:
|
||||
'total_tax', 'advance_tax', 'tds', 'tcs', 'tax_on_assessment', 'refund'
|
||||
]
|
||||
|
||||
set_clause = ", ".join([f"{col}=%s" for col in columns])
|
||||
values = [id] + [data.get(col, 0) for col in columns]
|
||||
|
||||
query = f"UPDATE itr SET {set_clause} WHERE id = %s"
|
||||
print("Final values:", values)
|
||||
|
||||
values = [data.get(col, 0) for col in columns]
|
||||
values.append(id)
|
||||
|
||||
self.cursor.execute(query, tuple(values))
|
||||
self.cursor.callproc("UpdateITR", values)
|
||||
self.conn.commit()
|
||||
|
||||
|
||||
@@ -90,6 +115,51 @@ class ITRHandler:
|
||||
self.conn.commit()
|
||||
|
||||
|
||||
|
||||
|
||||
def itr_report_download(self, selected_year):
|
||||
|
||||
try:
|
||||
# Call stored procedure
|
||||
self.cursor.callproc("GetITRByYear", [selected_year])
|
||||
|
||||
rows = []
|
||||
for result in self.cursor.stored_results():
|
||||
rows = result.fetchall()
|
||||
|
||||
if not rows:
|
||||
return None
|
||||
|
||||
# Convert SQL rows to DataFrame
|
||||
df = pd.DataFrame(rows)
|
||||
|
||||
# Transpose
|
||||
df_transposed = df.transpose()
|
||||
df_transposed.insert(0, 'Field', df_transposed.index)
|
||||
|
||||
record_cols = {
|
||||
i: f"Record {i}"
|
||||
for i in df_transposed.columns if isinstance(i, int)
|
||||
}
|
||||
|
||||
df_transposed.rename(columns=record_cols, inplace=True)
|
||||
df_transposed.reset_index(drop=True, inplace=True)
|
||||
|
||||
# Save to Excel in memory
|
||||
output = io.BytesIO()
|
||||
with pd.ExcelWriter(output, engine='xlsxwriter') as writer:
|
||||
df_transposed.to_excel(writer, index=False, sheet_name='ITR_Vertical')
|
||||
worksheet = writer.sheets['ITR_Vertical']
|
||||
worksheet.set_column(0, 0, 30)
|
||||
|
||||
output.seek(0)
|
||||
return output
|
||||
|
||||
except mysql.connector.Error as e:
|
||||
print("MySQL Error →", e)
|
||||
return None
|
||||
|
||||
|
||||
# CLOSE CONNECTION
|
||||
def close(self):
|
||||
self.cursor.close()
|
||||
|
||||
Reference in New Issue
Block a user