feat(19-ui-integration): przycisk Drukuj, bulk print, kolejka wydruku
- Przycisk "Drukuj" w prepare.php i show.php z AJAX + duplikat protection - Bulk print z listy zamówień (checkboxy + header action) - Kolejka wydruku w Ustawienia > Drukowanie (filtr statusu, retry) - POST /api/print/jobs/bulk endpoint (package_ids + order_ids) - ensureLabel() auto-download przez ShipmentProviderRegistry - Apaczka carrier_id = nazwa usługi, kolumna Przewoznik - Tab persistence (localStorage), label file_exists check - Fix use statement ApaczkaApiClient, redirect po utworzeniu przesyłki - Phase 17 (receipt duplicate guard) + Phase 18 (print queue backend) docs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
111
.paul/handoffs/archive/HANDOFF-2026-03-22.md
Normal file
111
.paul/handoffs/archive/HANDOFF-2026-03-22.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# PAUL Handoff
|
||||
|
||||
**Date:** 2026-03-22
|
||||
**Status:** paused — sesja w toku, checkpoint human-verify
|
||||
|
||||
---
|
||||
|
||||
## READ THIS FIRST
|
||||
|
||||
You have no prior context. This document tells you everything.
|
||||
|
||||
**Project:** orderPRO — aplikacja do zarządzania zamówieniami wielokanałowymi
|
||||
**Core value:** Sprzedawca może obsługiwać zamówienia ze wszystkich kanałów sprzedaży i nadawać przesyłki bez przełączania się między platformami.
|
||||
|
||||
---
|
||||
|
||||
## Current State
|
||||
|
||||
**Milestone:** v0.7 Zdalne drukowanie etykiet
|
||||
**Phase:** 19 of 20 — UI Integration
|
||||
**Plan:** 19-01 — APPLY w toku (checkpoint human-verify)
|
||||
|
||||
**Loop Position:**
|
||||
```
|
||||
PLAN ──▶ APPLY ──▶ UNIFY
|
||||
✓ ◐ ○ [APPLY in progress — checkpoint verification]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## What Was Done
|
||||
|
||||
- Przycisk "Drukuj" w widoku przesyłki (prepare.php) i szczegółów zamówienia (show.php)
|
||||
- Bulk endpoint POST /api/print/jobs/bulk (obsługuje package_ids i order_ids)
|
||||
- Zbiorcze drukowanie z listy zamówień (checkboxy + "Drukuj etykiety" header action)
|
||||
- Kolejka wydruku w Ustawienia > Drukowanie (lista zleceń z filtrami statusu + retry)
|
||||
- Ochrona przed duplikatami (findPendingByPackageId)
|
||||
- Auto-download etykiety przez ensureLabel() z ShipmentProviderRegistry
|
||||
- Stan "W kolejce" (czerwony, disabled) od razu gdy pending job istnieje
|
||||
- Sprawdzanie istnienia pliku etykiety na dysku (show.php + prepare.php) — ukrywa "Pobierz"/"Drukuj" gdy plik nie istnieje
|
||||
- Redirect po utworzeniu przesyłki → szczegóły zamówienia z tabem "Przesyłki"
|
||||
- Zapamiętywanie aktywnego taba w localStorage
|
||||
- Apaczka zapisuje nazwę usługi w carrier_id (np. "Orlen Paczka")
|
||||
- Kolumna "Przewoznik" pokazuje "Apaczka → Orlen Paczka"
|
||||
- Usunięto "(WZA)" z tytułu sekcji
|
||||
- Sekcja "Utworzone przesylki" przeniesiona pod formularz nowej przesyłki
|
||||
- Naprawiony bug use statement w ApaczkaApiClient.php (brak backslashy)
|
||||
- Wyłączono hook PreToolUse context-mode w settings.json
|
||||
|
||||
---
|
||||
|
||||
## What's In Progress
|
||||
|
||||
- Checkpoint human-verify — użytkownik testuje UI na produkcji (orderpro.projectpro.pl)
|
||||
- Ostatni feedback: nazwa usługi w kolumnie Przewoznik działa dla nowych przesyłek (stare mają puste carrier_id)
|
||||
|
||||
---
|
||||
|
||||
## What's Next
|
||||
|
||||
**Immediate:** Kontynuacja checkpoint human-verify — użytkownik potwierdza lub zgłasza kolejne uwagi
|
||||
|
||||
**After that:**
|
||||
1. Po "approved" → finalize APPLY
|
||||
2. /paul:unify dla 19-01
|
||||
3. sonar-scanner przed UNIFY (wymagane przez SPECIAL-FLOWS.md)
|
||||
|
||||
---
|
||||
|
||||
## Dodatkowe zmiany (poza planem 19-01)
|
||||
|
||||
- show.php: zapamiętywanie taba w localStorage
|
||||
- show.php: sprawdzanie file_exists dla label_path
|
||||
- show.php: przycisk "Drukuj" + JS handler
|
||||
- show.php: kolumna Przewoznik z provider → carrier_id
|
||||
- ShipmentController: redirect po sukcesie → /orders/{id} z flash
|
||||
- ApaczkaShipmentService: carrier_id = service name
|
||||
- ApaczkaApiClient: fix use statement
|
||||
- OrdersController: storagePath + printJobRepo injection
|
||||
- settings.json: wyłączony PreToolUse hook context-mode
|
||||
|
||||
---
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `.paul/STATE.md` | Live project state |
|
||||
| `.paul/ROADMAP.md` | Phase overview |
|
||||
| `.paul/phases/19-ui-integration/19-01-PLAN.md` | Current plan |
|
||||
| `src/Modules/Printing/PrintApiController.php` | REST API + ensureLabel + bulkCreateJobs |
|
||||
| `src/Modules/Printing/PrintJobRepository.php` | DB operations + pendingPackageIds |
|
||||
| `src/Modules/Settings/PrintSettingsController.php` | Kolejka wydruku w ustawieniach |
|
||||
| `resources/views/orders/show.php` | Przycisk Drukuj + tab persistence |
|
||||
| `resources/views/shipments/prepare.php` | Przycisk Drukuj + sekcja przesyłek |
|
||||
| `resources/views/orders/list.php` | Bulk print action |
|
||||
| `resources/views/settings/printing.php` | Kolejka wydruku UI |
|
||||
| `routes/web.php` | DI + nowe route'y |
|
||||
|
||||
---
|
||||
|
||||
## Resume Instructions
|
||||
|
||||
1. Read `.paul/STATE.md` for latest position
|
||||
2. Check loop position — APPLY in progress
|
||||
3. Run `/paul:resume` or `/paul:progress`
|
||||
4. Kontynuuj checkpoint human-verify z użytkownikiem
|
||||
|
||||
---
|
||||
|
||||
*Handoff created: 2026-03-22*
|
||||
Reference in New Issue
Block a user