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