PRD: Đơn vị tính & quy đổi
| Module | Kho | PRD ID | PRD-UOM-001 |
| Trạng thái | Chưa tạo item | FEAT | UOM |
| Epic | — | Plane | — |
| Ngày | 2026-07-13 | Phiên bản | v1.0 |
| Gói | @nx/inventory | URD | UOM |
| Surface | Client · Chủ/QL | ||
| Phụ trách | Phát Nguyễn | ||
Đơn vị tính & quy đổi là gì
Một chi nhánh (Merchant) đếm hàng bằng nhiều cách: nhập Coca theo thùng, bán lẻ theo lon, nhập đường theo bao 25 kg nhưng pha chế theo gram. Đơn vị tính (Unit of Measure) là danh mục các cách đếm đó, và quy đổi (Conversion) là việc đưa mọi con số về một thang đo chung.
Hệ thống dựng sẵn một bộ đơn vị dùng chung (cái, hộp, thùng, kg, g, lít, ml...), dùng được ngay từ ngày đầu. Merchant thêm đơn vị riêng của mình khi bộ dùng chung không đủ.
Đơn vị gốc và ba vai trò
Mỗi mặt hàng khai ba vai trò đơn vị. Đây là bộ khái niệm mọi PRD Kho khác dựa vào khi nói tới số lượng:
| Vai trò | Nghĩa | Bắt buộc |
|---|---|---|
| Đơn vị gốc | Đơn vị nhỏ nhất mà mặt hàng được đếm. Toàn bộ tồn kho luôn lưu theo đơn vị này, hệ số luôn bằng 1 | Có |
| Đơn vị mua hàng | Đơn vị mặc định khi lập đơn mua và nhận hàng | Không |
| Đơn vị bán hàng | Đơn vị mặc định khi bán ra | Không |
Con số nằm trong mục kho luôn là số theo đơn vị gốc. Chứng từ nhập bằng thùng hay bằng bao thì tồn vẫn tăng theo đơn vị gốc sau khi quy đổi.
Vì sao không để người lập phiếu tự nhân hệ số
Tồn kho bắt buộc phải quy về một đơn vị chung, nếu không thì cộng trừ ra số vô nghĩa: 2 thùng cộng 5 lon không ra được con số nào dùng được.
Đẩy việc quy đổi sang cho người lập chứng từ - cho họ một ô hệ số rồi tự nhân tay và điền số vào đó - là cách làm hỏng tồn kho. Điền sai một lần là tồn sai vĩnh viễn, và không ai phát hiện ra cho tới kỳ kiểm kê.
Còn một vấn đề riêng của thị trường Việt Nam: cùng gọi là "thùng" nhưng thùng Coca 24 lon, thùng bia 20 lon, thùng mì 30 gói. Bắt hệ số nằm ở danh mục đơn vị dùng chung thì merchant buộc phải phát sinh thêm "thùng-24", "thùng-20", "thùng-30". Danh mục phình ra, chọn nhầm liên tục, và báo cáo không gom nhóm được.
Ba mặt hàng, một đơn vị "thùng"
Danh mục chỉ có đúng một đơn vị "thùng". Quy cách đóng gói khai riêng ngay trên từng mặt hàng.
| Mặt hàng | Đơn vị gốc | Đơn vị mua | Khai riêng trên mặt hàng | Nhập 2 đơn vị mua | Tồn tăng |
|---|---|---|---|---|---|
| Coca | lon | thùng | 24 | 2 thùng | 48 lon |
| Bia | lon | thùng | 20 | 2 thùng | 40 lon |
| Đường | g | kg | bỏ trống | 5 kg | 5000 g |
- Coca và bia dùng cùng một đơn vị "thùng" trong danh mục, nhưng ra hai con số khác nhau. Con số khai riêng trên mặt hàng thắng hệ số chung của danh mục.
- Đường bỏ trống ô khai riêng, nên hệ thống đi theo chuỗi hệ số của danh mục: 1 kg = 1000 g. Đúng cho đơn vị đo lường chuẩn, vì 1 kg ở đâu cũng là 1000 g.
- Người lập phiếu chỉ chọn đơn vị và nhập số lượng. Màn nhập liệu hiện lại "2 thùng = 48 lon" để soát trước khi duyệt.
Chỗ dễ sai nhất
Hệ số bị khóa kể từ lúc mặt hàng có phát sinh kho
Mặt hàng đã từng nhập, bán, chuyển hay kiểm kê thì ô hệ số bị khóa. Sửa hệ số lúc đó là viết lại lịch sử: số lượng cũ nằm nguyên nhưng ý nghĩa của chúng đổi, và giá vốn các kỳ trước lệch theo.
Nhà cung cấp bán quy cách khác thì khai một đơn vị mới trên mặt hàng (Thùng 10 bên cạnh Thùng 12), không sửa đơn vị cũ.
Hệ quả: chứng từ đóng băng cả đơn vị lẫn số lượng đã quy ra đơn vị gốc ngay lúc lập. Mở một đơn mua cũ luôn ra đúng con số của ngày lập nó.