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
+
+
+
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'),