-- Copyright (C) 2026 Eduard Wisch -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- Mahnstufen-Konfiguration (frei konfigurierbar, Basis BGB ยง288) -- Stufe 0 = kostenlose Zahlungserinnerung (ist_erinnerung = 1) CREATE TABLE llx_mahnung_stufe ( rowid INTEGER AUTO_INCREMENT PRIMARY KEY, entity INTEGER DEFAULT 1 NOT NULL, stufe TINYINT NOT NULL, label VARCHAR(60) NOT NULL, frist_tage INTEGER DEFAULT 0 NOT NULL, neue_frist_tage INTEGER DEFAULT 7 NOT NULL, mahngebuehr_b2c DOUBLE(10,2) DEFAULT 0, mahngebuehr_b2b DOUBLE(10,2) DEFAULT 0, pauschale_b2b_einmalig TINYINT DEFAULT 0, -- DECIMAL(6,3): der B2B-Satz (Basiszins + 9 %) liegt ueber 9,9999 und passte -- nicht mehr in das alte DECIMAL(5,4). zinssatz_b2c_uebersteuern DECIMAL(6,3), zinssatz_b2b_uebersteuern DECIMAL(6,3), versandart_default VARCHAR(20) DEFAULT 'pdf', email_subject VARCHAR(255), email_body TEXT, pdf_intro TEXT, -- 1 = kostenlose Zahlungserinnerung: keine Mahngebuehr, keine Pauschale, -- keine Verzugszinsen, Anhang ist die Original-Rechnungs-PDF. -- Massgeblich ist dieses Flag, NICHT die Stufennummer. ist_erinnerung TINYINT DEFAULT 0 NOT NULL, active TINYINT DEFAULT 1 NOT NULL, datec DATETIME, tms TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- Default-Stufen (idempotent: INSERT IGNORE wegen UNIQUE entity+stufe) -- Die Labels muessen eindeutig sein: 'Zahlungserinnerung' ist ausschliesslich der -- kostenlosen Stufe 0 vorbehalten, damit im Vorschlag/Sammelbrief/PDF sofort klar -- ist, ob eine kostenlose Erinnerung oder eine kostenpflichtige Mahnung gemeint ist. INSERT IGNORE INTO llx_mahnung_stufe (entity, stufe, label, frist_tage, neue_frist_tage, mahngebuehr_b2c, mahngebuehr_b2b, pauschale_b2b_einmalig, versandart_default, datec) VALUES (1, 1, '1. Mahnung', 7, 14, 0.00, 0.00, 1, 'pdf', NOW()), (1, 2, '2. Mahnung', 14, 10, 5.00, 5.00, 0, 'pdf', NOW()), (1, 3, 'Letzte Mahnung', 10, 7, 10.00, 10.00, 0, 'pdf', NOW()); -- Stufe 0: kostenlose Zahlungserinnerung vor der ersten echten Mahnstufe. -- frist_tage = 0 -> sofort ab Faelligkeit, Versand per E-Mail mit Original-Rechnung. INSERT IGNORE INTO llx_mahnung_stufe (entity, stufe, label, frist_tage, neue_frist_tage, mahngebuehr_b2c, mahngebuehr_b2b, pauschale_b2b_einmalig, zinssatz_b2c_uebersteuern, zinssatz_b2b_uebersteuern, versandart_default, ist_erinnerung, active, datec) VALUES (1, 0, 'Zahlungserinnerung', 0, 7, 0.00, 0.00, 0, 0.000, 0.000, 'mail', 1, 1, NOW());