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 OnVista PDF-Importer to support new transaction #3071

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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
PDFBox Version: 1.8.16
Portfolio Performance Version: 0.59.5
-----------------------------------------
BELEGDRUCK=J
ORIGINAL=1
FAXVERSAND=N
EMAILVERSAND=N
DEPOTNUMMER=347177000
DEPOTUNTERBEZEICHNUNG=
VERSANDARTENSCHLUESSEL=EBOX
Wertpapierabrechnung ADRESSZEILE1=Herr
ADRESSZEILE2=Max Mustermann
Kauf Limitauftrag ADRESSZEILE3=Musterstr. 77
Kommissionsgeschäft ADRESSZEILE4=12345 Musterstadt
Herr ADRESSZEILE5=
Max Mustermann ADRESSZEILE6=Depot-Nr. Abrechnungs-Nr.
Musterstr. 77 BELEGNUMMER=33629
12345 Musterstadt 666666000 15666666 / 01.12.2022 SEITENNUMMER=1STEUERERSTATTUNG=N
Depotinhaber
Max Mustermann
Frankfurt am Main, 01.12.2022
Wir haben für Sie gekauft
Gattungsbezeichnung Fälligkeit näch. Zinstermin ISIN
11,5% UniCredit Bank AG HVB Aktienanleihe 24.11.2023 24.11.2023 DE000HB4GEE2
v.22(23)SDF
Nominal Kurs
EUR 1.000,000 90,1800 %
Handelstag 01.12.2022 Kurswert EUR 901,80-
Handelszeit 18:08 Stückzinsen EUR 82,55-
Zinstage 262 Orderprovision EUR 5,00-
Handelsplatz außerbörslich HypoVereinsbank Handelsplatzgebühr EUR 2,00-
Verwahrart Girosammelverwahrung
Wert Konto-Nr. Betrag zu Ihren Lasten
05.12.2022 666666000 EUR 991,35
Hinweise zur steuerlichen Verrechnung: vorher aktuell
Stückzinsaufwand EUR 82,55
Aktienverlusttopf EUR 1.066,78 1.066,78
allgemeiner Verlusttopf EUR 0,00 0,00
Freistellungsauftrag (eingereicht: EUR 995,00) EUR 157,84 240,39
Quellensteuertopf EUR 0,00 0,00
zu versteuern EUR 0,00
im laufenden Jahr einbehaltene Kapitalertragsteuer EUR 0,00
im laufenden Jahr einbehaltener Solidaritätszuschlag EUR 0,00
Wir werden in Ihrem Depot wie angegeben buchen.
Dieser Beleg wird maschinell erstellt und daher nicht unterschrieben.
Wir bitten Sie, diese Abrechnung auf ihre Richtigkeit und Vollständigkeit zu überprüfen und etwaige Einwendungen
unverzüglich zu erheben.
onvist a bank - eine M arke der Com merzbank AG · Solmsst raße 83 · 6 0 486 Frankfur t a m M ain
Kundenservice: +49 ( 0 )69-710 7-53 0 · T: +49 ( 0 )69-710 7- 0 · F: +49 ( 0 )69-710 7-10 0 · E: in fo@onvist a -bank.de · W: w w w.onvist a -bank.de
Commerzbank AG · 60261 Frankfur t am Main · AG Frankfur t am Main HRB 32000 · Vorstand: Manf red Knof (Vorsitzender), Marcus Chromik, Michael Kotzbauer,
Jörg Oliveri del Castillo-Schulz, Bet t ina Orlopp, Thomas Schaufler, Sabine Schmit t roth · Vorsitzender des Aufsichtsrates: Helmut Got tschalk
3.18/ABREABHNHANDKFDI/POJ1618/033629/021222/004901
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,48 @@ public void testWertpapierKauf10WithSecurityInEUR()
assertThat(s, is(Status.OK_STATUS));
}

@Test
public void testWertpapierKauf11()
{
OnvistaPDFExtractor extractor = new OnvistaPDFExtractor(new Client());

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

List<Item> results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "Kauf11.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("DE000HB4GEE2"));
assertThat(security.getName(), is("11,5% UniCredit Bank AG HVB Aktienanleihe v.22(23)SDF"));
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("2022-12-01T18:08")));
assertThat(entry.getPortfolioTransaction().getShares(), is(Values.Share.factorize(10)));
assertThat(entry.getSource(), is("Kauf11.txt"));
assertThat(entry.getNote(), is("Stückzinsaufwand EUR 82,55"));

assertThat(entry.getPortfolioTransaction().getMonetaryAmount(),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(991.35))));
assertThat(entry.getPortfolioTransaction().getGrossValue(),
is(Money.of(CurrencyUnit.EUR, Values.Amount.factorize(984.35))));
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(5.00 + 2.00))));
}

@Test
public void testWertpapierVerkauf01()
{
Expand Down
Loading