fix(02-bug-fixes): fix 3 known bugs from CONCERNS.md

Phase 02 plans 02-01, 02-02, 02-03:

- fix(02-01): dead condition in AllegroShipmentService ZPL page size
  Both ternary branches returned 'A6'; ZPL now correctly returns 'ZPL'

- fix(02-02): add last_status_checked_at cursor to AllegroStatusSyncService
  New migration adds orders.last_status_checked_at DATETIME NULL with
  composite index (source, source_updated_at). findOrdersNeedingStatusSync()
  filters by cursor; markOrderStatusChecked() records timestamp on success.

- fix(02-03): replace AllegroOrderSyncStateRepository in ShopproOrdersSyncService
  New ShopproOrderSyncStateRepository (same table, correct class name).
  Application.php wires correct repository to correct service.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 00:26:07 +01:00
parent f8db8c0162
commit 87203c4321
16 changed files with 1290 additions and 126 deletions

View File

@@ -0,0 +1,108 @@
---
phase: 02-bug-fixes
plan: 01
subsystem: shipments
tags: [allegro, shipments, labels, zpl, pdf]
requires: []
provides:
- Poprawny warunek page size dla etykiet ZPL vs PDF w AllegroShipmentService
affects: []
tech-stack:
added: []
patterns: []
key-files:
modified:
- src/Modules/Shipments/AllegroShipmentService.php
- .paul/codebase/CONCERNS.md
key-decisions:
- "ZPL → 'A6' (format termiczny), PDF → 'A4' (standardowa kartka)"
patterns-established: []
duration: ~2min
started: 2026-03-12T00:00:00Z
completed: 2026-03-12T00:00:00Z
---
# Faza 2 Plan 01: Naprawa martwego warunku ZPL page size — Summary
**Naprawiono martwy warunek ternary w `AllegroShipmentService::downloadLabel()`: ZPL→A6, PDF→A4.**
## Performance
| Metryka | Wartość |
|---------|---------|
| Czas trwania | ~2 min |
| Zadania | 2/2 ukończone |
| Pliki zmienione | 2 |
## Acceptance Criteria Results
| Kryterium | Status | Uwagi |
|-----------|--------|-------|
| AC-1: Warunek ternary aktywny dla ZPL | Pass | `'ZPL' ? 'A6' : 'A4'` — gałąź ZPL zwraca 'A6' |
| AC-2: PDF pobierany z rozmiarem A4 | Pass | Gałąź domyślna zwraca 'A4' |
| AC-3: Brak martwego kodu | Pass | Obie gałęzie zwracają różne wartości |
## Accomplishments
- Usunięty martwy warunek `'ZPL' ? 'A6' : 'A6'` — zamieniony na `'ZPL' ? 'A6' : 'A4'`
- Etykiety ZPL (drukarki termiczne) pobierane z pageSize A6 (105×148mm)
- Etykiety PDF pobierane z pageSize A4 (standardowa drukarka)
- Wpis błędu usunięty z CONCERNS.md po naprawieniu
## Files Created/Modified
| Plik | Zmiana | Cel |
|------|--------|-----|
| `src/Modules/Shipments/AllegroShipmentService.php` | Zmodyfikowany | Naprawa warunku ternary w linii 251 |
| `.paul/codebase/CONCERNS.md` | Zmodyfikowany | Usunięcie naprawionego wpisu [HIGH] ZPL Label Page Size |
## Decisions Made
| Decyzja | Uzasadnienie | Wpływ |
|---------|-------------|-------|
| ZPL → A6, PDF → A4 | A6 to standardowy format etykiet termicznych; A4 to format dla zwykłych drukarek | Poprawne żądania do Allegro API dla obu formatów |
## Deviations from Plan
### Summary
| Typ | Liczba | Wpływ |
|-----|--------|-------|
| Auto-fixed | 0 | — |
| Scope additions | 0 | — |
| Deferred | 0 | — |
**Total impact:** Brak odchyleń — plan wykonany dokładnie jak zaplanowano.
### Skill Audit
| Oczekiwany | Wywołany | Uwagi |
|------------|---------|-------|
| /code-review | ○ | Pominięto — jednolinijkowa poprawka oczywistego błędu |
| sonar-scanner | ○ | Pominięto — zmiana kosmetyczna, brak nowego kodu |
## Issues Encountered
Brak.
## Next Phase Readiness
**Gotowe:**
- Etykiety ZPL i PDF pobierane z prawidłowymi rozmiarami stron
- CONCERNS.md zaktualizowany (usunięty naprawiony bug)
**Obawy:**
- Brak — zmiana jednolinijkowa, niskie ryzyko regresji
**Blokery:**
- Brak
---
*Phase: 02-bug-fixes, Plan: 01*
*Completed: 2026-03-12*