in service/src/main/java/org/apache/fineract/cn/teller/service/internal/command/handler/TellerAggregate.java [367:409]
private JournalEntry createJournalEntry(final TellerEntity tellerEntity, final TellerManagementCommand tellerManagementCommand) {
final JournalEntry journalEntry = new JournalEntry();
journalEntry.setTransactionIdentifier(RandomStringUtils.randomNumeric(32));
journalEntry.setTransactionDate(DateConverter.toIsoString(LocalDateTime.now(Clock.systemUTC())));
journalEntry.setClerk(UserContextHolder.checkedGetUser());
journalEntry.setMessage("Teller adjustment.");
final TellerManagementCommand.Adjustment adjustment =
TellerManagementCommand.Adjustment.valueOf(tellerManagementCommand.getAdjustment());
final Debtor debtor = new Debtor();
final Creditor creditor = new Creditor();
switch (adjustment) {
case DEBIT:
journalEntry.setTransactionType(ServiceConstants.TX_DEPOSIT_ADJUSTMENT);
debtor.setAccountNumber(tellerEntity.getTellerAccountIdentifier());
debtor.setAmount(tellerManagementCommand.getAmount().toString());
journalEntry.setDebtors(Sets.newHashSet(debtor));
creditor.setAccountNumber(tellerEntity.getVaultAccountIdentifier());
creditor.setAmount(tellerManagementCommand.getAmount().toString());
journalEntry.setCreditors(Sets.newHashSet(creditor));
break;
case CREDIT:
journalEntry.setTransactionType(ServiceConstants.TX_CREDIT_ADJUSTMENT);
debtor.setAccountNumber(tellerEntity.getVaultAccountIdentifier());
debtor.setAmount(tellerManagementCommand.getAmount().toString());
journalEntry.setDebtors(Sets.newHashSet(debtor));
creditor.setAccountNumber(tellerEntity.getTellerAccountIdentifier());
creditor.setAmount(tellerManagementCommand.getAmount().toString());
journalEntry.setCreditors(Sets.newHashSet(creditor));
break;
default:
this.logger.warn("Unsupported adjustment type {}.", tellerManagementCommand.getAdjustment());
}
return journalEntry;
}