123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- namespace App\Imports;
- use App\Http\Requests\API\Task\CreateOrUpdateRequest;
- use App\Models\Enums\ObjectAction;
- use App\Models\Task;
- use App\Repositories\ActionRepository;
- use Illuminate\Support\Facades\Auth;
- use Maatwebsite\Excel\Concerns\ToCollection;
- use Maatwebsite\Excel\Concerns\WithHeadingRow;
- use Illuminate\Support\Collection;
- class TaskImport implements ToCollection, WithHeadingRow
- {
- use ImportValidatorHelper;
- public function collection(Collection $collection): void
- {
- $requestRule = new CreateOrUpdateRequest();
- $this->validatorByCollection($collection, $requestRule->importRules());
- foreach ($collection as $item) {
- $formData = [
- ...$item->all(),
- 'company_id' => Auth::user()->company_id,
- 'created_by' => Auth::id(),
- 'task_type' => $requestRule->getGroupLabelValue("task", "task_type", $item->get("task_type")),
- 'doc_type' => $requestRule->getGroupLabelValue("task", "doc_type", $item->get("doc_type")),
- 'doc_stage' => $requestRule->getGroupLabelValue("task", "doc_stage", $item->get("doc_stage")),
- 'state' => $requestRule->getGroupLabelValue("task", "state", $item->get("state")),
- 'suitability' => $requestRule->getGroupLabelValue("task", "suitability", $item->get("suitability")),
- 'mailto' => [],
- ];
- $task = Task::create($formData);
- ActionRepository::createByTask($task, ObjectAction::CREATED);
- }
- }
- }
|