Skip to content

Commit

Permalink
Modify Trade Republic PDF-Importer to support new transaction (#4332)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nirus2000 authored Nov 4, 2024
1 parent ccd521e commit 9859649
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.71.2
-----------------------------------------
TRADE REPUBLIC BANK GMBH BRUNNENSTRASSE 19-21 10119 BERLIN
Max Mustermann SEITE 1 von 1
Musterstraße 123 DATUM 04.11.2024
01234 Musterstadt AUSFÜHRUNG 1234-abcd
SPARPLAN abcd-1234
DEPOT 0123456789
WERTPAPIERABRECHNUNG SPARPLAN
ÜBERSICHT
Sparplanausführung am 04.11.2024 an der Lang und Schwarz Exchange.
Der Kontrahent der Transaktion ist Lang & Schwarz TradeCenter AG & Co. KG.
POSITION ANZAHL DURCHSCHNITTSKURS BETRAG
Société Générale 0,920979 Stk. 27,145 EUR 25,00 EUR
ISIN: FR0000130809
GESAMT 25,00 EUR
ABRECHNUNG
POSITION BETRAG
Finanztransaktionssteuer -0,08 EUR
GESAMT -25,08 EUR
BUCHUNG
VERRECHNUNGSKONTO WERTSTELLUNG BETRAG
DE99012345670123456789 2024-11-06 -25,08 EUR
Société Générale in Girosammelverwahrung in Deutschland
Diese Abrechnung wird maschinell erstellt und daher nicht unterschrieben.
Sofern keine Umsatzsteuer ausgewiesen ist, handelt es sich gem. § 4 Nr. 8 UStG um eine umsatzsteuerfreie Leistung.
Trade Republic Bank GmbH www.traderepublic.com Sitz der Gesellschaft: Berlin Geschäftsführer
Brunnenstraße 19-21 [email protected] AG Charlottenburg HRB 244347 B Andreas Torner
10119 Berlin USt-ID DE307510626 Gernot Mittendorfer
ABRE / 4321-dcba
Original file line number Diff line number Diff line change
Expand Up @@ -7437,6 +7437,37 @@ public void testSparplan10()
hasTaxes("EUR", 0.00), hasFees("EUR", 0.00))));
}

@Test
public void testSparplan11()
{
TradeRepublicPDFExtractor extractor = new TradeRepublicPDFExtractor(new Client());

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

List<Item> results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "Sparplan11.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("FR0000130809"), hasWkn(null), hasTicker(null), //
hasName("Société Générale"), //
hasCurrencyCode("EUR"))));

// check buy sell transaction
assertThat(results, hasItem(purchase( //
hasDate("2024-11-04T00:00"), hasShares(0.920979), //
hasSource("Sparplan11.txt"), //
hasNote("Ausführung: 1234-abcd | Sparplan: abcd-1234"), //
hasAmount("EUR", 25.08), hasGrossValue("EUR", 25.00), //
hasTaxes("EUR", 0.08), hasFees("EUR", 0.00))));
}

@Test
public void testPlanDeInvestion01()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3984,6 +3984,13 @@ private <T extends Transaction<?>> void addTaxesSectionsTransaction(T transactio
// @formatter:on
.section("tax", "currency").optional() //
.match("^.* Finanztransaktionssteuer (\\-)?(?<tax>[\\.,\\d]+) (?<currency>[\\w]{3})$") //
.assign((t, v) -> processTaxEntries(t, v, type))

// @formatter:off
// Finanztransaktionssteuer -0,08 EUR
// @formatter:on
.section("tax", "currency").optional() //
.match("^Finanztransaktionssteuer (\\-)?(?<tax>[\\.,\\d]+) (?<currency>[\\w]{3})$") //
.assign((t, v) -> processTaxEntries(t, v, type));
}

Expand Down

0 comments on commit 9859649

Please sign in to comment.