belongsTo(Process::class, 'PRO_UID', 'PRO_UID'); } public function delegations() { return $this->hasMany(Delegation::class, 'TAS_ID', 'TAS_ID'); } /** * Scope a query to only include self-service * * @param \Illuminate\Database\Eloquent\Builder $query * @return \Illuminate\Database\Eloquent\Builder */ public function scopeIsSelfService($query) { return $query->where('TAS_ASSIGN_TYPE', '=', 'SELF_SERVICE') ->where('TAS_GROUP_VARIABLE', '=', ''); } /** * Get the title of the task * * @param integer $tasId * * @return string */ public function title($tasId) { $query = Task::query()->select('TAS_TITLE'); $query->where('TAS_ID', $tasId); $results = $query->get(); $title = ''; $results->each(function ($item, $key) use (&$title) { $title = $item->TAS_TITLE; switch ($title) { case "INTERMEDIATE-THROW-EMAIL-EVENT": $title = G::LoadTranslation('ID_INTERMEDIATE_THROW_EMAIL_EVENT'); break; case "INTERMEDIATE-THROW-MESSAGE-EVENT": $title = G::LoadTranslation('ID_INTERMEDIATE_THROW_MESSAGE_EVENT'); break; case "INTERMEDIATE-CATCH-MESSAGE-EVENT": $title = G::LoadTranslation('ID_INTERMEDIATE_CATCH_MESSAGE_EVENT'); break; case "INTERMEDIATE-CATCH-TIMER-EVENT": $title = G::LoadTranslation('ID_INTERMEDIATE_CATCH_TIMER_EVENT'); break; } }); return $title; } /** * Get task data * * @param string $tasUid * * @return array */ public function load($tasUid) { $query = Task::query(); $query->where('TAS_UID', $tasUid); return $query->get()->toArray(); } /** * Get task thread information * * @param string $appUid * @param string $tasUid * @param string $delIndex * * @return array */ public function information(string $appUid, string $tasUid, string $delIndex) { // Load the the task information $taskInfo = $this->load($tasUid); $taskInfo = head($taskInfo); $taskType = $taskInfo['TAS_TYPE']; // Load the dates related to the thread $dates = Delegation::getDatesFromThread($appUid, $delIndex, $tasUid, $taskType); // Set the dates $taskInfo['INIT_DATE'] = !empty($dates['DEL_INIT_DATE']) ? $dates['DEL_INIT_DATE'] : G::LoadTranslation('ID_CASE_NOT_YET_STARTED'); $taskInfo['DUE_DATE'] = !empty($dates['DEL_TASK_DUE_DATE']) ? $dates['DEL_TASK_DUE_DATE'] : G::LoadTranslation('ID_NOT_FINISHED'); $taskInfo['FINISH'] = !empty($dates['DEL_FINISH_DATE']) ? $dates['DEL_FINISH_DATE'] : G::LoadTranslation('ID_NOT_FINISHED'); $taskInfo['DURATION'] = !empty($dates['DEL_THREAD_DURATION']) ? $dates['DEL_THREAD_DURATION'] : G::LoadTranslation('ID_NOT_FINISHED'); return $taskInfo; } /** * Set the TAS_DEF_TITLE value * * @param string $evnUid * @param string $caseTitle * * @return \Illuminate\Database\Eloquent\Builder */ public static function setTaskDefTitle($evnUid, $caseTitle) { $query = Task::select(['TASK.TAS_UID']); $query->join('ELEMENT_TASK_RELATION', function ($join) use ($evnUid) { $join->on('ELEMENT_TASK_RELATION.TAS_UID', '=', 'TASK.TAS_UID') ->where('ELEMENT_TASK_RELATION.ELEMENT_UID', '=', $evnUid); }); $query->update(['TASK.TAS_DEF_TITLE' => $caseTitle]); return $query; } /** * Get the TAS_DEF_TITLE value * * @param string $evnUid * * @return \Illuminate\Database\Eloquent\Builder */ public static function getTaskDefTitle($evnUid) { $query = Task::select(['TASK.TAS_DEF_TITLE']); $query->join('ELEMENT_TASK_RELATION', function ($join) use ($evnUid) { $join->on('ELEMENT_TASK_RELATION.TAS_UID', '=', 'TASK.TAS_UID') ->where('ELEMENT_TASK_RELATION.ELEMENT_UID', '=', $evnUid); }); return $query->get()->values()->toArray()['0']['TAS_DEF_TITLE']; } }