-- 080_buchungsvorlage_seed_essensbeleg.sql -- Seed: Vorlage "Essensbeleg n. abzugsfähig (nur USt.)" -- Idempotent: Vorlage wird nur angelegt wenn nicht vorhanden. SET @vorlage_name = 'Essensbeleg n. abzugsfähig (nur USt.)'; INSERT INTO buchungsvorlagen (name, beschreibung, aktiv, sort_order) SELECT @vorlage_name, 'Essensbelegle bei dem der Nettobetrag steuerlich nicht abzugsfähig ist, die Vorsteuer jedoch geltend gemacht werden kann.', 1, 10 WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlagen WHERE name = @vorlage_name); SET @vid = (SELECT id FROM buchungsvorlagen WHERE name = @vorlage_name LIMIT 1); -- Felder nur einfügen wenn für diese Vorlage noch keine existieren INSERT INTO buchungsvorlage_felder (vorlage_id, gruppe_nr, sort_order, feldname, label, typ, ust_satz, meta_key) SELECT @vid, 1, 10, 'lieferant', 'Lieferant', 'text', NULL, 'supplier_name' WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_felder WHERE vorlage_id = @vid AND feldname = 'lieferant'); INSERT INTO buchungsvorlage_felder (vorlage_id, gruppe_nr, sort_order, feldname, label, typ, ust_satz, meta_key) SELECT @vid, 1, 20, 'rechnungsnr', 'Rechnungsnummer', 'text', NULL, 'rechnungs_nr' WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_felder WHERE vorlage_id = @vid AND feldname = 'rechnungsnr'); INSERT INTO buchungsvorlage_felder (vorlage_id, gruppe_nr, sort_order, feldname, label, typ, ust_satz, meta_key) SELECT @vid, 1, 30, 'belegdatum', 'Belegdatum', 'date', NULL, 'beleg_datum' WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_felder WHERE vorlage_id = @vid AND feldname = 'belegdatum'); INSERT INTO buchungsvorlage_felder (vorlage_id, gruppe_nr, sort_order, feldname, label, typ, ust_satz, meta_key) SELECT @vid, 1, 40, 'brutto_gesamt', 'Brutto gesamt', 'readonly', NULL, NULL WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_felder WHERE vorlage_id = @vid AND feldname = 'brutto_gesamt'); INSERT INTO buchungsvorlage_felder (vorlage_id, gruppe_nr, sort_order, feldname, label, typ, ust_satz, meta_key) SELECT @vid, 2, 10, 'netto_7', '7% USt.', 'ust_zeile', 7.00, NULL WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_felder WHERE vorlage_id = @vid AND feldname = 'netto_7'); INSERT INTO buchungsvorlage_felder (vorlage_id, gruppe_nr, sort_order, feldname, label, typ, ust_satz, meta_key) SELECT @vid, 2, 20, 'netto_19', '19% USt.', 'ust_zeile', 19.00, NULL WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_felder WHERE vorlage_id = @vid AND feldname = 'netto_19'); INSERT INTO buchungsvorlage_felder (vorlage_id, gruppe_nr, sort_order, feldname, label, typ, ust_satz, meta_key) SELECT @vid, 3, 10, 'zahlungskonto', 'Zahlungskonto', 'account_select', NULL, NULL WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_felder WHERE vorlage_id = @vid AND feldname = 'zahlungskonto'); -- Regeln: 7% Anteil INSERT INTO buchungsvorlage_regeln (vorlage_id, sort_order, bedingung_feld, bedingung_op, buchungen) SELECT @vid, 10, 'netto_7', 'neq_zero', JSON_ARRAY( JSON_OBJECT('betrag_ref', 'netto_7', 'nach_konto', '4656'), JSON_OBJECT('betrag_ref', 'ust_7', 'nach_konto', '1571') ) WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_regeln WHERE vorlage_id = @vid AND bedingung_feld = 'netto_7'); -- Regeln: 19% Anteil INSERT INTO buchungsvorlage_regeln (vorlage_id, sort_order, bedingung_feld, bedingung_op, buchungen) SELECT @vid, 20, 'netto_19', 'neq_zero', JSON_ARRAY( JSON_OBJECT('betrag_ref', 'netto_19', 'nach_konto', '4654'), JSON_OBJECT('betrag_ref', 'ust_19', 'nach_konto', '1576') ) WHERE NOT EXISTS (SELECT 1 FROM buchungsvorlage_regeln WHERE vorlage_id = @vid AND bedingung_feld = 'netto_19');