49 lines
2.0 KiB
PHP
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',
|
|
],
|
|
],
|
|
];
|