user(); })->middleware('auth:sanctum'); Route::middleware([EnsureFrontendRequestsAreStateful::class, 'auth:sanctum'])->group(function () { // Route::group(['middleware' => ['role:admin']], function () { // Stock Entry endpoints Route::get('/stockData/options', [StockEntryController::class, 'getOptions']); Route::get('/stockData/manufacturers', [StockEntryController::class, 'getManufacturers']); Route::get('/stockData/options/items', [StockEntryController::class, 'getItems']); Route::get('stockData', [StockEntryController::class, 'index']); Route::get('stockData/audit/{id}', [StockEntryController::class, 'audit']); Route::get('stockDataOnTheWay', [StockEntryController::class, 'fetchOnTheWay']); Route::post('stockData', [StockEntryController::class, 'addData']); Route::put('stockData/{id}', [StockEntryController::class, 'updateData']); Route::get('stockBatches', [StockBatchController::class, 'index']); Route::get('stockBatches/{id}', [StockBatchController::class, 'getBatch']); Route::post('stockBatches', [StockBatchController::class, 'addData']); Route::put('stockBatches/{id}', [StockBatchController::class, 'updateData']); Route::get('stockBatches/{id}/entries', [StockBatchController::class, 'getEntries']); Route::put('stockBatches/{id}/entries', [StockBatchController::class, 'addEntries']); Route::get('/stockBatches/options', [StockBatchController::class, 'getOptions']); // Additional stock management endpoints Route::get('/stock-positions', [StockEntryController::class, 'getStockPositions']); Route::get('/physical-items', [StockEntryController::class, 'getPhysicalItems']); // Batch operations Route::post('/stock-entries/batch-update', [StockEntryController::class, 'batchUpdate']); Route::post('/stock-entries/batch-delete', [StockEntryController::class, 'batchDelete']); Route::get('/stockStatusList', [StockEntryController::class, 'getStatusList']); // barcode scanner methods Route::post('stockActions/itemPickup', [StockEntryController::class, 'itemPickup']); Route::post('expediceActions/itemPickup', [StockHandleExpediceController::class, 'updateSectionCount']); // expedice akce // nacteni produktu - itemPickup, // prepocitat (jen req, expedice zadava pocet na kontrolu), // neni kde ma byt, // je kdyz nema byt, // scan produktu co se vratily // status packed - tisk faktury // pridat novou nahradu, poslat jiny ovladac nez je povoleno / poslat na zkousku // vybrat jake lze dat baterky, model (zase na req) // vybrat kolik se vejde do obalky, rating / volume // skladnik akce // prijde zbozi, vytiskne si X stitku s QR - nalepi na kazdou krabici + pripadne jeden "batch" stitek na palete // vytvori batch u PC + zada vsechny produkty, ceny, ocekavane pocty // naskenuje paletu, odveze na misto "k napocitani" // ten kdo pocita, vezme krabici, naskenuje, vytahne obsah, prepocita, v systemu potvrdi pocet. // krabice muze cekat tak, jak je, na naskladneni - az na skladovem miste lze odepisovat a brat (expedice) // jakmile je potvrzen pocet, expedice z krabice muze brat i mimo skladove misto - na docasnem skladovem miste (tam budou jen napocitane produkty) // bude fungovat stejne jako bezne skladove misto, ale bude u dominika nekde bokem. (nektere skladove mista budou oznacene, jako ze se z nich brat nesmi - napr "k napocitani") // pri naskladnovani postupuju dvema zpusoby // 1. naskenuju batch - vyberu produkt, naskladnim na urcite skladove misto (vyberu scanem), urcity pocet (vyberu cislem) // 2. naskenuju skladove misto (kde lze uz odepisovat), zde pouze menim skladove misto - naskenuju puvodni, zmenit, vyberu nove, potvrdim scanem noveho // dominik pri zpracovani batche uvidi docasne vazby (posilejte originaly dokud XYZ), tu musi zrusit pri naskladnovani // rozbaleno produkty - prozkoumat Route::post('/stockActions/{stockEntry}/status', [StockEntryStatusController::class, 'store']); Route::get('/batchListWMS', [ExpediceController::class, 'batchListWMS']); Route::post('/expediceListWMS', [ExpediceController::class, 'expediceListWMS']); Route::get('/expediceListWMS/getImage', [ExpediceController::class, 'getProductImage']); Route::post('/storage/setup', [StorageController::class, 'setup']); Route::post('/pda/barcodeScan', [ScannerController::class, 'barcodeScan']); Route::post('/pda/batchBarcodePrint', [ScannerController::class, 'batchBarcodePrint']); Route::post('/pdaView/countStock', [StockEntryController::class, 'countStock']); Route::post('/pdaView/setStockSection', [StockSectionController::class, 'setSection']); Route::post('/pdaView/storeStock', [StockSectionController::class, 'storeStock']); Route::post('/pdaView/setBatchSection', [StockSectionController::class, 'setSectionForBatch']); Route::get('/pdaView/getStockPosition', [StockPositionController::class, 'getPosition']); Route::post('/pdaView/moveStockSection', [StockSectionController::class, 'movePosition']); Route::post('/pdaView/changeCount', [StockSectionController::class, 'changeCount']); Route::put('/stockPositions/{id}', [StockPositionController::class, 'update']); Route::get('/stockSections/{id}', [StockSectionController::class, 'getSection']); Route::post('/stockSections', [StockSectionController::class, 'store']); Route::put('/stockSections/{id}', [StockSectionController::class, 'update']); Route::delete('/stockSections/{id}', [StockSectionController::class, 'destroy']); //stock rooms Route::post('/stock-rooms', [StockRoomController::class, 'store']); Route::get('/stock-rooms/{room}', [StockRoomController::class, 'show']); Route::put('/stock-rooms/{room}', [StockRoomController::class, 'update']); Route::delete('/stock-rooms/{room}', [StockRoomController::class, 'destroy']); // Lines Route::post ('/stock-lines', [StockLineController::class, 'store']); Route::put ('/stock-lines/{line}', [StockLineController::class, 'update']); Route::delete ('/stock-lines/{line}', [StockLineController::class, 'destroy']); // Racks Route::post ('/stock-racks', [StockRackController::class, 'store']); Route::put ('/stock-racks/{rack}', [StockRackController::class, 'update']); Route::delete ('/stock-racks/{rack}', [StockRackController::class, 'destroy']); // Shelves Route::post ('/stock-shelves', [StockShelfController::class, 'store']); Route::put ('/stock-shelves/{shelf}',[StockShelfController::class, 'update']); Route::delete ('/stock-shelves/{shelf}',[StockShelfController::class, 'destroy']); // Positions Route::post ('/stock-positions', [StockPositionController::class,'store']); Route::put ('/stock-positions/{pos}',[StockPositionController::class,'updateBasic']); Route::delete ('/stock-positions/{pos}',[StockPositionController::class,'destroy']); Route::get('/rooms', [StockRoomController::class, 'getList']); Route::get('/floor-layouts', [FloorLayoutController::class, 'index']); Route::get('/floor-layouts/{room_id}', [FloorLayoutController::class, 'show']); Route::post('/floor-layouts/update', [FloorLayoutController::class, 'update']); Route::post('/floor-layouts/create', [FloorLayoutController::class, 'create']); });