vat_wms/routes/api.php

177 lines
7.5 KiB
PHP

<?php
use App\Http\Controllers\Api\ExpediceController;
use App\Http\Controllers\Api\StockBatchController;
use App\Http\Controllers\Api\StockSectionController;
use App\Http\Controllers\Api\ScannerController;
use App\Http\Controllers\Api\StockEntryController;
use App\Http\Controllers\Api\StockHandleExpediceController;
use App\Http\Controllers\Api\SupplierController;
use App\Http\Controllers\Api\StockEntryStatusController;
use App\Http\Controllers\Api\StockPositionController;
use App\Http\Controllers\Api\StockRoomController;
use App\Http\Controllers\Api\StockLineController;
use App\Http\Controllers\Api\StockRackController;
use App\Http\Controllers\Api\StockShelfController;
use App\Http\Controllers\StorageController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;
Route::get('/user', function (Request $request) {
return $request->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/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::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']);
});