web.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. use App\Http\Controllers\AreaController;
  3. use App\Http\Controllers\ContractController;
  4. use App\Http\Controllers\MafOrderController;
  5. use App\Http\Controllers\OrderController;
  6. use App\Http\Controllers\ProductController;
  7. use App\Http\Controllers\ProductSKUController;
  8. use App\Http\Controllers\ReclamationController;
  9. use App\Http\Controllers\ResponsibleController;
  10. use App\Http\Controllers\UserController;
  11. use App\Models\Role;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Support\Facades\Auth;
  14. use Illuminate\Support\Facades\Route;
  15. Route::get('/', function () {
  16. return redirect()->route('home');
  17. });
  18. Auth::routes(['register' => false, 'reset' => false, 'verify' => false, 'confirm' => false]);
  19. Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
  20. Route::middleware('auth:web')->group(function () {
  21. // set current year for display
  22. Route::get('set-year', function (Request $request) {
  23. if ($request->has('year')) {
  24. session(['year' => $request->year]);
  25. }
  26. return redirect()->route('order.index');
  27. })->name('set-year');
  28. // admin routes
  29. Route::middleware('role:' . Role::ADMIN)->prefix('admin')->group(function (){
  30. Route::prefix('users')->group(function (){
  31. Route::get('', [UserController::class, 'index'])->name('user.index');
  32. Route::get('create', [UserController::class, 'create'])->name('user.create');
  33. Route::get('{user}', [UserController::class, 'show'])->name('user.show');
  34. Route::post('', [UserController::class, 'store'])->name('user.store');
  35. Route::put('{user}', [UserController::class, 'update'])->name('user.update');
  36. Route::delete('{user}', [UserController::class, 'destroy'])->name('user.destroy');
  37. });
  38. Route::prefix('responsibles')->group(function (){
  39. Route::get('', [ResponsibleController::class, 'index'])->name('responsible.index');
  40. Route::get('{responsible}', [ResponsibleController::class, 'show'])->name('responsible.show');
  41. Route::post('store', [ResponsibleController::class, 'store'])->name('responsible.store');
  42. Route::post('update/{responsible}', [ResponsibleController::class, 'update'])->name('responsible.update');
  43. Route::delete('delete/{responsible}', [ResponsibleController::class, 'destroy'])->name('responsible.destroy');
  44. });
  45. });
  46. // profile
  47. Route::get('profile', [UserController::class, 'profile'])->name('user.profile');
  48. Route::post('profile/store', [UserController::class, 'storeProfile'])->name('profile.store');
  49. // catalog
  50. Route::get('catalog', [ProductController::class, 'index'])->name('catalog.index');
  51. Route::get('catalog/create', [ProductController::class, 'create'])->name('catalog.create');
  52. Route::get('catalog/{product}', [ProductController::class, 'show'])->name('catalog.show');
  53. Route::post('catalog', [ProductController::class, 'store'])->name('catalog.store');
  54. Route::post('catalog/{product}', [ProductController::class, 'update'])->name('catalog.update');
  55. Route::delete('catalog/{product}', [ProductController::class, 'delete'])->name('catalog.delete');
  56. Route::post('catalog-import', [ProductController::class, 'import'])->name('catalog.import');
  57. Route::post('catalog-export', [ProductController::class, 'export'])->name('catalog.export');
  58. // contracts
  59. Route::get('contract', [ContractController::class, 'index'])->name('contract.index');
  60. Route::get('contract/create', [ContractController::class, 'create'])->name('contract.create');
  61. Route::get('contract/{contract}', [ContractController::class, 'show'])->name('contract.show');
  62. Route::post('contract', [ContractController::class, 'store'])->name('contract.store');
  63. Route::post('contract/{contract}', [ContractController::class, 'update'])->name('contract.update');
  64. Route::delete('contract/{contract}', [ContractController::class, 'delete'])->name('contract.delete');
  65. // orders
  66. Route::get('order', [OrderController::class, 'index'])->name('order.index');
  67. Route::get('order/create', [OrderController::class, 'create'])->name('order.create');
  68. Route::get('order/{order}', [OrderController::class, 'show'])->name('order.show');
  69. Route::get('order/edit/{order}', [OrderController::class, 'edit'])->name('order.edit');
  70. Route::post('order/store', [OrderController::class, 'store'])->name('order.store');
  71. Route::post('order/{order}/update', [OrderController::class, 'store'])->name('order.update');
  72. Route::delete('order/{order}', [OrderController::class, 'destroy'])->name('order.destroy')->middleware('role:' . Role::ADMIN);
  73. Route::get('order/{order}/get-maf', [OrderController::class, 'getMafToOrder'])->name('order.get-maf');
  74. Route::get('order/revert-maf/{order}', [OrderController::class, 'revertMaf'])->name('order.revert-maf');
  75. Route::post('order/move-maf', [OrderController::class, 'moveMaf'])->name('order.move-maf');
  76. Route::post('order/{order}/upload-photo', [OrderController::class, 'uploadPhoto'])->name('order.upload-photo');
  77. Route::post('order/{order}/upload-document', [OrderController::class, 'uploadDocument'])->name('order.upload-document');
  78. Route::post('order/{order}/upload-statement', [OrderController::class, 'uploadStatement'])->name('order.upload-statement');
  79. Route::post('catalog/{product}/upload-certificate', [ProductController::class, 'uploadCertificate'])->name('catalog.upload-certificate');
  80. Route::post('product_sku/{product_sku}/upload-passport', [ProductSKUController::class, 'uploadPassport'])->name('product-sku.upload-passport');
  81. Route::middleware('role:' . Role::ADMIN)->group(function (){
  82. Route::delete('order/delete-photo/{order}/{file}', [OrderController::class, 'deletePhoto'])->name('order.delete-photo');
  83. Route::delete('order/delete-document/{order}/{file}', [OrderController::class, 'deleteDocument'])->name('order.delete-document');
  84. Route::delete('order/delete-statement/{order}/{file}', [OrderController::class, 'deleteStatement'])->name('order.delete-statement');
  85. Route::delete('catalog/delete-certificate/{product}/{file}', [ProductController::class, 'deleteCertificate'])->name('catalog.delete-certificate');
  86. Route::delete('product_sku/delete-passport/{product_sku}/{file}', [ProductSKUController::class, 'deletePassport'])->name('product-sku.delete-passport');
  87. Route::delete('reclamations/delete-photo-before/{reclamation}/{file}', [ReclamationController::class, 'deletePhotoBefore'])->name('reclamations.delete-photo-before');
  88. Route::delete('reclamations/delete-photo-after/{reclamation}/{file}', [ReclamationController::class, 'deletePhotoAfter'])->name('reclamations.delete-photo-after');
  89. Route::delete('reclamations/delete-document/{reclamation}/{file}', [ReclamationController::class, 'deleteDocument'])->name('reclamations.delete-document');
  90. Route::delete('reclamations/delete-act/{reclamation}/{file}', [ReclamationController::class, 'deleteAct'])->name('reclamations.delete-act');
  91. });
  92. Route::get('order/generate-installation-pack/{order}', [OrderController::class, 'generateInstallationPack'])->name('order.generate-installation-pack');
  93. Route::get('order/generate-handover-pack/{order}', [OrderController::class, 'generateHandoverPack'])->name('order.generate-handover-pack');
  94. Route::get('reclamation/generate-reclamation-pack/{reclamation}', [ReclamationController::class, 'generateReclamationPack'])->name('order.generate-reclamation-pack');
  95. // Склад (МАФ)
  96. Route::get('product_sku', [ProductSKUController::class, 'index'])->name('product_sku.index');
  97. Route::get('product_sku/{product_sku}', [ProductSKUController::class, 'show'])->name('product_sku.show');
  98. Route::post('product_sku/update/{product_sku}', [ProductSKUController::class, 'update'])->name('product_sku.update');
  99. // Склад заказы МАФ
  100. Route::get('maf_orders', [MafOrderController::class, 'index'])->name('maf_order.index');
  101. Route::get('maf_orders/{maf_order}', [MafOrderController::class, 'show'])->name('maf_order.show');
  102. Route::post('maf_orders/store', [MafOrderController::class, 'store'])->name('maf_order.store');
  103. Route::post('maf_orders/update/{maf_order}', [MafOrderController::class, 'update'])->name('maf_order.update');
  104. Route::delete('maf_orders/delete/{maf_order}', [MafOrderController::class, 'destroy'])->name('maf_order.delete');
  105. Route::post('maf_orders/set_in_stock/{maf_order}', [MafOrderController::class, 'setInStock'])->name('maf_order.set_in_stock');
  106. Route::get('reclamations', [ReclamationController::class, 'index'])->name('reclamations.index');
  107. Route::post('reclamations/create/{order}', [ReclamationController::class, 'create'])->name('reclamations.create');
  108. Route::get('reclamations/show/{reclamation}', [ReclamationController::class, 'show'])->name('reclamations.show');
  109. Route::post('reclamations/update/{reclamation}', [ReclamationController::class, 'update'])->name('reclamations.update');
  110. Route::post('reclamations/{reclamation}/upload-document', [ReclamationController::class, 'uploadDocument'])->name('reclamations.upload-document');
  111. Route::post('reclamations/{reclamation}/upload-photo-before', [ReclamationController::class, 'uploadPhotoBefore'])->name('reclamations.upload-photo-before');
  112. Route::post('reclamations/{reclamation}/upload-photo-after', [ReclamationController::class, 'uploadPhotoAfter'])->name('reclamations.upload-photo-after');
  113. Route::post('reclamations/{reclamation}/upload-act', [ReclamationController::class, 'uploadAct'])->name('reclamations.upload-act');
  114. Route::post('reclamations/{reclamation}/update-details', [ReclamationController::class, 'updateDetails'])->name('reclamations.update-details');
  115. // ajax search products
  116. Route::get('product/search', [ProductController::class, 'search'])->name('product.search');
  117. // ajax search products
  118. Route::get('order-search', [OrderController::class, 'search'])->name('order.search');
  119. // ajax get areas by district
  120. Route::get('areas/{district_id?}', [AreaController::class, 'ajaxGetAreasByDistrict'])->name('area.ajax-get-areas-by-district');
  121. });