mahnung/sql/llx_mahnung_stufe.sql
Eduard Wisch d1db85322b
All checks were successful
Deploy mahnung / deploy (push) Successful in 14s
Initiales Release: Mahnung-Modul v0.1.0 [deploy]
Vollstaendiges 3-stufiges Mahnwesen nach BGB §288:
- SQL-Schema (llx_mahnung_mahnung, llx_mahnung_stufe)
- CRUD-Klassen (Mahnung, MahnungStufe, MahnungVorschlag)
- TCPDF DIN-5008 PDF-Generierung
- Verzugszinsberechnung B2C/B2B + §288 Abs.5 Pauschale
- Trigger: offene Mahnungen bei Zahlungseingang schliessen
- Hook: Tab + Button auf Rechnungs-/Kundenkarte
- Cron: taegl. Vorschlagsliste + Ntfy-Push
- Deploy-Pipeline (.forgejo/workflows/deploy.yml)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:09:37 +02:00

35 lines
1.8 KiB
SQL

-- Copyright (C) 2026 Eduard Wisch <data@data-it-solution.de>
--
-- 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 (3-stufig nach BGB §288)
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,
zinssatz_b2c_uebersteuern DECIMAL(5,4),
zinssatz_b2b_uebersteuern DECIMAL(5,4),
versandart_default VARCHAR(20) DEFAULT 'pdf',
email_subject VARCHAR(255),
email_body TEXT,
pdf_intro TEXT,
active TINYINT DEFAULT 1 NOT NULL,
datec DATETIME,
tms TIMESTAMP
) ENGINE=InnoDB;
-- Default-Stufen (idempotent: INSERT IGNORE wegen UNIQUE entity+stufe)
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, 'Zahlungserinnerung', 7, 14, 0.00, 0.00, 1, 'pdf', NOW()),
(1, 2, '1. Mahnung', 14, 10, 5.00, 5.00, 0, 'pdf', NOW()),
(1, 3, 'Letzte Mahnung', 10, 7, 10.00, 10.00, 0, 'pdf', NOW());