project = $project; $this->group=$group; $this->request=$request; } public function collection() { $tasksCollection = collect([]); $projectTaskGroupViews=(new ProjectTaskGroupViewService())->groupView( $this->project, $this->group, $this->request->all()); $projectTaskGroupItems= $projectTaskGroupViews['items']; foreach ($projectTaskGroupItems as $item){ $groupLabel=$item['group_label']; $count='allCount:'.$item['count']['all_count'].' '.' waitCount:'.$item['count']['wait_count'].' doingCount:'.$item['count']['doing_count']; $tasks=$item['tasks']; foreach ($tasks as $task){ $taskModel=new Task(); $taskModel->id=$task->id; $taskModel->name=$task->name; $taskModel->task_type=$task->task_type; $taskModel->status=$task->status; $taskModel->assign=$task->assign; $taskModel->end=$task->end; $taskModel->finished_by=$task->finished_by; $tasksCollection->push($this->formatRow($groupLabel,$count,$taskModel)); } } // TODO: Implement collection() method. return $tasksCollection; } protected function formatRow($groupLabel,$count,Task $task) { $displayId = self::$index++; return[ $displayId, $count, $groupLabel['name']??'', $task->id, $task->name, $task->task_type, $task->status, $task->assignTo?->name, $task->end, $task->finishedBy?->name, ]; } public function headings(): array { return [ 'ID', 'GroupLabelCount', 'GroupLabelName', 'TaskId', 'TaskName', 'TaskType', 'TaskStatus', 'TaskAssign', 'TaskEnd', 'TaskFinishBy', ]; } }