Files
crmPRO/.paul/phases/05-finances-fakturownia-import/05-06-PLAN.md
Codex 7acf22c71a feat(05-finances-fakturownia-import): complete Fakturownia mapping corrections
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>
2026-05-04 22:57:55 +02:00

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
autoload/Domain/Finances/FinanceRepository.php
autoload/Controllers/FinancesController.php
templates/finances/operation-edit.php
true off
## Goal Dodac w edycji operacji finansowej (tylko operacje z importu Fakturownia) opcje zmiany dopasowania pozycji faktury do kategorii oraz natychmiastowa zmiane kategorii biezacej operacji, z opcjonalnym masowym przepieciem pozostalych pasujacych operacji.

Purpose

Po blednym przypisaniu pozycji faktury do kategorii uzytkownik ma szybko skorygowac mapowanie bez recznej edycji wielu rekordow.

Output

  • Rozszerzony formularz operation-edit o 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.
- **[Zakres]** - Czy funkcja ma dotyczyc tylko operacji z Fakturowni czy wszystkich? -> Odpowiedz: tylko operacje z Fakturowni; reczne zostaja ze standardowa zmiana kategorii. - **[Skala]** - Czy po zmianie mapowania przepiac tez pozostale operacje z tym samym itemem? -> Odpowiedz: tak, mozna masowo przepiac pozostale pasujace. - **[UI]** - Gdzie ma byc akcja? -> Odpowiedz: jako rozszerzenie istniejacej edycji operacji.

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 UI

DO NOT CHANGE

  • Logika importu dokumentow Fakturownia (cron + importer).
  • Istniejaca standardowa akcja operation_save i 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.
Before declaring plan complete: - [ ] `php -l` dla wszystkich zmienionych plikow - [ ] Reczna proba: operacja z Fakturowni - zmiana dopasowania aktualizuje kategorie biezaca - [ ] Reczna proba: zaznaczone masowe przepiecie zmienia pozostale pasujace operacje - [ ] Reczna proba: operacja reczna nie pokazuje nowej sekcji - [ ] Wszystkie AC spelnione

<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>
Po wykonaniu utworz `.paul/phases/05-finances-fakturownia-import/05-06-SUMMARY.md`.