Skip to content

Commit

Permalink
Improve Simple SA PDF-Importer
Browse files Browse the repository at this point in the history
Fix missing currency detection
  • Loading branch information
Nirus2000 committed Apr 5, 2024
1 parent 8427643 commit fe3167b
Showing 1 changed file with 17 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import name.abuchen.portfolio.model.BuySellEntry;
import name.abuchen.portfolio.model.Client;
import name.abuchen.portfolio.model.PortfolioTransaction;
import name.abuchen.portfolio.money.CurrencyUnit;
import name.abuchen.portfolio.money.Values;

/**
Expand Down Expand Up @@ -77,13 +76,10 @@ private void addBuySellTransaction()
// Kauf Standortfonds Österreich 10.00 € 140.59 € 0.071
// AT0000A1QA38 10.01.2022 5.123
// @formatter:on
.section("name", "isin") //
.match("^.*(Kauf|Verkauf) (?<name>.*) [\\.'\\d]+ \\p{Sc}[\\s]{1,}[\\.'\\d]+ \\p{Sc}[\\s]{1,}[\\.'\\d]+$") //
.section("name", "currency", "isin") //
.match("^.*(Kauf|Verkauf) (?<name>.*) [\\.'\\d]+ \\p{Sc}[\\s]{1,}[\\.'\\d]+ (?<currency>\\p{Sc})[\\s]{1,}[\\.'\\d]+$") //
.match("^(?<isin>[A-Z]{2}[A-Z0-9]{9}[0-9]) [\\d]{2}\\.[\\d]{2}\\.[\\d]{4} [\\.'\\d]+$") //
.assign((t, v) -> {
v.put("currency", CurrencyUnit.EUR);
t.setSecurity(getOrCreateSecurity(v));
})
.assign((t, v) -> t.setSecurity(getOrCreateSecurity(v)))

// @formatter:off
// Kauf Standortfonds Österreich 10.00 € 140.59 € 0.071
Expand All @@ -104,18 +100,18 @@ private void addBuySellTransaction()
// Abrechnungsbetrag: 10.00 €
// Auszahlungsbetrag: 848.68 €
// @formatter:on
.section("amount") //
.match("^(Abrechnungsbetrag|Auszahlungsbetrag):[\\s]{1,}(?<amount>[\\.'\\d]+) \\p{Sc}$") //
.section("amount", "currency") //
.match("^(Abrechnungsbetrag|Auszahlungsbetrag):[\\s]{1,}(?<amount>[\\.'\\d]+) (?<currency>\\p{Sc})$") //
.assign((t, v) -> {
t.setAmount(asAmount(v.get("amount")));
t.setCurrencyCode(asCurrencyCode(CurrencyUnit.EUR));
t.setCurrencyCode(asCurrencyCode(v.get("currency")));
})

// @formatter:off
// Auftrags-Nummer: 20220106123456789000000612345
// @formatter:on
.section("note").optional() //
.match("^(?<note>Auftrags-Nummer: [\\d]+)$") //
.match("^(?<note>Auftrags\\-Nummer: [\\d]+)$") //
.assign((t, v) -> t.setNote(trim(v.get("note"))))

.wrap(BuySellEntryItem::new);
Expand Down Expand Up @@ -151,7 +147,7 @@ private void addDividendeTransaction()
.match("^Fondsname: (?<name>.*) Datum .*$") //
.match("^WKN \\/ ISIN: (?<isin>[A-Z]{2}[A-Z0-9]{9}[0-9]) .*$") //
.assign((t, v) -> {
v.put("currency", CurrencyUnit.EUR);
v.put("currency", "EUR");

t.setSecurity(getOrCreateSecurity(v));
})
Expand Down Expand Up @@ -189,7 +185,7 @@ private void addDividendeTransaction()
.match("^Zur (Wiederveranlagung|Wiederanlage/Auszahlung) zur Verf.gung stehend: (?<amount>[\\.'\\d]+)$") //
.assign((t, v) -> {
t.setAmount(asAmount(v.get("amount")));
t.setCurrencyCode(asCurrencyCode(CurrencyUnit.EUR));
t.setCurrencyCode("EUR");
})

// @formatter:off
Expand All @@ -211,15 +207,19 @@ private <T extends Transaction<?>> void addTaxesSectionsTransaction(T transactio
// @formatter:off
// abgeführte Kapitalertragssteuer: 31.61 €
// @formatter:on
.section("tax").optional()
.match("^abgef.hrte Kapitalertragssteuer: (?<tax>[\\.'\\d]+) \\p{Sc}$")
.section("tax", "curreny").optional() //
.match("^abgef.hrte Kapitalertragssteuer: (?<tax>[\\.'\\d]+) (?<curreny>\\p{Sc})$") //
.assign((t, v) -> processTaxEntries(t, v, type))

// @formatter:off
// Kapitalertragssteuer (KESt) gesamt: 4.28
// @formatter:on
.section("tax").optional().match("^Kapitalertragssteuer \\(KESt\\) gesamt: (?<tax>[\\.'\\d]+)$")
.assign((t, v) -> processTaxEntries(t, v, type));
.section("tax").optional() //
.match("^Kapitalertragssteuer \\(KESt\\) gesamt: (?<tax>[\\.'\\d]+)$") //
.assign((t, v) -> {
v.put("currency", "EUR");
processTaxEntries(t, v, type);
});
}

@Override
Expand Down

0 comments on commit fe3167b

Please sign in to comment.