diff --git a/REFACTORING_PLAN.md b/REFACTORING_PLAN.md new file mode 100644 index 0000000..4d9fca4 --- /dev/null +++ b/REFACTORING_PLAN.md @@ -0,0 +1,65 @@ +# Plan Refaktoryzacji CRM PRO + +## Cel +- Przenieść logikę biznesową i dostęp do danych z warstwy `factory` do `autoload/Domain/*`. +- Zachować kompatybilność wsteczną przez warstwy adapterów/fasad (`controls`, `factory`) podczas migracji. +- Kończyć każdy etap migracji testami regresyjnymi. + +## Aktualny status +- Ostatnia aktualizacja: 2026-02-06 +- Etap: 2 w toku (standaryzacja kontrolerów) +- Obszar Czas pracy: zmigrowany i ustabilizowany + +## Etap 1: Tasks / Czas pracy (ZROBIONE) +- Dodano `autoload/Domain/Tasks/class.WorkTimeRepository.php`. +- `factory\Tasks::work_time_clients()` deleguje teraz do repozytorium Domain. +- Usunięto limit 3 miesięcy: repozytorium zwraca wszystkie istotne miesiące. +- Uwzględniono statusy zadań: + - `do rozliczenia` (`3`) + - `do sprawdzenia` (`1`) +- Usunięto zależność `\factory\Projects` z `WorkTimeRepository` (czas liczony bezpośrednio w repozytorium Domain). +- Dodano testy: + - `tests/Domain/Tasks/WorkTimeRepositoryTest.php` + - `tests/run.php` + +## Etap 2: Standaryzacja kontrolerów (W TOKU) +- [x] Dodano `autoload/Controllers/class.TasksController.php`. +- [x] Przeniesiono akcję czasu pracy do nowego kontrolera: `TasksController::workTime()`. +- [x] Zostawiono adapter kompatybilności w `autoload/controls/class.Tasks.php`. +- [x] Oznaczono starą metodę `controls\Tasks::work_time()` jako deprecated. +- [x] Nowy kontroler korzysta bezpośrednio z Domain (`WorkTimeRepository`) zamiast factory. +- [x] Dodano test kontrolera: + - `tests/Controllers/TasksControllerTest.php` +- [ ] Zmigrować kolejne metody z `controls\Tasks`: + - `main_view()` + - `main_view_by_ajax()` + +## Etap 3: Porządki w UI Czasu pracy (ZROBIONE) +- Nowy zbiorczy widok rozliczeń jest aktywny. +- Usunięto zduplikowany/stary blok z `templates/tasks/work-time.php`. +- Akcja „zamknij zadanie” działa przez AJAX bez pełnego przeładowania strony. +- Dodano ładniejsze potwierdzenie (`jquery-confirm`) z fallbackiem. +- Poprawiono hierarchię wizualną (Bootstrap + style pomocnicze). +- Przeniesiono style widoku z inline `