Skip to content

Commit

Permalink
Modify Baader Bank PDF-Importer to support new transactions
Browse files Browse the repository at this point in the history
  • Loading branch information
Nirus2000 authored and buchen committed Nov 11, 2023
1 parent 9522f74 commit 353ed6c
Show file tree
Hide file tree
Showing 5 changed files with 487 additions and 123 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.hasTaxes;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.hasTicker;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.hasWkn;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.interest;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.purchase;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.security;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.withFailureMessage;
Expand Down Expand Up @@ -1185,6 +1186,43 @@ public void testWertpapierKauf27()
hasTaxes("EUR", 0.00), hasFees("EUR", 0.12))));
}

@Test
public void testWertpapierKauf27WithSecurityInEUR()
{
Security security = new Security("Great Eagle Holdings Ltd. Registered Shares HD -,50", CurrencyUnit.EUR);
security.setIsin("BMG4069C1486");
security.setWkn("879151");

Client client = new Client();
client.addSecurity(security);

BaaderBankPDFExtractor extractor = new BaaderBankPDFExtractor(client);

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

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

assertThat(errors, empty());
assertThat(countSecurities(results), is(0L));
assertThat(countBuySell(results), is(1L));
assertThat(countAccountTransactions(results), is(0L));
assertThat(results.size(), is(1));
new AssertImportActions().check(results, CurrencyUnit.EUR);

// check check buy sell transaction
assertThat(results, hasItem(purchase( //
hasDate("2023-06-14T08:48:32"), hasShares(52.22), //
hasSource("Kauf27.txt"), //
hasNote("Vorgangs-Nr.: 123456"), //
hasAmount("EUR", 91.89), hasGrossValue("EUR", 91.77), //
hasTaxes("EUR", 0.00), hasFees("EUR", 0.12), //
check(tx -> {
CheckCurrenciesAction c = new CheckCurrenciesAction();
Status s = c.process((PortfolioTransaction) tx, new Portfolio());
assertThat(s, is(Status.OK_STATUS));
}))));
}

@Test
public void testWertpapierKauf28()
{
Expand Down Expand Up @@ -1217,11 +1255,43 @@ public void testWertpapierKauf28()
}

@Test
public void testWertpapierKauf27WithSecurityInEUR()
public void testWertpapierKauf29()
{
Security security = new Security("Great Eagle Holdings Ltd. Registered Shares HD -,50", CurrencyUnit.EUR);
security.setIsin("BMG4069C1486");
security.setWkn("879151");
BaaderBankPDFExtractor extractor = new BaaderBankPDFExtractor(new Client());

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

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

assertThat(errors, empty());
assertThat(countSecurities(results), is(1L));
assertThat(countBuySell(results), is(1L));
assertThat(countAccountTransactions(results), is(0L));
assertThat(results.size(), is(2));
new AssertImportActions().check(results, CurrencyUnit.EUR);

// check security
assertThat(results, hasItem(security( //
hasIsin("CH0130293662"), hasWkn("A1JLZG"), hasTicker(null), //
hasName("BKW AG Namens-Aktien SF 2,50"), //
hasCurrencyCode("CHF"))));

// check buy sell transaction
assertThat(results, hasItem(purchase( //
hasDate("2023-11-06T10:13:44"), hasShares(5), //
hasSource("Kauf29.txt"), //
hasNote("Vorgangs-Nr.: 123456789"), //
hasAmount("EUR", 813.38), hasGrossValue("EUR", 804.17), //
hasForexGrossValue("CHF", 772.00), //
hasTaxes("EUR", 0.00), hasFees("EUR", 5.21 + 4.00))));
}

@Test
public void testWertpapierKauf29WithSecurityInEUR()
{
Security security = new Security("BKW AG Namens-Aktien SF 2,50", CurrencyUnit.EUR);
security.setIsin("CH0130293662");
security.setWkn("A1JLZG");

Client client = new Client();
client.addSecurity(security);
Expand All @@ -1230,7 +1300,7 @@ public void testWertpapierKauf27WithSecurityInEUR()

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

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

assertThat(errors, empty());
assertThat(countSecurities(results), is(0L));
Expand All @@ -1241,11 +1311,11 @@ public void testWertpapierKauf27WithSecurityInEUR()

// check check buy sell transaction
assertThat(results, hasItem(purchase( //
hasDate("2023-06-14T08:48:32"), hasShares(52.22), //
hasSource("Kauf27.txt"), //
hasNote("Vorgangs-Nr.: 123456"), //
hasAmount("EUR", 91.89), hasGrossValue("EUR", 91.77), //
hasTaxes("EUR", 0.00), hasFees("EUR", 0.12), //
hasDate("2023-11-06T10:13:44"), hasShares(5), //
hasSource("Kauf29.txt"), //
hasNote("Vorgangs-Nr.: 123456789"), //
hasAmount("EUR", 813.38), hasGrossValue("EUR", 804.17), //
hasTaxes("EUR", 0.00), hasFees("EUR", 5.21 + 4.00), //
check(tx -> {
CheckCurrenciesAction c = new CheckCurrenciesAction();
Status s = c.process((PortfolioTransaction) tx, new Portfolio());
Expand Down Expand Up @@ -3535,6 +3605,31 @@ public void testRechnung01()
assertThat(transaction.getNote(), is("Abrechnungszeitraum 01.07.2017 - 31.07.2017"));
}

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

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

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

assertThat(errors, empty());
assertThat(countSecurities(results), is(0L));
assertThat(countBuySell(results), is(0L));
assertThat(countAccountTransactions(results), is(1L));
assertThat(results.size(), is(1));
new AssertImportActions().check(results, CurrencyUnit.EUR);

// check interest transaction
assertThat(results, hasItem(interest( //
hasDate("2023-10-31T00:00"), //
hasSource("Rechnungsabschluss01.txt"), //
hasNote("30.09.2023 bis 31.10.2023"), //
hasAmount("EUR", 1.46), hasGrossValue("EUR", 2.00), //
hasTaxes("EUR", 0.49 + 0.03 + 0.02), hasFees("EUR", 0.00))));
}

@Test
public void testEinbuchung01()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.65.5
-----------------------------------------
Baader Bank AG Weihenstephaner Straße 4 85716 Unterschleißheim Smartbroker AG
T 00800 00 586336* F +49 89 5150 2442 [email protected] Ritterstraße 11
10969 Berlin
Seite 1/1
Berlin
Max Mustermann 06.11.2023
Teststr. 1
Max Mustermann
12345 Musterstadt Stamm-Nr.: 1234567 Portfolio: 1
Depot-Nr.: 123456789
Vorgangs-Nr.: 123456789
Referenz-Nr.: 123456789
Wertpapierabrechnung: Kauf
Auftragsdatum: 06.11.2023 Ausführungsplatz: Zurich
Auftragszeit: 10:13:44:00
Nominale ISIN: CH0130293662 WKN: A1JLZG Kurs
STK 5 BKW AG CHF 154,40
Namens-Aktien SF 2,50
Auftraggeber: Depotinhaber
Art der Auftragserteilung: Orderroutingssystem
Kurswert Umrechnungskurs CHF/EUR: 0,96 EUR 804,17
Provision Baader EUR 5,21
Provision Smartbroker EUR 4,00
Zu Lasten Konto 123465789 Valuta: 08.11.2023 EUR 813,38
Die Wertpapiere buchen wir zu Gunsten Ihres Depots.
Details zur Ausführung:
Handels- Handels-
Nominale Kurs Ausführungsplatz datum uhrzeit
STK 5 CHF 154,40 Zurich 06.11.2023 10:13:44:503
Verwahrart: Wertpapierrechnung Zeitzone der Handelsuhrzeit: MEZ/MESZ
Lagerstelle: 1589 MIC des Ausführungsplatzes: XSWX
Lagerland: Schweiz
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.
smartbrokerplus.de
Brauchen Sie Unterstützung? Dann kontaktieren Sie bitte den Service von SMARTBROKER+ über das Kontaktformular in der SMARTBROKER+ App.

Herausgeberin und verantwortlich für den Inhalt ist die Baader Bank Aktiengesellschaft • Weihenstephaner Straße 4 • 85716 Unterschleißheim • Deutschland
Vorstand: Nico Baader (Vorsitzender), Oliver Riedel (stv. Vorsitzender) • 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* • [email protected]

* Kostenfreie Telefonnummer aus dem (inter-) nationalen Festnetz. Für Anrufe aus anderen Netzen können Gebühren anfallen.
WPABRECHNUNG-060.114
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.65.5
-----------------------------------------
T 00800 00 586336*
F +49 89 5150 2442
[email protected]
Seite 1/2
Unterschleißheim
Max Mustermann
31.10.2023
Teststr. 1
12345 Teststadt Max Mustermann
Stamm-Nr.: 12345 Portfolio: 1
Konto-Nr.: 123456789
IBAN: DE12 3456 7891 2345 6789 12
BIC: BDWBDEMM
Vorgangs-Nr.: 12345678
Referenz-Nr.: 12346578912
Rechnungsabschluss: EUR KOPIE
Konto: DE12 3456 7891 2345 6789 12
Sehr geehrte Damen und Herren,
für den Zeitraum 30.09.2023 bis 31.10.2023 ergeben sich für das Konto DE12 3456 7891 2345 6789 12
folgende Abschlussbuchungen:
Abschlussbuchung vom 31.10.2023
Zinsberechnung: Betrag in EUR
Habenzinsen (HZ) (brutto) 2,00
Kapitalertragsteuer 0,49 -
Kirchensteuer 0,03 -
Solidaritätszuschlag 0,02 -
Habenzinsen (netto) 1,46
Gesamtsumme: 1,46
Die Buchung erfolgt über Konto DE12 3456 7891 2345 6789 12 mit Valuta 31.10.2023.
Die detaillierte Zinsberechnung entnehmen Sie bitte der beigefügten Zinsstaffel.
Bei Fragen wenden Sie sich bitte an Ihren Finanzdienstleister.
Mit freundlichen Grüßen
Baader Bank AG
Baader Bank Aktiengesellschaft T 00800 00 222 337* Vorstand: Nico Baader (Vorsitzender), Amtsgericht München HRB 121537
Weihenstephaner Straße 4 F +49 89 5150 2442 Oliver Riedel (stv. Vorsitzender) Sitz der Gesellschaft: Unterschleißheim
85716 Unterschleißheim [email protected] Vorsitzender des Aufsichtsrates: StNr. 143/107/04009
Deutschland www.baaderbank.de Helmut Schreyer USt-IdNr. DE114123893
LEI: 529900JFOPPEDUR61H13

* Kostenfreie Telefonnummer aus dem (inter-) nationalen Festnetz. Für Anrufe aus anderen Netzen können Gebühren anfallen. XXXX123-456.789
Rechnungsabschluss: EUR KOPIE
Konto: DE12 3456 7891 2345 6789 12
Fortsetzung: Seite 2/2
Maßgebliche Umsätze und Salden für diesen Zeitraum entnehmen Sie bitte dem gesonderten Perioden-Kontoauszug.
Bitte prüfen Sie unseren Rechnungsabschluss. Rechnungsabschlüsse gelten als von Ihnen genehmigt, sofern Sie
innerhalb von 6 Wochen nach deren Zugang keine Einwendungen erheben. Wir verweisen auf unsere Allgemeinen
Geschäftsbedingungen.
Sofern keine Umsatzsteuer ausgewiesen ist, handelt es sich um eine umsatzsteuerbefreite Finanzdienstleistung.
Dieses Dokument wurde maschinell erstellt und wird nicht unterschrieben.
Baader Bank Aktiengesellschaft T 00800 00 222 337* Vorstand: Nico Baader (Vorsitzender), Amtsgericht München HRB 121537
Weihenstephaner Straße 4 F +49 89 5150 2442 Oliver Riedel (stv. Vorsitzender) Sitz der Gesellschaft: Unterschleißheim
85716 Unterschleißheim [email protected] Vorsitzender des Aufsichtsrates: StNr. 143/107/04009
Deutschland www.baaderbank.de Helmut Schreyer USt-IdNr. DE114123893
LEI: 529900JFOPPEDUR61H13

* Kostenfreie Telefonnummer aus dem (inter-) nationalen Festnetz. Für Anrufe aus anderen Netzen können Gebühren anfallen. XXXX123-456.789
T 00800 00 586336*
F +49 89 5150 2442
[email protected]
Seite 1/1
Unterschleißheim
DJE Kapital AG
31.10.2023
Teststr. 1
12345 Teststadt Max Mustermann
Stamm-Nr.: 12345 Portfolio: 1
Konto-Nr.: 123456789
IBAN: DE12 3456 7891 2345 6789 12
BIC: BDWBDEMM
Vorgangs-Nr.: 12345678
Referenz-Nr.: 12346578912
Zinsstaffel: EUR KOPIE
Konto: DE12 3456 7891 2345 6789 12
Für den Zeitraum vom 30.09.2023 bis 31.10.2023 ergab sich für Ihr Konto DE12 3456 7891 2345 6789 12
folgende Zinsberechnung:
Valuta Zinstage Limit Saldo in EUR Zinssatz % Zinsbetrag in EUR
30.09.2023 1 1.179,81 1,5000 0,05 HZ
01.10.2023 1 1.179,81 1,5000 0,05 HZ
02.10.2023 1 1.420,94 1,5000 0,06 HZ
03.10.2023 3 1.431,07 1,5000 0,18 HZ
06.10.2023 4 1.432,83 1,5000 0,24 HZ
10.10.2023 2 1.420,06 1,5000 0,12 HZ
12.10.2023 1 1.420,97 1,5000 0,06 HZ
13.10.2023 3 1.423,54 1,5000 0,18 HZ
16.10.2023 1 1.426,86 1,5000 0,06 HZ
17.10.2023 2 1.404,08 1,5000 0,12 HZ
19.10.2023 1 1.527,58 1,5000 0,06 HZ
20.10.2023 3 1.660,10 1,5000 0,21 HZ
23.10.2023 1 1.660,19 1,5000 0,07 HZ
24.10.2023 1 1.758,42 1,5000 0,07 HZ
25.10.2023 1 1.644,12 1,5000 0,07 HZ
26.10.2023 4 1.896,42 1,5000 0,32 HZ
30.10.2023 1 1.990,86 1,5000 0,08 HZ
Bitte prüfen Sie diese Mitteilung. Etwaige Einwendungen bitten wir unverzüglich zu erheben.
Dieses Dokument wurde maschinell erstellt und wird nicht unterschrieben.
Baader Bank Aktiengesellschaft T 00800 00 222 337* Vorstand: Nico Baader (Vorsitzender), Amtsgericht München HRB 121537
Weihenstephaner Straße 4 F +49 89 5150 2442 Oliver Riedel (stv. Vorsitzender) Sitz der Gesellschaft: Unterschleißheim
85716 Unterschleißheim [email protected] Vorsitzender des Aufsichtsrates: StNr. 143/107/04009
Deutschland www.baaderbank.de Helmut Schreyer USt-IdNr. DE114123893
LEI: 529900JFOPPEDUR61H13

* Kostenfreie Telefonnummer aus dem (inter-) nationalen Festnetz. Für Anrufe aus anderen Netzen können Gebühren anfallen. XXXX123-456.789
Loading

0 comments on commit 353ed6c

Please sign in to comment.