bericht/sql/llx_bericht_signature_box.sql
Eduard Wisch ca2b796b36
All checks were successful
Deploy bericht / deploy (push) Successful in 6s
Feature: Lieferschein-Unterschrift via ODT-Hook + PWA-Signatur-Workflow
- Neuer API-Endpoint api/shipments.php: Liste Lieferungen zu Auftrag, PDF-Stream, confirm (Unterschrift stempeln)
- ODT-Hook actions_bericht.class.php: ersetzt {signature} Platzhalter via odfphp->setImage, setzt {signer_name}/{signed_at}/{gps}
- Backup-Roundtrip: generateDocument-Backup → signed.pdf erzeugen → Original wiederherstellen
- JWT-Fallback in _jwt.php: ?jwt= Query-Param für <img>/<object> ohne Authorization-Header
- Admin: BERICHT_SIGNATURE_IMAGE_RATIO Feld, Toggle BERICHT_TAB_ON_SHIPMENT, Signature-Box-Editor
- DB: llx_bericht_signature_box für pro-Template mm-Box-Geometrie
- element_type='shipment' in modBericht + lib/bericht.lib.php
- element_element Richtung: commande=source, shipping=target (fk_target=expedition_id)
- DOL_DATA_ROOT-Auflösung für EXPEDITION_ADDON_PDF_ODT_PATH
- Sprachen: de_DE + en_US mit neuen Schlüsseln für Signatur-Workflow

[deploy]

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 06:48:42 +02:00

20 lines
1 KiB
SQL

-- Copyright (C) 2026 Eduard Wisch <data@data-it-solution.de>
-- GPL v3+
--
-- Geometrie der Unterschrifts-Box auf Lieferschein-PDFs, pro PDF-Template konfigurierbar.
-- Wenn fuer ein Template keine Zeile existiert, wird der Default aus
-- BERICHT_SIGNATURE_BOX_DEFAULT (JSON) verwendet.
CREATE TABLE llx_bericht_signature_box (
rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
entity INTEGER DEFAULT 1 NOT NULL,
template_name VARCHAR(64) NOT NULL, -- z.B. 'merou', 'rouget', 'espadon', 'generic_shipment_odt'
page VARCHAR(8) NOT NULL DEFAULT 'last', -- 'first' | 'last' | numerisch als String
x_mm DECIMAL(7,2) NOT NULL,
y_mm DECIMAL(7,2) NOT NULL,
w_mm DECIMAL(7,2) NOT NULL,
h_mm DECIMAL(7,2) NOT NULL,
label VARCHAR(128) DEFAULT 'Unterschrift Kunde',
fk_user_modif INTEGER DEFAULT NULL,
tms TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL
) ENGINE=innodb;