56 lines
2.5 KiB
SQL
56 lines
2.5 KiB
SQL
-- Bank-Import-Formate
|
|
CREATE TABLE IF NOT EXISTS bank_import_formats (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(100) NOT NULL,
|
|
skip_rows INT NOT NULL DEFAULT 3,
|
|
has_header_row TINYINT(1) NOT NULL DEFAULT 1,
|
|
delimiter CHAR(1) NOT NULL DEFAULT ';',
|
|
enclosure CHAR(1) NOT NULL DEFAULT '"',
|
|
col_buchungstag INT NOT NULL DEFAULT 0,
|
|
col_wertstellung INT NOT NULL DEFAULT 1,
|
|
col_vorgang INT NOT NULL DEFAULT 2,
|
|
col_buchungstext INT NOT NULL DEFAULT 3,
|
|
col_wert INT NOT NULL DEFAULT 4,
|
|
date_format VARCHAR(20) NOT NULL DEFAULT 'd.m.Y',
|
|
decimal_separator CHAR(1) NOT NULL DEFAULT ',',
|
|
thousands_separator CHAR(1) NOT NULL DEFAULT '.',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Import-Batches (Datei-Uploads)
|
|
CREATE TABLE IF NOT EXISTS bank_import_batches (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
format_id INT UNSIGNED NOT NULL,
|
|
filename VARCHAR(255) NOT NULL,
|
|
row_count INT NOT NULL DEFAULT 0,
|
|
imported_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (format_id) REFERENCES bank_import_formats(id) ON DELETE RESTRICT
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Importierte Bankbuchungen
|
|
CREATE TABLE IF NOT EXISTS bank_transactions (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
batch_id INT UNSIGNED NOT NULL,
|
|
buchungstag DATE NOT NULL,
|
|
wertstellung DATE NOT NULL,
|
|
vorgang VARCHAR(255) NOT NULL DEFAULT '',
|
|
buchungstext TEXT NOT NULL,
|
|
wert DECIMAL(12,2) NOT NULL,
|
|
status ENUM('offen','gebucht','ignoriert') NOT NULL DEFAULT 'offen',
|
|
beleg_id INT UNSIGNED NULL DEFAULT NULL,
|
|
raw_line TEXT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (batch_id) REFERENCES bank_import_batches(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Comdirect-Format: 3 Zeilen überspringen, dann Headerzeile, dann Daten
|
|
-- Semikolon-getrennt, Anführungszeichen-umschlossen, deutsches Datumsformat
|
|
INSERT INTO bank_import_formats
|
|
(name, skip_rows, has_header_row, delimiter, enclosure,
|
|
col_buchungstag, col_wertstellung, col_vorgang, col_buchungstext, col_wert,
|
|
date_format, decimal_separator, thousands_separator)
|
|
VALUES
|
|
('Comdirect', 3, 1, ';', '"',
|
|
0, 1, 2, 3, 4,
|
|
'd.m.Y', ',', '.')
|
|
ON DUPLICATE KEY UPDATE name = name;
|