FE: module warehouse — kho và vị trí #
Phần chung (khởi tạo client, lỗi, danh sách, ngôn ngữ) ở tài liệu FE của Core:
docs/fe/common.md (bản đọc: xforge-documentation, ADR-0102 của xforge-core).
Sửa file này CÙNG PR khi đổi hành vi FE thấy được của module.
Chỉ có ở CMS (XforgeClient). Menu: key warehouse.warehouses (quyền
warehouse.read). Số tồn ở module stock.
Kho #
Bộ route CRUD chuẩn (listWarehouses, getWarehouse, createWarehouse,
updateWarehouse, replaceWarehouse, deleteWarehouse, restoreWarehouse,
listWarehouseTrash, listWarehouseOptions). Picker dùng
listWarehouseOptions. Danh sách mặc định sắp theo priority; q tìm theo mã,
tên, thành phố.
| Quyền | Làm được |
|---|---|
warehouse.read | Xem kho + vị trí |
warehouse.create | Tạo |
warehouse.update | Sửa |
warehouse.delete | Vào thùng rác |
warehouse.restore | Thùng rác, khôi phục |
warehouse.hard_delete | Xoá hẳn (force=true) |
| Field | Ghi chú |
|---|---|
code | Chữ, số, _ . -; duy nhất trong store, không tính thùng rác (409 warehouse_code_exists). Báo cáo và file tồn đầu kỳ của stock dùng mã này |
type | physical (mặc định), virtual, dropship |
isDefault | Tối đa một kho. Gửi true là chuyển cờ từ kho cũ sang; kho đầu tiên của store tự thành mặc định |
active | false: kho không vào gợi ý chọn kho xuất và không tính vào cảnh báo sắp hết hàng |
priority | Nhỏ hơn được ưu tiên hơn khi chọn kho xuất |
replaceWarehouse vắng isDefault thì giữ nguyên cờ.
Xoá. Kho mặc định vào thùng rác thì mất cờ, khôi phục không tự có lại; khôi
phục mà mã đã bị dùng → 409 warehouse_code_exists. Không xoá được khi còn thứ
tham chiếu, hiện lỗi đúng theo mã:
- 409
stock_warehouse_in_use: còn tồn (vào thùng rác), đã có sổ kho (xoá hẳn); - 409
purchase_order_in_use,stock_transfer_in_use,stock_count_in_use: còn chứng từ đang mở.
Vị trí trong kho #
listWarehouseLocations, getWarehouseLocation, createWarehouseLocation,
updateWarehouseLocation, deleteWarehouseLocation. Ghi cần quyền
warehouse.manage_locations. Cây tối đa 3 tầng zone > shelf > bin; dựng
cây bằng parent_id.null=true rồi lọc theo parent_id.
- 422
warehouse_location_too_deep,warehouse_location_invalid_parent; - 409
warehouse_location_code_exists: mã trùng trong kho; - 409
warehouse_location_has_children: xoá hoặc đổiparentIdkhi còn con; - 404
warehouse_not_found,warehouse_location_not_found.
Vị trí chỉ để biết chỗ lấy hàng (locationId trên dòng tồn), không chia số
lượng theo vị trí. Xoá vị trí thì dòng tồn đang dùng nó mất vị trí.
Màn hình dựng sẵn #
listMenu() → mục warehouse.warehouses có screen (type: "crud"): CMS
chung vẽ được từ getMenuScreen({ params: { key: "warehouse.warehouses" } }) mà
không cần code riêng (tài liệu FE của Core: cms.md §3.1). Có: danh sách (mã,
tên, loại, thành phố, mặc định, ưu tiên, đang dùng; tìm; lọc trạng thái / mặc
định / loại), form tạo / sửa, xoá, thùng rác + khôi phục.
KHÔNG có: vị trí trong kho (/warehouses/{id}/locations — bảng con của bản ghi,
chờ loại detail), xoá vĩnh viễn.