From 332c344efaa5da0f8ead6ca64e828de4bf5df879 Mon Sep 17 00:00:00 2001 From: Vivian Dee <> Date: Sat, 10 May 2025 14:47:52 +0100 Subject: [PATCH 1/5] [fix]: Indentation --- app/api/services/offer_analysis.py | 2 +- app/models/loan.py | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/api/services/offer_analysis.py b/app/api/services/offer_analysis.py index 212546d..3ebdd31 100644 --- a/app/api/services/offer_analysis.py +++ b/app/api/services/offer_analysis.py @@ -35,7 +35,7 @@ class OfferAnalysis: @staticmethod def decide_offer(transaction_id, rac_check, validated_data, customer): - """ + """ Find the last loan - it will have original_transaction This loan is part of the original approval where transaction_id = original_transaction for this account diff --git a/app/models/loan.py b/app/models/loan.py index 257d3ef..dddf5ae 100644 --- a/app/models/loan.py +++ b/app/models/loan.py @@ -156,18 +156,18 @@ class Loan(db.Model): return loan - @classmethod - def get_active_loans_by_original_transaction(cls, original_transaction_id): - """ - Get all active loans with the same original_transaction ID. - """ - - active_loans = cls.query.filter_by( - original_transaction=original_transaction_id, - # status='active' - ).all() + @classmethod + def get_active_loans_by_original_transaction(cls, original_transaction_id): + """ + Get all active loans with the same original_transaction ID. + """ + + active_loans = cls.query.filter_by( + original_transaction=original_transaction_id, + # status='active' + ).all() - return active_loans + return active_loans @classmethod From 4bcaa3d13d2128e5a3ec07e0476a46df8a8943f0 Mon Sep 17 00:00:00 2001 From: Vivian Dee <> Date: Sat, 10 May 2025 15:30:15 +0100 Subject: [PATCH 2/5] Update loan.py --- app/models/loan.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/loan.py b/app/models/loan.py index ac42b43..9c8345c 100644 --- a/app/models/loan.py +++ b/app/models/loan.py @@ -146,6 +146,9 @@ class Loan(db.Model): loan = cls.query.filter_by( customer_id = customer_id).first() logger.info(f" Active Loan ==>>>> RESULT************************ AMEYE") if not loan: + + return None + loan = { "eligible_amount": 0, "loan_amount": 0, From feb97c3fa87502e339324125843dabe43fa83d40 Mon Sep 17 00:00:00 2001 From: Vivian Dee <> Date: Sat, 10 May 2025 15:32:11 +0100 Subject: [PATCH 3/5] Update loan.py --- app/models/loan.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/models/loan.py b/app/models/loan.py index 9c8345c..8942996 100644 --- a/app/models/loan.py +++ b/app/models/loan.py @@ -146,7 +146,6 @@ class Loan(db.Model): loan = cls.query.filter_by( customer_id = customer_id).first() logger.info(f" Active Loan ==>>>> RESULT************************ AMEYE") if not loan: - return None loan = { From 4718c9c50b7d4f361887ada5652a149c9fd158db Mon Sep 17 00:00:00 2001 From: Vivian Dee <> Date: Sat, 10 May 2025 15:34:43 +0100 Subject: [PATCH 4/5] Update loan.py --- app/models/loan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/loan.py b/app/models/loan.py index 8942996..6de1522 100644 --- a/app/models/loan.py +++ b/app/models/loan.py @@ -155,8 +155,8 @@ 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" Active Loan ==>>>> RESULT*********************") + logger.info(f" Active Loan ==>>>> {loan}") return loan From 6d743ea09ba973292274455f489d59c4576feec6 Mon Sep 17 00:00:00 2001 From: Vivian Dee <> Date: Sat, 10 May 2025 15:42:09 +0100 Subject: [PATCH 5/5] Update offer_analysis.py --- app/api/services/offer_analysis.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/api/services/offer_analysis.py b/app/api/services/offer_analysis.py index 0162088..ad417f1 100644 --- a/app/api/services/offer_analysis.py +++ b/app/api/services/offer_analysis.py @@ -40,23 +40,23 @@ class OfferAnalysis: # we can now find the origin transactions # Find the last loan - it will have original_transaction - last_customer_loan = Loan.get_customer_last_loan(customer.id) - logger.info(f"{last_customer_loan}") + # last_customer_loan = Loan.get_customer_last_loan(customer.id) + # logger.info(f"{last_customer_loan}") new_eligible_amount = 0 - if last_customer_loan: - original_transaction = last_customer_loan.original_transaction or last_customer_loan.transaction_id + # if last_customer_loan: + # original_transaction = last_customer_loan.original_transaction or last_customer_loan.transaction_id - real_eligible_amount = last_customer_loan.eligible_amount + # real_eligible_amount = last_customer_loan.eligible_amount - active_loans = Loan.get_active_loans_by_original_transaction(original_transaction) + # active_loans = Loan.get_active_loans_by_original_transaction(original_transaction) - sum_active_loans = sum(loan.current_loan_amount for loan in active_loans) + # sum_active_loans = sum(loan.current_loan_amount for loan in active_loans) - new_eligible_amount = max(real_eligible_amount - sum_active_loans, 0) + # new_eligible_amount = max(real_eligible_amount - sum_active_loans, 0) - logger.info(f"Real eligible: {real_eligible_amount}, Sum of active: {sum_active_loans}, New eligible: {new_eligible_amount}") + # logger.info(f"Real eligible: {real_eligible_amount}, Sum of active: {sum_active_loans}, New eligible: {new_eligible_amount}") # Construct eligible_offers