[add]: penal charges to get loans and repayment schedules reponse #23

Merged
ameye merged 1 commits from penal_charges into master 2026-03-16 10:46:26 +00:00
4 changed files with 20 additions and 0 deletions
@@ -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
})
+2
View File
@@ -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
+6
View File
@@ -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):
+9
View File
@@ -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
}