Exemple #1
0
 public double getPaymentsAmount(Collection list) {
   double amount = 0;
   for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
     PaymentTransaction pmt = (PaymentTransaction) iterator.next();
     amount += pmt.getAmount();
   }
   return amount;
 }
Exemple #2
0
  private static BigDecimal getAmountForType(
      final Iterable<PaymentTransaction> transactions, final TransactionType transactiontype) {
    BigDecimal result = BigDecimal.ZERO;
    BigDecimal processedResult = BigDecimal.ZERO;
    boolean shouldUseProcessedAmount = true;

    for (final PaymentTransaction transaction : transactions) {
      if (transaction.getTransactionType() != transactiontype
          || !TransactionStatus.SUCCESS.equals(transaction.getTransactionStatus())) {
        continue;
      }

      result = result.add(transaction.getAmount());

      shouldUseProcessedAmount =
          shouldUseProcessedAmount
              && transaction.getCurrency().equals(transaction.getProcessedCurrency())
              && transaction.getProcessedAmount() != null;
      processedResult =
          shouldUseProcessedAmount
              ? processedResult.add(transaction.getProcessedAmount())
              : BigDecimal.ZERO;

      // For multi-step AUTH, don't sum the individual transactions
      if (TransactionType.AUTHORIZE.equals(transactiontype)) {
        break;
      }
    }

    return shouldUseProcessedAmount ? processedResult : result;
  }