From 2a476ea26e5d3e89e16e98b2aea9de8f8a6bfd6a Mon Sep 17 00:00:00 2001 From: Marcel Schramm Date: Sat, 6 Jul 2024 14:58:35 +0200 Subject: [PATCH] Skip 0 amount transactions on import --- src/main/java/link/biosmarcel/baka/data/Data.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/link/biosmarcel/baka/data/Data.java b/src/main/java/link/biosmarcel/baka/data/Data.java index c215397..01038d0 100644 --- a/src/main/java/link/biosmarcel/baka/data/Data.java +++ b/src/main/java/link/biosmarcel/baka/data/Data.java @@ -1,5 +1,6 @@ package link.biosmarcel.baka.data; +import java.math.BigDecimal; import java.util.*; /** @@ -21,8 +22,10 @@ public class Data { * to import. The existing data should receive identifiers, so that this process can be repeated for the future. */ public Map importPayments(final Collection newPayments) { - final var deduplicatedPayments = newPayments + final var filteredPayments = newPayments .stream() + // Banks sometimes add info payments at the end of the months. We don't want these for now. + .filter(payment -> payment.amount.compareTo(BigDecimal.ZERO) != 0) .filter(newPayment -> { // We iterate backwards to save time, as the payments are sorted by date descending. for (int i = payments.size() - 1; i >= 0; i--) { @@ -45,7 +48,6 @@ public Map importPayments(final Collection newPayment }) .toList(); - final Map possibleDuplicates = new HashMap<>(); OUTER_LOOP: for (final var newPayment : newPayments) { @@ -62,7 +64,7 @@ public Map importPayments(final Collection newPayment } } - payments.addAll(deduplicatedPayments); + payments.addAll(filteredPayments); // Since we can't guarantee the imported data to be in our desired order, we resort the whole thing. payments.sort((o1, o2) -> {