Linked loan design

This commit is contained in:
CHIEFSOFT\ameye
2025-05-10 20:08:27 -04:00
parent 4ce0142ee0
commit 11a239c67a
4 changed files with 64 additions and 22 deletions
+19 -6
View File
@@ -7,6 +7,8 @@ from sqlalchemy.orm import relationship
from dateutil.relativedelta import relativedelta
from datetime import timedelta
import logging
from sqlalchemy import and_, or_, not_
logger = logging.getLogger(__name__)
@@ -137,14 +139,27 @@ class Loan(db.Model):
raise ValueError(f"Loan with ID {loan_id} does not exist or does not belong to customer {customer_id}.")
return loan
@classmethod
def get_customer_original_loan(cls, customer_id, original_transaction):
"""
Get customer's original loan offer.
"""
original_loan = cls.query.filter(and_( cls.customer_id ==customer_id, cls.original_transaction==original_transaction, cls.transaction_id==original_transaction )).first()
if not original_loan:
return None
logger.info(f" get_customer_original_loan ==>>>> {original_loan}")
return original_loan
@classmethod
def get_customer_last_loan(cls, customer_id):
"""
Get customer's active loans.
"""
logger.info(f"Find last loan for [customer_id] ==>>>> {customer_id}")
loan = cls.query.filter_by( customer_id = customer_id).first()
logger.info(f" Active Loan ==>>>> RESULT************************ AMEYE")
logger.info(f"get_customer_last_loan [customer_id] ==>>>> {customer_id}")
# loan = cls.query.filter_by( cls.customer_id == customer_id).first()
loan = cls.query.filter(and_( cls.customer_id ==customer_id, cls.status=='active')).first()
if not loan:
loan = {
"eligible_amount": 0,
@@ -153,9 +168,7 @@ class Loan(db.Model):
"transaction_id": "",
"resultDescription": "No Active Loan"
}
logger.info(f" Active Loan ==>>>> RESULT*********************")
logger.info(f" Active Loan ==>>>> {loan}")
logger.info(f" get_customer_last_loan ==>>>> {loan}")
return loan
@classmethod