in service/src/main/java/org/apache/fineract/cn/individuallending/IndividualLendingPatternFactory.java [338:394]
private Payment getPaymentForAction(
final Action action,
final DataContextOfAction dataContextOfAction,
final Set<String> forAccountDesignators,
final BigDecimal forPaymentSize,
final LocalDate forDate) {
final PaymentBuilderService paymentBuilderService;
switch (action) {
case OPEN:
paymentBuilderService = openPaymentBuilderService;
break;
case APPROVE:
paymentBuilderService = approvePaymentBuilderService;
break;
case DENY:
paymentBuilderService = denyPaymentBuilderService;
break;
case DISBURSE:
paymentBuilderService = disbursePaymentBuilderService;
break;
case APPLY_INTEREST:
paymentBuilderService = applyInterestPaymentBuilderService;
break;
case ACCEPT_PAYMENT:
paymentBuilderService = acceptPaymentBuilderService;
break;
case CLOSE:
paymentBuilderService = closePaymentBuilderService;
break;
case MARK_LATE:
paymentBuilderService = markLatePaymentBuilderService;
break;
case MARK_IN_ARREARS:
paymentBuilderService = markInArrearsBuilderService;
break;
case WRITE_OFF:
paymentBuilderService = writeOffPaymentBuilderService;
break;
case RECOVER:
paymentBuilderService = recoverPaymentBuilderService;
break;
default:
throw ServiceException.internalError("Invalid action: ''{0}''.", action.name());
}
final RealRunningBalances runningBalances = new RealRunningBalances(
accountingAdapter,
dataContextOfAction);
final PaymentBuilder paymentBuilder = paymentBuilderService.getPaymentBuilder(
dataContextOfAction,
forPaymentSize,
forDate,
runningBalances);
return paymentBuilder.buildPayment(action, forAccountDesignators, forDate);
}