'product_sku', 'title' => 'МАФ', 'id' => 'product_sku', 'header' => [ 'product-image' => 'Картинка', 'id' => 'ID', 'district_name' => 'Округ', 'area_name' => 'Район', 'object_address' => 'Адрес площадки', 'order_number' => 'Номер заказа МАФ', 'status' => 'Статус', 'rfid' => 'RFID', 'factory_number' => 'Номер фабрики', 'manufacture_date' => 'Дата производства', 'statement_number' => 'Номер ведомости', 'statement_date' => 'Дата ведомости', 'upd_number' => 'Номер УПД', 'nomenclature_number' => 'Номер номенклатуры', 'article' => 'Артикул', 'name_tz' => 'Наименование ТЗ', 'type_tz' => 'Тип по ТЗ', 'type' => 'Тип', 'manufacturer_name' => 'Наименование производителя', 'comment' => 'Примечания', 'passport_name' => 'Паспорт', ], 'searchFields' => [ 'rfid', 'factory_number', 'statement_number', 'upd_number', 'object_address', 'nomenclature_number', 'article', ], ]; public function index(Request $request) { session(['gp_product_sku' => $request->all()]); $model = new MafView; $fil = array_keys($this->data['header']); unset($fil[0]); $this->createFilters($model, ...$fil); $this->createDateFilters($model, 'manufacture_date', 'statement_date'); $this->data['ranges'] = []; $q = $model::query(); $this->acceptFilters($q, $request); $this->acceptSearch($q, $request); $this->setSortAndOrderBy($model, $request); $q->orderBy($this->data['sortBy'], $this->data['orderBy']); // dump($q->toRawSql()); $this->data['products_sku'] = $q->paginate(session('per_page', config('pagination.per_page')))->withQueryString(); return view('products_sku.index', $this->data); } public function update(ProductSKUStoreRequest $request, ProductSKU $product_sku) { $url = $request->previous_url ?? route('product_sku.index', session('gp_product_sku')); $product_sku->update($request->validated()); return redirect($url); } public function show(Request $request, ProductSKU $product_sku) { $this->data['product_sku'] = $product_sku; $this->data['previous_url'] = $request->get('previous_url'); return view('products_sku.edit', $this->data); } public function uploadPassport(Request $request, ProductSKU $product_sku, FileService $fileService) { $data = $request->validate([ 'passport' => 'file', ]); $f = $fileService->saveUploadedFile('maf/' . $product_sku->id . '/passport', $data['passport']); $product_sku->update(['passport_id' => $f->id]); return redirect()->route('product_sku.show', ['product_sku' => $product_sku, 'previous_url' => $request->get('previous_url')]); } public function deletePassport(ProductSKU $product_sku, File $file) { $product_sku->update(['passport_id' => null]); Storage::disk('public')->delete($file->path); $file->delete(); return redirect()->route('product_sku.show', $product_sku); } }