Neues Vorlagen-Badge zwischen Bank-Badge und Buchungsformular in
/belege/{id}. Vorlage auswählen öffnet modalen Dialog mit Feldgruppen
(Metadaten, USt-Zeilen mit Live-Berechnung, Zahlungskonto). Buchungen
werden per VorlageBuchungsService aus JSON-Regeln in der DB erstellt.
Pflege-UI unter /einstellungen/buchungsvorlagen (CRUD inkl. Felder und
Regeln). Initiale Vorlage "Essensbeleg n. abzugsfähig (nur USt.)" via
Migration 080 eingespielt. Test 42 prüft CRUD und Buchungsausführung.
27 lines
1.6 KiB
SQL
27 lines
1.6 KiB
SQL
-- 079_buchungsvorlage_felder_regeln.sql
|
|
-- Felder und Buchungsregeln für Buchungsvorlagen.
|
|
|
|
CREATE TABLE IF NOT EXISTS buchungsvorlage_felder (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
vorlage_id INT UNSIGNED NOT NULL,
|
|
gruppe_nr TINYINT UNSIGNED NOT NULL COMMENT '1=Metadaten, 2=USt-Zeilen, 3=Zahlung',
|
|
sort_order INT NOT NULL DEFAULT 0,
|
|
feldname VARCHAR(100) NOT NULL COMMENT 'Interner Schlüssel z.B. netto_7',
|
|
label VARCHAR(255) NOT NULL,
|
|
typ ENUM('text','date','number','readonly','ust_zeile','account_select') NOT NULL,
|
|
ust_satz DECIMAL(5,2) NULL COMMENT 'Nur für typ=ust_zeile',
|
|
meta_key VARCHAR(100) NULL COMMENT 'belege-Spalte z.B. supplier_name',
|
|
CONSTRAINT fk_bvf_vorlage FOREIGN KEY (vorlage_id) REFERENCES buchungsvorlagen(id) ON DELETE CASCADE,
|
|
INDEX idx_vorlage_gruppe (vorlage_id, gruppe_nr, sort_order)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS buchungsvorlage_regeln (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
vorlage_id INT UNSIGNED NOT NULL,
|
|
sort_order INT NOT NULL DEFAULT 0,
|
|
bedingung_feld VARCHAR(100) NOT NULL COMMENT 'Feldname dessen Wert geprüft wird',
|
|
bedingung_op VARCHAR(20) NOT NULL DEFAULT 'neq_zero' COMMENT 'neq_zero|always',
|
|
buchungen JSON NOT NULL COMMENT '[{"betrag_ref":"netto_7","nach_konto":"4656"},...]',
|
|
CONSTRAINT fk_bvr_vorlage FOREIGN KEY (vorlage_id) REFERENCES buchungsvorlagen(id) ON DELETE CASCADE,
|
|
INDEX idx_vorlage (vorlage_id, sort_order)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|