forked from DigiFi/digifi-BankToProductCore
[fix]: loan amount
This commit is contained in:
+5
-8
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user