-- 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;