新增 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

@@ -644,4 +644,34 @@ class InventoryService implements InventoryServiceInterface
]
);
}
/**
* 取得特定倉庫代碼的所屬商品總庫存 ( POS/外部系統同步使用)
*
* @param string $code
* @return \Illuminate\Support\Collection|null
*/
public function getPosInventoryByWarehouseCode(string $code)
{
$warehouse = Warehouse::where('code', $code)->first();
if (!$warehouse) {
return null;
}
// 整理該倉庫的庫存,以 product_id 進行 GROUP BY 並加總 quantity
return DB::table('inventories')
->join('products', 'inventories.product_id', '=', 'products.id')
->where('inventories.warehouse_id', $warehouse->id)
->whereNull('inventories.deleted_at')
->whereNull('products.deleted_at')
->select(
'products.external_pos_id',
'products.code as product_code',
'products.name as product_name',
DB::raw('SUM(inventories.quantity) as total_quantity')
)
->groupBy('inventories.product_id', 'products.external_pos_id', 'products.code', 'products.name')
->get();
}
}