1
0

[fix]: loan amount

This commit is contained in:
VivianDee
2025-04-25 15:33:58 +01:00
parent ddbabcaca9
commit 851422c335
2 changed files with 9 additions and 10 deletions
+5 -8
View File
@@ -4,10 +4,7 @@ from app.models.customer import Customer
from app.models.account import Account
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import relationship
from app.models.loan_charge import LoanCharge
from dateutil.relativedelta import relativedelta
from app.models.loan_repayment_schedule import LoanRepaymentSchedule # Make sure this import exists
from dateutil.relativedelta import relativedelta
class Loan(db.Model):
@@ -45,18 +42,19 @@ class Loan(db.Model):
loan_charges = relationship(
"LoanCharge",
primaryjoin="Loan.id == LoanCharge.loan_id",
primaryjoin="LoanCharge.loan_id == Loan.id",
foreign_keys="LoanCharge.loan_id",
back_populates="loan",
)
loan_repayent_schedules = relationship(
loan_repayment_schedules = relationship(
"LoanRepaymentSchedule",
primaryjoin="Loan.id == LoanRepaymentSchedule.loan_id",
primaryjoin="LoanRepaymentSchedule.loan_id == Loan.id",
foreign_keys="LoanRepaymentSchedule.loan_id",
back_populates="loan",
)
@classmethod
def create_loan(
cls,
@@ -70,7 +68,6 @@ class Loan(db.Model):
upfront_fee,
repayment_amount,
installment_amount,
tenor,
status="pending",
):
# Check if customer exists
+4 -2
View File
@@ -1,6 +1,7 @@
from datetime import datetime, timezone
from app.extensions import db
from sqlalchemy.orm import relationship
from dateutil.relativedelta import relativedelta
class LoanRepaymentSchedule(db.Model):
__tablename__ = 'loan_repayment_schedules'
@@ -24,12 +25,13 @@ class LoanRepaymentSchedule(db.Model):
back_populates="loan_repayment_schedules",
)
@classmethod
def add_repayment_schedule(cls, loan, Offer, charges):
"""
Add repayment schedules for a given loan.
"""
if not loan.amount or not loan.installment_amount:
if not loan.initial_loan_amount or not loan.installment_amount:
raise ValueError("Loan must have amount and installment_amount set.")
now = datetime.now(timezone.utc)
@@ -38,7 +40,7 @@ class LoanRepaymentSchedule(db.Model):
tenor = Offer.tenor // 30
principal = loan.amount / tenor
principal = loan.initial_loan_amount / tenor
interest = interest_fee["fee"] / tenor
for i in range(tenor):