[add]: Lona repayment schedule

This commit is contained in:
Vivian Dee
2025-04-25 14:29:13 +01:00
parent 0995f08aea
commit c216c55928
5 changed files with 106 additions and 14 deletions
+1 -1
View File
@@ -101,7 +101,7 @@ class BaseService:
# Up-front payment: (only those fees due immediately i.e due_days == 0)
upfront_payment = sum(upfront_fees)
# Repayment amount: (principal + only those fees not due immediately i.e due_days != 0)
# Repayment amount: (principal + only those fees not due immediately i.e due_days != 0)
repayment_amount = amount + (sum(postpaid_fees) * tenor)
# Total amount: (upfront_payment + repayment_amount)
+18 -11
View File
@@ -11,6 +11,10 @@ from threading import Thread
from app.models import Loan, Offer, Charge
from app.api.enums import LoanStatus
from app.extensions import db
from datetime import datetime, timezone
from dateutil.relativedelta import relativedelta
from app.models import LoanRepaymentSchedule
class ProvideLoanService(BaseService):
TRANSACTION_TYPE = TransactionType.PROVIDE_LOAN
@@ -85,19 +89,26 @@ class ProvideLoanService(BaseService):
status= LoanStatus.ACTIVE
)
db.session.flush()
if not loan:
logger.error(f"Failed to save loan details")
return jsonify({
"message": "Failed to save loan details."
}), 400
db.session.flush()
schedule = LoanRepaymentSchedule.add_repayment_schedule(loan = loan, Offer = offer, charges = charges)
if not schedule:
logger.error(f"Failed to create repayment schedule for loan ID {loan.id}")
return jsonify({
"message": "Failed to generate loan repayment schedule."
}), 400
charges = Charge.get_offer_charges(offer.id)
logger.error(f"{charges}")
# logger.error(f"{charges}")
loan_id = loan.id
@@ -152,8 +163,4 @@ class ProvideLoanService(BaseService):
db.session.rollback()
return jsonify({
"message": "Internal Server Error"
}) , 500
}) , 500