Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modify Baader Bank PDF-Importer to support new transactions #3290

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -962,6 +962,50 @@ public void testWertpapierKauf21()
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(0.00))));
}

@Test
public void testWertpapierKauf22()
{
BaaderBankPDFExtractor extractor = new BaaderBankPDFExtractor(new Client());

List<Exception> errors = new ArrayList<>();

List<Item> results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "Kauf22.txt"), errors);

assertThat(errors, empty());
assertThat(results.size(), is(2));
new AssertImportActions().check(results, CurrencyUnit.EUR);

// check security
Security security = results.stream().filter(SecurityItem.class::isInstance).findFirst()
.orElseThrow(IllegalArgumentException::new).getSecurity();
assertThat(security.getIsin(), is("US5007541064"));
assertThat(security.getWkn(), is("A14TU4"));
assertNull(security.getTickerSymbol());
assertThat(security.getName(), is("Kraft Heinz Co., The Registered Shares DL -,01"));
assertThat(security.getCurrencyCode(), is(CurrencyUnit.EUR));

// check buy sell transaction
BuySellEntry entry = (BuySellEntry) results.stream().filter(BuySellEntryItem.class::isInstance).findFirst()
.orElseThrow(IllegalArgumentException::new).getSubject();

assertThat(entry.getPortfolioTransaction().getType(), is(PortfolioTransaction.Type.BUY));
assertThat(entry.getAccountTransaction().getType(), is(AccountTransaction.Type.BUY));

assertThat(entry.getPortfolioTransaction().getDateTime(), is(LocalDateTime.parse("2023-04-14T14:04:19")));
assertThat(entry.getPortfolioTransaction().getShares(), is(Values.Share.factorize(10)));
assertThat(entry.getSource(), is("Kauf22.txt"));
assertThat(entry.getNote(), is("Vorgangs-Nr.: 00000000"));

assertThat(entry.getPortfolioTransaction().getMonetaryAmount(),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(357.60))));
assertThat(entry.getPortfolioTransaction().getGrossValue(),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(357.60))));
assertThat(entry.getPortfolioTransaction().getUnitSum(Unit.Type.TAX),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(0.00))));
assertThat(entry.getPortfolioTransaction().getUnitSum(Unit.Type.FEE),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(0.00))));
}

@Test
public void testWertpapierVerkauf01()
{
Expand Down Expand Up @@ -2583,6 +2627,49 @@ public void testDividende13()
assertThat(grossValueUnit.getForex(), is(Money.of(CurrencyUnit.USD, Values.Amount.factorize(30.00))));
}

@Test
public void testDividende14()
{
BaaderBankPDFExtractor extractor = new BaaderBankPDFExtractor(new Client());

List<Exception> errors = new ArrayList<>();

List<Item> results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "Dividende14.txt"), errors);

assertThat(errors, empty());
assertThat(results.size(), is(2));
new AssertImportActions().check(results, CurrencyUnit.EUR);

// check security
Security security = results.stream().filter(SecurityItem.class::isInstance).findFirst()
.orElseThrow(IllegalArgumentException::new).getSecurity();
assertThat(security.getIsin(), is("DE0005557508"));
assertThat(security.getWkn(), is("555750"));
assertNull(security.getTickerSymbol());
assertThat(security.getName(), is("Deutsche Telekom AG"));
assertThat(security.getCurrencyCode(), is(CurrencyUnit.EUR));

// check dividends transaction
AccountTransaction transaction = (AccountTransaction) results.stream().filter(TransactionItem.class::isInstance)
.findFirst().orElseThrow(IllegalArgumentException::new).getSubject();

assertThat(transaction.getType(), is(AccountTransaction.Type.DIVIDENDS));

assertThat(transaction.getDateTime(), is(LocalDateTime.parse("2023-04-12T00:00")));
assertThat(transaction.getShares(), is(Values.Share.factorize(13.629)));
assertThat(transaction.getSource(), is("Dividende14.txt"));
assertNull(transaction.getNote());

assertThat(transaction.getMonetaryAmount(),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(9.54))));
assertThat(transaction.getGrossValue(),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(9.54))));
assertThat(transaction.getUnitSum(Unit.Type.TAX),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(0.00))));
assertThat(transaction.getUnitSum(Unit.Type.FEE),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(0.00))));
}

@Test
public void testDividende13WithSecurityInEUR()
{
Expand Down
@@ -0,0 +1,73 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.62.0
-----------------------------------------
Scalable Capital GmbH
Seitzstraße 8e
80538 München
service@scalable.capital
Seite 1/2
Herrn München
14.04.2023
Max Mustermann
Maxstraße 1 Man Mustermann
11111 XXXXXXX Stamm-Nr.: 999999 Portfolio: 1
Depot-Nr.: 444444444
Vorgangs-Nr.: 00000000
Referenz-Nr.: 999999999
Dividende
Ex-Tag: 06.04.2023
Nominale ISIN: DE0005557508 WKN: 555750 Ausschüttung
STK 13,629 Deutsche Telekom AG EUR 0,70 p.STK
Zahlungszeitraum: 01.01.2022 - 31.12.2022
Zahltag: 12.04.2023
Bruttobetrag EUR 9,54
Zu Gunsten Konto 9999999999 Valuta: 12.04.2023 EUR 9,54
Dieses Dokument wurde maschinell erstellt und wird nicht unterschrieben.
Scalable Capital GmbH • Geschäftsführung: Erik Podzuweit, Florian Prucker, Martin Krebs, Peter Gaubatz, Dirk Urmoneit • HRB 217778, Amtsgericht München
• USt-IdNr. DE300434774 • www.scalable.capital

Herausgeberin und verantwortlich für den Inhalt ist die Baader Bank Aktiengesellschaft • Weihenstephaner Straße 4 • 85716 Unterschleißheim • Deutschland
Vorstand: Nico Baader (Vorsitzender), Dietmar von Blücher, Oliver Riedel • Vorsitzender des Aufsichtsrates: Helmut Schreyer • Amtsgericht München
HRB 121537 • Sitz der Gesellschaft: Unterschleißheim • StNr. 143/107/04009 • USt-IdNr. DE114123893 • LEI: 529900JFOPPEDUR61H13
T 00800 00 586336* • service@baaderbank.de EK27-036.048
* Kostenfreie Telefonnummer aus dem (inter-) nationalen Festnetz. Für Anrufe aus anderen Netzen können Gebühren anfallen.

Dividende
Fortsetzung: Seite 2/2
Darstellung der steuerlichen Berechnungsgrundlagen:
Bemessungsgrundlagen Steuerpflicht brutto Steuerpflicht netto
Leistungen steuerliches Einlagekonto § 27 Abs. 1 - 7 KStG EUR 9,54 EUR 9,54
Ausbuchung
Stück 13,629 Deutsche Telekom AG
ISIN: DE0005557508
Berücksichtigte Anschaffungsgeschäfte (alle ermittelten Beträge in EUR)
Geschäfts-
Geschäft Nr. Datum Whg./St. Nominal/Stück Anschaff.-kosten ant. Veräußer.-erlös ant. Ergebnis
WP Kauf 111331788 07.06.2022 STK 1,306 25,00 0,00 0,00
WP Kauf 126224375 16.08.2022 STK 1,576 29,98 0,00 0,00
WP Kauf 132763846 13.09.2022 STK 1,285 24,99 0,00 0,00
WP Kauf 136417148 03.10.2022 STK 1,702 29,98 0,00 0,00
WP Kauf 144718631 04.11.2022 STK 1,274 25,00 0,00 0,00
WP Kauf 153838735 13.12.2022 STK 1,291 24,99 0,00 0,00
WP Kauf 157838038 04.01.2023 STK 5,195 99,98 0,00 0,00
Einbuchung
Stück 13,629 Deutsche Telekom AG
ISIN: DE0005557508
Berücksichtigte Anschaffungsgeschäfte (alle ermittelten Beträge in EUR)
Geschäfts-
Geschäft Nr. Datum Whg./St. Nominal/Stück Anschaff.-kosten
WP Kauf 14480910 07.06.2022 STK 1,306 24,09
WP Kauf 14480910 16.08.2022 STK 1,576 28,88
WP Kauf 14480910 13.09.2022 STK 1,285 24,09
WP Kauf 14480910 03.10.2022 STK 1,702 28,79
WP Kauf 14480910 04.11.2022 STK 1,274 24,11
WP Kauf 14480910 13.12.2022 STK 1,291 24,09
WP Kauf 14480910 04.01.2023 STK 5,195 96,34
Scalable Capital GmbH • Geschäftsführung: Erik Podzuweit, Florian Prucker, Martin Krebs, Peter Gaubatz, Dirk Urmoneit • HRB 217778, Amtsgericht München
• USt-IdNr. DE300434774 • www.scalable.capital

Herausgeberin und verantwortlich für den Inhalt ist die Baader Bank Aktiengesellschaft • Weihenstephaner Straße 4 • 85716 Unterschleißheim • Deutschland
Vorstand: Nico Baader (Vorsitzender), Dietmar von Blücher, Oliver Riedel • Vorsitzender des Aufsichtsrates: Helmut Schreyer • Amtsgericht München
HRB 121537 • Sitz der Gesellschaft: Unterschleißheim • StNr. 143/107/04009 • USt-IdNr. DE114123893 • LEI: 529900JFOPPEDUR61H13
T 00800 00 586336* • service@baaderbank.de EK27-036.048
* Kostenfreie Telefonnummer aus dem (inter-) nationalen Festnetz. Für Anrufe aus anderen Netzen können Gebühren anfallen.
@@ -0,0 +1,50 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.62.0
-----------------------------------------
Scalable Capital GmbH
Seitzstraße 8e
80538 München
service@scalable.capital
Seite 1/1
Herrn München
14.04.2023
Max Mustermann
Musterweg 1 Max Mustermann
00000 Musterstadt Stamm-Nr.: 0000000 Portfolio: 1
Depot-Nr.: 0000000000
Vorgangs-Nr.: 00000000
Referenz-Nr.: 11111111
Wertpapierabrechnung: Kauf
Auftragsdatum: 14.04.2023 Ausführungsplatz: GETTEX - MM Munich
Auftragszeit: 14:04:19:00
Nominale ISIN: US5007541064 WKN: A14TU4 Kurs
STK 10 Kraft Heinz Co., The EUR 35,76
Registered Shares DL -,01
Auftraggeber: Depotinhaber
Art der Auftragserteilung: Orderroutingssystem
Kurswert EUR 357,60
Zu Lasten Konto 0000000000 Valuta: 18.04.2023 EUR 357,60
Die Wertpapiere buchen wir zu Gunsten Ihres Depots.
Details zur Ausführung:
Handels- Handels-
Nominale Kurs Ausführungsplatz datum uhrzeit
STK 10 EUR 35,76 GETTEX - MM Munich 14.04.2023 14:04:19:725
Verwahrart: Girosammelverwahrung Zeitzone der Handelsuhrzeit: MEZ/MESZ
Lagerstelle: 100 MIC des Ausführungsplatzes: MUNC
Lagerland: Deutschland
Für die Ausführung dieses Auftrags gelten die Usancen des jeweiligen Ausführungsplatzes.
Diese Auftragsbestätigung/Abrechnung wurde von der Baader Bank AG erstellt. Bitte prüfen Sie diese auf Richtigkeit und Vollständigkeit. Etwaige
Einwendungen gegen diese Auftragsbestätigung/Abrechnung müssen nach Zugang unverzüglich bei der Baader Bank AG erhoben werden.
Dieser Auftrag erfolgte ohne Empfehlung der Bank. Es wurde keine Anlageberatung und keine individuelle Aufklärung durch die Bank erbracht.
Sofern keine Umsatzsteuer ausgewiesen ist, handelt es sich um eine umsatzsteuerbefreite Finanzdienstleistung.
Einkünfte aus Kapitalvermögen im Sinne von § 20 EStG sind einkommensteuerpflichtig.
Dieses Dokument wurde maschinell erstellt und wird nicht unterschrieben.
Scalable Capital GmbH • Geschäftsführung: Erik Podzuweit, Florian Prucker, Martin Krebs, Peter Gaubatz, Dirk Urmoneit • HRB 217778, Amtsgericht München • USt-IdNr.
DE300434774 • www.scalable.capital

Herausgeberin und verantwortlich für den Inhalt ist die Baader Bank Aktiengesellschaft • Weihenstephaner Straße 4 • 85716 Unterschleißheim • Deutschland
Vorstand: Nico Baader (Vorsitzender), Dietmar von Blücher, Oliver Riedel • Vorsitzender des Aufsichtsrates: Helmut Schreyer • Amtsgericht München HRB 121537 • Sitz der
Gesellschaft: Unterschleißheim • StNr. 143/107/04009 • USt-IdNr. DE114123893 • LEI: 529900JFOPPEDUR61H13
T 00800 00 586336* • service@baaderbank.de
WPABRECHNUNG-060.114
* Kostenfreie Telefonnummer aus dem (inter-) nationalen Festnetz. Für Anrufe aus anderen Netzen können Gebühren anfallen.
Expand Up @@ -270,7 +270,8 @@ private void addDividendeTransaction()
+ "|Dividendenabrechnung"
+ "|Aussch.ttung aus"
+ "|Wahldividende"
+ "|Fund Distribution)");
+ "|Fund Distribution"
+ "|Dividende)");
this.addDocumentTyp(type);

Block block = new Block("^Ex\\-(Tag|Date): .*$");
Expand Down