!!! UPDATED PLAN (2026-01-29) !!!

DOLIBARR – PLANNING MODULE
MASTER PLAN / ROADMAP

STATUS OGÓLNY
- Projekt prowadzony etapowo
- Każdy etap ma jasny zakres
- Brak cofania się do etapów zamkniętych
- ETAP 2.4 (layout/scroll) CLOSED & FROZEN
- TG2.1 (auto date_end: qty/rate + buffer) CLOSED
- TG2.2 (Today anchor + Past left) CLOSED

==================================================
ETAPY ZAMKNIĘTE – TECHNICAL CLEANUP
==================================================

TG2.2 — SAFE CLEANUP (ARCHITECTURE)
STATUS: CLOSED

Zakres:
- Usunięcie duplikatów endpointów AJAX (root vs planning/ajax)
- Usunięcie martwych endpointów:
  - ajax/board_data.php (board używa board.php?ajax=1)
- Brak ajax_bootstrap (świadoma decyzja architektoniczna)
- Wprowadzenie helperów:
  - request_helpers.php
  - rights_helpers.php
  - time_range_helpers.php
- Ujednolicenie:
  - praw / CSRF / method checks przez helpery
  - kolejności include w endpointach AJAX

--------------------------------------------------

TG2.3.1 — AJAX JSON CONTRACT
STATUS: CLOSED

Zakres:
- Spójny kontrakt odpowiedzi AJAX:
  - planningOk() -> success=true
  - planningError() -> success=false
- Usunięcie bezpośredniego outputJson() z endpointów
- Zachowana kompatybilność JSON schema

Commit:
TG2.3.1: standardize ajax JSON responses (planningOk/planningError)

--------------------------------------------------

TG2.3.2 — TIMELINE SERVICE EXTRACTION
STATUS: CLOSED

Zakres:
- planning/ajax/timeline_data.php:
  - endpoint cienki (input -> service -> JSON)
- Cała logika timeline przeniesiona do:
  - PlanningTimelineService.class.php
- Service odpowiada za:
  - normalizację parametrów
  - budowę zapytań
  - mapowanie danych timeline
- Board nie został dotknięty (pełna separacja)

Commit:
TG2.3.2: move timeline logic into PlanningTimelineService (thin ajax)

==================================================
ETAPY OTWARTE / PLANOWANE
==================================================

TG2.4 — TIMELINE HARDENING
STATUS: NEXT

Cel:
- Utrwalenie stabilności timeline bez zmian UI

Zakres:
- Edge-case handling (brak jobów, puste grupy)
- Walidacja zakresów days
- Performance review (ilość zapytań, przygotowanie pod indeksy)
- Jawne kontrakty danych timeline

Ograniczenia:
- Brak zmian layout/CSS (ETAP 2.4 FROZEN)
- Brak zmian board
- Brak nowych feature'ów

--------------------------------------------------

TG2.5 — PLANNING DOMAIN CLEANUP
STATUS: PLANNED

Zakres:
- Jednoznaczne nazewnictwo (job / operation / workstation)
- Statusy jako const/enum
- Uporządkowanie relacji domenowych



==================================================
NOWE FUNKCJONALNOŚCI – ZATWIERDZONE (2026-02)
==================================================

CREATE MO FROM TIMELINE
STATUS: IN PROGRESS

Zakres:
- Przycisk "Create MO" w Timeline (More details)
- Widoczny tylko dla użytkowników z prawami MRP/MO
- Powiązanie Planning Job ↔ MO
- Status joba synchronizowany ze statusem MO

--------------------------------------------------

PWW — PRODUCTION WORKFLOW WATCHERS
STATUS: PLANNED

Cel:
- Timeline jako żywy plan reagujący na produkcję

PWW-1 — READ-ONLY INTELLIGENCE
- Odczyt confirmations z MO
- Odczyt stock movements
- Wyliczenie:
  - qty_done
  - qty_remaining
- Aktualizacja wizualna Timeline (remaining / progress)
- Brak auto-reschedule

PWW-2 — AUTO-UPDATE JOBÓW Z MO
- Synchronizacja statusu job ↔ MO
- Automatyczne skracanie joba przy częściowej produkcji
- Zamknięcie joba po wykonaniu qty
- Brak przesuwania innych jobów

PWW-3 — AUTO-RESCHEDULE (JOBY BEZ MO)
- Redukcja qty przez planistę
- Recompute duration
- Automatyczne przesunięcie kolejnych jobów
- Tylko ta sama workstation

PWW-4 — SAFETY & CONTROL
- Globalny switch auto-reschedule ON/OFF
- Audit log zmian
- Możliwość rollback

==================================================

==================================================
END OF PLAN
