Yêu cầu xác thực JWT: Có. Mọi API ngoại vi dưới đây đều cần đính kèm JWT token trong header của HTTP Request để hệ thống xác thực.
Authorization: Bearer <token>
Bạn có thể lấy token qua API đăng nhập hệ thống: POST /api/auth/login.
Lấy danh sách các lô hàng đang hoạt động và có tồn kho của sản phẩm tại một Warehouse / Location.
Tham số Query:
- warehouseId (Guid, Tùy chọn): ID của nhà kho / chi nhánh.
- locationId (Guid, Tùy chọn): ID của vị trí / quầy bar chi tiết.
- productId (Guid, Tùy chọn): ID sản phẩm cần kiểm tra.
Ví dụ kết quả trả về (Response Payload):
[
{
"BAT_Id": "e30e9d6d-1bf9-47bb-a99f-e685f4b00a5a",
"BAT_BatchNo": "OP_BAR1_260611_0830",
"BAT_ExpiryDate": "2026-06-28T00:00:00",
"BAT_ProductId": "2bd1b854-47f5-41df-a550-c8f9dbd00c3b",
"P_Name": "Sữa tươi TH True Milk 1L (Đã khui)",
"IB_OnHandQty": 850.00,
"IB_AvailableQty": 850.00,
"IsCurrentlyScanned": 1
}
]
Thao tác đổi lô: Kích hoạt một lô hàng làm lô ưu tiên tiêu hao (quét mã QR) tại quầy.
Dữ liệu đầu vào (Request Payload JSON):
{
"LocationId": "2bd1b854-47f5-41df-a550-c8f9dbd00c3c", // ID của Quầy/Vị trí
"ProductId": "3d50df54-47f5-41df-a550-c8f9dbd00a12", // ID của Sản phẩm
"BatchId": "e30e9d6d-1bf9-47bb-a99f-e685f4b00a5a" // ID của Lô hàng kích hoạt
}
Kết quả trả về:
{
"success": true,
"message": "Switched active batch successfully."
}
Thao tác hủy lô: Khóa và chuyển toàn bộ tồn kho khả dụng của lô đó về trạng thái Tạm giữ (Hold/Quarantine).
Dữ liệu đầu vào (Request Payload JSON):
{
"BatchId": "e30e9d6d-1bf9-47bb-a99f-e685f4b00a5a", // ID của Lô cần hủy/khóa
"Reason": "Phát hiện sữa bị chua/lỗi bao bì" // Lý do hủy
}
Kết quả trả về:
{
"success": true,
"message": "Cancelled batch and put stock on hold."
}