FE: module supplier — nhà cung cấp #
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), storefront không thấy. Nhà cung cấp không có
field dịch được: name là một chuỗi.
CMS / admin #
Menu: key supplier.suppliers (quyền supplier.read).
| Việc | Method | Quyền |
|---|---|---|
| Danh sách | listSuppliers({ query }) | supplier.read |
| Picker | listSupplierOptions({ query }) → { id, code, name, active } | supplier.read |
| Chi tiết | getSupplier({ params: { id } }) | supplier.read |
| Tạo | createSupplier({ body }) | supplier.create |
| Sửa một phần / thay hết | updateSupplier / replaceSupplier | supplier.update |
| Xoá (vào thùng rác) | deleteSupplier({ params: { id } }) | supplier.delete |
| Thùng rác / khôi phục | listSupplierTrash / restoreSupplier | supplier.restore |
| Xoá vĩnh viễn | deleteSupplier({ params: { id }, query: { force: "true" } }) | supplier.delete + supplier.hard_delete |
- Danh sách: lọc
active;qtìm theo mã, tên, người liên hệ, mã số thuế; sắpcode/name(mặc định) /created_at/updated_at. Form:
Field Luật codebắt buộc, ≤ 100 ký tự chữ, số, _.-; duy nhất trong storenamebắt buộc, ≤ 255 ký tự taxCode10 số, 10 số + -+ 3 số (chi nhánh), hoặc 13 sốcontactPhone8–20 ký tự số, có thể có +, khoảng trắng,.,-contactEmailemail hợp lệ paymentTermsDayssố ngày công nợ, 0–365 activemặc định true;falseđể picker ẩn đi, dữ liệu cũ vẫn tham chiếu
updateSupplier: field không gửi giữ nguyên,nullxoá giá trị.replaceSupplier: field không gửi về mặc định.- Picker cho form đơn nhập:
query: { active: "true" }để chỉ lấy nhà cung cấp còn giao dịch. Chứng từ trả kèmsupplierInfo({ id, code, name, active }), null khi nhà cung cấp đã vào thùng rác. - Xoá có thể bị module khác chặn (đơn đặt hàng còn mở): 409 mã của module đó,
hiện
error.message. - Lịch sử thay đổi của một nhà cung cấp: tài nguyên
suppliersở màn hình lịch sử chung của Core (cần thêm quyềncore.view_record_history).
Lỗi cần xử lý #
code | Status | FE nên |
|---|---|---|
supplier_not_found | 404 | trang 404 / đã vào thùng rác |
supplier_code_exists | 409 | báo ở ô code (cả khi khôi phục mà mã đã bị lấy) |
Màn hình dựng sẵn #
listMenu() → mục supplier.suppliers có screen (type: "crud"): CMS chung
vẽ được từ getMenuScreen({ params: { key: "supplier.suppliers" } }) 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,
liên hệ, đang dùng; tìm; lọc trạng thái), form tạo / sửa đủ field, xoá vào thùng
rác, thùng rác + khôi phục.
KHÔNG có: xoá vĩnh viễn (?force=true, quyền kiểm trong route),
replaceSupplier.