Skip to content

Commit

Permalink
Modify Oldenburgische Landesbank AG PDF-Importer to support new trans…
Browse files Browse the repository at this point in the history
  • Loading branch information
Nirus2000 authored Oct 31, 2024
1 parent f06ce51 commit f807a88
Show file tree
Hide file tree
Showing 4 changed files with 175 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,39 @@ public void testWertpapierVerkauf02()
hasTaxes("EUR", 0.00), hasFees("EUR", 0.00))));
}

@Test
public void testWertpapierStornoKauf01()
{
OldenburgischeLandesbankAGPDFExtractor extractor = new OldenburgischeLandesbankAGPDFExtractor(new Client());

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

List<Item> results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "StornoKauf01.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("NL0010408704"), hasWkn("A12HWR"), hasTicker(null), //
hasName("VanEck Sust.World EQ.UC.ETF Aandelen oop naam o.N."), //
hasCurrencyCode("EUR"))));

// check dividends transaction
assertThat(results, hasItem(withFailureMessage( //
Messages.MsgErrorOrderCancellationUnsupported, //
purchase( //
hasDate("2023-09-15T18:18:08"), hasShares(0.563027), //
hasSource("StornoKauf01.txt"), //
hasNote("Ord.-Ref.: 908703"), //
hasAmount("EUR", 15.88), hasGrossValue("EUR", 15.88), //
hasTaxes("EUR", 0.00), hasFees("EUR", 0.00)))));
}

@Test
public void testDividende01()
{
Expand Down Expand Up @@ -411,6 +444,39 @@ public void testDividende04()
hasTaxes("EUR", 1.40 + 0.07), hasFees("EUR", 0.00))));
}

@Test
public void testWertpapierStornoDividende01()
{
OldenburgischeLandesbankAGPDFExtractor extractor = new OldenburgischeLandesbankAGPDFExtractor(new Client());

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

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

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

// check security
assertThat(results, hasItem(security( //
hasIsin("NL0010408704"), hasWkn("A12HWR"), hasTicker(null), //
hasName("VanEck Sust.World EQ.UC.ETF Aandelen oop naam o.N."), //
hasCurrencyCode("EUR"))));

// check dividends transaction
assertThat(results, hasItem(withFailureMessage( //
Messages.MsgErrorOrderCancellationUnsupported, //
dividend( //
hasDate("2023-09-13T00:00"), hasShares(95.967357), //
hasSource("StornoDividende01.txt"), //
hasNote(null), //
hasAmount("EUR", 15.88), hasGrossValue("EUR", 16.31), //
hasTaxes("EUR", 0.41 + 0.02), hasFees("EUR", 0.00)))));
}

@Test
public void testVorabpauschale01()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.71.2
-----------------------------------------
Oldenburg, 28.09.2023
Es betreut Sie:
Ihr OLB Team
Postfach 26 05, 26016 Oldenburg 26121 Oldenburg
Tel.: 0441 999092-810
[email protected]
Vom 28.09.2023
Seite 1 von 1
ZKOYyg DMdQu Depotnummer 5396762597
Am hKGLzOVOxmyK 01
21132 YLRe i. bj
STORNIERUNG
Stornierung Dividendengutschrift – VanEck Sust.World EQ.UC.ETF Aandelen oop naam o.N.
ISIN (WKN) Stück/ Nominale Ausschüttung pro Stück Währung
NL0010408704 (A12HWR) 95,967357 0,170000 EUR
Zahlbarkeitstag 13.09.2023
Bestandsstichtag 07.09.2023
Ex-Tag 06.09.2023
Geschäftsjahr 01.01.2023-31.12.2023
Dividendengutschrift 16,31 EUR
Kapitalertragsteuer 0,41 EUR
Solidaritätszuschlag 0,02 EUR
Ausmachender Betrag + 15,88 EUR
Verwahrart
GS Clearstream Frankfurt
Sehr geehrte Depotkundin, sehr geehrter Depotkunde,
der oben angezeigte Fondsertrag (Ausschüttung) wurde storniert.
Die Neuabrechnung wird Ihnen entsprechend zugestellt.
Der ausmachende Betrag wird Ihnen auf Ihr Konto DE06280200505764921200 gutgeschrieben.
Mit freundlichen Grüßen
Ihre OLB Bank
FNZ
Oldenburgische Landesbank AG | Stau 15/17 | 26122 Oldenburg
Vorsitzender des Aufsichtsrates: Axel Bartsch | Vorstand: Stefan Barth, Vorsitzender | Marc Ampaw | Aytac Aydin | Chris Eggert | Giacomo Petrobelli | Dr. Rainer Polster
Sitz der Gesellschaft: Oldenburg (Oldb) Registergericht: Oldenburg (Oldb) HR-Nummer: HRB 3003
Informationen zur Nutzung Ihrer Daten erhalten Sie auf www.olb.de/dsgvo und in jeder OLB-Filiale. Auf Wunsch schicken wir die Informationen auch gerne per Post zu.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.71.2
-----------------------------------------
Oldenburg, 28.09.2023
Es betreut Sie:
Ihr OLB Team
Postfach 26 05, 26016 Oldenburg 26121 Oldenburg
Tel.: 0441 999092-810
[email protected]
HmcVNi eJtAw
Am UEatZDDSXxks 56
55892 ESNK i. OB
Depotinhaber dTntdC dGEHy Seite 1 von 1
Depotnummer 1766356816 Ausführung 15.09.2023 18:18:08
Orderreferenz 908703
Handelsreferenz 847266
WERTPAPIERABRECHNUNG
Stornierung Kauf - VanEck Sust.World EQ.UC.ETF Aandelen oop naam o.N.
Produktgruppe: ETF
Handels- / Ausführungsplatz - Festpreisgeschäft
ISIN (WKN) Stück/ Nominale Kurswert Währung Bruttobetrag
NL0010408704 (A12HWR) 0,563027 28,1514 EUR 15,85 EUR
Ausmachender Betrag: 15,88 EUR
Beratungsfreies Geschäft
Verrechnungskonto Valuta
DE06280200505764921200 19.09.2023
Verwahrart
Girosammelverwahrung
Sehr geehrte Depotkundin, sehr geehrter Depotkunde, der oben angezeigte Kauf wurde storniert.
Bitte beachten Sie folgende Hinweise:
Dieses Dokument wurde maschinell erstellt und wird nicht unterschrieben.
FNZ
Oldenburgische Landesbank AG | Stau 15/17 | 26122 Oldenburg
Vorsitzender des Aufsichtsrates: Axel Bartsch | Vorstand: Stefan Barth, Vorsitzender | Marc Ampaw | Aytac Aydin | Chris Eggert | Giacomo Petrobelli | Dr. Rainer Polster
Sitz der Gesellschaft: Oldenburg (Oldb) Registergericht: Oldenburg (Oldb) HR-Nummer: HRB 3003
Informationen zur Nutzung Ihrer Daten erhalten Sie auf www.olb.de/dsgvo und in jeder OLB-Filiale. Auf Wunsch schicken wir die Informationen auch gerne per Post zu.
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,14 @@ private void addBuySellTransaction()
if ("Verkauf".equals(v.get("type")))
t.setType(PortfolioTransaction.Type.SELL);
})

// @formatter:off
// Stornierung Kauf - VanEck Sust.World EQ.UC.ETF Aandelen oop naam o.N.
// @formatter:on
.section("type").optional() //
.match("^(?<type>Stornierung) (Kauf|Verkauf)( \\-|:) .*$") //
.assign((t, v) -> v.getTransactionContext().put(FAILURE, Messages.MsgErrorOrderCancellationUnsupported))

// @formatter:off
// Kauf - iS.EO G.B.C.1.5-10.5y.U.ETF DE Inhaber-Anteile
// DE000A0H0785 (A0H078) 0,033037 10,0350 EUR 1,47 EUR
Expand All @@ -70,7 +78,7 @@ private void addBuySellTransaction()
// LU1861134382 (A2JSDA) 9,727757 93,4642 EUR 982,07 EUR
// @formatter:on
.section("name", "isin", "wkn", "currency") //
.match("^(Kauf|Verkauf)( \\-|:) (?<name>.*)$") //
.match("^(Stornierung )?(Kauf|Verkauf)( \\-|:) (?<name>.*)$") //
.match("^(?<isin>[A-Z]{2}[A-Z0-9]{9}[0-9]) \\((?<wkn>[A-Z0-9]{6})\\) [\\.,\\d]+ [\\.,\\d]+ (?<currency>[\\w]{3}) [\\.,\\d]+ [\\w]{3}$") //
.assign((t, v) -> t.setSecurity(getOrCreateSecurity(v)))

Expand Down Expand Up @@ -134,14 +142,21 @@ private void addBuySellTransaction()
.match("^Orderreferenz (?<note>.*)$") //
.assign((t, v) -> t.setNote("Ord.-Ref.: " + v.get("note")))

.wrap(BuySellEntryItem::new);
.wrap((t, ctx) -> {
BuySellEntryItem item = new BuySellEntryItem(t);

if (ctx.getString(FAILURE) != null)
item.setFailureMessage(ctx.getString(FAILURE));

return item;
});

addFeesSectionsTransaction(pdfTransaction, type);
}

private void addDividendeTransaction()
{
DocumentType type = new DocumentType("ERTRAGSAUSSCH.TTUNG");
DocumentType type = new DocumentType("(ERTRAGSAUSSCH.TTUNG|Stornierung Dividendengutschrift)");
this.addDocumentTyp(type);

Transaction<AccountTransaction> pdfTransaction = new Transaction<>();
Expand All @@ -158,6 +173,13 @@ private void addDividendeTransaction()
return accountTransaction;
})

// @formatter:off
// Stornierung Dividendengutschrift – VanEck Sust.World EQ.UC.ETF Aandelen oop naam o.N.
// @formatter:on
.section("type").optional() //
.match("^(?<type>Stornierung) (Aussch.ttung|Dividendengutschrift) \\– .*$") //
.assign((t, v) -> v.getTransactionContext().put(FAILURE, Messages.MsgErrorOrderCancellationUnsupported))

// @formatter:off
// Ausschüttung – iS.EO G.B.C.1.5-10.5y.U.ETF DE Inhaber-Anteile
// DE000A0H0785 (A0H078) 71,851808 8,895903 EUR
Expand All @@ -166,7 +188,7 @@ private void addDividendeTransaction()
// IE00B0M62Q58 (A0HGV0) 5,200029 0,169600 USD
// @formatter:on
.section("name", "isin", "wkn", "currency") //
.match("^(Aussch.ttung|Dividendengutschrift) \\– (?<name>.*)$") //
.match("^(Stornierung )?(Aussch.ttung|Dividendengutschrift) \\– (?<name>.*)$") //
.match("^(?<isin>[A-Z]{2}[A-Z0-9]{9}[0-9]) \\((?<wkn>[A-Z0-9]{6})\\) [\\.,\\d]+ [\\.,\\d]+ (?<currency>[\\w]{3})$") //
.assign((t, v) -> t.setSecurity(getOrCreateSecurity(v)))

Expand Down Expand Up @@ -211,7 +233,14 @@ private void addDividendeTransaction()
checkAndSetGrossUnit(gross, fxGross, t, type.getCurrentContext());
})

.wrap(TransactionItem::new);
.wrap((t, ctx) -> {
TransactionItem item = new TransactionItem(t);

if (ctx.getString(FAILURE) != null)
item.setFailureMessage(ctx.getString(FAILURE));

return item;
});

addTaxesSectionsTransaction(pdfTransaction, type);
addFeesSectionsTransaction(pdfTransaction, type);
Expand Down

0 comments on commit f807a88

Please sign in to comment.