Skip to content

Commit

Permalink
Modify Swissquote PDF-Importer to support new transaction (#4421)
Browse files Browse the repository at this point in the history
Closes #4419
  • Loading branch information
Nirus2000 authored Dec 25, 2024
1 parent 49d08f6 commit 5dbe199
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.72.2
-----------------------------------------
TRANSAKTIONSBELEG
Kunde: 0950311 - TRADING
IBAN: CH1111111000212241300
Herrn mPvWQ AeiLRqW
xNjXWfhLGdRrFgC 633
CH-6873 wgnl
Gland, 15.11.2024
Kauf Unsere Referenz: 699111111
Am 15.11.2024 haben wir folgende Transaktionen vorgenommen:
Titel Börse
AMAZON COM ORD ISIN: US0231351067 NASDAQ New York
NKN: 645156
Anzahl Preis Betrag
0.4683 202.57 USD 94.86
Total USD 94.86
Abgabe (Eidg. Stempelsteuer) USD 0.14
Zu Ihren Lasten USD 95.00
Betrag belastet auf Kontonummer 999999301, Valutadatum 18.11.2024
Dieser Transaktionsbeleg sowie die aufgeführte Transaktion unterliegen der Vereinbarung über den Handel mit fraktionalen Instrumenten für
Trading-Konten.
Bitte beachten Sie, dass Swissquote Bank AG das betreffende Finanzinstrument als Treuhänder hält und Ihnen einen Treuhandanteil im Verhältnis
zu dem Ihnen zugeteilten Anteil gewährt.
Wenn Sie mehrere Transaktionen über den Erwerb oder die Veräusserung von Treuhandanteilen eingegangen sind und nach diesen Transaktionen
Ihre kumulierten Treuhandanteile an einem einzigen Finanzinstrument eine ganze Einheit (oder mehr) ausmachen, wandeln wir Ihre
Treuhandanteile im Allgemeinen in das Halten einer ganzen Einheit des Finanzinstruments gemäss der Vereinbarung über den Handel mit
fraktionalen Instrumenten für Trading-Konten.
Die Angabe einer Börse oder eines anderen Ausführungsplatzes wird nur zu Informationszwecken angegeben und bedeutet nicht, dass Ihr Auftrag
dort ausgeführt wurde. Zum Zeitpunkt der Ausführung Ihres Auftrags haben wir das betreffende Finanzinstrument möglicherweise noch nicht
erworben oder veräussert. Die Buchung dieser Transaktion ist gemäss der Vereinbarung über den Handel mit Fraktionalen Instrumenten für
Trading-Konten für einige Tage möglicherweise vorläufig. Bitte setzen Sie sich mit uns in Verbindung, wenn Sie weitere Informationen dazu
benötigen.
Die Angabe einer Börse oder eines anderen Ausführungsplatzes wird nur zu Informationszwecken angegeben und bedeutet nicht, dass Ihr Auftrag
Vielen Dank für Ihren Auftrag.
Swissquote Bank AG, 33 chemin de la Crétaux, CH-1196 Gland Formular ohne Unterschrift | SE&O.
Customer Care : 0848 25 88 88 (Aus dem Ausland +41 44 825 88 88)
MwSt n° CHE-116.310.079
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,37 @@ public void testWertpapierKauf08()
hasTaxes("USD", 0.00), hasFees("USD", 2.25 + 7.50))));
}

@Test
public void testWertpapierKauf09()
{
SwissquotePDFExtractor extractor = new SwissquotePDFExtractor(new Client());

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

List<Item> results = extractor.extract(PDFInputFile.loadTestCase(getClass(), "Kauf09.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, "USD");

// check security
assertThat(results, hasItem(security( //
hasIsin("US0231351067"), hasWkn(null), hasTicker(null), //
hasName("AMAZON COM ORD"), //
hasCurrencyCode("USD"))));

// check buy sell transaction
assertThat(results, hasItem(purchase( //
hasDate("2024-11-15T00:00"), hasShares(0.4683), //
hasSource("Kauf09.txt"), //
hasNote("Referenz: 699111111"), //
hasAmount("USD", 95.00), hasGrossValue("USD", 94.86), //
hasTaxes("USD", 0.14), hasFees("USD", 0.00))));
}

@Test
public void testWertpapierVerkauf01()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,22 @@ private void addBuySellTransaction()
.longValue());
}))

// @formatter:off
// Gemäss Ihrem Kaufauftrag vom 05.08.2019 haben wir folgende Transaktionen vorgenommen:
// Gemäss Ihrem Verkaufsauftrag vom 05.02.2018 haben wir folgende Transaktionen vorgenommen:
// @formatter:on
.section("date") //
.match("^Gem.ss Ihrem (Kauf|Verkaufs)auftrag vom (?<date>[\\d]{2}\\.[\\d]{2}\\.[\\d]{4}) .*$") //
.assign((t, v) -> t.setDate(asDate(v.get("date"))))
.oneOf( //
// @formatter:off
// Gemäss Ihrem Kaufauftrag vom 05.08.2019 haben wir folgende Transaktionen vorgenommen:
// Gemäss Ihrem Verkaufsauftrag vom 05.02.2018 haben wir folgende Transaktionen vorgenommen:
// @formatter:on
section -> section //
.attributes("date") //
.match("^Gem.ss Ihrem (Kauf|Verkaufs)auftrag vom (?<date>[\\d]{2}\\.[\\d]{2}\\.[\\d]{4}) .*$") //
.assign((t, v) -> t.setDate(asDate(v.get("date")))),
// @formatter:off
// Am 15.11.2024 haben wir folgende Transaktionen vorgenommen:
// @formatter:on
section -> section //
.attributes("date") //
.match("^Am (?<date>[\\d]{2}\\.[\\d]{2}\\.[\\d]{4}) haben wir folgende Transaktionen vorgenommen:$") //
.assign((t, v) -> t.setDate(asDate(v.get("date")))))

// @formatter:off
// Zu Ihren Lasten USD 2'900.60
Expand Down

0 comments on commit 5dbe199

Please sign in to comment.