76 lines
6.4 KiB
PHP
76 lines
6.4 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Modules\MaterialLogistics\Http\Controllers\MaterialController;
|
|
use Modules\MaterialLogistics\Http\Controllers\MaterialRequisitionController;
|
|
use Modules\MaterialLogistics\Http\Controllers\PurchaseOrderController;
|
|
use Modules\MaterialLogistics\Http\Controllers\WarehouseController;
|
|
use Modules\MaterialLogistics\Http\Controllers\InventoryMovementController;
|
|
use Modules\MaterialLogistics\Http\Controllers\MaterialTransferController;
|
|
|
|
Route::middleware(['web', 'auth', 'permission:inventory.access'])->group(function () {
|
|
|
|
// Warehouses
|
|
Route::get('warehouses', [WarehouseController::class, 'index'])->name('warehouses.index');
|
|
Route::get('warehouses/create', [WarehouseController::class, 'create'])->name('warehouses.create');
|
|
Route::post('warehouses', [WarehouseController::class, 'store'])->name('warehouses.store');
|
|
Route::get('warehouses/stock-summary', [WarehouseController::class, 'stockSummary'])->name('warehouses.stock-summary');
|
|
Route::get('warehouses/{warehouse}/edit', [WarehouseController::class, 'edit'])->name('warehouses.edit');
|
|
Route::get('warehouses/{warehouse}', [WarehouseController::class, 'show'])->name('warehouses.show');
|
|
Route::put('warehouses/{warehouse}', [WarehouseController::class, 'update'])->name('warehouses.update');
|
|
|
|
// Material Requisitions
|
|
Route::get('requisitions', [MaterialRequisitionController::class, 'index'])->name('requisitions.index');
|
|
Route::get('requisitions/create', [MaterialRequisitionController::class, 'create'])->name('requisitions.create');
|
|
Route::post('requisitions', [MaterialRequisitionController::class, 'store'])->name('requisitions.store');
|
|
Route::get('requisitions/{requisition}/edit', [MaterialRequisitionController::class, 'edit'])->name('requisitions.edit');
|
|
Route::put('requisitions/{requisition}', [MaterialRequisitionController::class, 'update'])->name('requisitions.update');
|
|
Route::get('requisitions/{requisition}', [MaterialRequisitionController::class, 'show'])->name('requisitions.show');
|
|
Route::patch('requisitions/{requisition}/submit', [MaterialRequisitionController::class, 'submitForApproval'])->name('requisitions.submit');
|
|
Route::get('requisitions/{requisition}/pdf', [MaterialRequisitionController::class, 'downloadPdf'])->name('requisitions.pdf');
|
|
|
|
// Purchase Orders
|
|
Route::get('purchase-orders/search', [PurchaseOrderController::class, 'searchApproved'])->name('purchase-orders.search');
|
|
Route::get('purchase-orders', [PurchaseOrderController::class, 'index'])->name('purchase-orders.index');
|
|
Route::get('purchase-orders/create', [PurchaseOrderController::class, 'create'])->name('purchase-orders.create');
|
|
Route::post('purchase-orders', [PurchaseOrderController::class, 'store'])->name('purchase-orders.store');
|
|
Route::get('purchase-orders/{purchaseOrder}/edit', [PurchaseOrderController::class, 'edit'])->name('purchase-orders.edit');
|
|
Route::put('purchase-orders/{purchaseOrder}', [PurchaseOrderController::class, 'update'])->name('purchase-orders.update');
|
|
Route::get('purchase-orders/{purchaseOrder}', [PurchaseOrderController::class, 'show'])->name('purchase-orders.show');
|
|
Route::patch('purchase-orders/{purchaseOrder}/submit', [PurchaseOrderController::class, 'submitForApproval'])->name('purchase-orders.submit');
|
|
Route::get('purchase-orders/{purchaseOrder}/pdf', [PurchaseOrderController::class, 'downloadPdf'])->name('purchase-orders.pdf');
|
|
Route::post('purchase-orders/{purchaseOrder}/pay', [PurchaseOrderController::class, 'markAsPaid'])->name('purchase-orders.pay');
|
|
Route::patch('purchase-orders/{purchaseOrder}/deliver', [PurchaseOrderController::class, 'markAsDelivered'])->name('purchase-orders.deliver');
|
|
Route::get('purchase-orders/{purchaseOrder}/receipt', [PurchaseOrderController::class, 'downloadReceipt'])->name('purchase-orders.receipt');
|
|
|
|
// Inventory Dashboard
|
|
Route::get('inventory', [MaterialController::class, 'inventory'])->name('inventory.index');
|
|
|
|
// Inventory Operations
|
|
Route::get('inventory/operations/{type}', [MaterialController::class, 'operations'])->name('inventory.operations');
|
|
Route::post('inventory/dispatch', [MaterialController::class, 'dispatchFromWarehouse'])->name('inventory.dispatch');
|
|
|
|
Route::post('inventory/reserve-for-task', [MaterialController::class, 'reserveForTask'])->name('inventory.reserve');
|
|
Route::post('inventory/consume', [MaterialController::class, 'consumeAtTask'])->name('inventory.consume');
|
|
Route::post('inventory/return', [MaterialController::class, 'returnToWarehouse'])->name('inventory.return');
|
|
Route::post('inventory/adjust', [MaterialController::class, 'adjustStock'])->name('inventory.adjust');
|
|
|
|
// Inventory Movements Ledger
|
|
Route::get('inventory/movements', [InventoryMovementController::class, 'index'])->name('inventory.movements');
|
|
|
|
// Material Transfers
|
|
Route::get('material-transfers/project-inventory/{projectId}', [MaterialTransferController::class, 'projectInventory'])->name('material-transfers.project-inventory');
|
|
Route::get('material-transfers', [MaterialTransferController::class, 'index'])->name('material-transfers.index');
|
|
Route::get('material-transfers/create', [MaterialTransferController::class, 'create'])->name('material-transfers.create');
|
|
Route::post('material-transfers', [MaterialTransferController::class, 'store'])->name('material-transfers.store');
|
|
Route::get('material-transfers/{materialTransfer}/edit', [MaterialTransferController::class, 'edit'])->name('material-transfers.edit');
|
|
Route::put('material-transfers/{materialTransfer}', [MaterialTransferController::class, 'update'])->name('material-transfers.update');
|
|
Route::get('material-transfers/{materialTransfer}', [MaterialTransferController::class, 'show'])->name('material-transfers.show');
|
|
Route::delete('material-transfers/{materialTransfer}', [MaterialTransferController::class, 'destroy'])->name('material-transfers.destroy');
|
|
|
|
// Material Transfer Actions
|
|
Route::patch('material-transfers/{materialTransfer}/submit', [MaterialTransferController::class, 'submit'])->name('material-transfers.submit');
|
|
Route::patch('material-transfers/{materialTransfer}/dispatch', [MaterialTransferController::class, 'dispatch'])->name('material-transfers.dispatch');
|
|
Route::patch('material-transfers/{materialTransfer}/receive', [MaterialTransferController::class, 'receive'])->name('material-transfers.receive');
|
|
});
|