add itai model and irt report download code commit.

This commit is contained in:
2025-12-01 17:45:16 +05:30
parent aa063b7a80
commit 7cf8287b34
13 changed files with 503 additions and 235 deletions

120
test.py
View File

@@ -101,3 +101,123 @@ class DocumentHandler:
# return redirect(url_for('view_documents'))
#return render_template('upload.html')
# old itr report code
@app.route('/itr_report', methods=['GET'])
def itr_report():
yearGetter = YearGet()
connection = pymysql.connect(**db_config)
try:
selected_year = request.args.get('year')
if selected_year:
# Fetch ITR data for the selected year
query = "SELECT * FROM itr WHERE year = %s"
df = pd.read_sql(query, connection, params=[selected_year])
if df.empty:
return "No records found for the selected year."
# Transpose DataFrame: vertical fields, horizontal records
df_transposed = df.transpose()
df_transposed.insert(0, 'Field', df_transposed.index)
# Rename columns as Record 1, Record 2, etc.
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)
output = io.BytesIO()
with pd.ExcelWriter(output, engine='xlsxwriter') as writer:
df_transposed.to_excel(writer, index=False, sheet_name='ITR_Vertical')
# Format for better readability (optional)
workbook = writer.book
worksheet = writer.sheets['ITR_Vertical']
worksheet.set_column(0, 0, 30) # Field column wider
output.seek(0)
return send_file(
output,
mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
as_attachment=True,
download_name=f"ITR_Report_{selected_year}.xlsx"
)
else:
# Render dropdown form with available years
with connection.cursor() as cursor:
cursor.execute("SELECT DISTINCT year FROM itr ORDER BY year DESC")
years = [row[0] for row in cursor.fetchall()]
return render_template("itr_reports.html", years=years)
finally:
connection.close()
# --------------\
@app.route('/itr_report', methods=['GET'])
def itr_report():
yearGetter = YearGet()
selected_year = request.args.get('year')
if selected_year:
# Fetch ITR data for the selected year
query = "SELECT * FROM itr WHERE year = %s"
df = pd.read_sql(query, connection, params=[selected_year])
if df.empty:
return "No records found for the selected year."
# Transpose DataFrame: vertical fields, horizontal records
df_transposed = df.transpose()
df_transposed.insert(0, 'Field', df_transposed.index)
# Rename columns as Record 1, Record 2, etc.
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)
output = io.BytesIO()
with pd.ExcelWriter(output, engine='xlsxwriter') as writer:
df_transposed.to_excel(writer, index=False, sheet_name='ITR_Vertical')
# Format for better readability (optional)
workbook = writer.book
worksheet = writer.sheets['ITR_Vertical']
worksheet.set_column(0, 0, 30) # Field column wider
output.seek(0)
return send_file(
output,
mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
as_attachment=True,
download_name=f"ITR_Report_{selected_year}.xlsx"
)
else:
# Render dropdown form with available years
with connection.cursor() as cursor:
# cursor.execute("SELECT DISTINCT year FROM itr ORDER BY year DESC")
# years = [row[0] for row in cursor.fetchall()]
years = yearGetter.get_year_by_model("GetITRYears")
yearGetter.close()
print("---- year --",years)
return render_template("itr_reports.html", years=years)