From 3c36388d10ad1a78158994de68945f1db29f2462 Mon Sep 17 00:00:00 2001 From: Nirus2000 Date: Fri, 22 Mar 2024 20:39:33 +0100 Subject: [PATCH] Add Sunrise PDF-Importer to import assistant Issue: #3731 --- .../datatransfer/pdf/PDFImportAssistant.java | 1 + .../datatransfer/pdf/SunrisePDFExtractor.java | 31 +++++++++++-------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/PDFImportAssistant.java b/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/PDFImportAssistant.java index 979391a079..f2e0122e7a 100644 --- a/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/PDFImportAssistant.java +++ b/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/PDFImportAssistant.java @@ -95,6 +95,7 @@ public PDFImportAssistant(Client client, List files) extractors.add(new SimpelPDFExtractor(client)); extractors.add(new SolarisbankAGPDFExtractor(client)); extractors.add(new StakeshopPtyLtdPDFExtractor(client)); + extractors.add(new SunrisePDFExtractor(client)); extractors.add(new SuresseDirektBankPDFExtractor(client)); extractors.add(new SwissquotePDFExtractor(client)); extractors.add(new TargobankPDFExtractor(client)); diff --git a/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/SunrisePDFExtractor.java b/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/SunrisePDFExtractor.java index a34bd4de9d..778e3fc984 100644 --- a/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/SunrisePDFExtractor.java +++ b/name.abuchen.portfolio/src/name/abuchen/portfolio/datatransfer/pdf/SunrisePDFExtractor.java @@ -16,6 +16,7 @@ import name.abuchen.portfolio.money.CurrencyUnit; import name.abuchen.portfolio.money.Values; +@SuppressWarnings("nls") public class SunrisePDFExtractor extends AbstractPDFExtractor { @@ -119,8 +120,9 @@ private void addDividendeTransaction() // Fondsname: Standortfonds Österreich // WKN/ISIN: AT0000A1QA38 Datum des Ertrags: 15.12.2023 - .section("name", "isin").match("^Fondsname: (?.*)$")// - .match("^WKN\\/ISIN: (?[\\w]{12}) Datum des.*$") + .section("name", "isin") // + .match("^Fondsname: (?.*)$") // + .match("^WKN\\/ISIN: (?[\\w]{12}) Datum des.*$") // .assign((t, v) -> { v.put("currency", CurrencyUnit.EUR); t.setSecurity(getOrCreateSecurity(v)); @@ -132,9 +134,10 @@ private void addDividendeTransaction() // Ausschüttung je Anteil: 2.71 // Ausschüttung gesamt: 17.58 - .section("amountPerShare", "gross") - .match("^Aussch.ttung je Anteil: (?['\\.\\d]+)$") - .match("^Aussch.ttung gesamt: (?['\\.\\d]+)$").assign((t, v) -> { + .section("amountPerShare", "gross") // + .match("^Aussch.ttung je Anteil: (?['\\.\\d]+)$") // + .match("^Aussch.ttung gesamt: (?['\\.\\d]+)$") // + .assign((t, v) -> { BigDecimal amountPerShare = asExchangeRate(v.get("amountPerShare")); BigDecimal amountTotal = asExchangeRate(v.get("gross")); @@ -146,20 +149,21 @@ private void addDividendeTransaction() }) // WKN/ISIN: AT0000A1QA38 Datum des Ertrags: 15.12.2023 - .section("date") - .match("^WKN.*Datum des Ertrags: (?[\\d]{2}\\.[\\d]{2}\\.[\\d]{4})$") + .section("date") // + .match("^WKN.*Datum des Ertrags: (?[\\d]{2}\\.[\\d]{2}\\.[\\d]{4})$") // .assign((t, v) -> t.setDateTime(asDate(v.get("date")))) // Zur Auszahlung kommender Betrag: 0.00 - .section("amount") - .match("^ Zur Auszahlung kommender Betrag: (?['\\.\\d]+)$") + .section("amount") // + .match("^ Zur Auszahlung kommender Betrag: (?['\\.\\d]+)$") // .assign((t, v) -> { t.setAmount(asAmount(v.get("amount"))); t.setCurrencyCode(asCurrencyCode(CurrencyUnit.EUR)); }) // WKN / ISIN: AT0000A1Z882 Turnus: jährlich - .section("note").optional().match("^.* (?Turnus: .*)$") + .section("note").optional() // + .match("^.* (?Turnus: .*)$") // .assign((t, v) -> t.setNote(trim(v.get("note")))) .wrap(TransactionItem::new); @@ -173,12 +177,13 @@ private > void addTaxesSectionsTransaction(T transactio { transaction // abgeführte Kapitalertragsteuer: 31.61 € - .section("tax").optional() - .match("^abgef.hrte Kapitalertragsteuer: (?['\\.\\d]+) \\p{Sc}$") + .section("tax").optional() // + .match("^abgef.hrte Kapitalertragsteuer: (?['\\.\\d]+) \\p{Sc}$") // .assign((t, v) -> processTaxEntries(t, v, type)) // Kapitalertragsteuer (KESt) gesamt: 4.28 - .section("tax").optional().match("^Kapitalertragsteuer \\(KESt\\) gesamt: (?['\\.\\d]+)$") + .section("tax").optional() // + .match("^Kapitalertragsteuer \\(KESt\\) gesamt: (?['\\.\\d]+)$") // .assign((t, v) -> processTaxEntries(t, v, type)); }