diff --git a/src/rush/loan_schedule/loan_schedule.py b/src/rush/loan_schedule/loan_schedule.py index 97d95e4d..2441cb68 100644 --- a/src/rush/loan_schedule/loan_schedule.py +++ b/src/rush/loan_schedule/loan_schedule.py @@ -385,8 +385,6 @@ def make_emi_payment_mappings_inactive(user_loan: Loan, session: Session) -> Non .update({PaymentMapping.row_status: "inactive"}, synchronize_session=False) ) - user_loan = get_user_loan(session=session, loan_id=user_loan.loan_id) - # returning if the loan is extended, because we don't have context of past tenure. is_loan_extended = ( session.query(LedgerTriggerEvent.loan_id) @@ -408,7 +406,7 @@ def make_emi_payment_mappings_inactive(user_loan: Loan, session: Session) -> Non .filter( PaymentSplit.payment_request_id == LedgerTriggerEvent.extra_details["payment_request_id"].astext, - PaymentSplit.component.in_(("principal", "interest", "unbilled")), + PaymentSplit.component.in_(("principal", "interest", "unbilled", "early_close_fee")), LedgerTriggerEvent.name == "payment_received", LedgerTriggerEvent.loan_id == user_loan.loan_id, ) diff --git a/src/rush/payments.py b/src/rush/payments.py index 56f87c9c..4f44510d 100644 --- a/src/rush/payments.py +++ b/src/rush/payments.py @@ -437,6 +437,8 @@ def adjust_payment( # The amount to adjust is computed for this bill. It should all settle. assert remaining_amount == 0 slide_payment_to_emis(user_loan, event, data["amount_to_adjust"]) + if data["type"] == "early_close_fee": + slide_payment_to_emis(user_loan, event, data["amount_to_adjust"]) amount_to_adjust -= data["amount_to_adjust"] # After doing the sliding we check if the loan can be closed.