route('home'); }); Auth::routes(['register' => false, 'reset' => false, 'verify' => false, 'confirm' => false]); Route::post('keep-token-alive', function() { return 'Session extended.'; }); Route::get('/home', function () { return redirect()->route('order.index'); })->name('home'); Route::middleware('auth:web')->group(function () { // set current year for display Route::get('set-year', function (Request $request) { if ($request->has('year')) { session(['year' => $request->year]); } return redirect()->route('order.index'); })->name('set-year'); // admin routes Route::middleware('role:' . Role::ADMIN)->prefix('admin')->group(function (){ Route::prefix('users')->group(function (){ Route::get('', [UserController::class, 'index'])->name('user.index'); Route::get('create', [UserController::class, 'create'])->name('user.create'); Route::get('{user}', [UserController::class, 'show'])->name('user.show'); Route::post('', [UserController::class, 'store'])->name('user.store'); Route::put('{user}', [UserController::class, 'update'])->name('user.update'); Route::delete('{user}', [UserController::class, 'destroy'])->name('user.destroy'); Route::post('undelete/{user}', [UserController::class, 'undelete'])->name('user.undelete'); }); Route::prefix('import')->group(function (){ Route::get('', [ImportController::class, 'index'])->name('import.index'); Route::get('{import}', [ImportController::class, 'show'])->name('import.show'); Route::post('', [ImportController::class, 'store'])->name('import.create'); }); }); // profile Route::get('profile', [UserController::class, 'profile'])->name('user.profile'); Route::post('profile/store', [UserController::class, 'storeProfile'])->name('profile.store'); Route::delete('profile', [UserController::class, 'deleteProfile'])->name('profile.delete'); Route::get('get-filters', [FilterController::class, 'getFilters'])->name('getFilters'); Route::middleware('role:admin,manager')->group(function () { Route::prefix('responsibles')->group(function (){ Route::get('', [ResponsibleController::class, 'index'])->name('responsible.index'); Route::get('{responsible}', [ResponsibleController::class, 'show'])->name('responsible.show'); Route::post('store', [ResponsibleController::class, 'store'])->name('responsible.store'); Route::post('update/{responsible}', [ResponsibleController::class, 'update'])->name('responsible.update'); Route::delete('delete/{responsible}', [ResponsibleController::class, 'destroy'])->name('responsible.destroy'); }); // catalog Route::get('catalog', [ProductController::class, 'index'])->name('catalog.index'); Route::get('catalog/{product}', [ProductController::class, 'show'])->name('catalog.show')->where('product', '[0-9]+') ; // contracts Route::get('contract', [ContractController::class, 'index'])->name('contract.index'); Route::get('contract/create', [ContractController::class, 'create'])->name('contract.create'); Route::get('contract/{contract}', [ContractController::class, 'show'])->name('contract.show'); Route::post('contract', [ContractController::class, 'store'])->name('contract.store'); Route::post('contract/{contract}', [ContractController::class, 'update'])->name('contract.update'); Route::delete('contract/{contract}', [ContractController::class, 'delete'])->name('contract.delete'); // orders Route::get('order/edit/{order}', [OrderController::class, 'edit'])->name('order.edit'); Route::post('order/store', [OrderController::class, 'store'])->name('order.store'); Route::post('order/update', [OrderController::class, 'store'])->name('order.update'); Route::delete('order/delete/{order}', [OrderController::class, 'destroy'])->name('order.destroy')->middleware('role:' . Role::ADMIN); Route::post('order/{order}/upload-document', [OrderController::class, 'uploadDocument'])->name('order.upload-document'); Route::post('order/{order}/upload-statement', [OrderController::class, 'uploadStatement'])->name('order.upload-statement'); Route::post('catalog/{product}/upload-certificate', [ProductController::class, 'uploadCertificate'])->name('catalog.upload-certificate'); Route::post('product_sku/{product_sku}/upload-passport', [ProductSKUController::class, 'uploadPassport'])->name('product-sku.upload-passport'); Route::get('order/generate-installation-pack/{order}', [OrderController::class, 'generateInstallationPack'])->name('order.generate-installation-pack'); Route::get('order/generate-handover-pack/{order}', [OrderController::class, 'generateHandoverPack'])->name('order.generate-handover-pack'); Route::get('reclamation/generate-reclamation-pack/{reclamation}', [ReclamationController::class, 'generateReclamationPack'])->name('order.generate-reclamation-pack'); Route::get('reclamation/generate-photos-before-pack/{reclamation}', [ReclamationController::class, 'generatePhotosBeforePack'])->name('reclamation.generate-photos-before-pack'); Route::get('reclamation/generate-photos-after-pack/{reclamation}', [ReclamationController::class, 'generatePhotosAfterPack'])->name('reclamation.generate-photos-after-pack'); // Склад (МАФ) Route::get('product_sku', [ProductSKUController::class, 'index'])->name('product_sku.index'); Route::get('product_sku/{product_sku}', [ProductSKUController::class, 'show'])->name('product_sku.show'); Route::post('product_sku/update/{product_sku}', [ProductSKUController::class, 'update'])->name('product_sku.update'); // рекламации Route::post('reclamations/create/{order}', [ReclamationController::class, 'create'])->name('reclamations.create'); Route::post('reclamations/update/{reclamation}', [ReclamationController::class, 'update'])->name('reclamations.update'); Route::post('reclamations/{reclamation}/upload-document', [ReclamationController::class, 'uploadDocument'])->name('reclamations.upload-document'); Route::post('reclamations/{reclamation}/upload-act', [ReclamationController::class, 'uploadAct'])->name('reclamations.upload-act'); Route::post('reclamations/{reclamation}/update-details', [ReclamationController::class, 'updateDetails'])->name('reclamations.update-details'); Route::delete('reclamations/{reclamation}', [ReclamationController::class, 'delete'])->name('reclamations.delete')->middleware('role:' . Role::ADMIN); Route::get('reports', [ReportController::class, 'index'])->name('reports.index'); }); // orders for all Route::get('order', [OrderController::class, 'index'])->name('order.index'); Route::get('order/show/{order}', [OrderController::class, 'show'])->name('order.show'); Route::post('order/{order}/upload-photo', [OrderController::class, 'uploadPhoto'])->name('order.upload-photo'); Route::get('order/generate-photos-pack/{order}', [OrderController::class, 'generatePhotosPack'])->name('order.generate-photos-pack'); Route::middleware('role:' . Role::ADMIN)->group(function () { Route::get('catalog/create', [ProductController::class, 'create'])->name('catalog.create'); Route::post('catalog', [ProductController::class, 'store'])->name('catalog.store'); Route::post('catalog/{product}', [ProductController::class, 'update'])->name('catalog.update'); Route::delete('catalog/{product}', [ProductController::class, 'delete'])->name('catalog.delete'); Route::post('catalog-import', [ProductController::class, 'import'])->name('catalog.import'); Route::post('catalog-export', [ProductController::class, 'export'])->name('catalog.export'); Route::post('mafs-import', [ProductSKUController::class, 'importMaf'])->name('mafs.import'); Route::post('mafs-export', [ProductSKUController::class, 'exportMaf'])->name('mafs.export'); // Склад заказы МАФ Route::get('maf_orders', [MafOrderController::class, 'index'])->name('maf_order.index'); Route::get('maf_orders/{maf_order}', [MafOrderController::class, 'show'])->name('maf_order.show'); Route::post('maf_orders/store', [MafOrderController::class, 'store'])->name('maf_order.store'); Route::post('maf_orders/update/{maf_order}', [MafOrderController::class, 'update'])->name('maf_order.update'); Route::delete('maf_orders/delete/{maf_order}', [MafOrderController::class, 'destroy'])->name('maf_order.delete'); Route::post('maf_orders/set_in_stock/{maf_order}', [MafOrderController::class, 'setInStock'])->name('maf_order.set_in_stock'); // график Route::post('schedule/create_from_order', [ScheduleController::class, 'createFromOrder'])->name('schedule.create-from-order'); Route::post('schedule/create_from_reclamation', [ScheduleController::class, 'createFromReclamation'])->name('schedule.create-from-reclamation'); Route::post('schedule/update', [ScheduleController::class, 'update'])->name('schedule.update'); Route::post('schedule/export', [ScheduleController::class, 'export'])->name('schedule.export'); Route::delete('schedule/delete/{schedule}', [ScheduleController::class, 'delete'])->name('schedule.delete'); Route::get('order/create', [OrderController::class, 'create'])->name('order.create'); Route::post('order/export', [OrderController::class, 'export'])->name('order.export'); Route::post('order/export-one/{order}', [OrderController::class, 'exportOne'])->name('order.export-one'); Route::get('order/{order}/get-maf', [OrderController::class, 'getMafToOrder'])->name('order.get-maf'); Route::get('order/revert-maf/{order}', [OrderController::class, 'revertMaf'])->name('order.revert-maf'); Route::post('order/move-maf', [OrderController::class, 'moveMaf'])->name('order.move-maf'); Route::post('order/create-ttn', [OrderController::class, 'createTtn'])->name('order.create-ttn'); Route::delete('order/delete-photo/{order}/{file}', [OrderController::class, 'deletePhoto'])->name('order.delete-photo'); Route::delete('order/delete-document/{order}/{file}', [OrderController::class, 'deleteDocument'])->name('order.delete-document'); Route::delete('order/delete-statement/{order}/{file}', [OrderController::class, 'deleteStatement'])->name('order.delete-statement'); Route::delete('order/delete-all-photos/{order}', [OrderController::class, 'deleteAllPhotos'])->name('order.delete-all-photos'); Route::delete('order/delete-all-documents/{order}', [OrderController::class, 'deleteAllDocuments'])->name('order.delete-all-documents'); Route::delete('order/delete-all-statements/{order}', [OrderController::class, 'deleteAllStatements'])->name('order.delete-all-statements'); Route::delete('catalog/delete-certificate/{product}/{file}', [ProductController::class, 'deleteCertificate'])->name('catalog.delete-certificate'); Route::delete('product_sku/delete-passport/{product_sku}/{file}', [ProductSKUController::class, 'deletePassport'])->name('product-sku.delete-passport'); Route::delete('reclamations/delete-photo-before/{reclamation}/{file}', [ReclamationController::class, 'deletePhotoBefore'])->name('reclamations.delete-photo-before'); Route::delete('reclamations/delete-photo-after/{reclamation}/{file}', [ReclamationController::class, 'deletePhotoAfter'])->name('reclamations.delete-photo-after'); Route::delete('reclamations/delete-document/{reclamation}/{file}', [ReclamationController::class, 'deleteDocument'])->name('reclamations.delete-document'); Route::delete('reclamations/delete-act/{reclamation}/{file}', [ReclamationController::class, 'deleteAct'])->name('reclamations.delete-act'); }); Route::get('reclamations', [ReclamationController::class, 'index'])->name('reclamations.index'); Route::get('reclamations/show/{reclamation}', [ReclamationController::class, 'show'])->name('reclamations.show'); Route::post('reclamations/{reclamation}/upload-photo-before', [ReclamationController::class, 'uploadPhotoBefore'])->name('reclamations.upload-photo-before'); Route::post('reclamations/{reclamation}/upload-photo-after', [ReclamationController::class, 'uploadPhotoAfter'])->name('reclamations.upload-photo-after'); Route::get('schedule', [ScheduleController::class, 'index'])->name('schedule.index'); // ajax search products Route::get('product/search', [ProductController::class, 'search'])->name('product.search'); // ajax search products Route::get('order-search', [OrderController::class, 'search'])->name('order.search'); // ajax get areas by district Route::get('areas/{district_id?}', [AreaController::class, 'ajaxGetAreasByDistrict'])->name('area.ajax-get-areas-by-district'); });