Steuerkram/migrations/079_buchungsvorlage_felder_regeln.sql
fds2610-bot f9b6a5d303 Feature: Buchungsvorlagen im Buchungsdialog
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.
2026-05-28 21:57:04 +02:00

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;