diff --git a/app/api/services/loan_repayment_schedule_service.py b/app/api/services/loan_repayment_schedule_service.py index ddd48c3..11d823c 100644 --- a/app/api/services/loan_repayment_schedule_service.py +++ b/app/api/services/loan_repayment_schedule_service.py @@ -82,6 +82,9 @@ class LoanRepaymentScheduleService: 'total_repayment_amount': schedule.total_repayment_amount, 'paid': schedule.paid, 'paid_at': schedule.paid_at.isoformat() if schedule.paid_at else None, + 'penal_charge': schedule.penal_charge, + 'penal_count': schedule.penal_count, + 'last_penal_date': schedule.last_penal_date.isoformat() if schedule.last_penal_date else None, 'created_at': schedule.created_at.isoformat() if schedule.created_at else None, 'updated_at': schedule.updated_at.isoformat() if schedule.updated_at else None }) diff --git a/app/api/services/loan_service.py b/app/api/services/loan_service.py index 39516fc..5be3b1e 100644 --- a/app/api/services/loan_service.py +++ b/app/api/services/loan_service.py @@ -116,6 +116,8 @@ class LoanService: 'verifyDescription': loan.verify_description, 'disburseDate': loan.disburse_date.isoformat() if loan.disburse_date else None, 'disburseVerify': loan.disburse_verify.isoformat() if loan.disburse_verify else None, + 'totalPenalCharge': loan.total_penal_charge, + 'lastPenalDate': loan.last_penal_date.isoformat() if loan.last_penal_date else None, }) # Calculate total pages diff --git a/app/models/loan.py b/app/models/loan.py index 85c1a51..f1dc107 100644 --- a/app/models/loan.py +++ b/app/models/loan.py @@ -45,6 +45,10 @@ class Loan(db.Model): reference = db.Column(db.String(50), nullable=True) balance = db.Column(db.Float, nullable=True, default=0.0) + total_penal_charge = db.Column(db.Float, default=0.0) + last_penal_date = db.Column(db.DateTime, nullable=True) + + customer = relationship( "Customer", primaryjoin="Customer.id == Loan.customer_id", @@ -169,6 +173,8 @@ class Loan(db.Model): 'disburseVerify': self.disburse_verify.isoformat() if self.disburse_verify else None, 'reference': self.reference, 'balance': self.balance, + 'totalPenalCharge': self.total_penal_charge, + 'lastPenalDate': self.last_penal_date.isoformat() if self.last_penal_date else None, } def __repr__(self): diff --git a/app/models/loan_repayment_schedule.py b/app/models/loan_repayment_schedule.py index 5821895..bb77937 100644 --- a/app/models/loan_repayment_schedule.py +++ b/app/models/loan_repayment_schedule.py @@ -20,6 +20,12 @@ class LoanRepaymentSchedule(db.Model): created_at = db.Column(db.DateTime, default=datetime.now(timezone.utc)) updated_at = db.Column(db.DateTime, default=datetime.now(timezone.utc), onupdate=datetime.now(timezone.utc)) + + penal_charge = db.Column(db.Float, default=0.0) + penal_count = db.Column(db.Integer, default=0) + last_penal_date = db.Column(db.DateTime, nullable=True) + + # loan = relationship( # "Loan", # primaryjoin="LoanRepaymentSchedule.loan_id == Loan.id", @@ -96,6 +102,9 @@ class LoanRepaymentSchedule(db.Model): 'total_repayment_amount': self.total_repayment_amount, 'paid': self.paid, 'paid_at': self.paid_at.isoformat() if self.paid_at else None, + 'penal_charge': self.penal_charge, + 'penal_count': self.penal_count, + 'last_penal_date': self.last_penal_date.isoformat() if self.last_penal_date else None, 'created_at': self.created_at.isoformat() if self.created_at else None, 'updated_at': self.updated_at.isoformat() if self.updated_at else None }