Recovered lost local code
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user