diff --git a/be/app/Http/Controllers/SubTaskController.php b/be/app/Http/Controllers/SubTaskController.php index 60ae2c0..2d2a06e 100644 --- a/be/app/Http/Controllers/SubTaskController.php +++ b/be/app/Http/Controllers/SubTaskController.php @@ -157,8 +157,15 @@ class SubTaskController extends Controller ->orderBy('created_at', 'desc'); // ak je zadané employee_id, filtrovať podľa neho + // draft sa zobrazuje: 1) creatorovi (user_id) ALEBO 2) zamestnancom v draft_data if (isset($parameters['employee_id'])) { - $query->where('user_id', $parameters['employee_id']); + $employeeId = $parameters['employee_id']; + $query->where(function ($q) use ($employeeId) { + // Creator vidí svoje drafty + $q->where('user_id', $employeeId) + // Alebo zamestnanec je v draft_data + ->orWhereRaw("JSON_CONTAINS(draft_data, JSON_OBJECT('id', CAST(? AS UNSIGNED)))", [$employeeId]); + }); } return response()->json([ @@ -497,11 +504,16 @@ class SubTaskController extends Controller { $subtask = SubTask::find($id); - // ak existuje timesheet k subtasku, nemoze sa zmazat + // ak existuje timesheet k subtasku, nemoze sa zmazat (okrem draftov) if ($subtask->timesheets()->exists()) { - return response()->json([ - 'message' => 'Cannot delete subtask with submitted timesheets.', - ], 400); + if ($subtask->is_draft) { + // Pre drafty zmazeme timesheety automaticky + $subtask->timesheets()->delete(); + } else { + return response()->json([ + 'message' => 'Cannot delete subtask with submitted timesheets.', + ], 400); + } } $subtask->timeblocks()->delete();