Linked loan design
This commit is contained in:
+19
-6
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user