belongsTo(MasterTask::class, 'master_task_id'); } public function user() { return $this->belongsTo(User::class); } public function timeblocks() { return $this->hasMany(Timeblock::class); } public function timesheets() { return $this->hasMany(Timesheet::class); } public function attachments() { return $this->hasMany(Attachment::class); } // syncnutie vykazu. ak array obsahuje NULL id, tak ho vytvori, ak obsahuje ID, tak ho upravi. ak sa v array nenachadza, tak ho zmaze z DB public function syncTimesheets(Array $timesheets) { // pripravenie array na upsert $timesheets = array_map(function($item) { $item['user_id'] = $item['employee_id']; unset($item['employee_id']); $item['sub_task_id'] = $this->id; return $item; }, $timesheets); $this->timesheets()->upsert($timesheets, ['id']); // zmazanie vykazov, ktore boli poslane z frontendu $this->timesheets()->whereNotIn('id', collect($timesheets)->pluck('id'))->delete(); } public function syncTimeblocks(Array $timeblocks) { // pripravenie array na upsert $timeblocks = array_map(function($item) { $item['sub_task_id'] = $this->id; return $item; }, $timeblocks); $this->timeblocks()->upsert($timeblocks, ['id']); // zmazanie vykazov, ktore boli poslane z frontendu $this->timeblocks()->whereNotIn('id', collect($timeblocks)->pluck('id'))->delete(); } }