Phase 5 complete: - add category mapping edit from operation edit for Fakturownia operations - update current operation category immediately after mapping change - support optional bulk update for matching imported operations - close 05-05 and 05-06 PAUL summaries Co-Authored-By: Codex <noreply@openai.com>
6.4 KiB
6.4 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, delegation
| phase | plan | type | wave | depends_on | files_modified | autonomous | delegation | |||
|---|---|---|---|---|---|---|---|---|---|---|
| 05-finances-fakturownia-import | 06 | execute | 1 |
|
true | off |
Purpose
Po blednym przypisaniu pozycji faktury do kategorii uzytkownik ma szybko skorygowac mapowanie bez recznej edycji wielu rekordow.
Output
- Rozszerzony formularz
operation-edito sekcje "Edycja dopasowania Fakturownia". - Endpoint backendowy do zmiany mapowania itemu i przepiecia kategorii.
- Logika repozytorium do znalezienia operacji powiazanych z tym samym itemem oraz ich aktualizacji.
Project Context
@.paul/PROJECT.md @.paul/ROADMAP.md @.paul/STATE.md
Prior Work
@.paul/phases/05-finances-fakturownia-import/05-05-SUMMARY.md
Source Files
@autoload/Domain/Finances/FinanceRepository.php @autoload/Controllers/FinancesController.php @templates/finances/operation-edit.php @autoload/Domain/Finances/FakturowniaImportRepository.php
<acceptance_criteria>
AC-1: Widocznosc opcji tylko dla operacji z Fakturowni
Given uzytkownik otwiera /finances/operation_edit dla operacji recznej
When formularz edycji zostaje wyrenderowany
Then sekcja "Edycja dopasowania Fakturownia" nie jest widoczna
AC-2: Zmiana dopasowania aktualizuje mapowanie i biezaca operacje
Given operacja pochodzi z Fakturowni i ma identyfikowalny external_item_key
When uzytkownik wybierze nowa kategorie i zapisze zmiane dopasowania
Then rekord w fakturownia_item_mappings otrzyma nowa finance_category_id
And aktualnie edytowana operacja dostanie nowa category_id
AC-3: Masowe przepiecie pozostalych pasujacych operacji
Given istnieja inne operacje z tym samym external_item_key
When uzytkownik zaznaczy opcje masowego przepiecia
Then wszystkie pasujace operacje z importu Fakturownia otrzymaja nowa category_id
And operacje reczne nie zostana zmodyfikowane
AC-4: Bezpieczny fallback
Given operacja nie ma powiazania z external_item_key
When uzytkownik probuje zapisac edycje dopasowania
Then system zwroci czytelny komunikat o braku mozliwosci zmiany dopasowania
And standardowa edycja operacji pozostaje bez regresji
</acceptance_criteria>
Task 1: Dodac identyfikacje powiazania operacji z itemem Fakturownia autoload/Domain/Finances/FinanceRepository.php Dodac metody repozytorium, ktore: - dla operation_id odczytaja dokument importu Fakturownia z `fakturownia_imported_documents`, - z `meta_json` wyciagna item_key odpowiadajacy tej operacji, - zwroca dane niezbedne do edycji dopasowania (external_item_key, external_name, czy masowe przepiecie jest mozliwe). Dodatkowo dodac metode aktualizujaca category_id dla: - biezacej operacji, - opcjonalnie wszystkich operacji powiazanych z tym samym item_key (tylko import Fakturownia). Unikaj: SQL string concatenation; tylko medoo/prepared statements. php -l autoload/Domain/Finances/FinanceRepository.php AC-2 i AC-3 maja pokrycie po stronie danych Task 2: Dodac endpoint kontrolera do zapisu edycji dopasowania autoload/Controllers/FinancesController.php Dodac nowa akcje kontrolera (POST) z walidacja CSRF i danych: - operation_id, finance_category_id, apply_to_all (0/1), - sprawdzenie istnienia kategorii, - sprawdzenie czy operacja jest powiazana z itemem Fakturownia. Akcja ma: - zaktualizowac `fakturownia_item_mappings`, - przepiac kategorie w `finance_operations` (biezaca + opcjonalnie masowo), - zwrocic jasny komunikat sukcesu/bledu i redirect do listy operacji. php -l autoload/Controllers/FinancesController.php AC-2 i AC-4 spelnione po stronie backendu Task 3: Rozszerzyc formularz operation-edit o edycje dopasowania Fakturownia templates/finances/operation-edit.php W formularzu edycji: - wyswietlic dodatkowa sekcje tylko, gdy operacja ma powiazanie z itemem Fakturownia, - dodac select kategorii + checkbox "przepnij wszystkie pasujace operacje", - dodac submit kierowany do nowej akcji kontrolera. Dla operacji recznych nic nie zmieniac wizualnie ani funkcjonalnie. php -l templates/finances/operation-edit.php AC-1 i AC-3 spelnione w UIDO NOT CHANGE
- Logika importu dokumentow Fakturownia (cron + importer).
- Istniejaca standardowa akcja
operation_savei reczna edycja operacji. - Moduly poza finansami.
SCOPE LIMITS
- Brak zmian dla operacji recznych poza obecna mozliwoscia recznej zmiany kategorii.
- Brak migracji schematu DB.
- Brak zmian w raportach i podsumowaniach finansowych.
<success_criteria>
- Uzytkownik moze poprawic bledne dopasowanie kategorii bez opuszczania edycji operacji.
- Zmiana mapowania od razu poprawia kategorie na aktualnej operacji.
- Masowe przepiecie dziala tylko dla operacji z tym samym itemem Fakturownia.
- Brak regresji dla recznej edycji operacji. </success_criteria>