2019-11-16 10:21:14 +03:00

54 lines
1.4 KiB
PHP

<?php
namespace App\Imports\Common;
use App\Models\Common\Item as Model;
use App\Http\Requests\Common\Item as Request;
use App\Jobs\Common\CreateItem;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Validators\Failure;
class Items implements ToModel, WithHeadingRow, WithMapping, WithValidation
{
public function model(array $row)
{
return new Model($row);
//$request = (new Request())->merge($row);
//return dispatch_now(new CreateItem($request));
}
public function map($row): array
{
$row['company_id'] = session('company_id');
// Make enabled field integer
if (isset($row['enabled'])) {
$row['enabled'] = (int) $row['enabled'];
}
return $row;
}
public function rules(): array
{
return (new Request())->rules();
}
public function onFailure(Failure ...$failures)
{
foreach ($failures as $failure) {
$message = trans('messages.error.import_column', [
'message' => $failure->errors()->first(),
'sheet' => 'items',
'line' => $failure->attribute(),
]);
flash($message)->error()->important();
}
}
}