columnsView; } /** * Get data self-services cases by user * * @return array */ public function getData() { $query = Delegation::query()->select($this->getColumnsView()); // Join with process $query->joinProcess(); // Join with task $query->joinTask(); // Join with application for add the initial scope for DRAFT cases $query->draft($this->getUserId()); // Specific process if ($this->getProcessId()) { $query->processId($this->getProcessId()); } // Specific case uid if (!empty($this->getCaseUid())) { $query->appUid($this->getCaseUid()); } // Specific cases if (!empty($this->getCasesUids())) { $query->specificCasesByUid($this->getCasesUids()); } // Add any sort if needed if ($this->getOrderByColumn()) { $query->orderBy($this->getOrderByColumn(), $this->getOrderDirection()); } // Add pagination to the query $query->offset($this->getOffset())->limit($this->getLimit()); // Get the data $results = $query->get(); // Prepare the result $results->transform(function ($item, $key) { // Get priority label $priorityLabel = self::PRIORITIES[$item['DEL_PRIORITY']]; $item['DEL_PRIORITY_LABEL'] = G::LoadTranslation("ID_PRIORITY_{$priorityLabel}"); // Get task color label $item['TAS_COLOR'] = $this->getTaskColor($item['DEL_TASK_DUE_DATE']); $item['TAS_COLOR_LABEL'] = self::TASK_COLORS[$item['TAS_COLOR']]; // Apply the date format defined in environment $item['DEL_TASK_DUE_DATE_LABEL'] = applyMaskDateEnvironment($item['DEL_TASK_DUE_DATE']); $item['DEL_DELEGATE_DATE_LABEL'] = applyMaskDateEnvironment($item['DEL_DELEGATE_DATE']); return $item; }); return $results->values()->toArray(); } /** * Count the self-services cases by user * * @return int */ public function getCounter() { $query = Delegation::query()->select(); // Add the initial scope for draft cases $query->draft($this->getUserId()); return $query->count(); } }