Files
mareike/config/bankStatement.php
2026-09-09 16:55:08 +02:00

49 lines
2.0 KiB
PHP

<?php
/**
* App-weiter Standard für das Einlesen von Kontoauszügen (CSV-Export der Bank).
*
* Voreingestellt ist das Format der GLS Gemeinschaftsbank. Ein Tenant kann das Ruleset in der
* Konfiguration des Zahlungsmoduls „Überweisung" überschreiben (Option `statement_ruleset`); ist dort
* etwas hinterlegt, gilt ausschließlich dieser Override -- es wird nicht feldweise gemischt.
*
* `columns` bildet die fachlichen Felder auf die Spaltenüberschriften der Bank ab. Gelesen wird über
* die Kopfzeile, nicht über Spaltenpositionen: eine Bank, die ihre Spalten umsortiert, bleibt lesbar.
*/
return [
'default_ruleset' => [
// Trennzeichen der Spalten.
'delimiter' => ';',
// Anführungszeichen um die Werte. Leer = die Bank setzt keine (so die GLS).
'enclosure' => '',
// Zeichensatz der Datei: 'auto' | 'UTF-8' | 'Windows-1252' | 'ISO-8859-15'.
'charset' => 'Windows-1252',
// Erste Zeile enthält die Spaltenüberschriften.
'has_header' => true,
'date_format' => 'd.m.Y',
'decimal_separator' => ',',
'thousands_separator' => '.',
/*
* Pflicht sind payment_date, purpose und amount -- ohne sie lässt sich eine Zahlung weder
* datieren noch zuordnen noch buchen. payer_name und payer_iban sind optional; fehlen sie,
* funktioniert der Import, nur die Erstattungsdaten bleiben leer.
*
* payment_date liest bewusst den Buchungstag: das ist der Tag, an dem das Geld ankam. Keine
* Spalte des Exports sagt, wann der Auftrag abgeschickt wurde -- der Buchungstag kommt dem am
* nächsten. Eine Bank ohne diese Spalte lässt sich hier auf ihre Valuta-Spalte umbiegen.
*/
'columns' => [
'payment_date' => 'Buchungstag',
'purpose' => 'Verwendungszweck',
'amount' => 'Betrag',
'payer_name' => 'Name Zahlungsbeteiligter',
'payer_iban' => 'IBAN Zahlungsbeteiligter',
],
],
];