private void applyAccurals(AppUser currentUser){
  Collection<LoanTransaction> accruals=retreiveListOfAccrualTransactions();
  if (isPeriodicAccrualAccountingEnabledOnLoanProduct()) {
    applyPeriodicAccruals(accruals);
  }
 else   if (isNoneOrCashOrUpfrontAccrualAccountingEnabledOnLoanProduct()) {
    updateAccrualsForNonPeriodicAccruals(accruals,currentUser);
  }
}

private void applyAccurals ( AppUser currentUser ) { Collection < LoanTransaction > accruals = retreiveListOfAccrualTransactions ( ) ; if ( isPeriodicAccrualAccountingEnabledOnLoanProduct ( ) ) { applyPeriodicAccruals ( accruals ) ; } else if ( isNoneOrCashOrUpfrontAccrualAccountingEnabledOnLoanProduct ( ) ) { updateAccrualsForNonPeriodicAccruals ( accruals , currentUser ) ; } }
method updates accrual derived fields on installments and reverse the unprocessed transactions
