新增 POS 庫存查詢 API:實作 InventorySyncController 與相關 Service 邏輯,並更新 API 整合手冊
All checks were successful
ERP-Deploy-Demo / deploy-demo (push) Successful in 1m24s

This commit is contained in:
2026-03-02 10:19:20 +08:00
parent 4bbbde685d
commit 5f8b2a1c2d
10 changed files with 255 additions and 27 deletions

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Modules\Integration\Controllers;
use App\Http\Controllers\Controller;
use App\Modules\Inventory\Contracts\InventoryServiceInterface;
use Illuminate\Http\JsonResponse;
class InventorySyncController extends Controller
{
protected $inventoryService;
public function __construct(InventoryServiceInterface $inventoryService)
{
$this->inventoryService = $inventoryService;
}
/**
* 提供外部 POS 查詢指定倉庫的商品庫存餘額
*
* @param string $warehouseCode
* @return JsonResponse
*/
public function show(string $warehouseCode): JsonResponse
{
// 透過 Service 調用跨模組庫存查詢功能
$inventoryData = $this->inventoryService->getPosInventoryByWarehouseCode($warehouseCode);
// 若回傳 null表示尋無此倉庫代碼
if (is_null($inventoryData)) {
return response()->json([
'status' => 'error',
'message' => "Warehouse with code '{$warehouseCode}' not found.",
], 404);
}
// 以 JSON 格式回傳組合好的商品庫存列表
return response()->json([
'status' => 'success',
'warehouse_code' => $warehouseCode,
'data' => $inventoryData->map(function ($item) {
return [
'external_pos_id' => $item->external_pos_id,
'product_code' => $item->product_code,
'product_name' => $item->product_name,
'quantity' => (float) $item->total_quantity,
];
})
], 200);
}
}