private JournalEntry createJournalEntry()

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;
  }