Files
payment_reconciliation_soft…/model/ContractorInfo.py
2026-03-31 16:24:58 +05:30

63 lines
2.4 KiB
Python

from mysql.connector import Error
import config
from datetime import datetime
class ContractorInfo:
def __init__(self, contractor_id):
self.ID = contractor_id
self.contInfo = None
self.fetchData()
def fetchData(self):
"""Fetch basic contractor info by ID."""
try:
connection = config.get_db_connection()
with connection.cursor(dictionary=True, buffered=True) as cursor:
cursor.callproc('GetContractorInfo', [self.ID]) #Change GetContractorInfoById to GetContractorInfo
# Get the first result set
for result in cursor.stored_results():
self.contInfo = result.fetchone()
except Error as e:
print(f"Error fetching contractor info: {e}")
finally:
if connection.is_connected():
connection.close()
# def fetchalldata(self):
# """Fetch hold types and invoices for contractor."""
# data = {}
# try:
# connection = config.get_db_connection()
# with connection.cursor(dictionary=True, buffered=True) as cursor:
# # Fetch Hold Types
# cursor.callproc('GetHoldAmountsAndHoldTypeByCtr', [self.ID])
# hold_types = []
# for result in cursor.stored_results():
# hold_types = result.fetchall()
# hold_type_map = {ht['hold_type_id']: ht['hold_type'] for ht in hold_types}
# data['hold_types'] = hold_type_map
# # Fetch Invoices
# cursor.callproc('GetInvoicesByContractor', [self.ID])
# invoices = []
# for result in cursor.stored_results():
# invoices = result.fetchall()
# # Remove duplicate invoices
# seen_ids = set()
# unique_invoices = []
# for inv in invoices:
# if inv['Invoice_Id'] not in seen_ids:
# seen_ids.add(inv['Invoice_Id'])
# unique_invoices.append(inv)
# data['invoices'] = unique_invoices
# except Error as e:
# print(f"Error fetching contractor data: {e}")
# finally:
# if connection.is_connected():
# connection.close()
# return data