Recovered lost local code

This commit is contained in:
2026-03-23 12:31:04 +05:30
parent d1dca531c3
commit 1821f04fe0
501 changed files with 1668 additions and 1842 deletions

View File

@@ -1,140 +1,131 @@
from model.Utilities import ItemCRUDType
from model.ItemCRUD import ItemCRUD
# model/Subcontractor.py
import config
from model.Log import LogHelper
from mysql.connector import Error
class Subcontractor:
def __init__(self):
self.isSuccess = False
self.resultMessage = ""
# ----------------------------------------------------------
# ADD
# ----------------------------------------------------------
def AddSubcontractor(self, request):
@staticmethod
def get_connection():
return config.get_db_connection()
subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor)
@staticmethod
def get_all_subcontractors():
connection = Subcontractor.get_connection()
subcontractors = []
if not connection:
return None, "Database connection failed"
try:
cursor = connection.cursor()
cursor.callproc('GetAllSubcontractors')
for result in cursor.stored_results():
subcontractors = result.fetchall()
except Error as e:
print(f"Error fetching subcontractors: {e}")
return None, str(e)
finally:
cursor.close()
connection.close()
return subcontractors, None
data = {
"Contractor_Name": request.form.get('Contractor_Name', '').strip(),
"Address": request.form.get('Address', '').strip(),
"Mobile_No": request.form.get('Mobile_No', '').strip(),
"PAN_No": request.form.get('PAN_No', '').strip(),
"Email": request.form.get('Email', '').strip(),
"Gender": request.form.get('Gender', '').strip(),
"GST_Registration_Type": request.form.get('GST_Registration_Type', '').strip(),
"GST_No": request.form.get('GST_No', '').strip(),
"Contractor_password": request.form.get('Contractor_password', '').strip()
}
@staticmethod
def get_subcontractor_by_id(id):
connection = Subcontractor.get_connection()
subcontractor = None
if not connection:
return None, "Database connection failed"
try:
cursor = connection.cursor()
cursor.callproc("GetSubcontractorById", (id,))
for result in cursor.stored_results():
subcontractor = result.fetchone()
except Error as e:
print(f"Error fetching subcontractor: {e}")
return None, str(e)
finally:
cursor.close()
connection.close()
return subcontractor, None
subcontractor.AddItem(
request=request,
data=data,
storedprocfetch="GetSubcontractorByName",
storedprocadd="SaveContractor"
)
@staticmethod
def save_subcontractor(data):
connection = Subcontractor.get_connection()
if not connection:
return "Database connection failed"
try:
cursor = connection.cursor()
cursor.callproc('SaveContractor', (
data['Contractor_Name'],
data['Address'],
data['Mobile_No'],
data['PAN_No'],
data['Email'],
data['Gender'],
data['GST_Registration_Type'],
data['GST_No'],
data['Contractor_password']
))
connection.commit()
# Active log
LogHelper.log_action("Add Subcontractor", f"Added subcontractor '{data['Contractor_Name']}'")
except Error as e:
print(f"Error inserting subcontractor: {e}")
return str(e)
finally:
cursor.close()
connection.close()
return None
self.isSuccess = subcontractor.isSuccess
self.resultMessage = subcontractor.resultMessage
return
@staticmethod
def update_subcontractor(id, data):
connection = Subcontractor.get_connection()
if not connection:
return "Database connection failed"
try:
cursor = connection.cursor()
cursor.callproc('UpdateSubcontractor', (
id,
data['Contractor_Name'],
data['Address'],
data['Mobile_No'],
data['PAN_No'],
data['Email'],
data['Gender'],
data['GST_Registration_Type'],
data['GST_No'],
data['Contractor_password']
))
connection.commit()
# Active log
LogHelper.log_action("Edit Subcontractor", f"Edited subcontractor '{id}'")
except Error as e:
print(f"Error updating subcontractor: {e}")
return str(e)
finally:
cursor.close()
connection.close()
return None
# ----------------------------------------------------------
# GET ALL
# ----------------------------------------------------------
def GetAllSubcontractors(self, request):
subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor)
data = subcontractor.GetAllData(
request=request,
storedproc="GetAllSubcontractors"
)
self.isSuccess = subcontractor.isSuccess
self.resultMessage = subcontractor.resultMessage
return data
# ----------------------------------------------------------
# GET BY ID
# ----------------------------------------------------------
def GetSubcontractorByID(self, id):
subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor)
data = subcontractor.GetDataByID(
id=id,
storedproc="GetSubcontractorById"
)
if data:
self.isSuccess = True
else:
self.isSuccess = False
self.resultMessage = "Subcontractor not found"
return data
# ----------------------------------------------------------
# CHECK (Duplicate)
# ----------------------------------------------------------
def CheckSubcontractor(self, request):
subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor)
name = request.form.get('Contractor_Name', '').strip()
result = subcontractor.CheckItem(
request=request,
childname=name,
storedprocfetch="GetSubcontractorByName"
)
self.isSuccess = subcontractor.isSuccess
self.resultMessage = subcontractor.resultMessage
return result
# ----------------------------------------------------------
# EDIT
# ----------------------------------------------------------
def EditSubcontractor(self, request, subcontractor_id):
subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor)
data = {
"Contractor_Name": request.form.get('Contractor_Name', '').strip(),
"Address": request.form.get('Address', '').strip(),
"Mobile_No": request.form.get('Mobile_No', '').strip(),
"PAN_No": request.form.get('PAN_No', '').strip(),
"Email": request.form.get('Email', '').strip(),
"Gender": request.form.get('Gender', '').strip(),
"GST_Registration_Type": request.form.get('GST_Registration_Type', '').strip(),
"GST_No": request.form.get('GST_No', '').strip(),
"Contractor_password": request.form.get('Contractor_password', '').strip()
}
subcontractor.EditItem(
request=request,
childid=subcontractor_id,
data=data,
storedprocupdate="UpdateSubcontractor"
)
self.isSuccess = subcontractor.isSuccess
self.resultMessage = subcontractor.resultMessage
return
# ----------------------------------------------------------
# DELETE
# ----------------------------------------------------------
def DeleteSubcontractor(self, request, subcontractor_id):
subcontractor = ItemCRUD(itemType=ItemCRUDType.Subcontractor)
subcontractor.DeleteItem(
request=request,
itemID=subcontractor_id,
storedprocDelete="DeleteSubcontractor"
)
self.isSuccess = subcontractor.isSuccess
self.resultMessage = subcontractor.resultMessage
return
@staticmethod
def delete_subcontractor(id):
connection = Subcontractor.get_connection()
if not connection:
return "Database connection failed", 0
affected_rows = 0
try:
cursor = connection.cursor()
cursor.callproc('DeleteSubcontractor', (id,))
connection.commit()
for result in cursor.stored_results():
row = result.fetchone()
affected_rows = row[0] if row else 0
# Active log
LogHelper.log_action("Delete Subcontractor", f"Deleted subcontractor '{id}'")
except Error as e:
print(f"Error deleting subcontractor: {e}")
return str(e), 0
finally:
cursor.close()
connection.close()
return None, affected_rows