From 069f5a04e142100e35c99b78a25deeb90419234a Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Wed, 6 Sep 2023 15:45:53 +0200 Subject: [PATCH] no message --- be/app/Console/Kernel.php | 2 +- .../Http/Controllers/MasterTaskController.php | 60 +++++++++++-------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/be/app/Console/Kernel.php b/be/app/Console/Kernel.php index baa9220..001b201 100644 --- a/be/app/Console/Kernel.php +++ b/be/app/Console/Kernel.php @@ -27,7 +27,7 @@ class Kernel extends ConsoleKernel $schedule->command('intranet:sync-vacations')->twiceDaily(); $schedule->command('karat:sync-users')->daily(); $schedule->command('karat:sync-clients')->hourly(); - $schedule->command('karat:sync-projects')->hourly(); + $schedule->command('karat:sync-projects')->everyFiveMinutes(); $schedule->command('karat:sync-timesheets')->everyFiveMinutes(); } diff --git a/be/app/Http/Controllers/MasterTaskController.php b/be/app/Http/Controllers/MasterTaskController.php index 705d01e..26e129d 100644 --- a/be/app/Http/Controllers/MasterTaskController.php +++ b/be/app/Http/Controllers/MasterTaskController.php @@ -131,6 +131,42 @@ class MasterTaskController extends Controller return response()->json($validator->errors(), 400); } + $mastertask = MasterTask::find($id); + + // ak je Master task v stave ukončený, nedovolime update. vynimkou je iba znovuotvorenie mastertasku + if ($mastertask->is_finished == 1 && isset($request->all()['data']['is_finished']) && $request->all()['data']['is_finished'] == 1) { + return response()->json([ + 'message' => 'Cannot update mastertask that is finished.', + ], 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); + } + + // ukoncenie master tasku + if ($mastertask->is_finished == 0 && isset($request->all()['data']['is_finished']) && $request->all()['data']['is_finished'] == 1) { + $mastertask->is_finished = 1; + $mastertask->save(); + + return response()->json([ + 'message' => 'Master Task finished successfully', + 'mastertask' => $mastertask + ]); + } + // validacia na max 50MB size pre attachmenty. neslo dat do klasickeho laravel validation, tak je to separe if ($files = $request->file('data')) { foreach ( $files['files'] as $file ) { @@ -154,30 +190,6 @@ class MasterTaskController extends Controller $request->merge($data); - $mastertask = MasterTask::find($id); - - // ak je Master task v stave ukončený, nedovolime update. vynimkou je iba znovuotvorenie mastertasku - if ($mastertask->is_finished == 1 && isset($request->all()['data']['is_finished']) && $request->all()['data']['is_finished'] == 1) { - return response()->json([ - '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']);