+ String currentTotal = null;
+ if (accumulateAccount != null) {
+ for (LedgerTransactionAccount acc : transaction.getAccounts()) {
+ if (acc.getAccountName()
+ .equals(accumulateAccount) ||
+ LedgerAccount.isParentOf(accumulateAccount, acc.getAccountName()))
+ {
+ BigDecimal amt = runningTotal.get(acc.getCurrency());
+ if (amt == null)
+ amt = BigDecimal.ZERO;
+ BigDecimal newAmount = BigDecimal.valueOf(acc.getAmount());
+ newAmount = newAmount.setScale(2, RoundingMode.HALF_EVEN);
+ amt = amt.add(newAmount);
+ runningTotal.put(acc.getCurrency(), amt);
+ }
+ }
+
+ currentTotal = summarizeRunningTotal(runningTotal);
+ }
+ list.add(1, new TransactionListItem(transaction, boldAccountName, currentTotal));