Skip to content

Commit

Permalink
Modify 1822direct PDF-Importer to support new transaction (#4337)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nirus2000 authored Nov 7, 2024
1 parent f10dbc7 commit b6e46c3
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package name.abuchen.portfolio.datatransfer.pdf.direkt1822bank;

import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.check;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.deposit;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.dividend;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.hasAmount;
import static name.abuchen.portfolio.datatransfer.ExtractorMatchers.hasCurrencyCode;
Expand Down Expand Up @@ -780,4 +781,25 @@ public void testDepoteinlieferung01()
hasAmount("EUR", 0.00), hasGrossValue("EUR", 0.00), //
hasTaxes("EUR", 0.00), hasFees("EUR", 0.00)))));
}

@Test
public void testKontoauszug01()
{
Direkt1822BankPDFExtractor extractor = new Direkt1822BankPDFExtractor(new Client());

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

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

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

// assert transaction
assertThat(results, hasItem(deposit(hasDate("2024-10-17"), hasAmount("EUR", 1000.00), //
hasSource("Kontoauszug01.txt"), hasNote("Gutschrift (Überweisung)"))));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
PDFBox Version: 1.8.17
Portfolio Performance Version: 0.71.2
-----------------------------------------
1822direkt Monatlicher Kontoauszug Seite 1
Kundennummer 2354224 BIC HELADEF1822
kein Freistellungsauftrag
Herr Max Mustermann (Inhaber)
Kontoauszug Oktober 2024
IBAN Bezeichnung Endsaldo
A DE22384900000023774324 1822direkt Tagesgeldkonto +1.000,00 €*
Gesamtsaldo +1.000,00 €*
Bitte beachten Sie auch die Hinweise auf der letzten Seite.
* Der angegebene Kontostand berücksichtigt nicht die Wertstellung der einzelnen Buchungen. 1822direkt
Dies bedeutet, dass der genannte Betrag nicht dem für die Zinsberechnung maßgeblichen Kon- Gesellschaft der
tostand entsprechen muss und bei Verfügungen möglicherweise Zinsen für die Inanspruchnah- Frankfurter Sparkasse mbHBorsigallee 19
me einer eingeräumten oder geduldeten Kontoüberziehung anfallen können. 60388 Frankfurt am Main
Postanschrift
1822direkt
Entdecken Sie die beliebtesten Fonds & ETFs unserer Kunden mit dem 1822direkt 60608 Frankfurt am Main
Anlage-Kompass. Mehr erfahren Geschäftsführer:
Wolfgang Degenkolb (Sprecher)
Norbert Mittelstädt
Aufsichtsratsvorsitzender:
Dr. Sven Matthiesen
Amtsgericht
Frankfurt am Main
Handelsregister: HRB 41799
www.1822direkt.de/kontakt
BIC HELADEF1822
www.1822direkt.de
1822direkt Kontoauszug Oktober 2024 — Konto DE22384900000023774324 Seite 2
A: 1822direkt Tagesgeldkonto, IBAN DE22384900000023774324
Referenzkonto: DE27482900000028462832 Umsätze vom 01.10.2024 bis 31.10.2024
Buchung Vorgang Auftraggeber / Empfänger Umsatz
Wertstellung Kto. Auftraggeber/Empfänger Verwendungszweck
Anfangssaldo vom 01.10.2024 +0,00 €*
17.10.2024 Gutschrift Überw. Max Mustermann +1.000,00€
17.10.2024 DE27482900000028462832 TG1
Endsaldo vom 31.10.2024 +1.000,00 €*
* Der angegebene Kontostand berücksichtigt nicht die Wertstellung der einzelnen Buchungen. Dies bedeutet, dass
der genannte Betrag nicht dem für die Zinsberechnungmaß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.
1822direkt Kontoauszug Oktober 2024 Seite 3
• Einwendungen gegen den Kontoauszug teilen Sie uns bitte unverzüglich mit.
• Abrechnungsabschlüsse gelten als genehmigt, sofern Sie innerhalb von sechs Wochen
nach Zugang keine Einwendungen erheben. Einwendungen gegen Rechnungsabschlüsse
müssen der 1822direkt zugehen. Zur Fristwahrung genügt die rechtzeitige Absendung
(Nr. 7 Abs. 3 unserer Allgemeinen Geschäftsbedingungen).
• Der angegebene Kontostand berücksichtigt nicht die Wertstellung der einzelnen Buchun-
gen. Dies bedeutet, dass der genannte Betrag nicht dem für die Zinsrechnung maßgebli-
chen Kontostand entsprechen muss und bei Verfügungen möglicherweise Zinsen für die
Inanspruchnahme einer eingeräumten oder geduldeten Kontoüberziehung anfallen kön-
nen.
• Gutschriften aus eingereichten Schecks, Lastschriften und anderen Einzugspapieren erfol-
gen unter dem Vorbehalt der Einlösung.
• Dieser Kontoauszug gilt im Zusammenhang mit den zugrunde liegenden Verträgen laut
angegebener Kontonummer als Rechnung im Sinne des UStG. Unsere Umsatzsteuer-
Ident Nummer: DE177283324.
Bitte beachten Sie:
Guthaben sind als Einlagen nach Maßgabe des Einlagensicherungsgesetzes entschädigungs-
fähig. Nähere Informationen können dem »Informationsbogen für den Einleger« entnommen
werden.
Mit freundlichen Grüßen
1822direkt
Postanschrift:
1822direkt
60608 Frankfurt am Main
Hausanschrift:
Borsigallee 19
60388 Frankfurt am Main
Amtsgericht
Frankfurt am Main
Handelsregister: HRB41799
www.1822direkt.de/kontakt
www.1822direkt.de
BIC: HELADEF1822
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@
import name.abuchen.portfolio.money.Money;
import name.abuchen.portfolio.money.Values;

/**
* @formatter:off
* @implNote 1822direkt
*
* @implSpec The account statement transactions are reported in EUR.
* @formatter:on
*/

@SuppressWarnings("nls")
public class Direkt1822BankPDFExtractor extends AbstractPDFExtractor
{
Expand All @@ -32,6 +40,7 @@ public Direkt1822BankPDFExtractor(Client client)
addBuySellTransaction();
addDividendeTransaction();
addAdvanceTaxTransaction();
addAccountStatementTransaction();
addNonImportableTransaction();
}

Expand Down Expand Up @@ -309,6 +318,41 @@ private void addAdvanceTaxTransaction()
.wrap(TransactionItem::new);
}

private void addAccountStatementTransaction()
{
final DocumentType type = new DocumentType("Monatlicher Kontoauszug");
this.addDocumentTyp(type);

// @formatter:off
// 17.10.2024 Gutschrift Überw. Max Mustermann +1.000,00
// @formatter:on
Block depositBlock = new Block("^[\\d]{2}\\.[\\d]{2}\\.[\\d]{4} Gutschrift .berw\\. .* \\+[\\.,\\d]+.*$");
type.addBlock(depositBlock);
depositBlock.set(new Transaction<AccountTransaction>()

.subject(() -> {
AccountTransaction accountTransaction = new AccountTransaction();
accountTransaction.setType(AccountTransaction.Type.DEPOSIT);
return accountTransaction;
})

.section("date", "note", "amount") //
.match("^(?<date>[\\d]{2}\\.[\\d]{2}\\.[\\d]{4}) (?<note>Gutschrift .berw\\.) .* \\+(?<amount>[\\.,\\d]+).*$")
.assign((t, v) -> {
t.setDateTime(asDate(v.get("date")));
t.setAmount(asAmount(v.get("amount")));
t.setCurrencyCode(asCurrencyCode("EUR"));

// Formatting some notes
if ("Gutschrift Überw.".equals(v.get("note")))
v.put("note", "Gutschrift (Überweisung)");

t.setNote(v.get("note"));
})

.wrap(TransactionItem::new));
}

private void addNonImportableTransaction()
{
final DocumentType type = new DocumentType("Depotbuchung \\- Belastung"); //
Expand Down

0 comments on commit b6e46c3

Please sign in to comment.