public static function offsetLoan($data) { $loanaccount_id = array_get($data, 'loanaccount_id'); $loanaccount = Loanaccount::findorfail($loanaccount_id); $amount = array_get($data, 'amount'); $date = array_get($data, 'date'); $principal_bal = Loanaccount::getPrincipalBal($loanaccount); $interest_bal = Loanaccount::getInterestBal($loanaccount); //pay principal Loanrepayment::payPrincipal($loanaccount, $date, $principal_bal); //pay interest Loanrepayment::payInterest($loanaccount, $date, $interest_bal); Loantransaction::repayLoan($loanaccount, $amount, $date); }
public static function getInterestAmount($loanaccount) { $principal = Loanaccount::getPrincipalBal($loanaccount); $rate = $loanaccount->interest_rate / 100; $time = $loanaccount->repayment_duration; $formula = $loanaccount->loanproduct->formula; if ($formula == 'SL') { $interest_amount = $principal * $rate * $time; } if ($formula == 'RB') { $principal_bal = $principal; $interest_amount = 0; $principal_pay = $principal / $time; for ($i = 1; $i <= $time; $i++) { $interest_amount = $interest_amount + $principal_bal * $rate; $principal_bal = $principal_bal - $principal_pay; } } return $interest_amount; }