System zleceń wewnętrznych
Aplikacja do obsługi zleceń wewnętrznych: tworzenie zadań przez zgłaszającego, przydzielanie do wykonawcy, śledzenie statusu (nowe → w realizacji → wykonane) i historia zmian.
This content is not available in your language yet.
System zleceń wewnętrznych
Aplikacja do obsługi zleceń wewnętrznych: tworzenie zadań przez zgłaszającego, przydzielanie do wykonawcy, śledzenie statusu (nowe → w realizacji → wykonane) i historia zmian.
{ "orders": [ { "id": 1, "title": "Naprawa projektora w sali B14", "description": "Projektor nie uruchamia się od poniedziałku", "category": "IT", "priority": "high", "assignee": "mgr Kowalski", "status": "in_progress", "created_by": "mgr Nowak", "created_at": "2026-02-10 09:00:00", "history": [ {"status": "new", "note": "", "changed_at": "2026-02-10 09:00:00"}, {"status": "in_progress", "note": "Sprawdzam lamp", "changed_at": "2026-02-11 10:30:00"} ] } ]}Wymagane funkcje:
Wszystko z A, plus:
Wszystko z B, plus:
Zmiana statusu z logowaniem historii:
$allowedTransitions = [ 'new' => ['in_progress', 'cancelled'], 'in_progress' => ['done', 'cancelled'], 'done' => [], 'cancelled' => [],];
function changeStatus(array &$orders, int $id, string $newStatus, string $note): bool { global $allowedTransitions; foreach ($orders as &$order) { if ($order['id'] !== $id) continue; if (!in_array($newStatus, $allowedTransitions[$order['status']] ?? [])) return false; $order['status'] = $newStatus; $order['history'][] = [ 'status' => $newStatus, 'note' => htmlspecialchars($note), 'changed_at' => date('Y-m-d H:i:s'), ]; return true; } return false;}Kolor priorytetu:
function getPriorityClass(string $priority): string { return match($priority) { 'high' => 'priority-high', 'medium' => 'priority-medium', 'low' => 'priority-low', default => '' };}