Abo: extern-erledigt für gelöschte Abos + Lieferhistorie-Umzug (Ticket Kunz Mai-Punkte)
- AboExternalCompletionService: Bestellungen gelöschter/ersetzter Abos können
nachträglich extern erledigt werden (Punkte + Status 8 + Versandstatus);
das gelöschte Abo wird dabei nicht reaktiviert
- IncentiveTracker::trackSalesVolume: Abo-Zuordnung inkl. gelöschter Abos
(withTrashed) - nachgebuchte Umsätze bereits getrackter Abos zählen weiter
- Neue Wartungs-Commands: abo:extern-done {shopping_order_id} und
abo:move-orders {from_abo} {to_abo} (--dry-run, Guards: gleicher Kunde)
- Latent datumsabhängigen Alt-Test in AboExternalCompletionTest repariert
(Buchung nutzt date(), nicht Carbon::setTestNow)
Fall Kunz (dev/2026-08-12-intensiv-tickets): Dannenhauers gelieferte, aber am
17.06. beim Nachtragen vergessene Mai-Order 53274 → abo:extern-done (+54 P);
Bockhackers Lieferhistorie von gelöschtem Abo 197 → 496 umgehängt (Zähler 4).
Bockhackers 24 P existieren bereits (Juni-Buchung der Mai-Lieferung).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
d65922adfe
commit
3f74f76819
8 changed files with 433 additions and 17 deletions
|
|
@ -124,6 +124,49 @@ Umsetzung:
|
|||
Verifiziert auf der Live-Kopie (19.08.): 13 August-Bestellungen geprüft, 12 bereits
|
||||
gebucht, genau 1 nachgebucht (Order 59900, Jasmin Grund +200 P), Juni/Juli unberührt.
|
||||
|
||||
## Nachtrag 2026-08-21: Ticket Kunz Teil 2 – Mai-Punkte & Bockhacker-Lieferzähler
|
||||
|
||||
Re-Verifikation mit DHL-Daten ergab ein anderes Bild als die erste Analyse:
|
||||
|
||||
- Die Mai-Lieferungen **wurden versandt und zugestellt** (DHL 12.05.), aber nie bezahlt
|
||||
(`txaction='prev'`). Am 17.06. hat ein Admin zwei Bestellungen per „extern erledigt"
|
||||
(Status 8) nachgebucht: Bockhackers **Mai**-Order 53619 (24 P) und Dannenhauers
|
||||
**Juni**-Order 55443 (54 P) – Buchungsmonat jeweils Juni (Systemregel: aktueller Monat).
|
||||
- **Bockhacker:** Es fehlt nichts – die 24 P der Mai-Lieferung existieren (als Juni
|
||||
gebucht). Kein Nachtrag, sonst Doppelbuchung.
|
||||
- **Dannenhauer:** Ihre Mai-Order 53274 (geliefert!) wurde beim Nachtragen am 17.06.
|
||||
**vergessen** → 54 P fehlten wirklich. Nachgebucht am 21.08. per neuem Command
|
||||
`abo:extern-done 53274` (Buchung August, keine Retro-Buchung; +54 P auch im Incentive).
|
||||
Hinweis: Abo 198 ist seit 06.07. gelöscht, Kundin hat kein aktives Abo mehr; die
|
||||
Orders 54890/55441/55442/57268 wurden laut DHL nie versandt und bleiben offen.
|
||||
- **Bockhacker Lieferzähler:** Abo 197 (09.04.) wurde am 06.07. gelöscht und durch
|
||||
Abo 496 ersetzt → Zähler startete bei 0. Per neuem Command `abo:move-orders 197 496`
|
||||
wurde die Lieferhistorie umgehängt; Abo 496 zählt jetzt **4 ausgeführte Lieferungen**
|
||||
(09.04., 12.05. [extern erledigt], 10.07., 10.08.). Laut DHL war die Juli-Lieferung
|
||||
die **3.** (nicht die 4. wie im Ticket) – es gab keine Juni-Sendung an Bockhacker;
|
||||
die Juni-*Buchung* vom 17.06. gehörte zur Mai-Lieferung.
|
||||
|
||||
Code-Änderungen dafür:
|
||||
|
||||
- `AboExternalCompletionService`: funktioniert jetzt auch für Bestellungen
|
||||
gelöschter/ersetzter Abos (Punkte + Status 8 + Versandstatus; das gelöschte Abo wird
|
||||
**nicht** reaktiviert, kein neuer Zyklus).
|
||||
- `IncentiveTracker::trackSalesVolume`: Abo-Zuordnung inkl. gelöschter Abos
|
||||
(`withTrashed`) – nachgebuchte Umsätze bereits getrackter, inzwischen gelöschter
|
||||
Abos zählen weiter im Incentive.
|
||||
- Neue Wartungs-Commands: `abo:extern-done {shopping_order_id}` und
|
||||
`abo:move-orders {from_abo} {to_abo} [--dry-run]` (Guards: gleicher Kunde/Berater).
|
||||
- Fix eines latent datumsabhängigen Tests in `AboExternalCompletionTest`
|
||||
(Erwartung nutzte `setTestNow`, Produktion bucht mit `date()`).
|
||||
|
||||
**Live-Ausführung nach Deploy:**
|
||||
|
||||
```bash
|
||||
php artisan abo:extern-done 53274 # Dannenhauer Mai-Lieferung: +54 P an Kunz
|
||||
php artisan abo:move-orders 197 496 # Bockhacker Lieferhistorie → Abo 496
|
||||
php artisan incentive:calculate 2 # optional sofort (sonst Nacht-Cron 05:00)
|
||||
```
|
||||
|
||||
## Geänderte Dateien
|
||||
|
||||
| Datei | Änderung |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue