|
@@ -0,0 +1,42 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Imports;
|
|
|
+
|
|
|
+use App\Http\Requests\API\Requirement\CreateOrUpdateRequest;
|
|
|
+use App\Models\Enums\ObjectAction;
|
|
|
+use App\Models\Requirement;
|
|
|
+use App\Repositories\ActionRepository;
|
|
|
+use Illuminate\Support\Collection;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
+use Maatwebsite\Excel\Concerns\ToCollection;
|
|
|
+use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
|
|
+
|
|
|
+class RequirementImport implements ToCollection, WithHeadingRow
|
|
|
+{
|
|
|
+ use ImportValidatorHelper;
|
|
|
+
|
|
|
+ public function collection(Collection $collection): void
|
|
|
+ {
|
|
|
+ $this->validatorByCollection($collection, (new CreateOrUpdateRequest())->rules());
|
|
|
+
|
|
|
+ foreach ($collection as $item) {
|
|
|
+ $requirement = new Requirement();
|
|
|
+
|
|
|
+ $requirement->mergeFillable([
|
|
|
+ 'company_id', 'created_by',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $requirement->fill([
|
|
|
+ ...$item->toArray(),
|
|
|
+ 'company_id' => Auth::user()->company_id,
|
|
|
+ 'created_by' => Auth::id(),
|
|
|
+ 'mailto' => [],
|
|
|
+ ]);
|
|
|
+ $requirement->save();
|
|
|
+
|
|
|
+ ActionRepository::createRequirement(
|
|
|
+ $requirement, ObjectAction::CREATED
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|