Esempio n. 1
0
 public Money waive(final MonetaryCurrency currency, final Integer loanInstallmentNumber) {
   if (isInstalmentFee()) {
     final LoanInstallmentCharge chargePerInstallment =
         getInstallmentLoanCharge(loanInstallmentNumber);
     final Money amountWaived = chargePerInstallment.waive(currency);
     if (this.amountWaived == null) {
       this.amountWaived = BigDecimal.ZERO;
     }
     this.amountWaived = this.amountWaived.add(amountWaived.getAmount());
     this.amountOutstanding = this.amountOutstanding.subtract(amountWaived.getAmount());
     if (determineIfFullyPaid()) {
       this.paid = false;
       this.waived = true;
     }
     return amountWaived;
   }
   this.amountWaived = this.amountOutstanding;
   this.amountOutstanding = BigDecimal.ZERO;
   this.paid = false;
   this.waived = true;
   return getAmountWaived(currency);
 }