optimize and add new service of get report and download report.

This commit is contained in:
2026-04-03 12:10:47 +05:30
parent 0b72adef7d
commit 73cd97f3c8
27 changed files with 1416 additions and 1292 deletions

View File

@@ -1,4 +1,6 @@
import config
import mysql.connector
# ------------------- Helper Functions -------------------
def clear_results(cursor):
@@ -69,7 +71,22 @@ def get_all_villages():
def insert_invoice(data, village_id):
def operation(cursor):
# Insert invoice
cursor.callproc('InsertInvoice', [
# cursor.callproc('InsertInvoice', [
# data.get('pmc_no'),
# village_id,
# data.get('work_type'),
# data.get('invoice_details'),
# data.get('invoice_date'),
# data.get('invoice_no'),
# *get_numeric_values(data),
# data.get('subcontractor_id')
# ])
# invoice_row = fetch_one(cursor)
# if not invoice_row:
# raise Exception("Invoice ID not returned")
# invoice_id = invoice_row.get('invoice_id')
cursor.callproc('SaveInvoice', [
data.get('pmc_no'),
village_id,
data.get('work_type'),
@@ -77,14 +94,27 @@ def insert_invoice(data, village_id):
data.get('invoice_date'),
data.get('invoice_no'),
*get_numeric_values(data),
data.get('subcontractor_id')
data.get('subcontractor_id'),
0
])
invoice_row = fetch_one(cursor)
if not invoice_row:
raise Exception("Invoice ID not returned")
invoice_id = invoice_row.get('invoice_id')
invoice_id = None
for result in cursor.stored_results():
row = result.fetchone()
if row:
invoice_id = row['invoice_id']
# # Insert inpayment
# cursor.callproc('InsertInpayment', [
# data.get('pmc_no'),
# village_id,
# data.get('work_type'),
# data.get('invoice_details'),
# data.get('invoice_date'),
# data.get('invoice_no'),
# *get_numeric_values(data),
# data.get('subcontractor_id')
# ])
# clear_results(cursor)
return invoice_id
return execute_db_operation(operation)
@@ -129,6 +159,18 @@ def update_invoice(data, invoice_id):
clear_results(cursor)
execute_db_operation(operation)
# def update_inpayment(data):
# def operation(cursor):
# cursor.callproc('UpdateInpayment', [
# data.get('work_type'),
# data.get('invoice_details'),
# data.get('invoice_date'),
# *get_numeric_values(data),
# data.get('pmc_no'),
# data.get('invoice_no')
# ])
# clear_results(cursor)
# execute_db_operation(operation)
def delete_invoice_data(invoice_id, user_id):
def operation(cursor):
@@ -140,24 +182,31 @@ def delete_invoice_data(invoice_id, user_id):
if not record:
raise Exception("Invoice not found")
# Use exact DB keys
pmc_no = record['PMC_No']
invoice_no = record['Invoice_No']
# Delete invoice
cursor.callproc("DeleteInvoice", (invoice_id,))
clear_results(cursor)
# Delete inpayment
# cursor.callproc('DeleteInpaymentByPMCInvoice', (pmc_no, invoice_no))
# clear_results(cursor)
execute_db_operation(operation)
# ------------------- Subcontractor Functions -------------------
def assign_subcontractor(data, village_id):
def operation(cursor):
cursor.callproc('AssignSubcontractor', [
data.get('pmc_no'),
data.get('subcontractor_id'),
village_id
])
clear_results(cursor)
execute_db_operation(operation)
# def assign_subcontractor(data, village_id):
# def operation(cursor):
# cursor.callproc('AssignSubcontractor', [
# data.get('pmc_no'),
# data.get('subcontractor_id'),
# village_id
# ])
# clear_results(cursor)
# execute_db_operation(operation)
# ------------------- Hold Types Functions -------------------