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 SBroker PDF-Importer to support new transaction #3596

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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.65.4
-----------------------------------------
Sparkasse
S
Sparkasse Schweinfurt-Haßberge
Schweinfurt-Haßberge
Herrn
Ihr Ansprechpartner:
Max Mann
Max Max
Strasse 8
Kundenberatung Ebern
96250 Ebensfeld Marktplatz 3
96106 Ebern
Telefon 09721 721-7783
Fax 09521 58-775
Max.Max@sparkasse-sw-has.de
1. August 2023
Kontoauszug 7/2023 Seite 1 von 6
Giro Plus 999999999, DE78 9999 0101 0999 9999 99

Datum Erläuterung Betrag Soll EUR Betrag Haben EUR
999,00
Kontostand am 30.06.2023, Auszug Nr. 6
-888,00
27.07.2023 Bargeldauszahlung
-3333,00
28.07.2023 Überweisung online
Autohaus Max Renr. 2230512 DATUM 28.07.2023,

14.21 UHR
-777,00
31.07.2023 Entgeltabrechnung / Wert: 01.08.2023
siehe Anlage Nr. 1
-3,50
31.07.2023 Lastschrift
LOTTO24 via Adyen LOTTO24 C99999853 T102292133707
CKG6TTPLFN6WH3HC2C MJBDM299999NQPB2
Gläubiger-ID: NL48ZZZ342764500000
999,52
Kontostand am 31.07.2023 um 20:02 Uhr
Der Kontostand kann Beträge mit späterer Wertstellung enthalten, bitte Hinweise zum Kontoauszug beachten.
Anzahl Anlagen 1
Kundenmitteilungen:
Die nachfolgenden Informationen sind gesetzlich vorgegeben und EU-weit
einheitlich. Alle Kreditinstitute müssen ihre Kunden vor Aufnahme der
Geschäftsbeziehung und jeweils einmal jährlich informieren. Diese
Verpflichtung ergibt sich aus § 23a Kreditwesengesetz und der
EU-Einlagensicherungsrichtlinie.
Diese vorgeschriebenen Informationen beziehen sich auf die Zugehörigkeit
zur gesetzlich anerkannten Einlagensicherung. Dort ist der Rechtsanspruch
auf den gesetzlichen Schutz von derzeit 100.000 EUR pro Einleger verankert.
Unabhängig davon bleibt die Institutssicherung der Sparkassen-Finanzgruppe
bestehen. Durch diese soll der Entschädigungsfall vermieden und die
Geschäftsbeziehung zum Kunden fortgeführt werden.
Informationsbogen für den Einleger
Für Sie als Kunde/Kundin Sicherungssystem der Sparkassen-Finanzgruppe (1)
unseres Instituts sind die
Einlagen geschützt durch:
Sicherungsobergrenze: 100.000 EUR pro Einleger pro Kreditinstitut (2)
Falls Sie mehrere Alle Ihre Einlagen bei demselben Kreditinstitut
Einlagen bei demselben werden "aufaddiert", und die Gesamtsumme
Kreditinstitut haben: unterliegt der Obergrenze von 100.000 EUR (2)
Sparkasse Schweinfurt-Haßberge Anstalt des öffentlichen Rechts Telefon 09721/721-0 www.sparkasse-sw-has.de
Jägersbrunnen 1-7 HR Nr. A/1124 (AG Schweinfurt) Telefax 09721/721-3229 info@sparkasse-sw-has.de
97421 Schweinfurt USt-IdNr. DE 133 906 578 BLZ: 793 501 01 BIC: BYLADEM1KSW
Sparkassen-Finanzgruppe
Sparkasse
S
Schweinfurt-Haßberge
Kontoauszug 7/2023 Seite 4 von 6
Giro Plus 999999999, DE78 9999 0101 0999 9999 99, Max Mann
Falls Sie ein Gemein- Die Obergrenze von 100.000 EUR gilt für
schaftskonto mit einer jeden einzelnen Einleger (3)
oder mehreren anderen
Personen haben:
Erstattungsfrist bei Aus- 7 Arbeitstage
fall eines Kreditinstituts:
Währung der Erstattung: Euro (EUR)
Kontaktdaten: Sicherungssystem der Sparkassen-Finanzgruppe
Deutscher Sparkassen- und Giroverband e. V.
Adresse: Charlottenstraße 47
10117 Berlin

Telefon: +49 30 20225-3838
E-Mail: sicherungssystem(at)dsgv.de
Weitere Informationen: http://www.dsgv.de/sicherungssystem
Zusätzliche Informationen:
(1) Ihr Kreditinstitut ist Teil eines institutsbezogenen Sicherungssystems,
das als Einlagensicherungssystem amtlich anerkannt ist. Das heißt, alle
Institute, die Mitglied dieses Einlagensicherungssystems sind, unterstützen
sich gegenseitig, um eine Insolvenz zu vermeiden. Im Falle einer Insolvenz
werden Ihre Einlagen bis zu 100.000 EUR erstattet.
(2) Sollte eine Einlage nicht verfügbar sein, weil ein Kreditinstitut
seinen finanziellen Verpflichtungen nicht nachkommen kann, so werden die
Einleger von dem Einlagensicherungssystem entschädigt. Die betreffende
Deckungssumme beträgt maximal 100.000 EUR pro Kreditinstitut. Das heißt,
dass bei der Ermittlung dieser Summe alle bei demselben Kreditinstitut
gehaltenen Einlagen addiert werden. Hält ein Einleger beispielsweise
90.000 EUR auf einem Sparkonto und 20.000 EUR auf einem Girokonto, so
werden ihm lediglich 100.000 EUR erstattet.
(3) Bei Gemeinschaftskonten gilt die Obergrenze von 100.000 EUR für jeden
Einleger. Einlagen auf einem Konto, über das zwei oder mehrere Personen als
Mitglieder einer Personengesellschaft oder Sozietät, einer Vereinigung oder
eines ähnlichen Zusammenschlusses ohne Rechtspersönlichkeit verfügen
können, werden bei der Berechnung der Obergrenze von 100.000 EUR allerdings
zusammengefasst und als Einlage eines einzigen Einlegers behandelt.
In den Fällen des § 8 Absätze 2 bis 4 des Einlagensicherungsgesetzes sind
Einlagen über 100.000 EUR hinaus gesichert. Weitere Informationen sind
erhältlich über: http://www.dsgv.de/sicherungssystem.
(4) Erstattung:
Das zuständige Einlagensicherungssystem ist das Sicherungssystem der
Sparkassen-Finanzgruppe
Adresse: Deutscher Sparkassen- und Giroverband e. V.
Charlottenstraße 47
10117 Berlin
Sparkasse Schweinfurt-Haßberge Anstalt des öffentlichen Rechts Telefon 09721/721-0 www.sparkasse-sw-has.de
Jägersbrunnen 1-7 HR Nr. A/1124 (AG Schweinfurt) Telefax 09721/721-3229 info@sparkasse-sw-has.de
97421 Schweinfurt USt-IdNr. DE 133 906 578 BLZ: 793 501 01 BIC: BYLADEM1KSW
Sparkassen-Finanzgruppe
Sparkasse
S
Schweinfurt-Haßberge
Kontoauszug 7/2023 Seite 5 von 6
Giro Plus 999999999, DE78 9999 0101 0999 9999 99, Max Mann
Telefon: +49 30 20225-3838
E-Mail: sicherungssystem(at)dsgv.de
Website: http://www.dsgv.de/sicherungssystem
Es wird Ihnen Ihre Einlagen (bis zu 100.000 EUR) spätestens innerhalb
7 Arbeitstagen erstatten.
Haben Sie die Erstattung innerhalb dieser Frist nicht erhalten, sollten
Sie mit dem Einlagensicherungssystem Kontakt aufnehmen, da der Gültigkeits-
zeitraum für Erstattungsforderungen nach einer bestimmten Frist abgelaufen
sein kann. Weitere Informationen sind erhältlich über:
http://www.dsgv.de/sicherungssystem
Weitere wichtige Informationen: Einlagen von Privatkunden und Unternehmen
sind im Allgemeinen durch Einlagensicherungssysteme gedeckt. Für bestimmte

Einlagen geltende Ausnahmen werden auf der Website des zuständigen
Einlagensicherungssystems mitgeteilt. Ihr Kreditinstitut wird Sie auf
Anfrage auch darüber informieren, ob bestimmte Produkte gedeckt sind oder
nicht. Wenn Einlagen entschädigungsfähig sind, wird das Kreditinstitut dies
auch auf dem Kontoauszug bestätigen.
Sparkasse Schweinfurt-Haßberge Anstalt des öffentlichen Rechts Telefon 09721/721-0 www.sparkasse-sw-has.de
Jägersbrunnen 1-7 HR Nr. A/1124 (AG Schweinfurt) Telefax 09721/721-3229 info@sparkasse-sw-has.de
97421 Schweinfurt USt-IdNr. DE 133 906 578 BLZ: 793 501 01 BIC: BYLADEM1KSW
Sparkassen-Finanzgruppe
Sparkasse
S
Schweinfurt-Haßberge
Kontoauszug 7/2023 Seite 6 von 6
Giro Plus 999999999, DE78 9999 0101 0999 9999 99, Max Mann
Entgeltabschluss: Anlage 1
Entgelte vom 01.07.2023 bis 31.07.2023 8,50-
Grundpreis (Kontoführung) 8,50-
--------------
Abrechnung 31.07.2023 8,50-
Es handelt sich hierbei um eine umsatzsteuerfreie Leistung.
Rechnungsnummer: 20230731-BY044-00018053888
Bitte beachten Sie die Hinweise zum Kontoauszug.

Hinweise zum Kontoauszug:
l Einwendungen gegen den Kontoauszug teilen Sie uns bitte unverzüglich mit.
l Rechnungsabschlüsse gelten als genehmigt, sofern Sie innerhalb von sechs Wochen nach Zugang keine Einwendungen erheben.
Einwendungen gegen Rechnungsabschlüsse müssen der Sparkasse zugehen. Zur Fristwahrung genügt die rechtzeitige
Absendung (Nr. 7 Abs. 3 unserer Allgemeinen Geschäftsbedingungen).
l Der angegebene Kontostand berücksichtigt nicht die Werstellung der einzelnen Buchungen. Dies bedeutet, dass der genannte
Betrag nicht dem für die Zinsrechnung maßgeblichen Kontostand entsprechen muss und bei Verfügungen möglicherweise
Zinsen für die Inanspruchnahme einer eingeräumten oder geduldeten Kontoüberziehung anfallen können.
l Gutschriften aus eingereichten Schecks, Lastschriften und anderen Einzugspapieren erfolgen unter dem Vorbehalt der
Einlösung.
l Sparkontoauszüge heften Sie bitte in Ihr Loseblatt-Sparkassenbuch ein.
l Dieser Kontoauszug gilt im Zusammenhang mit den zugrunde liegenden Verträgen laut angegebener Kontonummer als
Rechnung im Sinne des UStG.
l Bitte beachten Sie: Guthaben sind als Einlagen nach Maßgabe des Einlagensicherungsgesetzes entschädigungsfähig. Nähere
Informationen können dem "Informationsbogen für den Einleger" entnommen werden.
Sparkasse Schweinfurt-Haßberge Anstalt des öffentlichen Rechts Telefon 09721/721-0 www.sparkasse-sw-has.de
Jägersbrunnen 1-7 HR Nr. A/1124 (AG Schweinfurt) Telefax 09721/721-3229 info@sparkasse-sw-has.de
97421 Schweinfurt USt-IdNr. DE 133 906 578 BLZ: 793 501 01 BIC: BYLADEM1KSW
Sparkassen-Finanzgruppe
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
package name.abuchen.portfolio.datatransfer.pdf.sbroker;

import static name.abuchen.portfolio.datatransfer.ExtractorTestUtilities.countAccountTransactions;
import static name.abuchen.portfolio.datatransfer.ExtractorTestUtilities.countBuySell;
import static name.abuchen.portfolio.datatransfer.ExtractorTestUtilities.countSecurities;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.collection.IsEmptyCollection.empty;
import static org.junit.Assert.assertNull;

import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.deposit;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.dividend;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.fee;
Expand All @@ -35,6 +26,14 @@
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.security;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.taxes;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.withFailureMessage;
import static name.abuchen.portfolio.datatransfer.ExtractorTestUtilities.countAccountTransactions;
import static name.abuchen.portfolio.datatransfer.ExtractorTestUtilities.countBuySell;
import static name.abuchen.portfolio.datatransfer.ExtractorTestUtilities.countSecurities;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.collection.IsEmptyCollection.empty;
import static org.junit.Assert.assertNull;

import java.time.LocalDateTime;
import java.util.ArrayList;
Expand Down Expand Up @@ -4118,6 +4117,40 @@ public void testGiroKontoauszug35()
hasSource("GiroKontoauszug35.txt"), hasNote("Entgelte vom 01.10.2020 bis 30.10.2020"))));
}

@Test
public void testGiroKontoauszug36()
{
SBrokerPDFExtractor extractor = new SBrokerPDFExtractor(new Client());

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

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

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

// assert transaction
assertThat(results, hasItem(removal(hasDate("2023-07-27"), hasAmount("EUR", 888.00), //
hasSource("GiroKontoauszug36.txt"), hasNote("Bargeldauszahlung"))));

// assert transaction
assertThat(results, hasItem(removal(hasDate("2023-07-28"), hasAmount("EUR", 3333.00), //
hasSource("GiroKontoauszug36.txt"), hasNote("Überweisung online"))));

// assert transaction
assertThat(results, hasItem(removal(hasDate("2023-07-31"), hasAmount("EUR", 3.50), //
hasSource("GiroKontoauszug36.txt"), hasNote("Lastschrift"))));

// assert transaction
assertThat(results, hasItem(fee(hasDate("2023-07-31"), hasAmount("EUR", 8.50), //
hasSource("GiroKontoauszug36.txt"), hasNote("Entgelte vom 01.07.2023 bis 31.07.2023"))));
}

@Test
public void testKreditKontoauszug01()
{
Expand Down