private void verifyTellerTransaction()

in service/src/main/java/org/apache/fineract/cn/teller/service/rest/TellerOperationRestController.java [349:375]


  private void verifyTellerTransaction(final Teller teller, final TellerTransaction tellerTransaction) {
    final String transactionType = tellerTransaction.getTransactionType();
    final BigDecimal transactionAmount = tellerTransaction.getAmount();

    if (transactionType.equals(ServiceConstants.TX_CASH_WITHDRAWAL)
        || transactionType.equals(ServiceConstants.TX_CLOSE_ACCOUNT)) {
      if (transactionAmount.compareTo(teller.getCashdrawLimit()) > 0) {
        throw ServiceException.conflict("Amount exceeds cash drawl limit.");
      }
    }

    if (transactionType.equals(ServiceConstants.TX_OPEN_ACCOUNT)) {
      final ProductDefinition productDefinition =
          this.depositAccountManagementService.findProductDefinition(tellerTransaction.getProductIdentifier());
      if (productDefinition.getMinimumBalance() != null
          && productDefinition.getMinimumBalance() > 0.00D) {
        final BigDecimal minimumBalance = BigDecimal.valueOf(productDefinition.getMinimumBalance());
        if (transactionAmount.compareTo(minimumBalance) < 0) {
          throw ServiceException.conflict(
              "Amount {0} must be equal to or greater than minimum balance {1}.",
              transactionAmount, minimumBalance);
        }
      }
    }

    this.verifyChequeTransaction(tellerTransaction);
  }