From 47a31f5c3afeab7b26396d68903cf50a0b345b45 Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Fri, 3 Mar 2023 14:51:02 +0100 Subject: [PATCH] no message --- .../Http/Controllers/MasterTaskController.php | 17 +++++++++++++++++ be/app/Http/Controllers/SubTaskController.php | 9 ++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/be/app/Http/Controllers/MasterTaskController.php b/be/app/Http/Controllers/MasterTaskController.php index b385e13..d58c29b 100644 --- a/be/app/Http/Controllers/MasterTaskController.php +++ b/be/app/Http/Controllers/MasterTaskController.php @@ -121,6 +121,23 @@ class MasterTaskController extends Controller 'message' => 'Cannot update mastertask with is_finished 1.', ], 400); } + + // ak chcem ukoncit mastertask, ktory nema ani jeden subtask, ktory ma natrackovany cas, tak to nedovolim + if (isset($request->all()['data']['is_finished']) && $request->all()['data']['is_finished'] == 1) { + $atLeastOneSubtaskHasTimesheet = false; + + foreach ($mastertask->subtasks as $subtask) { + if ($subtask->timesheets()->exists()) { + $atLeastOneSubtaskHasTimesheet = true; + } + } + + if (!$atLeastOneSubtaskHasTimesheet) + return response()->json([ + 'message' => 'Finishing mastertask is only possible where at least one subtask contains timesheet', + ], 400); + } + $mastertask->update($request->all()['data']); // upload attachmentu diff --git a/be/app/Http/Controllers/SubTaskController.php b/be/app/Http/Controllers/SubTaskController.php index c0b16f2..8c3ae34 100644 --- a/be/app/Http/Controllers/SubTaskController.php +++ b/be/app/Http/Controllers/SubTaskController.php @@ -162,13 +162,20 @@ class SubTaskController extends Controller { $subtask = SubTask::find($id); - // ak je Master task v stave ukončený, nedovolime update + // ak je sub task v stave ukončený, nedovolime update if ($subtask->is_finished == 1) { return response()->json([ 'message' => 'Cannot update subtask with is_finished 1.', ], 400); } + // ak chcem ukoncit subtask, ktory nema natrackovany cas, tak to nedovolim + if (isset($request->all()['data']['is_finished']) && $request->all()['data']['is_finished'] == 1 && $subtask->timesheets->count() == 0) { + return response()->json([ + 'message' => 'Cannot finish subtask with untracked time.', + ], 400); + } + $validator = Validator::make($request->all(), [ 'data.employee_id' => 'required', 'data.duration' => 'required',