Exemple #1
0
 def validate(self):
     to_disburse = flt(self.amount) + flt(self.recovered_amount)
     if to_disburse > get_undisbursed_principal(self.loan):
         frappe.throw("Disbursed amount cannot exceed the sanctioned amount")
     loan_start_date = frappe.get_value(
         "Microfinance Loan", self.loan, "posting_date"
     )
     if getdate(self.posting_date) < loan_start_date:
         frappe.throw("Cannot disburse before loan start date")
def _make_row(row):
    loan, sanctioned = row[1], row[3]
    undisbursed = get_undisbursed_principal(loan)
    outstanding = get_outstanding_principal(loan)
    recovered = get_recovered_principal(loan)
    return row + (
        sanctioned - undisbursed,
        recovered,
        outstanding,
    )
 def update_loan_status(self):
     """Method to update disbursement_status of Loan"""
     loan = frappe.get_doc('Microfinance Loan', self.loan)
     undisbursed_principal = get_undisbursed_principal(self.loan)
     current_status = loan.disbursement_status
     if loan.loan_principal > undisbursed_principal > 0:
         loan.disbursement_status = 'Partially Disbursed'
     elif loan.loan_principal == undisbursed_principal:
         loan.disbursement_status = 'Sanctioned'
     elif undisbursed_principal == 0:
         loan.disbursement_status = 'Fully Disbursed'
     if loan.disbursement_status != current_status:
         loan.save()
Exemple #4
0
 def update_loan_status(self):
     """Method to update disbursement_status of Loan"""
     loan = frappe.get_doc("Microfinance Loan", self.loan)
     if not loan.billing_start_date and loan.loan_type == "EMI":
         loan.billing_start_date = self.posting_date
     undisbursed_principal = get_undisbursed_principal(self.loan)
     current_status = loan.disbursement_status
     if loan.loan_principal > undisbursed_principal > 0:
         loan.disbursement_status = "Partially Disbursed"
     elif loan.loan_principal == undisbursed_principal:
         loan.disbursement_status = "Sanctioned"
     elif undisbursed_principal == 0:
         loan.disbursement_status = "Fully Disbursed"
     if loan.disbursement_status != current_status:
         loan.save()