mahnung/sql/llx_mahnung_mahnung.sql
Eduard Wisch bb610a7594
Some checks failed
Deploy mahnung / deploy (push) Failing after 4s
Versand-Erfassung + Sendebeleg-Upload pro Mahnung [deploy]
Datenmodell (llx_mahnung_mahnung):
- Neue Spalten: date_versand, versandweg, tracking_nr, tracking_provider.
- Idempotente Migration via modMahnung::migrateVersandFelder() — laeuft
  automatisch beim ersten Setup-Aufruf nach dem Deploy (SHOW COLUMNS-Check,
  fehlende Spalten werden per ALTER TABLE ergaenzt).

Mahnung-Klasse:
- setVersand() — speichert Datum + Weg + optional Tracking + setzt Status
  automatisch auf VERSENDET wenn vorher <= ERSTELLT.
- defaultProviderForWeg() — Mapping versandweg → tracking_provider
  (dhl→dhl, einschreiben→dpag, dpd→dpd, hermes→hermes, ups→ups).
- trackingUrl() — Deep-Link-Helper fuer DHL, Deutsche Post, DPD, Hermes, UPS.
- getVersandwegLabel() — lokalisiertes Label aus versandweg-Slug.
- fetch/update um die neuen Felder erweitert.

card.php:
- Neuer Block "Versand & Belege" nach den generierten Dokumenten.
- Erfassungs-Formular: Datepicker + Versandweg-Dropdown (10 Optionen) +
  Sendungsnummer + Provider-Override.
- Anzeige nach Erfassung mit "Sendung verfolgen"-Button zum Provider.
- "Versand bearbeiten" und "Versand zuruecksetzen" Buttons.
- Beleg-Upload via formfile->showdocuments('mahnung', ...) — Dateien
  landen in DOL_DATA_ROOT/mahnung/<MAHN-Ref>/.
- Modulpart "mahnung" funktioniert ohne Custom-Setup: Dolibarr's
  conf.class.php:744 setzt $conf->mahnung->dir_output automatisch.

Lang-Keys: 22 neue (de_DE + en_US) fuer Versand-Block.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 11:59:08 +02:00

39 lines
1.6 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.
-- Mahnvorgaenge zu Kundenrechnungen
CREATE TABLE llx_mahnung_mahnung (
rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
entity INTEGER DEFAULT 1 NOT NULL,
ref VARCHAR(30) NOT NULL,
fk_facture INTEGER NOT NULL,
fk_soc INTEGER NOT NULL,
stufe TINYINT NOT NULL,
date_mahnung DATE NOT NULL,
date_lim_reglement_alt DATE,
date_lim_reglement_neu DATE,
betrag_offen DOUBLE(24,8) DEFAULT 0,
mahngebuehr DOUBLE(10,2) DEFAULT 0,
pauschale_b2b DOUBLE(10,2) DEFAULT 0,
verzugszinsen DOUBLE(10,2) DEFAULT 0,
summe_mahnung DOUBLE(24,8) DEFAULT 0,
versandart VARCHAR(20) DEFAULT 'pdf',
customertype VARCHAR(3),
basiszins_snapshot DECIMAL(5,4),
pdf_path VARCHAR(255),
note_private TEXT,
status TINYINT DEFAULT 0 NOT NULL,
date_versand DATETIME,
versandweg VARCHAR(30),
tracking_nr VARCHAR(50),
tracking_provider VARCHAR(20),
datec DATETIME,
tms TIMESTAMP,
fk_user_creat INTEGER,
fk_user_modif INTEGER
) ENGINE=InnoDB;