Trường Số · Yêu cầu sản phẩm · 09/2026

PRD 08 · Kho

Sách, tài liệu và vật phẩm được lưu kho theo từng chi nhánh, phát cho học viên gắn với một dòng học phí hoặc một lượt phát tài liệu, kèm cảnh báo sắp hết hàng. Mô-đun thuộc Giai đoạn 2; hiện chưa có backend.

Xuất xứ / Prompt / Giới hạn
Trạng thái
Draft v1
Mô-đun phụ trách
Kho
Backend
NEW (no /v3 entity)
Giai đoạn
P2
Phụ thuộc vào
02 Học viên, 05 Tài chính, 10 Cài đặt

Tài liệu do trợ lý AI soạn trong một phiên làm việc ngày 10/09/2026, theo yêu cầu gốc được trích nguyên văn ở trang mục lục; mục Thiết kế đề xuất được bổ sung ngày 16/09/2026. Đây là bản đề xuất để đội thảo luận, chưa phải quyết định của đội sản phẩm.

Nguồn

  • Nghiên cứu công khai về đối thủ cạnh tranh (PSE ONE, pse4.one), mã nguồn center-crm-frontend và đặc tả OpenAPI /v3 trên staging (182 endpoint), tính đến ngày 10/09/2026.
  • Nhãn existing / extend / new trong trang được xác định bằng cách đối chiếu với đặc tả /v3 trên staging tại thời điểm trên.

Giới hạn

  • Cần xác minh khi khảo sát trực tiếp trong ứng dụng, vì đăng nhập tự động vào sản phẩm tham chiếu chưa được cấp phép trong phiên soạn:
    • Cách đối thủ liên kết một lượt phát đồ ("phát đồ dùng học tập") với một chứng từ thu: cùng một phiếu hay tách riêng.
    • Tồn kho được theo dõi theo chi nhánh hay theo toàn trung tâm, và có tồn tại chức năng chuyển kho hay không.
    • Các trường chính xác trong danh mục sản phẩm của họ (đơn vị, giá vốn, giá bán, nhà cung cấp) và cảnh báo sắp hết hàng là một báo cáo hay một thông báo.
    • Việc trả lại và hàng hỏng có được mô hình hoá hay không.

Thiết kế đề xuất

Kho là một trang duy nhất dưới mục Tài chính với bốn tab (Tồn kho · Nhập xuất · Danh mục · Sắp hết); mọi thay đổi tồn kho đều đi qua phiếu (nhập, chuyển, điều chỉnh) hoặc lượt phát cho học viên, và điều quan trọng nhất người đọc nên thấy là không có ô "số lượng" nào sửa trực tiếp được.

1 · Tổng quan kho · tab Tồn kho

/inventory · desktop

Tổng quan kho, tab Tồn kho
Bộ chọn chi nhánh, ba ô KPI (mặt hàng đang tồn, giá trị tồn = tồn × giá vốn, mặt hàng sắp hết) và bảng tồn kho với đủ chín cột của mục 4. Ba dòng có tồn ≤ mức cảnh báo mang nhãn "Sắp hết" hoặc "Hết hàng" (INV-07); cột Hỏng chỉ hiện khi khác 0; cột Giá trị tồn chỉ hiển thị cho chủ trung tâm và kế toán (quy tắc 7).

2 · Tab Nhập xuất · bảng phát sinh kho

/inventory (tab Nhập xuất) · desktop

Bảng phát sinh kho
Bộ lọc khoảng thời gian, loại, mặt hàng, học viên và nút Xuất CSV (quyền inventory.export). Mỗi dòng là một phát sinh có dấu, gắn với đối tượng (học viên, lớp, chi nhánh, nhà cung cấp) và mã chứng từ NK/XK/CK/DC. Dòng điều chỉnh DC-202609-0003 vượt ngưỡng 10 đơn vị nên ở trạng thái Chờ duyệt (INV-06, quy tắc 5); dòng trả lại ghi tình trạng sách (INV-08).

3 · Biểu mẫu mặt hàng (drawer)

/inventory/catalog/new · desktop

Drawer tạo mặt hàng
Drawer mở trên tab Danh mục với đủ mười trường của mục 4: mã hàng, tên, danh mục (thêm nhanh tại chỗ), đơn vị, giá bán, giá vốn, mức cảnh báo (mặc định 5), tính phí khi phát, gắn với khoá và trạng thái. Đang hiển thị lỗi tại chỗ "Mã hàng đã tồn tại" (INV-01). Không có nút xoá; chỉ có công tắc vô hiệu hoá.

4 · Phiếu nhập kho (modal nhiều dòng)

/inventory/documents/new?type=in · desktop

Phiếu nhập kho
Phần đầu gồm loại phiếu, chi nhánh, ngày (không được chọn tương lai), tham chiếu và ghi chú; các dòng gồm mặt hàng, số lượng và giá vốn đơn vị (chỉ phiếu nhập); phần chân tổng hợp số dòng, tổng số lượng, tổng giá trị. Nút Ghi sổ ghi một phát sinh loại in cho mỗi dòng và cấp mã NK-YYYYMM-#### (INV-02).

5 · Phiếu chuyển kho đã ghi sổ (chỉ đọc)

/inventory/documents/:id · desktop

Phiếu chuyển kho đã ghi sổ
Cùng biểu mẫu nhưng ở trạng thái đã ghi sổ: các trường khoá, mã CK-202609-0007 hiển thị ở tiêu đề, mỗi dòng cho thấy cặp phát sinh transfer_out tại chi nhánh nguồn và transfer_in tại chi nhánh đích với cùng một mã chứng từ (INV-05). Phiếu bất biến; sai sót chỉ sửa bằng phiếu điều chỉnh mới (quy tắc 2).

6 · Phát cho học viên (modal từ hồ sơ học viên)

/inventory/issue · desktop

Modal phát tài liệu cho học viên
Học viên được điền sẵn theo ngữ cảnh kèm trạng thái Đang học (quy tắc 3); tồn kho hiển thị ngay cạnh mặt hàng; công tắc tính phí lấy theo mặt hàng và giá có thể sửa với quyền inventory.override_price. Số lượng 4 vượt tồn 3 nên biểu mẫu bị chặn với "Không đủ tồn kho (còn 3)" và không ghi phát sinh nào (INV-03, quy tắc 6). Hộp ghi chú nêu rõ dòng học phí loại material sẽ được tạo trong PRD 05.

7 · Hồ sơ học viên · tab Tài liệu

/students/:id#materials · desktop

Tab Tài liệu trong hồ sơ học viên
Bảng ngày, mặt hàng, số lượng, tính phí, trạng thái thanh toán (theo dòng tài chính) và đã trả lại, với thao tác Trả lại trên từng dòng chưa trả. Thông báo nổi xác nhận lượt phát vừa xong kèm liên kết đến dòng học phí (INV-03); thẻ bên phải tổng hợp công nợ tài liệu và tài liệu gợi ý theo khoá.

8 · Phiếu kiểm kê (bảng đếm và chênh lệch)

/inventory/documents/new?type=adjust · desktop

Phiếu kiểm kê
Mỗi dòng ghi tồn sổ sách, số lượng kiểm, chênh lệch có dấu, giá trị chênh lệch và lý do bắt buộc (hỏng, mất, kiểm kê, khác) khi có chênh lệch; dòng IELTS Junior 3 lệch −12 vượt ngưỡng nên phiếu sẽ chuyển sang Chờ duyệt bởi quản lý chi nhánh (INV-06, quy tắc 5). Dòng Áo polo size M đang thiếu lý do và bị chặn ghi sổ.

1Mục đích

Trung tâm bán hoặc phát sách giáo khoa, sách bài tập, đồng phục và văn phòng phẩm cho học viên. Hiện tại việc này được theo dõi bằng Excel hoặc không được theo dõi, và kế toán không thể đối soát tồn kho với chứng từ thu. Trường Số duy trì một sổ kho theo từng chi nhánh, cho phép nhân viên phát mặt hàng cho học viên trong một bước, và hiển thị những mặt hàng đang sắp hết. Mô-đun này được thiết kế cố tình đơn giản: đây là một sổ kho có danh mục hàng hoá, không phải một hệ thống POS bán lẻ.

Mục tiêu

Không thuộc phạm vi

2Đối tượng sử dụng và vai trò

Đối tượngMã vai tròDùng kho cho
Kế toánaccountantNhập kho, kiểm kê, báo cáo giá trị tồn kho, đối soát với chứng từ thu.
Quản lý chi nhánhbranch_managerDuyệt xoá sổ và chuyển kho, theo dõi danh sách hàng sắp hết.
Giáo vụacademic_adminPhát sách cho học viên mới nhập học, phát tài liệu cho lớp.
Chủ trung tâmownerXem tồn kho và lợi nhuận trên toàn bộ chi nhánh.
Giáo viênteacherChỉ xem: thấy được học viên nào trong lớp đã nhận sách.

3User story và tiêu chí chấp nhận

INV-01Định nghĩa một mặt hàng trong danh mục
Kế toán tạo một mặt hàng để có thể nhập kho và phát hàng.
  • Given Kế toán đang ở trang Kho → Danh mục với quyền inventory.manage
  • When Nhập mã hàng, tên hàng, đơn vị, danh mục, giá bán, giá vốn, mức cảnh báo tồn và gửi
  • Then Mặt hàng được lưu ở trạng thái hoạt động, mã hàng là duy nhất trong phạm vi trung tâm, và mặt hàng xuất hiện trong danh sách chọn khi phát hàng ở mọi chi nhánh.
INV-02Nhập hàng vào một chi nhánh
Kế toán ghi nhận một phiếu nhập kho để tăng số lượng tồn kho.
  • Given Một mặt hàng đang hoạt động và một chi nhánh
  • When Ghi sổ một phiếu nhập kho có một hoặc nhiều dòng (mặt hàng, số lượng > 0, giá vốn đơn vị, tham chiếu)
  • Then Một phát sinh kho loại in được ghi cho mỗi dòng, tồn kho của chi nhánh đó tăng lên, và phiếu chuyển sang chỉ đọc.
INV-03Phát một mặt hàng cho học viên
Giáo vụ phát một cuốn sách cho học viên để ghi nhận lượt phát và, nếu có tính phí, lập hoá đơn.
  • Given Một học viên có lượt ghi danh đang hoạt động và tồn kho ≥ số lượng yêu cầu
  • When Chọn học viên, mặt hàng, số lượng và cờ "tính phí"
  • Then Một phát sinh loại issue được ghi, tồn kho giảm, hồ sơ học viên hiển thị mặt hàng trong mục Tài liệu, và nếu có tính phí, một dòng học phí loại material được tạo trong PRD 05 với số tiền = số lượng × giá bán.
  • Given Tồn kho thấp hơn số lượng yêu cầu
  • When Xác nhận
  • Then Biểu mẫu bị chặn với thông báo "Không đủ tồn kho (còn N)" và không có phát sinh nào được ghi.
INV-04Phát cho toàn bộ lớp
Giáo vụ phát một cuốn sách bài tập cho toàn bộ học viên của một lớp trong một lần thao tác.
  • Given Một lớp có N học viên đang học
  • When Chọn lớp, mặt hàng, và bỏ chọn những học viên đã nhận rồi
  • Then Một phát sinh cho mỗi học viên được chọn sẽ được ghi trong một giao dịch duy nhất; nếu tồn kho không đủ cho tất cả, hộp thoại hiển thị số lượng còn thiếu và cho phép chọn chỉ phát cho K học viên đầu tiên hoặc huỷ.
INV-05Chuyển kho giữa các chi nhánh
Quản lý chi nhánh chuyển tồn kho từ chi nhánh A sang chi nhánh B.
  • Given Người dùng có quyền inventory.manage trên cả hai chi nhánh, hoặc là chủ trung tâm
  • When Ghi sổ một phiếu chuyển kho
  • Then Một cặp phát sinh transfer_out tại A và transfer_in tại B được ghi đồng thời với cùng một document_id.
INV-06Điều chỉnh sau kiểm kê thực tế
Kế toán ghi nhận một lượt kiểm kê để sổ kho khớp với thực tế trên kệ.
  • Given Một phiếu kiểm kê ghi số lượng đã kiểm
  • When Ghi sổ phiếu kiểm kê
  • Then Với mỗi mặt hàng có số lượng kiểm khác với tồn kho, một phát sinh adjust với mức chênh lệch (có dấu) và lý do bắt buộc được ghi; các điều chỉnh vượt quá 10 đơn vị hoặc 2.000.000 VND cần quản lý chi nhánh phê duyệt (trạng thái pending cho đến khi được duyệt).
INV-07Cảnh báo sắp hết hàng
Quản lý chi nhánh xem các mặt hàng có tồn kho bằng hoặc thấp hơn mức cảnh báo.
  • Given Mức cảnh báo tồn đã được thiết lập cho một mặt hàng
  • When Tồn kho tại một chi nhánh ≤ mức cảnh báo tồn
  • Then Mặt hàng xuất hiện trong tab Sắp hết với nhãn Sắp hết, và thông báo trong ứng dụng lúc 08:00 hằng ngày liệt kê tất cả các mặt hàng này cho người dùng có quyền inventory.manage.
INV-08Trả lại một mặt hàng đã phát
Giáo vụ ghi nhận việc học viên trả lại một cuốn sách (sai trình độ, hoàn tiền).
  • Given Một phát sinh issue đã có sẵn
  • When Chọn Trả lại trên dòng đó và chọn tình trạng sách (mới / đã dùng)
  • Then Một phát sinh return tham chiếu đến phát sinh gốc được ghi; sách trả lại còn mới làm tăng tồn kho, sách trả lại đã dùng được chuyển vào số lượng damaged; nếu phát sinh gốc có tính phí, dòng tài chính được đánh dấu để ghi giảm trong PRD 05 (không tự động hoàn tiền).

4Màn hình

Tổng quan kho /inventory

Bộ chọn chi nhánh (mặc định là chi nhánh của người dùng; chủ trung tâm thấy "Tất cả chi nhánh"). Ba ô KPI: Mặt hàng đang tồn kho, Giá trị tồn kho (tổng tồn kho × giá vốn), Mặt hàng sắp hết. Các tab: Tồn kho · Nhập xuất · Danh mục · Sắp hết.

Bảng tồn kho

CộtNguồnGhi chú
SKUitem.skumonospace, có thể sắp xếp
Tên hàngitem.nameliên kết đến bảng chi tiết mặt hàng
Danh mụcitem.categorychip lọc
Đơn vịitem.unit
Tồntổng các phát sinh kho theo từng chi nhánhcanh phải; màu đỏ khi ≤ mức cảnh báo tồn
Hỏngsố lượng hỏngẩn khi bằng 0
Giá bánitem.sale_priceVND, có dấu phân cách nghìn
Giá trị tồntồn kho × giá vốn (cost_price)chỉ chủ trung tâm/kế toán
Thao tácNhập · Xuất · Điều chỉnh

Bộ lọc: tìm kiếm (theo mã hàng hoặc tên), danh mục, cờ "chỉ hàng sắp hết". Trạng thái trống: "Chưa có hàng hoá. Tạo danh mục trước, sau đó nhập kho." với nút chính Tạo mặt hàng. Phân trang 50 dòng.

Bảng phát sinh kho

CộtGhi chú
Thời giancreated_at, dd/MM/yyyy HH:mm
Loạichip: Nhập (ok) · Xuất (exc) · Chuyển (grey) · Điều chỉnh (late) · Trả lại (grey)
Mặt hàngtên + SKU
SLsố lượng có dấu
Đối tượngtên học viên / lớp / chi nhánh / tham chiếu nhà cung cấp
Chứng từmã chứng từ, liên kết
Người thực hiệntên hiển thị (display_name) của người thực hiện

Bộ lọc: khoảng thời gian, loại, mặt hàng, học viên. Xuất CSV (quyền inventory.export).

Biểu mẫu mặt hàng (drawer) /inventory/catalog/new · /inventory/catalog/:id
TrườngKiểu dữ liệuKiểm tra hợp lệ
Mã hàng (sku)text 3–32bắt buộc, duy nhất trong phạm vi trung tâm, chỉ chữ hoa A–Z0–9-
Tên hàng (name)text 2–120bắt buộc
Danh mục (category)chọn từ danh sách của trung tâm; thêm nhanh tại chỗbắt buộc
Đơn vị (unit)chọn: cuốn, bộ, cái, hộpbắt buộc
Giá bán (sale_price)tiền tệ VND≥ 0
Giá vốn (cost_price)tiền tệ VND≥ 0; ẩn với vai trò academic_admin
Mức cảnh báo (reorder_level)số nguyên≥ 0, mặc định là 5
Tính phí khi phát (chargeable_default)công tắc bật/tắtmặc định bật đối với sách
Gắn với khoá (course_ids)chọn nhiều khoá họckhông bắt buộc; quyết định danh sách "tài liệu gợi ý" khi ghi danh
Trạng tháiactive / inactivemặt hàng ở trạng thái inactive không thể được phát nhưng vẫn giữ lại lịch sử

Lỗi: mã hàng trùng hiển thị thông báo tại chỗ "Mã hàng đã tồn tại". Không có tùy chọn xoá; chỉ có thể vô hiệu hoá.

Phiếu nhập kho / chuyển kho / điều chỉnh (modal, nhiều dòng) /inventory/documents/new?type=in|transfer|adjust

Phần đầu: loại phiếu, chi nhánh (từ/đến cho phiếu chuyển kho), ngày (mặc định là hiện tại, không thể chọn ngày trong tương lai), tham chiếu (văn bản tự do, ví dụ hoá đơn nhà cung cấp), ghi chú. Các dòng: chọn mặt hàng (tìm theo mã hàng/tên), số lượng, giá vốn đơn vị (chỉ với phiếu nhập kho), lý do (chỉ với phiếu điều chỉnh, chọn: hỏng, mất, kiểm kê, khác). Phần chân: số dòng, tổng số lượng, tổng giá trị. Nút Ghi sổ để ghi phiếu; sau khi ghi, phiếu chuyển sang chỉ đọc và hiển thị mã NK-YYYYMM-#### / CK-… / DC-….

Phát cho học viên (modal, mở từ hồ sơ học viên, trang lớp hoặc dòng tồn kho) /inventory/issue

Các trường: học viên (tìm kiếm; điền sẵn theo ngữ cảnh), mặt hàng, số lượng (mặc định 1), công tắc tính phí (mặc định lấy theo mặt hàng), giá (có thể sửa khi tính phí, quyền inventory.override_price), ghi chú. Hiển thị tồn kho ngay bên cạnh mặt hàng. Khi xác nhận, hiển thị thông báo nổi "Đã phát 1 cuốn Family and Friends 2 cho Nguyễn An" kèm liên kết đến dòng tài chính khi được tạo.

Hồ sơ học viên · Tab Tài liệu /students/:id#materials

Bảng: ngày, mặt hàng, số lượng, tính phí, trạng thái thanh toán (theo dòng tài chính), đã trả lại. Thao tác Trả lại trên từng dòng. Trạng thái trống: "Học viên chưa nhận tài liệu nào."

5Quy tắc nghiệp vụ

  1. Tồn kho(chi nhánh, mặt hàng) = Σ số lượng của các phát sinh khớp chi nhánh đó; không có cột số lượng nào được lưu trữ và có thể sửa trực tiếp.
  2. Phiếu đã ghi sổ là bất biến. Các điều chỉnh sai sót là các phát sinh adjust mới, tham chiếu đến phát sinh gốc.
  3. Một lượt phát (issue) yêu cầu học viên có trạng thái Đang học, Học thử hoặc Bảo lưu (PRD 02); học viên đã nghỉ học không thể nhận mặt hàng.
  4. Một lượt phát có tính phí tạo ra chính xác một dòng tài chính; việc xoá dòng đó bị chặn khi phát sinh vẫn còn tồn tại, và một lượt trả lại sẽ đánh dấu dòng đó thay vì xoá.
  5. Các điều chỉnh vượt ngưỡng (có thể cấu hình theo từng trung tâm, mặc định 10 đơn vị hoặc 2.000.000 VND) cần được phê duyệt bởi branch_manager hoặc owner.
  6. Tồn kho âm không bao giờ được phép; API sẽ từ chối với lỗi INSUFFICIENT_STOCK.
  7. Giá vốn chỉ hiển thị cho owner và accountant.
  8. Phiếu được đánh số theo từng trung tâm, theo từng tháng; được phép có khoảng trống trong dãy số (do bản nháp bị huỷ).

6Mô hình dữ liệu

Thực thểTrườngKiểu dữ liệuGhi chú
inventory_itemiduuidPK
tenant_idint64= school_id
skutextunique (tenant_id, sku)
nametext
category_iduuidFK inventory_category
unittext
sale_pricenumeric(14,0)VND
cost_pricenumeric(14,0)
reorder_levelint
chargeable_defaultbool
course_idsuuid[]FK course (PRD 03)
is_active, created_at, updated_at
inventory_categoryiduuid
tenant_idint64
nametextunique per tenant
positionint
inventory_documentiduuid
tenant_idint64
codetextNK/XK/CK/DC-YYYYMM-####
typeenum in|issue|transfer|adjust|return
branch_iduuidFK branch (PRD 10); đối với phiếu chuyển kho là chi nhánh nguồn (from)
to_branch_iduuid nullchỉ dùng cho phiếu chuyển kho
statusenum draft|pending|posted|cancelled
reference, notetext
approved_by, approved_atcó thể null
created_by, posted_at
inventory_movementiduuid
document_iduuidFK
item_iduuidFK
branch_iduuidchi nhánh có tồn kho bị thay đổi
quantityintcó dấu; in/transfer_in/return(new) > 0; issue/transfer_out/adjust(-) < 0
unit_costnumericchỉ dùng cho phiếu nhập kho
student_idint64 nullFK student (issue/return)
class_idint64 nullphát cho lớp
tuition_line_iduuid nullFK dòng tài chính khi có tính phí
conditionenum new|damaged nulldùng cho trả lại
reason, created_by, created_at

Chỉ mục: (tenant_id, branch_id, item_id) trên bảng movement để tính tổng tồn kho; có thể dùng một materialized view inventory_onhand được làm mới mỗi khi có ghi mới.

7Hợp đồng API

Tất cả endpoint đều là NEW (mới). Tiền tố /v3/school/inventory; header xác thực giống các endpoint /v3 hiện có (Auth Token); X-Locale được tôn trọng cho nhãn hiển thị. Response sử dụng các envelope DataResponse / ListResponse hiện có kèm Pagination.

MethodPathRequestResponseStatus
GET/v3/school/inventory/itemsq, category_id, is_active, branch_id (thêm on_hand), page, limitdanh sách InventoryItem {..., on_hand, damaged, low_stock}new
POST/v3/school/inventory/items{sku,name,category_id,unit,sale_price,cost_price,reorder_level,chargeable_default,course_ids}InventoryItemnew
PATCH/v3/school/inventory/items/{id}một phầnInventoryItemnew
GET/POST/v3/school/inventory/categories{name}Category[]new
GET/v3/school/inventory/stockbranch_id (bắt buộc trừ khi là owner), q, low_only[{item, on_hand, damaged, value}]new
GET/v3/school/inventory/documentstype, branch_id, from, to, status, pageDocument[] kèm số lượng dòngnew
POST/v3/school/inventory/documents{type, branch_id, to_branch_id?, reference, note, lines:[{item_id, quantity, unit_cost?, reason?, student_id?, class_id?, chargeable?, price?}]}Document kèm movements; 409 INSUFFICIENT_STOCK {item_id, on_hand}new
POST/v3/school/inventory/documents/{id}/approveDocument (pending → posted)new
POST/v3/school/inventory/documents/{id}/cancel{reason}chỉ áp dụng cho draft/pendingnew
POST/v3/school/inventory/issue{branch_id, student_id | class_id, item_id, quantity, chargeable, price?, exclude_student_ids?}{document, movements[], tuition_line_ids[]}new
POST/v3/school/inventory/movements/{id}/return{condition, note}Movementnew
GET/v3/school/inventory/movementsbranch_id, item_id, student_id, type, from, to, pageMovement[]new
GET/v3/school/students/{id}/materialsMovement[] kết hợp với trạng thái dòng học phínew
GET/v3/school/inventory/exportcùng bộ lọc như stock hoặc movements, format=csvtệpnew

Các endpoint hiện có được tái sử dụng: GET /v3/teacher/school-finance/students và /v3/teacher/students/quick-search cho ô chọn học viên; GET /v3/teacher/classes cho ô chọn lớp; việc tạo dòng tài chính đi qua endpoint học phí của PRD 05 (POST /v3/teacher/school-finance/tuitions, EXISTING) với title = item name cho đến khi có một dòng chi tiết (line item) có kiểu riêng.

8Phân quyền

Mã quyềnownerbranch_manageraccountantacademic_adminadmissionsteacher
inventory.viewcócócócókhôngtheo lớp
inventory.manage (danh mục, nhập kho, điều chỉnh, chuyển kho)cócócókhôngkhôngkhông
inventory.issuecócócócókhôngkhông
inventory.approvecócókhôngkhôngkhôngkhông
inventory.override_pricecócócókhôngkhôngkhông
inventory.view_costcókhôngcókhôngkhôngkhông
inventory.exportcócócókhôngkhôngkhông

Phạm vi theo chi nhánh: mọi quyền được đánh giá dựa trên các chi nhánh mà người dùng được gán (PRD 10). Chủ trung tâm mặc định có quyền trên tất cả chi nhánh.

9Sự kiện phân tích

Sự kiệnThuộc tính
inventory_item_createdtenant_id, category, chargeable_default
inventory_document_postedtype, line_count, total_qty, total_value, branch_id
inventory_issuetarget (student|class), item_id, quantity, chargeable, created_finance_line
inventory_issue_blockedreason (insufficient_stock|student_status)
inventory_returncondition
inventory_low_stock_viewedcount
inventory_exportscope, rows

10Trường hợp biên

11Câu hỏi còn mở

Trường Số (truongso.net) · Nội bộ FLYER