
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 jest CLOSED & FROZEN


ETAPY ZAMKNIĘTE

ETAP 2.4 — Timeline layout & scroll
STATUS: CLOSED & FROZEN

Zakres:
- Timeline w jednym kontenerze
- Dokładnie jeden horizontal scrollbar
- Obsługa Days: 7 / 14 / 21 / 30
- Brak layout jumping
- Działa na dużych i małych ekranach
- CSS w pełni scoped (nie wpływa na Dolibarr)
- Timeline nie nachodzi na top menu

Zasada:
- Jakiekolwiek zmiany layoutu / scrolla są ZABRONIONE


ETAP 3.0 — Add Job via Timeline
STATUS: CLOSED

Zakres:
- + Add Job button w headerze Timeline (przed Days)
- Add Job usunięty z lewego menu
- Permission: planning->addjob
- Modal Add Job
- Zapis przez AJAX
- Auto-refresh Timeline po zapisie
- Brak wpływu na ETAP 2.4


ETAP 3.1 — Add Job stabilization
STATUS: CLOSED

Zakres:
- Walidacje backend
- Default values
- Modal zostaje otwarty przy błędzie
- Obsługa non-JSON response


ETAP 3.2a — Add Job z kliknięcia kratki
STATUS: CLOSED

Zakres:
- Klik w pustą kratkę Timeline
- Start = 06:30
- date_start / date_end
- Poprawne pozycjonowanie joba
- Klik w job pokazuje kartę po lewej


ETAPY OTWARTE / PLANOWANE

ETAP 2.5.1 — Timeline UX: Show Past / Today toggle
STATUS: PLANNED

Cel:
- Poprawa czytelności osi czasu bez naruszania ETAP 2.4

Zakres:
- Mały toggle przy separatorze Machine | Today
- Widok startowy: Today jako pierwsza kolumna
- Klik toggle:
  - pokazuje dni wstecz (D-1 … D-n, gdzie n = Days)
  - przesuwa siatkę dni w prawo
- Kolejny klik:
  - wraca do widoku Today-first
- Toggle zmienia kierunek wizualny (|) / (|
- Brak nowych scrollbarów
- Brak zmian layoutu kontenerów
- ETAP 2.4 pozostaje FROZEN


ETAP 3.2 — Edit Job (left panel)
STATUS: OPEN

Cel:
- Edycja joba w lewym panelu

Zakres:
- Tryb View / Edit
- Przyciski: Edit / Save / Cancel
- Permission: planning->editjob
- Edytowalne pola:
  - workstation
  - group_code
  - date_start
  - date_end
  - estimated_hours
  - status
  - notes
  - qty (jeśli istnieje)

Ograniczenia:
- Brak drag & drop
- Brak zmian layoutu Timeline
- Brak logiki MO


ETAP 3.2d — Delete Job (left panel)
STATUS: PLANNED

Cel:
- Możliwość usuwania jobów (czyszczenie danych testowych / korekty)

Zakres:
- Przycisk Delete w lewym panelu (tylko dla uprawnionych)
- Confirm dialog (jawne potwierdzenie)
- Nowy endpoint AJAX: ajax/delete_job.php
- Permission: planning->deletejob
- Po sukcesie:
  - odznaczyć job (wrócić do "Select a job...")
  - odświeżyć Timeline
- Bez soft-delete na start (hard delete)


ETAP 3.2b — MO check (READ-ONLY)
STATUS: PLANNED

Zakres:
- Sprawdzenie konfliktów MO
- Tylko informacja


ETAP 3.2c — MO update (CONFIRMED)
STATUS: PLANNED

Zakres:
- Jawny Update MO
- Permission: planning->updatemo
- Confirm dialog


ETAP 3.3 — Daily Planning
STATUS: PLANNED

Zakres:
- Widok dzienny 06:30 → 06:30
- Kolejność jobów
- Operacyjne statusy


TRUE GANTT / AUTO-HARMONOGRAM

ETAP TG1 — True Gantt render
- Render wg date_start → date_end

ETAP TG2 — Auto schedule from anchor
- Anchor job
- Forward scheduling
- Buffer:
  - Forming: 60 min
  - Trimming Laser: 15 min
  - Trimming CNC: 30 min
- Jobs mogą przechodzić przez dni

ETAP TG3 — Duration z QTY/hour
- Qty ręcznie w jobie
- Duration = qty / rate
- Fallback: estimated_hours
