12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace App\Exports;
- use App\Models\Project;
- use App\Models\Task;
- use App\Services\Project\ProjectTaskGroupViewService;
- use Maatwebsite\Excel\Concerns\FromCollection;
- use Maatwebsite\Excel\Concerns\WithHeadings;
- class groupViewExport implements FromCollection, WithHeadings
- {
- private static $index = 1;
- protected $project;
- protected $group;
- protected $request;
- public function __construct($project,$group,$request)
- {
- $this->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',
- ];
- }
- }
|