diff --git a/be/app/Http/Controllers/MasterTaskController.php b/be/app/Http/Controllers/MasterTaskController.php index e2b8270..08d7411 100644 --- a/be/app/Http/Controllers/MasterTaskController.php +++ b/be/app/Http/Controllers/MasterTaskController.php @@ -105,6 +105,8 @@ class MasterTaskController extends Controller public function update($id, Request $request) { + $created_by = User::getUserIdFromBearerToken($request->bearerToken()); + $validator = Validator::make($request->all(), [ 'data.name' => 'required', 'data.description' => 'required', @@ -132,6 +134,12 @@ class MasterTaskController extends Controller $data['data']['title'] = $request->all()['data']['name']; $data['data']['estimated_time'] = $request->all()['data']['duration']; + foreach ( $data['data']['employees'] as $key => $employee ) { + $data['data']['employees'][$key]['user_id'] = $employee['id']; + $data['data']['employees'][$key]['estimated_time'] = $employee['duration']; + $data['data']['employees'][$key]['created_by'] = $created_by; + } + $request->merge($data); $mastertask = MasterTask::find($id); @@ -169,16 +177,25 @@ class MasterTaskController extends Controller $mastertask->attachments()->createMany($attachments); } + // pre existujuce subtasky + // Pre sub tasky s natrackovaným časom - Ukončia sa sub tasky pôvodného teamu + // Pre sub tasky s nenatrackovaným časom budú tieto tasky zmazané + foreach ($mastertask->subtasks as $subtask) { + if ($subtask->timesheets()->exists()) { + $subtask->is_finished = 1; + $subtask->save(); + } else { + $subtask->delete(); + } + } + + // vytvorim subtasky nanovo + $mastertask->subtasks()->createMany($request->all()['data']['employees']); + return response()->json([ 'message' => 'Master Task updated successfully', 'mastertask' => $mastertask ]); - - - // TODO V prípade, že sa menil zodpovedný team - Pre prebiehajúce sub tasky - Ukončia sa sub tasky pôvodného teamu a tie sa následne zarátajú do ERP Karat - - // TODO V prípade, že sa menil zodpovedný team - Pre nové sub tasky (s nenatrackovaným časom) budú tieto tasky zmazané - } public function delete($id) diff --git a/be/app/Http/Kernel.php b/be/app/Http/Kernel.php index 7911e07..e2b5c7d 100644 --- a/be/app/Http/Kernel.php +++ b/be/app/Http/Kernel.php @@ -40,7 +40,7 @@ class Kernel extends HttpKernel 'api' => [ //\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, - 'throttle:api', + //'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ]; diff --git a/be/app/Http/Resources/TimesheetResource.php b/be/app/Http/Resources/TimesheetResource.php index 8918734..e8c949c 100644 --- a/be/app/Http/Resources/TimesheetResource.php +++ b/be/app/Http/Resources/TimesheetResource.php @@ -17,6 +17,7 @@ class TimesheetResource extends JsonResource return [ 'id' => $this->id, 'employee_id' => $this->user_id, + 'employee_name' => $this->user->firstname . ' ' . $this->user->lastname, 'time' => $this->time, 'timestamp' => $this->updated_at->format('d.M Y H:i') ]; diff --git a/be/app/Models/MasterTask.php b/be/app/Models/MasterTask.php index 234826a..d097367 100644 --- a/be/app/Models/MasterTask.php +++ b/be/app/Models/MasterTask.php @@ -47,11 +47,10 @@ class MasterTask extends Model }); } - // TODO dorobit logiku public static function generateMasterTaskColor() { // return random value from array - return collect(['#E9FFE5', '#F6ECD3', '#FDE1FF', '#FFC9C9', '#DADEF8', '#EDFFFE'])->random(); + return collect(['#E9FFE5', '#F6ECD3', '#FDE1FF', '#FFC9C9', '#DADEF8', '#EDFFFE', '#FFDED7'])->random(); } public function deleteAttachments()