import mysql.connector from mysql.connector import Error import config import openpyxl import os import re import ast from datetime import datetime class ContractorInfo: ID = "" contInfo = None def __init__(self, id): self.ID = id print(id) self.fetchData() def fetchData(self): try: connection = config.get_db_connection() cursor = connection.cursor(dictionary=True, buffered=True) cursor.callproc('GetContractorInfoById', [self.ID]) for result in cursor.stored_results(): self.contInfo = result.fetchone() print(self.contInfo,flush=True) finally: cursor.close() connection.close() def fetchalldata(self): try: connection = config.get_db_connection() cursor = connection.cursor(dictionary=True, buffered=True) print("here", flush=True) # ---------------- Hold Types ---------------- cursor = connection.cursor(dictionary=True) cursor.callproc('GetHoldTypesByContractor', [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} # ---------------- Invoices ---------------- cursor = connection.cursor(dictionary=True) cursor.callproc('GetInvoicesByContractor', [self.ID]) invoices = [] for result in cursor.stored_results(): invoices = result.fetchall() # Remove duplicate invoices invoice_ids_seen = set() unique_invoices = [] for inv in invoices: if inv["Invoice_Id"] not in invoice_ids_seen: invoice_ids_seen.add(inv["Invoice_Id"]) unique_invoices.append(inv) invoices = unique_invoices finally: cursor.close() connection.close()