new fom of MAT credit add in table formate and update show
This commit is contained in:
123
AppCode/MatCreditHandler.py
Normal file
123
AppCode/MatCreditHandler.py
Normal file
@@ -0,0 +1,123 @@
|
||||
from AppCode.Config import DBConfig
|
||||
import mysql.connector
|
||||
|
||||
|
||||
|
||||
class MatCreditHandler:
|
||||
|
||||
def __init__(self):
|
||||
db = DBConfig()
|
||||
self.conn = db.get_db_connection()
|
||||
self.cursor = self.conn.cursor(dictionary=True)
|
||||
|
||||
@staticmethod
|
||||
def fetch_all():
|
||||
conn = DBConfig.get_db_connection()
|
||||
cur = conn.cursor(dictionary=True)
|
||||
|
||||
try:
|
||||
# Stored Procedure returns TWO result sets
|
||||
cur.callproc("GetMatCedit")
|
||||
|
||||
result_sets = cur.stored_results()
|
||||
|
||||
mat_rows = next(result_sets).fetchall()
|
||||
utilization_rows = next(result_sets).fetchall()
|
||||
|
||||
return mat_rows, utilization_rows
|
||||
|
||||
finally:
|
||||
cur.close()
|
||||
conn.close()
|
||||
|
||||
@staticmethod
|
||||
def save_single(data):
|
||||
conn = DBConfig.get_db_connection()
|
||||
cur = conn.cursor()
|
||||
|
||||
try:
|
||||
cur.execute(
|
||||
"SELECT id FROM mat_credit WHERE financial_year=%s",
|
||||
(data["financial_year"],)
|
||||
)
|
||||
row = cur.fetchone()
|
||||
|
||||
if row:
|
||||
mat_id = row[0]
|
||||
|
||||
cur.execute("""
|
||||
UPDATE mat_credit
|
||||
SET mat_credit=%s, balance=%s
|
||||
WHERE id=%s
|
||||
""", (data["mat_credit"], data["balance"], mat_id))
|
||||
|
||||
cur.execute(
|
||||
"DELETE FROM mat_utilization WHERE mat_credit_id=%s",
|
||||
(mat_id,)
|
||||
)
|
||||
else:
|
||||
cur.execute("""
|
||||
INSERT INTO mat_credit (financial_year, mat_credit, balance)
|
||||
VALUES (%s,%s,%s)
|
||||
""", (data["financial_year"], data["mat_credit"], data["balance"]))
|
||||
|
||||
mat_id = cur.lastrowid
|
||||
|
||||
for u in data["utilization"]:
|
||||
cur.execute("""
|
||||
INSERT INTO mat_utilization
|
||||
(mat_credit_id, utilized_year, utilized_amount)
|
||||
VALUES (%s,%s,%s)
|
||||
""", (mat_id, u["year"], u["amount"]))
|
||||
|
||||
conn.commit()
|
||||
|
||||
except Exception:
|
||||
conn.rollback()
|
||||
raise
|
||||
|
||||
finally:
|
||||
cur.close()
|
||||
conn.close()
|
||||
|
||||
|
||||
@staticmethod
|
||||
def save_bulk(rows):
|
||||
conn = DBConfig.get_db_connection()
|
||||
cur = conn.cursor()
|
||||
skipped = []
|
||||
|
||||
try:
|
||||
for row in rows:
|
||||
cur.execute(
|
||||
"SELECT id FROM mat_credit WHERE financial_year=%s",
|
||||
(row["financial_year"],)
|
||||
)
|
||||
if cur.fetchone():
|
||||
skipped.append(row["financial_year"])
|
||||
continue
|
||||
|
||||
cur.execute("""
|
||||
INSERT INTO mat_credit (financial_year, mat_credit, balance)
|
||||
VALUES (%s,%s,%s)
|
||||
""", (row["financial_year"], row["mat_credit"], row["balance"]))
|
||||
|
||||
mat_id = cur.lastrowid
|
||||
|
||||
for u in row["utilization"]:
|
||||
cur.execute("""
|
||||
INSERT INTO mat_utilization
|
||||
(mat_credit_id, utilized_year, utilized_amount)
|
||||
VALUES (%s,%s,%s)
|
||||
""", (mat_id, u["year"], u["amount"]))
|
||||
|
||||
conn.commit()
|
||||
return skipped
|
||||
|
||||
except Exception:
|
||||
conn.rollback()
|
||||
raise
|
||||
|
||||
finally:
|
||||
cur.close()
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user