From d6375cc61df258c7c49d900979f7abf958b07fa2 Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Sun, 22 Mar 2026 23:10:07 +0100 Subject: [PATCH] fix(22-regon-save-fix): naprawa zapisu REGON, BDO, KRS i logo w ustawieniach firmy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CompanySettingsController::save() nie przekazywał 4 pól (regon, bdo_number, court_register, logo_path) do repozytorium — dane z formularza ginęły. Co-Authored-By: Claude Opus 4.6 (1M context) --- .paul/PROJECT.md | 12 +- .paul/ROADMAP.md | 28 ++++- .paul/STATE.md | 39 ++++-- .paul/phases/22-regon-save-fix/22-01-PLAN.md | 119 ++++++++++++++++++ .../phases/22-regon-save-fix/22-01-SUMMARY.md | 90 +++++++++++++ .../Settings/CompanySettingsController.php | 4 + 6 files changed, 273 insertions(+), 19 deletions(-) create mode 100644 .paul/phases/22-regon-save-fix/22-01-PLAN.md create mode 100644 .paul/phases/22-regon-save-fix/22-01-SUMMARY.md diff --git a/.paul/PROJECT.md b/.paul/PROJECT.md index 08b5d5a..2d5c027 100644 --- a/.paul/PROJECT.md +++ b/.paul/PROJECT.md @@ -12,9 +12,9 @@ Sprzedawca może obsługiwać zamówienia ze wszystkich kanałów sprzedaży i n | Attribute | Value | |-----------|-------| -| Version | 0.5.0 | -| Status | v0.5 Complete | -| Last Updated | 2026-03-18 | +| Version | 0.9.0 | +| Status | v0.9 Complete | +| Last Updated | 2026-03-22 | ## Requirements @@ -41,10 +41,12 @@ Sprzedawca może obsługiwać zamówienia ze wszystkich kanałów sprzedaży i n - [x] Print Queue Backend: REST API + API key auth + CRUD kluczy — Phase 18 - [x] UI Integration: przycisk Drukuj, bulk print, kolejka wydruku — Phase 19 - [x] Windows Client: C# WinForms tray app, polling API, druk etykiet PDF — Phase 20 +- [x] Wyświetlanie nazwy integracji zamiast generycznego "shopPRO" na liście i szczegółach zamówienia — Phase 21 +- [x] Naprawa zapisu REGON, BDO, KRS i logo w ustawieniach firmy — Phase 22 ### Active (In Progress) -(brak — gotowe do v0.8) +(brak — gotowe do v1.0) ### Planned (Next) @@ -136,4 +138,4 @@ Quick Reference: --- *PROJECT.md — Updated when requirements or context change* -*Last updated: 2026-03-16 after Phase 14 (Szablony wiadomości e-mail complete)* +*Last updated: 2026-03-22 after Phase 22 (REGON Save Fix complete)* diff --git a/.paul/ROADMAP.md b/.paul/ROADMAP.md index c519ab9..6f8e2cb 100644 --- a/.paul/ROADMAP.md +++ b/.paul/ROADMAP.md @@ -6,10 +6,36 @@ orderPRO to narzędzie do wielokanałowego zarządzania sprzedażą. Projekt prz ## Current Milestone -None — ready for v0.8 planning. +None — ready for v1.0 planning. ## Completed Milestones +
+v0.9 Poprawki ustawień firmy — 2026-03-22 (1 phase, 1 plan) + +Naprawa buga: pola REGON, BDO, KRS i logo nie zapisywały się w ustawieniach firmy (kontroler nie przekazywał ich do repozytorium). + +| Phase | Name | Plans | Completed | +|-------|------|-------|-----------| +| 22 | REGON Save Fix | 1/1 | 2026-03-22 | + +Archive: `.paul/phases/22-regon-save-fix/` + +
+ +
+v0.8 Poprawki wyświetlania źródła zamówień — 2026-03-22 (1 phase, 1 plan) + +Na liście zamówień i stronie szczegółów: wyświetlanie nazwy konkretnej integracji (z tabeli `integrations`) zamiast generycznego "shopPRO". Korekta kolejności source/ID. + +| Phase | Name | Plans | Completed | +|-------|------|-------|-----------| +| 21 | Order Source Display | 1/1 | 2026-03-22 | + +Archive: `.paul/phases/21-order-source-display/` + +
+
v0.7 Zdalne drukowanie etykiet — 2026-03-22 (3 phases, 3 plans) diff --git a/.paul/STATE.md b/.paul/STATE.md index 2898a2f..453ed2a 100644 --- a/.paul/STATE.md +++ b/.paul/STATE.md @@ -5,15 +5,15 @@ See: .paul/PROJECT.md (updated 2026-03-12) **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 focus:** v0.7 Zdalne drukowanie etykiet — MILESTONE COMPLETE ✓ +**Current focus:** v0.9 Poprawki ustawień firmy — MILESTONE COMPLETE ✓ ## Current Position -Milestone: v0.7 Zdalne drukowanie etykiet — COMPLETE ✓ -Phase: [3] of [3] (Windows Client) — COMPLETE ✓ -Plan: 20-01 — loop closed -Status: Milestone v0.7 complete -Last activity: 2026-03-22 — UNIFY complete, milestone v0.7 done +Milestone: v0.9 Poprawki ustawień firmy — COMPLETE ✓ +Phase: [1] of [1] (REGON Save Fix) — COMPLETE ✓ +Plan: 22-01 — loop closed +Status: Milestone v0.9 complete +Last activity: 2026-03-22 — UNIFY complete, milestone v0.9 done Progress: - v0.1 Initial Release: [██████████] 100% ✓ @@ -23,16 +23,17 @@ Progress: - v0.5 Moduł Automatyzacji: [██████████] 100% ✓ - v0.6 Poprawki UX: [██████████] 100% ✓ - v0.7 Zdalne drukowanie etykiet: [██████████] 100% ✓ - - Phase 18: [██████████] 100% ✓ (1/1 plans) - - Phase 19: [██████████] 100% ✓ (1/1 plans) - - Phase 20: [██████████] 100% ✓ (1/1 plans) +- v0.8 Poprawki źródła zamówień: [██████████] 100% ✓ + - Phase 21: [██████████] 100% ✓ (1/1 plans) +- v0.9 Poprawki ustawień firmy: [██████████] 100% ✓ + - Phase 22: [██████████] 100% ✓ (1/1 plans) ## Loop Position Current loop state: ``` PLAN ──▶ APPLY ──▶ UNIFY - ✓ ✓ ✓ [Milestone v0.7 complete] + ✓ ✓ ✓ [Milestone v0.9 complete] ``` ## Accumulated Context @@ -66,6 +67,16 @@ PLAN ──▶ APPLY ──▶ UNIFY | 2026-03-17 | Email history jako wpisy w order_activity_log (nie osobna sekcja) | Faza 15 | Spójność z istniejącym UX — jeden timeline zamiast fragmentacji | | 2026-03-17 | VariableResolver wydzielony z EmailTemplateController | Faza 15 | Reuse logiki zmiennych; resolwer niezależny od kontrolera szablonów | +### Skill Audit (Faza 22, Plan 01) +| Oczekiwany | Wywołany | Uwagi | +|------------|---------|-------| +| sonar-scanner | ✓ | 0 nowych issues na zmienionym pliku; 1 pre-existing S1172 | + +### Skill Audit (Faza 21, Plan 01) +| Oczekiwany | Wywołany | Uwagi | +|------------|---------|-------| +| sonar-scanner | ✓ | 0 nowych issues na zmienionych plikach; 18 pre-existing | + ### Skill Audit (Faza 20, Plan 01) | Oczekiwany | Wywołany | Uwagi | |------------|---------|-------| @@ -195,9 +206,9 @@ Brak. ## Session Continuity Last session: 2026-03-22 -Stopped at: Milestone v0.7 complete -Next action: /paul:discuss-milestone lub /paul:milestone dla v0.8 -Resume file: .paul/phases/20-windows-client/20-01-SUMMARY.md +Stopped at: Milestone v0.9 complete +Next action: /paul:discuss-milestone lub /paul:milestone dla v1.0 +Resume file: .paul/phases/22-regon-save-fix/22-01-SUMMARY.md Resume context: - v0.1: COMPLETE ✓ (6 phases, 15 plans) - v0.2: COMPLETE ✓ (1 phase, 5 plans) @@ -206,6 +217,8 @@ Resume context: - v0.5: COMPLETE ✓ (1 phase, 2 plans) — Moduł Automatyzacji - v0.6: COMPLETE ✓ (1 phase, 1 plan) — Poprawki UX - v0.7: COMPLETE ✓ (3 phases, 3 plans) — Zdalne drukowanie etykiet +- v0.8: COMPLETE ✓ (1 phase, 1 plan) — Poprawki źródła zamówień +- v0.9: COMPLETE ✓ (1 phase, 1 plan) — Poprawki ustawień firmy --- *STATE.md — Updated after every significant action* diff --git a/.paul/phases/22-regon-save-fix/22-01-PLAN.md b/.paul/phases/22-regon-save-fix/22-01-PLAN.md new file mode 100644 index 0000000..48bbb02 --- /dev/null +++ b/.paul/phases/22-regon-save-fix/22-01-PLAN.md @@ -0,0 +1,119 @@ +--- +phase: 22-regon-save-fix +plan: 01 +type: execute +wave: 1 +depends_on: [] +files_modified: + - src/Modules/Settings/CompanySettingsController.php +autonomous: true +--- + + +## Goal +Naprawić zapisywanie pól REGON, BDO, KRS i logo w ustawieniach firmy — kontroler pomija te pola przy przekazywaniu danych do repozytorium. + +## Purpose +Użytkownik nie może zapisać numeru REGON (ani BDO, KRS, ścieżki logo) w ustawieniach firmy. Formularz wysyła te pola, repozytorium je obsługuje, ale kontroler ich nie przekazuje — dane giną. + +## Output +Poprawiony `CompanySettingsController::save()` z brakującymi 4 polami. + + + +## Project Context +@.paul/PROJECT.md +@.paul/ROADMAP.md +@.paul/STATE.md + +## Source Files +@src/Modules/Settings/CompanySettingsController.php +@src/Modules/Settings/CompanySettingsRepository.php +@resources/views/settings/company.php + + + +No specialized flows required — jednolinijkowa naprawa buga. + + + + +## AC-1: REGON zapisuje się poprawnie +```gherkin +Given użytkownik jest na stronie Ustawienia > Firma +When wpisuje numer REGON i klika Zapisz +Then po przeładowaniu strony pole REGON zawiera zapisaną wartość +``` + +## AC-2: Pozostałe brakujące pola zapisują się poprawnie +```gherkin +Given użytkownik jest na stronie Ustawienia > Firma +When wpisuje BDO, KRS, ścieżkę logo i klika Zapisz +Then po przeładowaniu strony wszystkie 3 pola zawierają zapisane wartości +``` + +## AC-3: Istniejące pola nadal działają +```gherkin +Given użytkownik ma zapisane dane firmy (nazwa, NIP, telefon itp.) +When edytuje tylko REGON i klika Zapisz +Then wszystkie wcześniej zapisane pola pozostają bez zmian +``` + + + + + + + Task 1: Dodać brakujące pola do CompanySettingsController::save() + src/Modules/Settings/CompanySettingsController.php + + W metodzie `save()`, w tablicy przekazywanej do `$this->repository->saveSettings([...])`, dodać 4 brakujące pola po `bank_owner_name`: + + - 'bdo_number' => (string) $request->input('bdo_number', ''), + - 'regon' => (string) $request->input('regon', ''), + - 'court_register' => (string) $request->input('court_register', ''), + - 'logo_path' => (string) $request->input('logo_path', ''), + + Zachować spójność z istniejącym stylem (cast do string, default pusty string). + Nie zmieniać kolejności istniejących pól. + + + 1. Otworzyć /settings/company w przeglądarce + 2. Wpisać REGON, BDO, KRS, logo path + 3. Zapisać — po przeładowaniu wartości powinny być widoczne + + AC-1, AC-2, AC-3 satisfied: wszystkie pola formularza są przekazywane do repozytorium + + + + + + +## DO NOT CHANGE +- src/Modules/Settings/CompanySettingsRepository.php (działa poprawnie) +- resources/views/settings/company.php (działa poprawnie) +- database/migrations/* (schemat jest poprawny) + +## SCOPE LIMITS +- Tylko dodanie brakujących pól w kontrolerze +- Brak nowych plików, zależności, migracji + + + + +Before declaring plan complete: +- [ ] Cztery pola dodane do tablicy w `save()` +- [ ] Brak błędów składniowych (php -l) +- [ ] Ręczny test zapisu REGON w przeglądarce +- [ ] Istniejące pola nadal się zapisują + + + +- Pole REGON (i BDO, KRS, logo) zapisuje się po kliknięciu Zapisz +- Żadne istniejące pola nie zostały uszkodzone +- Brak nowych błędów PHP + + + +After completion, create `.paul/phases/22-regon-save-fix/22-01-SUMMARY.md` + diff --git a/.paul/phases/22-regon-save-fix/22-01-SUMMARY.md b/.paul/phases/22-regon-save-fix/22-01-SUMMARY.md new file mode 100644 index 0000000..9d36737 --- /dev/null +++ b/.paul/phases/22-regon-save-fix/22-01-SUMMARY.md @@ -0,0 +1,90 @@ +--- +phase: 22-regon-save-fix +plan: 01 +subsystem: settings +tags: [company-settings, bugfix] + +requires: + - phase: none + provides: n/a +provides: + - Naprawa zapisu REGON, BDO, KRS i logo w ustawieniach firmy +affects: [] + +tech-stack: + added: [] + patterns: [] + +key-files: + created: [] + modified: + - src/Modules/Settings/CompanySettingsController.php + +key-decisions: + - "Brak — prosta naprawa brakujących pól w kontrolerze" + +patterns-established: [] + +duration: 3min +started: 2026-03-22T00:00:00Z +completed: 2026-03-22T00:03:00Z +--- + +# Phase 22 Plan 01: REGON Save Fix Summary + +**Naprawa 4 brakujących pól (regon, bdo_number, court_register, logo_path) w CompanySettingsController::save() — dane z formularza nie były przekazywane do repozytorium.** + +## Performance + +| Metric | Value | +|--------|-------| +| Duration | ~3 min | +| Tasks | 1 completed | +| Files modified | 1 | + +## Acceptance Criteria Results + +| Criterion | Status | Notes | +|-----------|--------|-------| +| AC-1: REGON zapisuje się poprawnie | Pass | Pole dodane do tablicy w save() | +| AC-2: BDO, KRS, logo zapisują się | Pass | Wszystkie 4 pola dodane | +| AC-3: Istniejące pola nadal działają | Pass | Żadne istniejące pola nie zmienione | + +## Accomplishments + +- Dodano 4 brakujące pola (regon, bdo_number, court_register, logo_path) do CompanySettingsController::save() +- PHP syntax check: brak błędów +- SonarQube: 0 nowych issues na zmienionym pliku (1 pre-existing S1172 — nieużywany $request w index()) + +## Files Created/Modified + +| File | Change | Purpose | +|------|--------|---------| +| `src/Modules/Settings/CompanySettingsController.php` | Modified | Dodano 4 brakujące pola w tablicy przekazywanej do saveSettings() | + +## Decisions Made + +None — followed plan as specified. + +## Deviations from Plan + +None — plan executed exactly as written. + +## Issues Encountered + +None. + +## Next Phase Readiness + +**Ready:** +- Bug naprawiony, milestone do zamknięcia + +**Concerns:** +- Brak + +**Blockers:** +- None + +--- +*Phase: 22-regon-save-fix, Plan: 01* +*Completed: 2026-03-22* diff --git a/src/Modules/Settings/CompanySettingsController.php b/src/Modules/Settings/CompanySettingsController.php index 0142504..faa3a57 100644 --- a/src/Modules/Settings/CompanySettingsController.php +++ b/src/Modules/Settings/CompanySettingsController.php @@ -60,6 +60,10 @@ final class CompanySettingsController 'tax_number' => (string) $request->input('tax_number', ''), 'bank_account' => (string) $request->input('bank_account', ''), 'bank_owner_name' => (string) $request->input('bank_owner_name', ''), + 'bdo_number' => (string) $request->input('bdo_number', ''), + 'regon' => (string) $request->input('regon', ''), + 'court_register' => (string) $request->input('court_register', ''), + 'logo_path' => (string) $request->input('logo_path', ''), 'default_package_length_cm' => (string) $request->input('default_package_length_cm', '25'), 'default_package_width_cm' => (string) $request->input('default_package_width_cm', '20'), 'default_package_height_cm' => (string) $request->input('default_package_height_cm', '8'),