Geänderte Lieferscheine (Artikel entfernt/teil-gutgeschrieben ODER
Geld-Gutschrift) sollen von der Fakturierung gegengeprüft werden, statt
die Menge im ERP zu reduzieren (was den Lagerbestand inkonsistent machte,
weil der Raw-Writeback die ERPframe-Engine umgeht).
- ERP-Writeback: kein Setzen der Belegzeilen-Menge mehr → ERP-Beleg bleibt
im Original (kein Bestandskonflikt). Geld-Gutschrift wird weiter
geschrieben (unkritisch, nur Vier-Augen). delivered-at/State/Zahlbed
bleiben.
- Migration 0031: review_resolved_at/by/note auf deliveries. Der Status
wird ABGELEITET (Abweichung via credited_quantity / aktueller Gutschrift
vs. resolved_at), daher: Originalzustand wiederhergestellt ⇒ Flag weg;
nach Bestätigung erneut geändert ⇒ wieder offen.
- ReviewRepository (Port + Pg-Impl) + Use Cases ListPendingReviews/
ResolveReview.
- Endpoints: GET /admin/reviews (offene Prüfungen inkl. Änderungsdetails
aus scan_audit/credit_audit) + POST /admin/reviews/{delivery_id}/resolve
(Admin-Key).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
1.2 KiB
SQL
26 lines
1.2 KiB
SQL
-- 0031_delivery_review.sql
|
|
--
|
|
-- Vier-Augen-Prüfung für geänderte Lieferscheine.
|
|
--
|
|
-- Sobald an einer Lieferung etwas vom ursprünglichen ERP-Beleg abweicht
|
|
-- (Artikel entfernt/teil-gutgeschrieben ODER Geld-Gutschrift gesetzt), soll
|
|
-- ein Mitarbeiter in der Fakturierung das gegenprüfen.
|
|
--
|
|
-- Bewusst KEINE eigene Status-Spalte: der Status wird ABGELEITET aus dem
|
|
-- vorhandenen Stand (`delivery_items.credited_quantity`, neueste
|
|
-- `delivery_credit_audit`-Zeile) versus dem hier gespeicherten Bestätigungs-
|
|
-- Zeitpunkt. Das erfüllt automatisch „Originalzustand wieder erreicht ⇒ Flag
|
|
-- weg" (keine Abweichung mehr) UND „nach Bestätigung erneut geändert ⇒ wieder
|
|
-- offen" (resolved_at < letzte Änderung), ohne Logik in die Scan-/Gutschrift-
|
|
-- Transaktionen zu hängen.
|
|
--
|
|
-- Abgeleiteter Status (im Read berechnet):
|
|
-- keine Abweichung -> none
|
|
-- Abweichung, resolved_at NULL oder < letzte Änderung -> pending
|
|
-- Abweichung, resolved_at >= letzte Änderung -> resolved
|
|
|
|
ALTER TABLE deliveries
|
|
ADD COLUMN review_resolved_at TIMESTAMPTZ,
|
|
ADD COLUMN review_resolved_by TEXT,
|
|
ADD COLUMN review_note TEXT;
|