RequirementImport.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Imports;
  3. use App\Http\Requests\API\Requirement\CreateOrUpdateRequest;
  4. use App\Models\Enums\ObjectAction;
  5. use App\Models\Requirement;
  6. use App\Repositories\ActionRepository;
  7. use Illuminate\Support\Collection;
  8. use Illuminate\Support\Facades\Auth;
  9. use Maatwebsite\Excel\Concerns\ToCollection;
  10. use Maatwebsite\Excel\Concerns\WithHeadingRow;
  11. class RequirementImport implements ToCollection, WithHeadingRow
  12. {
  13. use ImportValidatorHelper;
  14. public function collection(Collection $collection): void
  15. {
  16. $this->validatorByCollection($collection, (new CreateOrUpdateRequest())->rules());
  17. foreach ($collection as $item) {
  18. $requirement = new Requirement();
  19. $requirement->mergeFillable([
  20. 'company_id', 'created_by',
  21. ]);
  22. $requirement->fill([
  23. ...$item->toArray(),
  24. 'company_id' => Auth::user()->company_id,
  25. 'created_by' => Auth::id(),
  26. 'mailto' => [],
  27. ]);
  28. $requirement->save();
  29. ActionRepository::createRequirement(
  30. $requirement, ObjectAction::CREATED
  31. );
  32. }
  33. }
  34. }