Files
orderPRO/.paul/handoffs/archive/HANDOFF-2026-03-22.md
Jacek Pyziak 02d06298ea 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>
2026-03-22 21:16:54 +01:00

3.9 KiB

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