final List<EntryDTO> result = new ArrayList<EntryDTO>(super.calculateEntries(event, when));
Map<EntryType, Money> payedAmounts = new HashMap<EntryType, Money>();
final Iterator<EntryDTO> iterator = result.iterator();
while (iterator.hasNext()) {
final EntryDTO entryDTO = iterator.next();
Money payedAmount = payedAmounts.get(entryDTO.getEntryType());
if (payedAmount == null) {
payedAmount = event.getPayedAmountFor(entryDTO.getEntryType());
}
entryDTO.setAmountToPay(entryDTO.getAmountToPay().subtract(payedAmount));
if (!entryDTO.getAmountToPay().isPositive()) {