From 9cbc82466141f27bf6cf39c8b857fb8351b506d4 Mon Sep 17 00:00:00 2001 From: VivianDee <115420678+VivianDee@users.noreply.github.com> Date: Thu, 23 Oct 2025 09:17:59 +0100 Subject: [PATCH] [fix]: settled amount --- app/api/services/loan_status.py | 15 ++++----------- app/models/repayment.py | 6 ++++++ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/api/services/loan_status.py b/app/api/services/loan_status.py index 331c895..5c506e4 100644 --- a/app/api/services/loan_status.py +++ b/app/api/services/loan_status.py @@ -47,6 +47,7 @@ class LoanStatusService(BaseService): loans = [ loan.to_dict() for loan in customer_loans + if loan.status in [LoanStatus.ACTIVE, LoanStatus.START_REPAY, LoanStatus.ACTIVE_PARTIAL] ] transaction = LoanStatusService.log_transaction( @@ -68,22 +69,14 @@ class LoanStatusService(BaseService): ) total_outstanding_amount = sum( - loan.balance - for loan in customer_loans - if loan.status in [LoanStatus.ACTIVE, LoanStatus.START_REPAY, LoanStatus.ACTIVE_PARTIAL] + loan.get("currentLoanAmount") or 0 for loan in loans ) total_active_loan_amount = sum( - loan.repayment_amount - for loan in customer_loans - if loan.status in [LoanStatus.ACTIVE, LoanStatus.START_REPAY, LoanStatus.ACTIVE_PARTIAL] + loan.get("repaymentAmount") or 0 for loan in loans ) - total_settled_amount = sum( - loan.repayment_amount - for loan in customer_loans - if loan.status == LoanStatus.REPAID - ) + total_settled_amount = total_active_loan_amount - total_outstanding_amount # Simulated processing logic response_data = { diff --git a/app/models/repayment.py b/app/models/repayment.py index cc5f87a..0ac1bfc 100644 --- a/app/models/repayment.py +++ b/app/models/repayment.py @@ -56,6 +56,12 @@ class Repayment(db.Model): raise ValueError(f"Database integrity error: {err}") return repayment + + # Get loan repayments + @classmethod + def get_repayments_by_id(cls, loan_id): + return cls.query.filter_by(loan_id=loan_id).all() + def to_dict(self): return {