From 0e019d40b7654b330c125d766ff55f1b213155fe Mon Sep 17 00:00:00 2001 From: Eddy Date: Thu, 28 May 2026 07:58:06 +0200 Subject: [PATCH] Doku: README um Lieferungen + Kundenunterschrift erweitert - Features-Liste: Lieferschein-Vorschau, Vollbild-Querformat-Signatur, GPS, Auto-Validate/Close der Expedition - API-Liste: /shipments.php (order_id list, detail, pdf, confirm) Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index f6d2f28..d10f346 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,17 @@ Mobile Progressive Web App für die Baustellen-Doku — Foto-Upload, Sprachnotiz - ✅ Bericht finalisieren → PDF-Vorschau - ✅ PDF-Download +**Lieferungen + Kundenunterschrift** +- ✅ Lieferungen-Liste pro Auftrag mit Status + Signed-Badge +- ✅ Lieferschein-PDF inline (PDF.js, alle Seiten) +- ✅ Vollbild-Querformat-Unterschrift mit HiDPI-Canvas, transparent (kein Hintergrund) +- ✅ Trimmt Canvas automatisch auf bemalte Fläche +- ✅ Name des Unterzeichners aus Kundendaten vorausgefüllt +- ✅ GPS-Koordinaten (optional, timeout 3s) +- ✅ Unterschrift wird via ODT-Hook in das Lieferschein-PDF gestempelt +- ✅ Expedition wird nach Unterschrift automatisch validiert + geschlossen +- ✅ Signed-PDF direkt nach Bestätigung als Vorschau + **Materialliste** - ✅ Material pro Auftrag erfassen (Label, Menge, Einheit, Notiz) - ✅ Material löschen @@ -114,6 +125,12 @@ Die App spricht die Bericht-API unter `/custom/bericht/api/`: - `POST /materials.php?element_type=X&element_id=Y` — Material hinzufügen - `POST /materials.php?id=X&delete=1` — Material löschen +**Lieferungen** +- `GET /shipments.php?order_id=X` — Lieferungen zu einem Auftrag +- `GET /shipments.php?id=X` — Lieferung-Detail (inkl. bericht_id falls Unterschrift vorhanden) +- `GET /shipments.php?id=X&action=pdf[&variant=auto|signed|unsigned]` — Lieferschein-PDF +- `POST /shipments.php?id=X&action=confirm` — Kunden-Unterschrift einstempeln (FormData mit signature_png, signer_name, gps_lat, gps_lon, signed_at). Backend setzt signed_status=1 und schließt die Expedition + **Medien** - `GET /photo.php?relpath=X&jwt=Y` — Foto abrufen (mit Thumbnail: `&size=thumb`) - `POST /delete_photo.php` — Foto löschen