Bàn làm việc
Thứ Bảy, 07/03/2026 · Vai trò: Chuyên viên C&B · Phạm vi: FOXAI Việt Nam 🇻🇳 + FOXAI Laos Co., Ltd 🇱🇦 (hợp nhất)
Hợp nhất
🇻🇳 VN
🇱🇦 LA
Tổng nhân sự đang làm việc
1.284
🇻🇳 912 · 🇱🇦 372 · 34 thử việc · 8 tạm hoãn
Việc chờ tôi xử lý
14
4 đơn nghỉ · 7 hợp đồng · 3 chấm công
Cảnh báo tuân thủ
6
▲ 2 mức đỏ (trần OT) · 3 vàng · 1 nhắc nhở
Kỳ lương đang chạy — hai pháp nhân, hai dòng thời gian
một hệ thống · hai bộ luật · hai đồng tiền · một báo cáo hợp nhất
🇻🇳 FOXAI Việt Nam
Kỳ 03/2026 · pack VN-2026.01 · 912 NV · 22 công chuẩn (nghỉ T7+CN)
✓MỞ KỲ
✓THU CÔNG
✓TÍNH THỬ
4SOÁT XÉT
5DUYỆT
6PHÁT HÀNH
7CHI TRẢ
Run 2 (REGULAR + gộp RETRO) chạy 06/03 · net dự kiến 15,71 tỷ ₫ · 12 NV lệch >30% cần giải trình
Gồm truy lĩnh hồi tố QĐ-2026/031: 6.000.000 ₫ (P.T.Hằng, 22→25tr từ 01/01, QĐ nhập 05/03) · chốt công 25/03 · chi trả 05/04
🇱🇦 FOXAI Laos Co., Ltd
Kỳ 03/2026 · pack LA-2024.10 · 372 NV · 26 công chuẩn (chỉ nghỉ CN)
✓MỞ KỲ
2THU CÔNG
3TÍNH THỬ
4SOÁT XÉT
5DUYỆT
6PHÁT HÀNH
7CHI TRẢ
Net dự kiến 2,84 tỷ ₭ · bắt buộc chi bằng LAK · tỷ giá 1 ₭ = 1,15 ₫ đóng băng vào snapshot 25/03 (COMMERCIAL_BANK · BCEL)
Đang chờ dữ liệu máy chấm công nhà máy Vientiane · § LA-2026.07 DRAFT — chờ xác minh văn bản gốc
Việc của tôi
14 chờ xử lý
hàng đợi theo vai C&B
4Đơn nghỉ chờ duyệt
Đặng Minh Tú — Phép năm 2 ngày, 12–13/03 (Th5–Th6) · quỹ còn 11 → 9
Hoàng Thị Ngọc — Nghỉ kết hôn 3 ngày, 23–25/03 · nguyên lương, không trừ quỹ phép
Bounmy Keo 🇱🇦 — Nghỉ ốm 3 ngày, 05–07/03 · 📎 giấy bác sĩ (bắt buộc) · quỹ ốm LA 30 ngày/năm
Somchai Vongsa 🇱🇦 — Phép năm 1 ngày, 16/03 · quỹ LA 15 ngày, còn 12
7Hợp đồng & biến động
Lê Văn Hùng — HĐ xác định thời hạn lần 2 hết hạn 31/03 → lần ký tiếp bắt buộc HĐ vô thời hạn
Ngô Thị Lan Anh — hết thử việc 60 ngày vào 10/04 · lương thử việc 13.600.000 ₫ (85% × 16tr) · cần đánh giá chuyển chính thức
Phan Văn Đức — nghỉ việc 20/03 → wizard offboarding · thanh toán 4,5 ngày phép chưa dùng (encash)
+ 4 HĐ tuyển mới đợt 02/2026 đang chờ ký số (tích hợp CA)
3Exception chấm côngBLOCKING — chặn chốt kỳ
Trần Quốc Bảo — MISSING_OUT thứ Ba 10/03 (máy vân tay hỏng) · chờ punch_adjustment có lý do + người duyệt — punch gốc không sửa
2 CN chuyền Bắc Ninh — NO_PUNCH 06/03 · máy mất kết nối 3h12′ (ngưỡng cảnh báo thiết bị: 2 giờ)
Cảnh báo tuân thủ
6
tổng hợp 2 quốc gia
▲
Vượt trần OT tháng — Trần Quốc Bảo: 43,5h / 40h (VN)
Luỹ kế năm 118h/200h · hệ thống chỉ cảnh báo, không tự cắt giờ — con người quyết định
▲
Vượt trần OT tháng — Nguyễn Hữu Phước: 41,5h / 40h (VN)
Cũng nằm trong nhóm 12 NV lệch lương >30% (+38% so kỳ trước, do OT)
◔
HĐ xác định thời hạn lần 2 của Lê Văn Hùng hết hạn 31/03
BLLĐ 2019: chỉ được ký tối đa 2 lần HĐ xác định thời hạn → lần tới bắt buộc vô thời hạn · tạo HĐ mới
◔
GPLĐ của Nguyễn Văn Tùng (VN làm tại Lào) hết hạn 05/2026
Tỷ lệ LĐ nước ngoài pháp nhân Lào: 32/372 = 8,6% — đã dùng 86% hạn ngạch 10%
§
Country pack LA-2026.07 (DRAFT) chờ xác minh văn bản gốc
Ngưỡng miễn thuế TNCN Lào 2.500.000 ₭ — CẦN XÁC MINH VĂN BẢN GỐC trước khi kích hoạt; kỳ 3 vẫn chạy pack LA-2024.10
●
Phép tồn 2025 (carry-over) hết hạn 31/03/2026
47 NV còn tổng 96,5 ngày (P.T.Hằng còn 2,5) · gửi nhắc qua ESS
Tuyển mới 6 tháng gần nhất
VN 82 · LA 31 · *T3 tính đến 07/03
■ 🇻🇳 Việt Nam■ 🇱🇦 Lào
Phân bố nhân sự theo pháp nhân
as-of 07/03/2026
1.284
🇻🇳 FOXAI Việt Nam — 912 (71,0%)
870 chính thức · 34 thử việc · 8 tạm hoãn HĐ
🇱🇦 FOXAI Laos Co., Ltd — 372 (29,0%)
trong đó 32 lao động nước ngoài (8,6% / trần 10%)
Lịch phong toả deploy — kỳ 03/2026
22/03 → 07/04
tự sinh từ payroll_period của mọi tenant
Tháng 3/2026
Tháng 4/2026
■ phong toả
■ 25/03 chốt công
■ 05/04 trả lương
◯ hôm nay 07/03
Quy tắc vàng: không deploy trong 3 ngày trước chốt công (22–25/03), 2 ngày sau trả lương (05–07/04) và trọn tuần chạy lương của tenant Enterprise. Lịch phong toả sinh tự động từ payroll_period — không dựa vào trí nhớ của DevOps.
Trạng thái các phân hệ
bấm để đi tới màn tương ứng
◧ Hồ sơ nhân sự
1.284 hồ sơ · 34 thử việc · 8 tạm hoãn
ổn định▤ Hợp đồng
7 chờ xử lý · Hùng hết hạn 31/03
cần chú ý◔ Chấm công
3 exception BLOCKING — chặn chốt kỳ
3 exception● Nghỉ phép
4 đơn chờ duyệt · carry-over hết hạn 31/03
4 chờ duyệt§ Lương VN
bước 4/7 SOÁT XÉT · 12 lệch >30%
đang soát xét§ Lương LA
bước 2/7 THU CÔNG · pack chờ xác minh
chờ dữ liệu▸ ESS Mobile
1.031/1.284 NV đã kích hoạt (80%)
hoạt động⋮ Danh mục
42 danh mục · 1 lần nhập có 3 dòng lỗi
1 việc nhỏESS Mobile — hai vai, một ứng dụng
Trái: nhân viên (Phạm Thu Hằng) · Phải: quản lý (Vũ Đình Long) · Chuyển ngôn ngữ Việt ⇄ Lào ngay trên khung trái
VI
ລາວ
Chào buổi sáng,
Phạm Thu Hằng
NV2026-0412 · CV Kinh doanh cao cấp · G5
Ca hôm nay — Thứ Bảy 07/03: nghỉ tuần (VN tuần 5 ngày)
Ca kế tiếp: HC 08:00–17:00 · Thứ Hai 09/03
Ca kế tiếp: HC 08:00–17:00 · Thứ Hai 09/03
● Văn phòng HN — cách 34 m / bán kính 200 m ✓
⚠ Bật mock location → chặn punch + ghi SUSPICIOUS_DEVICE
Hôm nay là ngày nghỉ tuần — giờ làm sẽ vào rổ OT 200% và cần đăng ký làm thêm trước
Phiếu lươngđã phát hànhkỳ 03/2026
Thực lĩnh34.508.068 ₫
Tổng thu nhập37.508.409
Bảo hiểm bắt buộc (10,5%)−2.625.000
Thuế TNCN−375.341
Gồm truy lĩnh QĐ-2026/031: +6.000.000 ₫ (lương 22→25tr hồi tố từ 01/01)
TK nhận lươngBIDV ••••6812 hiện
Quỹ phép8,5 ngày
12 cấp đầu năm + 2,5 chuyển từ 2025 − 6 đã dùng (Tết) = 8,5
⚠ 2,5 ngày carry-over hết hạn 31/03 — dùng trước kẻo mất
① Chọn loại
② Chọn ngày
③ Gửi
Thông báo4
§
Phiếu lương kỳ 02/2026 đã phát hành
05/03 · chạm để xem — mỗi lần xem đều ghi nhật ký
05/03 · chạm để xem — mỗi lần xem đều ghi nhật ký
▸
Bạn được uỷ quyền duyệt thay Vũ Đình Long
16–20/03 (anh Long công tác) · tự thu hồi khi hết hạn
16–20/03 (anh Long công tác) · tự thu hồi khi hết hạn
●
QĐ-2026/031 đã áp dụng — truy lĩnh 6.000.000 ₫
sẽ chi cùng kỳ lương 03/2026
sẽ chi cùng kỳ lương 03/2026
✓
Đơn công tác 03–04/03 đã được duyệt
tính công đủ (BUSINESS_TRIP)
tính công đủ (BUSINESS_TRIP)
◀ PHONE 1 — Vì sao punch tin được?
Kiểm bán kính 200 m từ work_location; phát hiện mock location và tốc độ di chuyển bất khả thi
So punched_at_local với received_at — lệch bất thường → cảnh báo chỉnh giờ thiết bị
Punch gốc bất biến: sửa sai giờ = tạo bản ghi điều chỉnh mới, kèm lý do + người duyệt
◀ Giải trình tận gốc trên mobile
Nhân viên tự xem cây tính toán từng bước của phiếu lương — giảm 80% câu hỏi "vì sao lương tôi thế này" gửi C&B
Trace kèm phiên bản pack + biểu thuế đã dùng — tái tạo được mọi kỳ trong quá khứ
ພ Tiếng Lào — không phải "dịch là xong"
Chữ Lào dấu chồng nhiều tầng → line-height +30% so với Latin; font Noto Sans Lao nhúng thẳng vào PDF phiếu lương
Bấm ລາວ ở góc trên để đổi nhãn chính của khung trái
PHONE 2 — MSS duyệt di động ▶
Vuốt phải duyệt / vuốt trái từ chối; quỹ phép hiện ngay trên thẻ — không cần mở màn khác
Uỷ quyền duyệt có thời hạn 16–20/03 cho Hằng, tự thu hồi; mọi hành động ghi audit log
Đơn nghỉ ốm Lào bắt buộc 📎 giấy bác sĩ (quỹ 30 ngày/năm) — khác hẳn VN (BHXH chi trả)
MSS — Quản lý
Vũ Đình Long
NV2021-0077 · Trưởng phòng KD · G7
▸ Uỷ quyền duyệt cho P.T.Hằng 16–20/03 (đi công tác) — tự thu hồi khi hết hạn
Hàng đợi duyệt4 đơn← từ chối · duyệt →
ĐTĐặng Minh TúPhép năm
2 ngày · Th5–Th6 12–13/03 · Kỹ sư PM
Quỹ còn 11/12 → sau duyệt còn 9
HNHoàng Thị NgọcKết hôn
3 ngày · 23–25/03 · CV tuyển dụng
Phép đặc biệt BLLĐ VN: nguyên lương, không trừ quỹ phép năm
BKBounmy KeoỐm 🇱🇦
3 ngày · 05–07/03 · NV kho — FOXAI Laos
📎 giay_bac_si_0503.pdf (bắt buộc) · quỹ ốm LA 30 ngày/năm, đã dùng 2 → còn 25
SVSomchai VongsaPhép năm 🇱🇦
1 ngày · Th2 16/03 · Kế toán tổng hợp — FOXAI Laos
Quỹ LA 15 ngày (luật Lào), còn 12 → 11 · rơi vào kỳ bạn công tác → Hằng sẽ duyệt
Đội của tôi hôm nay07/03
2 nghỉ1 muộn1 thiếu chấm ra
Bounmy Keo — nghỉ ốm (ngày 3/3, đơn đang chờ duyệt ở trên)
Hoàng Thị Ngọc — nghỉ bù (làm sự kiện tuyển dụng CN 01/03)
Somchai Vongsa — vào 08:09 (+9′ · ân hạn 5′ → ghi muộn 9′, không trừ lương)
Trần Quốc Bảo — MISSING_OUT 10/03 (máy hỏng) · tạo điều chỉnh
Trần OT của đội — 03/20262 vượt
Trần Quốc Bảo
43,5/40h
Nguyễn Hữu Phước
41,5/40h
Lê Văn Hùng
40,0/40h — chạm trần
Phạm Thu Hằng
6,5/40h
Luật VN: trần 40h/tháng · 200h/năm — hệ thống cảnh báo ngay khi xếp ca, không đợi tính lương; không tự cắt giờ
Danh mục dùng chung
Một màn hình quản lý dùng chung cho hơn 40 danh mục — đang mở danh mục education_level · mọi thay đổi đều có hiệu lực theo ngày
SEEDED — sinh sẵn khi tạo tenant, khách hàng sửa được
Đủ 10 chức năng chuẩn của màn danh mục ở phần bên dưới
Trình độ đào tạo — 9 mục
| Mã | Tên (vi · lo) | is_trained | Hồ sơ | Hiệu lực | Trạng thái | ||
|---|---|---|---|---|---|---|---|
| ⋮⋮ | UNTRAINED § | Lao động phổ thông (chưa qua ĐT) ແຮງງານທົ່ວໄປ |
✗ chưa qua ĐT | 312 | 01/01/24 → ∞ | đang dùng | ↑↓ |
| ⋮⋮ | PRIMARY § | Sơ cấp nghề ຊັ້ນຕົ້ນ | ✓ đã qua ĐT | 96 | 01/01/24 → ∞ | đang dùng | ↑↓ |
| ⋮⋮ | INTERMEDIATE § | Trung cấp ຊັ້ນກາງ | ✓ đã qua ĐT | 178 | 01/01/24 → ∞ | đang dùng | ↑↓ |
| ⋮⋮ | COLLEGE § | Cao đẳng ອະນຸປະລິນຍາ | ✓ đã qua ĐT | 143 | 01/01/24 → ∞ | đang dùng | ↑↓ |
| ⋮⋮ | BACHELOR § | Đại học ປະລິນຍາຕີ | ✓ đã qua ĐT | 486 | 01/01/24 → ∞ | đang dùng | ↑↓ |
| ⋮⋮ | MASTER § | Thạc sĩ ປະລິນຍາໂທ | ✓ đã qua ĐT | 52 | 01/01/24 → ∞ | đang dùng | ↑↓ |
| ⋮⋮ | DOCTOR § | Tiến sĩ ປະລິນຍາເອກ | ✓ đã qua ĐT | 3 | 01/01/24 → ∞ | đang dùng | ↑↓ |
| ⋮⋮ | CERT_FOXAI | Chứng chỉ nội bộ FOXAI TENANT tự tạo — code sửa được | ✓ đã qua ĐT | 0 | 01/02/26 → ∞ | đang dùng | ✕ |
| ⋮⋮ | SECONDARY_OLD § | Trung học chuyên nghiệp (mã cũ) vô hiệu 12/01/2026 — ẩn khỏi lựa chọn mới | ✓ đã qua ĐT | 14 | 01/01/24 → 12/01/26 | vô hiệu | ⚿ |
‹ 1 › · 9 mục · trang 1/1 · 50 mục/trang · tổng hồ sơ tham chiếu: 1.284 = đúng tổng nhân sự ✓
Kết quả nhập Excel gần nhất — TD_education_level_20260305.xlsx
6 áp dụng · 3 lỗi✓ 6 dòng hợp lệ đã áp dụng (05/03 14:22 · người nhập: Trương Mỹ Linh · MFA ✓)
✕ Dòng 4 — code BACHELOR đã tồn tại · vi phạm UNIQUE (tenant_id, code)
✕ Dòng 7 — thiếu name_i18n.lo · bắt buộc vì tenant có pháp nhân Lào
✕ Dòng 9 — attributes.is_trained = "Có" · phải là TRUE/FALSE
Sửa mục: UNTRAINED
SEEDED · is_systemMã (code)
⚿ Khoá vì is_system = true — công thức đủ điều kiện của ALW_SUBSISTENCE tham chiếu code này
Tên hiển thị (name_i18n)
vi
lo
en
attributes.is_trained
đã qua đào tạo?
§ is_trained = FALSE → quyết định Phụ cấp sinh hoạt Lào (ALW_SUBSISTENCE, tối đa 900.000 ₭ — chỉ cho LĐ phổ thông chưa qua đào tạo). Đang ảnh hưởng 87 NV pháp nhân Lào. Ví dụ Khamphan Sisouk (LA2025-0090): 1.800.000 + 700.000 = 2.500.000 ₭ gross · NSSF 137.500 · net 2.362.500 ₭. Ngưỡng miễn thuế 2.500.000 ₭ theo pack LA-2026.07 DRAFT — CẦN XÁC MINH VĂN BẢN GỐC.
Hiệu lực từ
Đến
sort_order
Bấm Lưu sẽ đóng bản ghi hiện tại và tạo bản ghi hiệu lực mới từ ngày áp dụng — không ghi đè lịch sử; kỳ lương cũ tái tạo đúng như đã tính.
Lịch sử thay đổi
đọc từ audit log — bất biến05/03/2026 14:22
Nhập Excel: 6 dòng cập nhật, 3 dòng lỗi
Trương Mỹ Linh (Kế toán trưởng · MFA ✓)
20/02/2026
Sửa name_lo của MASTER
ປະລິນຍາໂທ້ → ປະລິນຍາໂທ · Trương Mỹ Linh
12/01/2026
Vô hiệu hoá SECONDARY_OLD
14 hồ sơ giữ nguyên tham chiếu · lý do: gộp vào INTERMEDIATE
01/01/2024
Seed bộ chuẩn khi tạo tenant
8 mục SEEDED · phiên bản seed v2024.01
Bốn loại danh mục — ai được sửa gì
| Loại | Ai quản lý | Ai sửa được | Ví dụ |
|---|---|---|---|
| SYSTEM | Nhà cung cấp | Không ai (chỉ đọc) | Quốc gia, tiền tệ, múi giờ |
| STATUTORY | Compliance team | Chỉ compliance | Biểu thuế, quỹ BH, ngày lễ pháp định |
| SEEDED | Sinh sẵn khi tạo tenant | Khách hàng sửa được | Loại HĐ, loại phép, trình độ đào tạo ← màn này |
| TENANT | Khách hàng tự tạo | Khách hàng | Phòng ban, ca làm việc, khoản lương riêng |
Hai quy tắc bất di bất dịch: (1) danh mục đã dùng không được xoá — chỉ is_active = false; (2) code của bản ghi is_system không được sửa — công thức lương tham chiếu theo code.
Thứ tự khởi tạo danh mục — 14 bước
sai thứ tự = gãy khoá ngoại khi seed tenant- SYSTEM: country, currency, locale, timezone, bank
- STATUTORY: country pack (rate_table, contribution_scheme, holiday, working_time_rule, time_bucket)
- tenant → legal_entity
- cost_center, work_location, job_grade
- org_unit_type → org_unit (cây)
- job_family → job_title → position
- employment_type, contract_type, education_level … ← màn này
- rounding_rule → work_shift → shift_pattern
- leave_type → accrual_rule
- lookup_table → pay_component → salary_structure
- role → permission → role_scope
- workflow_definition
- person → identity → employee
- Dữ liệu nghiệp vụ
Ví dụ lỗi thực tế: import position (bước 6) trước khi có org_unit (bước 5) → toàn bộ dòng bị từ chối theo dòng, như khối kết quả nhập Excel bên trái.
Quy trình nhập việc
Mỗi nhân sự mới là một hồ sơ riêng: ứng viên → hợp đồng → chấm công → nghỉ phép → bảo hiểm → kỳ lương đầu tiên
Hồ sơ đang mở
0
chưa hoàn tất đủ 12 bước
Hồ sơ đã hoàn tất
0
đã trả lương kỳ đầu và có lệnh chi
Tiến độ hồ sơ đang chọn
—
bước kế tiếp: chưa chọn hồ sơ
Kỳ lương đang mở
Tháng 3/2026
công chuẩn 22 ngày · pháp nhân Việt Nam
Hồ sơ nhập việc
chọn một dòng để mở 12 bước của hồ sơ đó
| Mã hồ sơ | Nhân sự | Đơn vị | Pháp nhân | Ngày vào làm | Tiến độ | Trạng thái |
|---|
Mười hai bước
Chọn một hồ sơ ở bảng trên để xem 12 bước, hoặc tạo hồ sơ mới.
Vì sao thứ tự các bước không đảo được
phần lớn lỗi vận hành nhân sự đến từ làm sai thứ tự, không phải sai công thức
Hồ sơ trước hợp đồng
Chưa có mã số thuế và số sổ bảo hiểm thì hợp đồng ký xong vẫn không báo tăng được, hồ sơ bảo hiểm sẽ bị trả về.
Hợp đồng trước xếp ca
Xếp ca cho người chưa có hợp đồng hiệu lực nghĩa là để họ làm việc không hợp đồng, rủi ro pháp lý thuộc về doanh nghiệp.
Ngoại lệ trước chốt công
Một ngoại lệ chưa xử lý là cả kỳ chưa chắc chắn. Chốt công khi còn ngoại lệ thì phải sửa bằng truy lĩnh ở kỳ sau.
Chốt công trước tính lương
Bảng lương lấy số công làm đầu vào. Công còn sửa được thì mọi con số lương phía sau đều là tạm.
Tính lương trước duyệt, duyệt trước chi
Người tính không được là người duyệt. Đây là chốt kiểm soát chi mà kiểm toán nội bộ luôn kiểm tra đầu tiên.
Sinh trắc có thể bỏ qua
Đây là bước duy nhất được phép bỏ: người lao động từ chối thì cấp thẻ từ hoặc mã PIN, hồ sơ vẫn đi tiếp bình thường.
Sơ đồ tổ chức
Ba cây song song: tổ chức (org_unit) · báo cáo (reporting_line) · chi phí (cost_center) — truy vấn luôn kèm ngày hiệu lực
◧ Cây tổ chức
▤ Cây báo cáo
▲ Cây chi phí
Headcount hợp nhất
1.284
🇻🇳 912 · 🇱🇦 372
Định biên (headcount_planned)
1.325
lấp đầy 96,9%
Chênh định biên
−43 / +2
1 đơn vị vượt định biên
Đơn vị đang hiệu lực
34
1 phiên bản chờ hiệu lực 01/04
⚠ Vượt định biên — Phòng KD Miền Bắc đang 62/60, vượt +2. Yêu cầu tuyển REQ-2026-018 đã bị khoá; phương án xử lý: nâng định biên lên 66 trong đợt tái cơ cấu hiệu lực 01/04/2026 (QĐ-2026/044).
Cây tổ chức (org_unit)
Mỗi nút: loại đơn vị · headcount thực / định biên — as_of 07/03/2026
Tập đoàn FOXAI GROUP 1.284/1.325
🇻🇳 FOXAI Việt Nam COMPANY 912/940
Văn phòng Tổng Giám đốc DEPARTMENT 18/20
Khối Kinh doanh DIVISION 174/180
Phòng KD Miền Bắc
DEPARTMENT
62/60 ⚠
Tổ KD Dự án TEAM 24/22
Tổ KD Kênh phân phối TEAM 38/38
Phòng KD Miền Nam DEPARTMENT 56/62
Phòng Marketing DEPARTMENT 32/34
Phòng Chăm sóc KH DEPARTMENT 24/24
Khối Sản xuất DIVISION 566/574
Nhà máy Bắc Ninh FACTORY 512/518
Xưởng Lắp ráp WORKSHOP 316/320
Chuyền 1 LINE 104/106
Chuyền 2 LINE 108/108
Chuyền 3 LINE 104/106
Xưởng Hoàn thiện WORKSHOP 148/150
Phòng QA DEPARTMENT 30/30
Phòng Kế hoạch SX DEPARTMENT 18/18
Phòng Bảo trì Thiết bị DEPARTMENT 54/56
Khối Hỗ trợ DIVISION 154/166
Phòng HCNS DEPARTMENT 28/30
Phòng Tài chính Kế toán DEPARTMENT 26/28
Phòng CNTT DEPARTMENT 38/40
Phòng Kho vận DEPARTMENT 62/68
🇱🇦 FOXAI Laos Co., Ltd COMPANY 372/385
Văn phòng điều hành Vientiane DEPARTMENT 14/15
Nhà máy Vientiane FACTORY 317/328
Xưởng Sản xuất 1 WORKSHOP 152/158
Chuyền A LINE 76/79
Chuyền B LINE 76/79
Xưởng Sản xuất 2 WORKSHOP 129/134
Phòng QA-QC DEPARTMENT 22/22
Kế toán & Hành chính DEPARTMENT 14/14
Kho Savannakhet BRANCH 41/42
Chi tiết đơn vị đang chọn
vượt định biênMã đơn vị
OU-VN-KDMB
Tên (name_i18n · vi)
Phòng KD Miền Bắc
Loại đơn vị
DEPARTMENT · cấp 4
Pháp nhân
🇻🇳 FOXAI Việt Nam — duy nhất, không xuyên pháp nhân
Trưởng đơn vị
Vũ Đình Long NV2021-0077
Cost center
CC-210
Địa điểm làm việc
VP Hà Nội — Duy Tân Vùng I · LTTV 5.310.000 ₫
Hiệu lực
01/01/2021 → 31/03/2026
Headcount / định biên
62 / 60 (+2 vượt)
◔ Nút «Xoá» đang bị khoá: đơn vị còn 62 nhân viên. Hệ thống chỉ cho vô hiệu hoá sau khi điều chuyển hết người.
Quy tắc đang thi hành trên sơ đồ
nhật ký kiểm tra gần nhất
⚠
Vượt định biên
Phòng KD Miền Bắc 62/60 (+2) — cảnh báo từ 03/03, khoá yêu cầu tuyển mới của đơn vị.
▤
Tái cơ cấu tạo bản ghi mới
QĐ-2026/044: đổi tên + nâng định biên hiệu lực 01/04/2026 → sinh phiên bản v2, bản v1 đóng 31/03/2026. Không sửa đè lịch sử.
⛔
Chặn vòng lặp cây báo cáo
05/03 14:22 — từ chối lưu quan hệ tạo chu trình Bảo → Hùng → Sơn → Bảo.
◔
Quản lý nghỉ việc phải có người thay
Nếu Lê Văn Hùng không tái ký (HĐ hết hạn 31/03) — thủ tục nghỉ việc sẽ bị chặn tới khi chỉ định tổ trưởng mới cho 108 báo cáo trực tiếp. Phan Văn Đức (nghỉ 20/03) không quản lý ai → không chặn.
✓
Ràng buộc nền tảng
34/34 đơn vị thuộc đúng 1 pháp nhân; 100% truy vấn sơ đồ chạy kèm as_of_date (mặc định hôm nay 07/03/2026).
Đơn vị & Định biên
Danh mục org_unit (hiệu lực theo ngày) + vị trí position — định biên. work_location là nơi giữ vùng lương tối thiểu.
VI
LO
EN
🇱🇦 Hạn ngạch lao động nước ngoài (Lào): FOXAI Laos đang dùng 32/372 = 8,6% trên trần ~10% (37 suất) → còn tuyển được 5 người nước ngoài. Giấy phép lao động của Nguyễn Văn Tùng (LA2024-0055) hết hạn 05/2026 — hệ thống sẽ nhắc trước 30 ngày.
Danh mục đơn vị tổ chức (org_unit)
hiển thị 13/34 đơn vị · truy vấn tại ngày 07/03/2026
Đang hiệu lực
Chờ hiệu lực
Đã đóng
as_of
| Mã | Tên đơn vị (name_i18n) | Loại | Pháp nhân | Trưởng đơn vị | Cost center | Địa điểm · vùng LTTV | Hiệu lực | HC/ĐB |
|---|---|---|---|---|---|---|---|---|
| OU-VN | FOXAI Việt Nam | COMPANY | 🇻🇳 FOXAI Việt Nam | Nguyễn Hải Nam TGĐ |
— | VP Duy Tân, Hà Nội Vùng I | 01/01/2019 → ∞ | 912/940 |
| OU-VN-KD | Khối Kinh doanh | DIVISION | 🇻🇳 FOXAI Việt Nam | Lê Quang Vinh GĐ Kinh doanh |
CC-200 | VP Duy Tân, Hà Nội Vùng I | 01/01/2021 → ∞ | 174/180 |
| OU-VN-KDMB v1 | Phòng KD Miền Bắc | DEPARTMENT | 🇻🇳 FOXAI Việt Nam | Vũ Đình Long NV2021-0077 |
CC-210 | VP Duy Tân, Hà Nội Vùng I · 5.310.000 ₫ | 01/01/2021 → 31/03/2026 đóng theo QĐ-2026/044 | 62/60 ⚠ |
| OU-VN-KDMB v2 | Trung tâm KD Miền Bắc | DEPARTMENT | 🇻🇳 FOXAI Việt Nam | Vũ Đình Long giữ nguyên trưởng ĐV |
CC-210 | VP Duy Tân, Hà Nội Vùng I · 5.310.000 ₫ | 01/04/2026 → ∞ chờ hiệu lực | 62/66 |
| OU-VN-SX | Khối Sản xuất | DIVISION | 🇻🇳 FOXAI Việt Nam | Trần Đức Thắng GĐ Sản xuất |
CC-100 | KCN VSIP Bắc Ninh Vùng II | 01/01/2021 → ∞ | 566/574 |
| OU-VN-NMBN | Nhà máy Bắc Ninh | FACTORY | 🇻🇳 FOXAI Việt Nam | Đỗ Văn Sơn kiêm Quản đốc XLR |
CC-110 | KCN VSIP Bắc Ninh Vùng II · chờ phụ lục | 01/06/2022 → ∞ | 512/518 |
| OU-VN-C2 | Chuyền 2 — Xưởng Lắp ráp | LINE | 🇻🇳 FOXAI Việt Nam | Lê Văn Hùng NV2023-0455 · HĐ hết hạn 31/03 |
CC-110 | KCN VSIP Bắc Ninh Vùng II | 01/06/2022 → ∞ | 108/108 |
| OU-VN-KHOVAN | Phòng Kho vận | DEPARTMENT | 🇻🇳 FOXAI Việt Nam | Bùi Thế Anh TP Kho vận |
CC-300 | Kho Long Biên, Hà Nội Vùng I | 01/01/2020 → ∞ | 62/68 tuyển 4 (1 thay P.V.Đức) |
| OU-LA | FOXAI Laos Co., Ltd | COMPANY | 🇱🇦 FOXAI Laos | Phonesavanh Inthavong GĐ điều hành |
CC-500 | Vientiane Toàn quốc 1 mức · 2.500.000 ₭ | 01/10/2023 → ∞ | 372/385 |
| OU-LA-NMVTE | Nhà máy Vientiane | FACTORY | 🇱🇦 FOXAI Laos | Phonesavanh Inthavong kiêm nhiệm |
CC-510 | Bản Đông Phổ Sỹ, VTE Toàn quốc 1 mức | 01/10/2023 → ∞ | 317/328 |
| OU-LA-XSX1 | Xưởng Sản xuất 1 | WORKSHOP | 🇱🇦 FOXAI Laos | Khamla Phommachanh LA2023-0034 · Trưởng ca |
CC-510 | Bản Đông Phổ Sỹ, VTE Toàn quốc 1 mức | 01/10/2023 → ∞ | 152/158 |
| OU-LA-KTHC | Kế toán & Hành chính VTE | DEPARTMENT | 🇱🇦 FOXAI Laos | Somchai Vongsa LA2024-0112 · FUNCTIONAL → KTT VN |
CC-500 | Vientiane Toàn quốc 1 mức | 01/10/2023 → ∞ | 14/14 |
| OU-LA-KHOSVK | Kho Savannakhet | BRANCH | 🇱🇦 FOXAI Laos | Somphone Chanthavong Trưởng kho |
CC-520 | Savannakhet Toàn quốc 1 mức | 01/02/2024 → ∞ | 41/42 |
| Hợp nhất toàn tập đoàn (34 đơn vị, đếm theo nút gốc mỗi pháp nhân: 912 + 372 · định biên 940 + 385) | 1.284/1.325 | |||||||
Ví dụ trên lưới: «Phòng KD Miền Bắc» đổi tên + nâng định biên từ 01/04/2026 → cùng mã OU-VN-KDMB có 2 bản ghi hiệu lực nối nhau (v1 đóng 31/03/2026, v2 mở 01/04/2026). Báo cáo kỳ lương tháng 3 vẫn in tên cũ; kỳ tháng 4 tự dùng tên mới. Bản ghi đã dùng trong nghiệp vụ không bao giờ bị xoá cứng — chỉ đóng hiệu lực.
◈ work_location giữ vùng lương tối thiểu: VN áp lương tối thiểu vùng theo 4 vùng tại địa điểm làm việc. Pack VN-2026.01 (NĐ 293/2025/NĐ-CP, hiệu lực 01/01/2026) đã công bố Vùng I 5.310.000 ₫ (tăng 350.000 so với NĐ 74/2024); mức vùng II–IV cập nhật khi có phụ lục chính thức. Danh sách địa bàn theo vùng cũng đổi khi có sáp nhập đơn vị hành chính, nên phải lưu ở work_location.minimum_wage_region có hiệu lực theo ngày; Lào toàn quốc một mức 2.500.000 ₭ nên cột vùng hiển thị chung. Chuyển nhân viên giữa 2 địa điểm khác vùng → hệ thống lương tự đối chiếu sàn lương mới.
Vị trí & định biên (position)
6 vị trí trọng yếu đang theo dõi · so khớp headcount_planned với thực tế
| Mã vị trí | Tên vị trí | Đơn vị | Ngạch | Định biên | Đang có | Chênh | Trạng thái |
|---|---|---|---|---|---|---|---|
| POS-KD-CVCC | Chuyên viên KD cao cấp | Phòng KD Miền Bắc | G5 | 12 | 14 | +2 | vượt — khoá tuyển, chờ tái cơ cấu 01/04 |
| POS-SX-TTC | Tổ trưởng chuyền | Xưởng Lắp ráp | G4 | 3 | 3 | 0 | đủ — rủi ro: HĐ L.V.Hùng hết hạn 31/03 |
| POS-KHO-NV | Nhân viên kho | Phòng Kho vận | G2 | 30 | 26 | −4 | đang tuyển 4 · 1 REPLACEMENT (P.V.Đức nghỉ 20/03) |
| POS-LA-KTTH | Kế toán tổng hợp | KT & Hành chính VTE | G5 | 2 | 1 | −1 | REQ-LA-2026-003 · chờ duyệt ngân sách |
| POS-LA-LDPT | LĐ phổ thông (chưa qua đào tạo) | Xưởng Sản xuất 1 VTE | G1 | 60 | 54 | −6 | is_trained = false → PC sinh hoạt 700.000 ₭ |
| POS-HR-TD | Chuyên viên tuyển dụng | Phòng HCNS | G4 | 2 | 2 | 0 | đủ định biên |
| Tổng nhóm theo dõi | 109 | 100 | −11 / +2 | ||||
◔ Vị trí POS-LA-LDPT gắn danh mục education_level.is_trained = false — điều kiện áp phụ cấp sinh hoạt Lào (Khamphan Sisouk LA2025-0090: lương 1.800.000 ₭ + phụ cấp 700.000 ₭ = đúng sàn 2.500.000 ₭). Thiếu danh mục này thì không tính đúng lương Lào.
Danh sách nhân viên
1.284 nhân viên · FOXAI Việt Nam (912) + FOXAI Laos Co., Ltd (372) · dữ liệu tại ngày 07/03/2026
⚠ 7 cảnh báo trong 30 ngày: 3 hợp đồng hết hạn · 2 giấy tờ tùy thân hết hạn · 2 nhân viên đến tuổi nghỉ hưu — xem chi tiết bên dưới
Tổng nhân sự
1.284
🇻🇳 912 · 🇱🇦 372
Thử việc
34
8 tạm hoãn HĐLĐ (VN)
Cảnh báo 30 ngày
7
3 HĐ · 2 giấy tờ · 2 tuổi hưu
LĐ nước ngoài tại Lào
8,6%
32/372 · hạn ngạch 10% — còn 5 suất
Bộ lọc
Cột lương hiển thị theo quyền cấp trường: FULL / RANGE / HIDDEN — bạn đang xem với vai trò HR_SPECIALIST (phạm vi LEGAL_ENTITY, chặn JOB_GRADE_BELOW ≥ G7)
Tất cả · 1.284
● Chính thức · 1.242
◔ Thử việc · 34
◒ Tạm hoãn HĐLĐ · 8
▤ Đã nghỉ việc · 0 hiển thị
Hồ sơ đã nghỉ việc lưu 60 tháng theo thiết lập tenant — không xóa cứng
2 đã chọn
Xuất kèm cột lương sẽ ghi sensitive_access_log (SALARY · EXPORT) và bắt buộc nhập mục đích
| Nhân viên | Pháp nhân | Đơn vị | Chức danh · ngạch | Loại HĐ | Vào làm | Lương ◒ | Trạng thái | Lưu ý | |
|---|---|---|---|---|---|---|---|---|---|
| Hiển thị 14 / 1.284 nhân viên · trang 1/92 · mã NV sinh theo mẫu NV{YY}{####}, không tái sử dụng khi nghỉ việc | |||||||||
⚠ Bảng cảnh báo — trước 30 ngày
Sự kiện ContractExpiringSoon / DocumentExpiringSoon phát cho phân hệ Thông báo
⛔
HĐ xác định thời hạn lần 2 của Lê Văn Hùng (NV2023-0455) hết hạn 31/03/2026 — còn 24 ngày
Đã ký lại 1 lần — theo luật VN, lần ký tiếp theo bắt buộc là HĐ không xác định thời hạn. Hệ thống sẽ chặn tạo HĐ xác định thời hạn lần 3.
▤
Hộ chiếu của Phạm Thu Hằng (NV2026-0412) hết hạn 28/03/2026 — còn 21 ngày
person_document · loại PASSPORT · giấy tờ chính vẫn là CCCD (is_primary) nên không chặn nghiệp vụ, chỉ nhắc gia hạn.
◔
Giấy phép lao động của Nguyễn Văn Tùng (LA2024-0055) hết hạn 15/05/2026 — còn 69 ngày
Ngoài ngưỡng 30 ngày nhưng thuộc diện theo dõi hạn ngạch LĐ nước ngoài tại Lào: 32/372 = 8,6% / trần 10%. GPLĐ hết hạn mà chưa gia hạn → tự động chuyển cảnh báo đỏ + chặn xếp ca.
●
02 nhân viên đến tuổi nghỉ hưu trong quý 3/2026
Tuổi hưu lấy từ thiết lập tenant (mục Nhân sự) — khác nhau giữa VN và Lào theo country pack; danh sách chi tiết chỉ HR_MANAGER xem được.
Hồ sơ nhân viên
Person P-004112 · quan hệ lao động thứ 2 của person này (hồ sơ cũ NV2021-0203, 06/2021–08/2024 — lịch sử nối qua Person, mã cũ không tái sử dụng)
PH
Phạm Thu Hằng CHÍNH THỨC
Quản lý trực tiếp
Vũ Đình Long
NV2021-0077
Vũ Đình Long
NV2021-0077
Cá nhân
Công việc
Lương & phụ cấp
Người phụ thuộc 2
Giấy tờ ⚠ 1
Tài sản cấp phát 2
Học vấn & Chứng chỉ ⚠ 1
Kinh nghiệm 3
Kỹ năng & Ngôn ngữ
Sức khoẻ 🔒
Thông tin cơ bản
✎ NV tự sửa thông tin liên hệ qua phê duyệt · 🔒 trường khoá với NV
Họ và tên
Phạm Thu Hằng
Ngày sinh
••/••/1993
Giới tính
Nữ
Quốc tịch
🇻🇳 Việt Nam
Tình trạng hôn nhân
Đã kết hôn
Email cá nhân ✎
hangpt93@gmail.com
Điện thoại ✎
0912 445 xxx
Dân tộc / Tôn giáo
Kinh · Không
Địa chỉ — 3 loại theo person_address
✎ NV tự sửa qua phê duyệt · mỗi địa chỉ có hiệu lực từ/đến
| Loại | Địa chỉ | Hiệu lực |
|---|---|---|
| THƯỜNG TRÚ | Số 12 ngõ 84 Trần Thái Tông, P. Dịch Vọng, Cầu Giấy, Hà Nội | 01/01/2026 → 9999 |
| TẠM TRÚ | Căn 1208 CT2 Vinhomes Smart City, Nam Từ Liêm, Hà Nội | 01/02/2026 → 9999 |
| LIÊN HỆ | = Địa chỉ tạm trú (is_primary) | 01/02/2026 → 9999 |
Giấy tờ định danh & mã số
Trường @Sensitive — mọi lần xem đầy đủ đều ghi nhật ký truy cập
Số CCCD 🔒
0342••••••89
MST cá nhân
8412557203
Số sổ BHXH (VN bắt buộc)
0119384752
Mã số LSSO
— không áp dụng pháp nhân VN
Trình độ đào tạo
Đại học — Kinh tế · is_trained = true
Chuyên ngành
Quản trị Kinh doanh, ĐH KTQD 2015
ℹ Vì sao trình độ đào tạo là trường bắt buộc với pháp nhân Lào: phụ cấp sinh hoạt tới 900.000 ₭ chỉ áp dụng cho lao động chưa qua đào tạo (cờ is_trained trên danh mục education_level). Thiếu trường này thì lương Lào tính sai — với hồ sơ VN chỉ ở mức "nên có".
Quyền tự phục vụ của nhân viên
✎ Tự sửa qua duyệt
Liên hệ · địa chỉ · người thân · TK ngân hàng
🔒 Không tự sửa
Lương · chức danh · đơn vị · ngày vào làm
Yêu cầu sửa đang chờ duyệt
1 — đổi số điện thoại (gửi 06/03)
⚠ Trường 🔒 chỉ thay đổi được bằng quyết định biến động có phê duyệt — không có nút sửa trực tiếp trên hồ sơ.
Người thân & liên hệ khẩn cấp
Chồng — Nguyễn Đức Anh
0983 220 xxx
Liên hệ khẩn cấp
Chồng (ưu tiên 1) · Mẹ đẻ (ưu tiên 2)
Tài khoản ngân hàng
@Sensitive · MASKED theo quyền
Vietcombank — CN Thăng Long
9704••••2214
Chia lương (split_percent)
100% một tài khoản
Xác minh
✓ verified 02/01/2026
◧ Ba cây độc lập — không trùng nhau trong doanh nghiệp thật: Hằng thuộc Phòng KD Miền Bắc (cây tổ chức), báo cáo trực tiếp cho Vũ Đình Long (cây báo cáo), chi phí lương hạch toán vào CC-210 (cây chi phí).
◧ Cây 1 — Tổ chức
as_of 07/03/2026
FOXAI Việt NamCông ty
Khối Kinh doanhKhối
Phòng KD Miền Bắc62/60
Đơn vị có hiệu lực theo ngày · định biên 62/60 — đang VƯỢT định biên +2 — chờ tái cơ cấu 01/04
● Cây 2 — Báo cáo
reporting_line
Quản lý trực tiếp (SOLID)
Vũ Đình Long — TP. KD
Hiệu lực
01/01/2026 → 9999-12-31
Kiêm nhiệm (DOTTED)
GĐ Kinh doanh — dự án FDI
◔ Ủy quyền đang hiệu lực: nhận quyền duyệt đơn nghỉ của Vũ Đình Long 16–20/03 (đi công tác). Mọi phê duyệt trong thời gian này ghi nhật ký cả hai danh tính: người thực hiện + người ủy quyền.
▲ Cây 3 — Chi phí
cost_center
Trung tâm chi phí
CC-210 · Kinh doanh MB
Phân bổ
100% (không chia dự án)
Sự kiện OrgUnitChanged
→ Payroll cập nhật phân bổ
Thông tin công việc
🔒 Chỉ đổi qua quyết định biến động
Vị trí (position)
CV Kinh doanh cao cấp POS-KD-012
Ngạch bậc 🔒
G5 — dùng cho phân quyền JOB_GRADE_BELOW
Loại hình
Toàn thời gian
Ca làm việc
ADMIN · 08:00–17:00 · nghỉ trưa không lương
Nơi làm việc (work_location)
VP Hà Nội — Duy Tân · Vùng I · LTTV 5.310.000 ₫
Ngày vào làm 🔒
01/01/2026 (tái tuyển — thâm niên cũ 2021–2024 nối qua Person)
work_location mang vùng lương tối thiểu — lương HĐ luôn được đối chiếu sàn LTTV của vùng khi lưu hợp đồng (VN 4 vùng; Lào một mức toàn quốc).
⚠ Biến động hồi tố đang chờ kỳ lương xử lý: QĐ-2026/031 (nhập 05/03/2026) tăng lương 22.000.000 → 25.000.000 hiệu lực 01/01/2026. Kỳ 01 + 02/2026 đã CLOSED → movement đặt triggers_retro=true, retro_from=2026-01-01, phát RetroTriggeredEvent → phân hệ lương tính truy lĩnh 6.000.000 ₫ vào kỳ 3/2026 (= (25.000.000 − 22.000.000) × 2 kỳ).
Hợp đồng hiện hành — HD/2026/018
🔒 NV chỉ xem, không sửa
Loại HĐ
HĐLĐ xác định thời hạn 24 tháng
Hiệu lực
01/01/2026 → 31/12/2027
Kiểu lương
GROSS · VND
Lương HĐ 🔒
25.000.000 ₫/tháng
Lương đóng BH (si_base_amount)
25.000.000 ₫ = lương HĐ
Ký kết
Ký số (E_SIGN) 28/12/2025 · 📎 bản lưu
si_base_amount nhập riêng khi lương đóng bảo hiểm khác lương HĐ (phổ biến ở DN trả 2 bậc) — của Hằng đang bằng lương HĐ: BH bắt buộc NLĐ 10,5% × 25.000.000 = 2.625.000 ₫ khớp phiếu lương kỳ 3/2026.
Phụ cấp theo hợp đồng (contract_allowance)
mỗi khoản có hiệu lực từ/đến riêng
| Khoản (pay_component) | Mức/tháng | Hiệu lực từ | Đến | Thuế/BH |
|---|---|---|---|---|
| Phụ cấp ăn ca ALW_LUNCH | 730.000 | 01/01/2026 | 9999-12-31 | Miễn thuế toàn phần |
| Phụ cấp đi lại ALW_TRANSPORT | 500.000 | 01/01/2026 | 9999-12-31 | Chịu thuế |
| Phụ cấp điện thoại ALW_PHONE | 300.000 | 01/01/2026 | 9999-12-31 | Miễn theo định mức |
| Phụ cấp trách nhiệm ALW_RESPONSIBILITY | 1.000.000 | 01/03/2026 | 9999-12-31 | Chịu thuế · tính đóng BH |
| Tổng phụ cấp đang hiệu lực (03/2026) | 2.530.000 | phân loại thuế/BH do country pack quyết định trên từng pay_component | ||
Lịch sử lương
chuỗi biến động SALARY_CHANGE
05/03/2026 · QĐ-2026/031
25.000.000 ₫ — hồi tố từ 01/01/2026
Duyệt bởi TP. HR → truy lĩnh 6.000.000 ₫ trả kỳ 3/2026. Chấm cam = biến động hồi tố.
01/01/2026 · HD/2026/018
22.000.000 ₫ — tái tuyển dụng
Movement HIRE · person cũ P-004112, employee mới NV2026-0412.
08/2024
Kết thúc quan hệ lao động cũ (NV2021-0203)
Lịch sử giữ nguyên trên Person — không mất khi tái tuyển.
Phiếu lương gần nhất
Kỳ 3/2026 — thu nhập
37.508.409 ₫
BH bắt buộc (10,5%)
− 2.625.000 ₫
Thuế TNCN
− 375.341 ₫
Thực nhận
34.508.068 ₫
Người phụ thuộc đăng ký giảm trừ gia cảnh (person_dependent)
Chỉ áp dụng pháp nhân VN — Lào không có cơ chế giảm trừ người phụ thuộc
| Họ tên | Quan hệ | Năm sinh | MST người phụ thuộc | Giảm trừ từ tháng | Đăng ký | Hồ sơ chứng minh |
|---|---|---|---|---|---|---|
| NKNguyễn Minh Khôicon trai | Con đẻ | 2019 | 8412557203-001 | 01/2026 | registered_at 05/01/2026 | 📎 Giấy khai sinh |
| NGNguyễn Thu Giangcon gái | Con đẻ | 2022 | 8412557203-002 | 01/2026 | registered_at 05/01/2026 | 📎 Giấy khai sinh |
✓ Tổng giảm trừ khi tính thuế kỳ 2026: 15.500.000 (bản thân) + 6.200.000 × 2 (người phụ thuộc) = 27.900.000 ₫/tháng (NQ 110/2025, áp dụng từ kỳ thuế 2026). Khi lưu đăng ký, hệ thống phát sự kiện DependentRegistered → phân hệ Lương tự cập nhật giảm trừ, không nhập tay lần hai.
⚠ Cảnh báo giấy tờ: Hộ chiếu hết hạn 28/03/2026 — còn 21 ngày. Sự kiện DocumentExpiringSoon đã gửi thông báo cho HR + nhân viên ngày 26/02.
Giấy tờ tùy thân (person_document)
Số giấy tờ là trường @Sensitive — hiển thị che, mọi lần xem đều ghi nhật ký
| Loại | Số | Ngày cấp | Nơi cấp | Hết hạn | Tệp | |
|---|---|---|---|---|---|---|
| CCCD is_primary | 0342••••••89 | 15/09/2021 | Cục CS QLHC về TTXH | 14/08/2033 đủ 40 tuổi | 📎 2 mặt | |
| Hộ chiếu | C55•••18 | 28/03/2016 | Cục QL XNC | 28/03/2026 ⚠ | 📎 trang chính | |
| Bằng đại học | QH-15-08842 | 30/06/2015 | ĐH Kinh tế Quốc dân | — | 📎 bản scan |
Giấy phép lao động: không áp dụng — quốc tịch VN làm việc tại pháp nhân VN. (So sánh: Nguyễn Văn Tùng LA2024-0055 làm tại Lào phải có GPLĐ, hết hạn 15/05/2026, thuộc hạn ngạch 10% LĐ nước ngoài.)
Tài sản cấp phát (asset_assignment)
Hỏng / mất → deduction_amount tự sinh dòng khấu trừ vào kỳ lương; khi nghỉ việc phải thu hồi đủ mới đóng được checklist offboarding
| Mã tài sản | Tên | Serial | Giá trị | Ngày cấp | Tình trạng khi giao | Biên bản | Trạng thái |
|---|---|---|---|---|---|---|---|
| FX-LT-0233 | Laptop Dell Latitude 5450 | JX8K2M3 | 21.500.000 | 02/01/2026 | Mới 98% | 📎 BBBG-2026/014 | ĐANG GIỮ |
| FX-DT-0107 | Điện thoại Samsung A56 | R58W7011 | 8.900.000 | 02/01/2026 | Mới 100% | 📎 BBBG-2026/014 | ĐANG GIỮ |
| Tổng giá trị đang giữ | 30.400.000 | nếu mất: khấu trừ theo biên bản định giá, trừ dần vào lương — vào kỳ lương cuối nếu nghỉ việc | |||||
ℹ Ví dụ liên kết lương: Phan Văn Đức (NV2020-0155) nghỉ 20/03 — wizard offboarding chặn bước "chốt lương cuối" tới khi mục thu hồi tài sản hoàn tất hoặc ghi nhận deduction_amount.
Học vấn (person_education)
Trình độ cao nhất quyết định cờ is_trained
| Bậc | Trường / Cơ sở | Chuyên ngành | Thời gian | Xếp loại | Bằng |
|---|---|---|---|---|---|
| ĐẠI HỌC | Đại học Kinh tế Quốc dân | Quản trị Kinh doanh | 2011 – 2015 | Khá | 📎 Bản sao công chứng |
| THPT | THPT Chu Văn An — Hà Nội | — | 2008 – 2011 | Giỏi | 📎 |
✓ Trình độ cao nhất Đại học → education_level.is_trained = TRUE.
Với pháp nhân 🇱🇦 Lào, cờ này quyết định có được hưởng phụ cấp sinh hoạt tối đa 900.000 ₭ hay không —
chỉ lao động phổ thông chưa qua đào tạo mới được hưởng (Thông báo 3534/MLSW).
Xem ví dụ đối chứng: Khamphan Sisouk (LA2025-0090) chưa qua đào tạo → hưởng 700.000 ₭.
Chứng chỉ (person_certificate)
Cảnh báo trước 30 ngày khi sắp hết hạn
| Loại | Tên chứng chỉ | Nơi cấp | Ngày cấp | Hết hạn | Trạng thái | Tệp |
|---|---|---|---|---|---|---|
| Ngoại ngữ | IELTS 7.0 | British Council | 12/03/2024 | 12/03/2026 | CÒN 5 NGÀY | 📎 |
| Chuyên môn | Chứng chỉ Kế toán trưởng | Bộ Tài chính | 20/09/2023 | — | VÔ THỜI HẠN | 📎 |
| An toàn LĐ | Huấn luyện ATVSLĐ nhóm 4 | Trung tâm Kiểm định KV I | 05/01/2026 | 05/01/2028 | CÒN HIỆU LỰC | 📎 |
⚠ 1 chứng chỉ hết hạn trong 30 ngày — cùng cơ chế cảnh báo DocumentExpiringSoon với giấy tờ tuỳ thân và giấy phép lao động. Sự kiện được đẩy sang phân hệ Thông báo, không phải người dùng tự nhớ.
Vì sao học vấn là trường bắt buộc
🇻🇳 Việt Nam
NÊN CÓ
🇱🇦 Lào
BẮT BUỘC
Một engine thiết kế theo tư duy Việt Nam sẽ không bao giờ nghĩ tới việc phụ cấp phụ thuộc trình độ đào tạo.
Đây là lý do education_level phải có thuộc tính is_trained BOOLEAN
ngay từ mô hình dữ liệu, chứ không bổ sung sau.
Đào tạo nội bộ đã tham gia
Ghi nhận các khoá đào tạo nội bộ nhân viên đã tham gia
Kỹ năng đàm phán hợp đồng
11/2025 · 16h
Phòng chống rửa tiền (bắt buộc)
03/2025 · 4h
An toàn thông tin nội bộ
01/2026 · 2h
Kinh nghiệm làm việc trước khi vào FOXAI
Do ứng viên khai lúc tuyển dụng, HR xác minh
08/2018 – 05/2021 · 2 năm 9 tháng
Công ty CP Thương mại Minh Long — Chuyên viên Kinh doanh
Phụ trách kênh đại lý miền Bắc. Lý do nghỉ: thay đổi định hướng ngành. ✓ ĐÃ XÁC MINH
06/2016 – 07/2018 · 2 năm 2 tháng
Công ty TNHH Phân phối Đông Á — Nhân viên Kinh doanh
Bán hàng kênh siêu thị. CHƯA XÁC MINH
09/2015 – 05/2016 · 9 tháng
Tập đoàn Bán lẻ VietMart — Thực tập sinh Kinh doanh
Thực tập tốt nghiệp.
ℹ Tổng kinh nghiệm ngoài FOXAI: 5 năm 8 tháng. Con số này không tính vào thâm niên nội bộ
(dùng cho quỹ phép, trợ cấp thôi việc) — thâm niên chỉ đếm thời gian tại các pháp nhân thuộc tenant,
nối qua person_id khi tái tuyển dụng.
Thâm niên tính lương — nối qua Person
Hồ sơ cũ NV2021-0203
06/2021 → 08/2024
Gián đoạn (không tính)
09/2024 → 12/2025
Hồ sơ hiện tại NV2026-0412
01/01/2026 → nay
Thâm niên cộng dồn
≈ 3,4 năm
✓ FLOOR(3,4 / 5) = 0 → phép năm 12 ngày, chưa có ngày thâm niên.
Nếu gộp Person và Employee làm một thì hồ sơ cũ đã mất, và hệ thống sẽ tính sai cả thâm niên lẫn trợ cấp thôi việc.
Người tham chiếu
Ông Trần Đại Nghĩa — TP KD, Minh Long
0903 xxx xxx
Bà Lê Hồng Vân — HR, Đông Á
0988 xxx xxx
Từ điển năng lực (competency) & Kỹ năng
Danh mục TENANT — dùng cho đánh giá KPI và tìm người cho dự án
ℹ Mức năng lực do quản lý trực tiếp đánh giá tại kỳ review gần nhất (12/2025), không phải nhân viên tự khai.
Ngôn ngữ
Danh mục SYSTEM — ngôn ngữ + mức độ thành thạo
| Ngôn ngữ | Nghe | Nói | Đọc | Viết | Chứng chỉ |
|---|---|---|---|---|---|
| 🇻🇳 Tiếng Việt | Bản ngữ | Bản ngữ | Bản ngữ | Bản ngữ | — |
| 🇬🇧 Tiếng Anh | Tốt | Khá | Tốt | Tốt | IELTS 7.0 |
| 🇱🇦 Tiếng Lào | Cơ bản | Cơ bản | — | — | — |
⚠ Tiếng Lào ở mức cơ bản — cần lưu ý nếu điều chuyển sang pháp nhân 🇱🇦 FOXAI Laos.
Bộ lọc "tìm người biết tiếng Lào" dùng chính bảng này.
Nghĩa vụ quân sự
Tình trạng
Không thuộc diện
🔒 Dữ liệu sức khoẻ là dữ liệu cá nhân NHẠY CẢM theo Luật Bảo vệ dữ liệu cá nhân (Luật 91/2025/QH15, hiệu lực 01/01/2026).
Trường person.health_info chỉ có hai mức hiển thị HIDDEN | FULL — không có mức MASKED,
vì che một phần bệnh án vẫn là tiết lộ. Mọi lần mở đều ghi sensitive_access_log với
data_category = HEALTH kèm mục đích truy cập.
Khám sức khoẻ định kỳ
Chỉ lưu kết luận đủ/không đủ điều kiện — KHÔNG lưu chi tiết bệnh án
| Ngày khám | Cơ sở y tế | Kết luận phân loại | Đủ điều kiện làm việc | Hồ sơ |
|---|---|---|---|---|
| 15/01/2026 | Bệnh viện Đa khoa Medlatec | LOẠI I | ĐỦ | 🔒 |
| 20/01/2025 | Bệnh viện Đa khoa Medlatec | LOẠI I | ĐỦ | 🔒 |
ℹ Doanh nghiệp chỉ cần biết đủ hay không đủ điều kiện làm việc để bố trí công việc.
Chi tiết chẩn đoán thuộc về cơ sở y tế — hệ thống HRM chỉ lưu tệp đã mã hoá và kết luận phân loại.
Thông tin y tế cần cho xử lý khẩn cấp
Nhân viên tự khai, có thể từ chối — không bắt buộc
Nhóm máu
••
Dị ứng thuốc
••••
Bệnh nền cần lưu ý
Nhân viên chọn không khai
Bảo hiểm sức khoẻ tự nguyện
PVI Care — hạn 31/12/2026
Ai được xem mục này
| Vai trò | person.health_info |
|---|---|
| Nhân viên (chính chủ) | FULL |
| Cán bộ y tế / An toàn LĐ | FULL |
| Trưởng phòng Nhân sự | FULL — có ghi log |
| Quản lý trực tiếp | HIDDEN |
| Chuyên viên C&B | HIDDEN |
| Quản trị hệ thống | HIDDEN |
⚠ Bạn đang đăng nhập với vai Chuyên viên C&B → mặc định HIDDEN.
Nút "yêu cầu xem" gửi yêu cầu tới Trưởng phòng Nhân sự kèm lý do, không mở trực tiếp.
Quyền của cá nhân theo Luật 91/2025
Được biết dữ liệu nào đang lưu
✓
Rút lại đồng ý khai báo y tế
✓
Yêu cầu xoá sau khi nghỉ việc
✓
Xem nhật ký ai đã truy cập
✓
✓ Khi nhân viên yêu cầu xoá, hệ thống ẩn danh hoá chứ không xoá cứng —
dữ liệu kế toán bắt buộc lưu trữ vẫn phải giữ.
Thêm nhân viên
Tái tuyển dụng — Lê Thị Thu Hà · pháp nhân 🇻🇳 FOXAI Việt Nam · bản nháp tự lưu 09:42
✓
1 · Danh tính
✓
2 · Công việc
3
3 · Hợp đồng & lương
4
4 · Tài khoản
5
5 · Xác nhận
⚠ Phát hiện trùng lặp ở bước 1: CCCD 0381••••••11 + họ tên + ngày sinh khớp person P-003107 · Lê Thị Thu Hà, từng làm 03/2022 → 08/2024 (mã cũ NV2022-0341, đã TERMINATED). Bạn đã chọn TÁI TUYỂN DỤNG: dùng lại Person để nối lịch sử (thâm niên, giấy tờ, quá trình cũ), tạo Employee mới với mã mới NV2026-0518 — mã cũ không tái sử dụng. Nếu chọn "tạo person mới" hệ thống sẽ yêu cầu lý do và ghi audit.
Bước 3 — Hợp đồng & lương
country pack VN-2026.01 kiểm tra ràng buộc ngay khi nhập
VN: tối đa 36 tháng · chỉ được ký lại 1 lần — lần 3 hệ thống tự khóa, bắt buộc chuyển không xác định thời hạn
Người ký lần trước của person này: HĐ XĐTH lần 1 (2022) → lần này vẫn được ký XĐTH (đếm lại từ đầu vì quan hệ lao động cũ đã chấm dứt > 30 ngày)
tháng ×
% lương
probation_rate tối thiểu 85% theo luật VN — nhập < 85 sẽ báo chặn · tái tuyển vị trí cũ: cân nhắc miễn thử việc
GROSSNETTheo giờTheo ngàyKhoán SP
✓ ≥ sàn LTTV Vùng I 5.310.000 ₫ (theo work_location đã chọn ở bước 2: VP Hà Nội) · tiền tệ VND theo pháp nhân
chỉ nhập khi khác lương hợp đồng
Phụ cấp ban đầu (contract_allowance)
| Khoản | Mức/tháng | Hiệu lực từ | |
|---|---|---|---|
| ALW_LUNCH — Phụ cấp ăn ca | 730.000 | 16/03/2026 | |
| ALW_TRANSPORT — Phụ cấp đi lại | 500.000 | 16/03/2026 | |
| Tổng phụ cấp | 1.230.000 | ||
Bước 4 (xem trước) — Tài khoản đăng nhập
tách Person / Identity / Employee
◉ Tạo identity đăng nhập
Email công ty + lời mời kích hoạt (INVITED → ACTIVE). Dành cho nhân viên văn phòng.
Email công ty + lời mời kích hoạt (INVITED → ACTIVE). Dành cho nhân viên văn phòng.
○ Chỉ chấm công: mã NV + PIN
Công nhân không cần email — Employee không cần Identity, chấm kiosk bằng NV2026-0518 + PIN 6 số.
Công nhân không cần email — Employee không cần Identity, chấm kiosk bằng NV2026-0518 + PIN 6 số.
○ Tạo sau
Có thể cấp identity bất kỳ lúc nào; khi nghỉ việc identity chuyển vai trò ALUMNI chứ không xóa.
Có thể cấp identity bất kỳ lúc nào; khi nghỉ việc identity chuyển vai trò ALUMNI chứ không xóa.
Hồ sơ đang tạo
Person
P-003107 (tái sử dụng)
Họ tên
Lê Thị Thu Hà
Ngày sinh · tuổi tại ngày vào làm
02/1994 · 32,1 tuổi ✓ Đủ tuổi lao động
Mã NV mới
NV2026-0518
Đơn vị (bước 2)
Phòng HCNS — VP Hà Nội
Vị trí
CV Hành chính · định biên 2/3
Quản lý trực tiếp
Hoàng Thị Ngọc (NV2024-0310)
Tuổi tại ngày vào làm phải ≥ tuổi lao động tối thiểu theo quốc gia — kiểm tự động từ ngày sinh + ngày hiệu lực HĐ.
Checklist bước 5 sẽ tự sinh
checklist_template ONBOARDING · mốc theo ngày vào làm 16/03
✓
Quyết định tiếp nhận đã duyệt
HR · xong 05/03
IT tạo tài khoản, cấp thiết bị
IT · hạn 14/03 (D−2) · is_blocking — chưa xong không kích hoạt hồ sơ
Ký hợp đồng (E_SIGN)
NLĐ + đại diện DN · hạn 16/03 (D0) · requires_file
Khai báo tăng lao động BHXH
C&B · hạn 21/03 (D+5)
Đào tạo hội nhập & ATLĐ
HR · hạn 19/03 (D+3)
Nhập nhân viên từ Excel
Tệp nhap_nhan_su_T3-2026.xlsx · tải lên 07/03/2026 09:15 bởi Hoàng Thị Ngọc · ghi audit_log theo correlation_id chung cho cả lô
✓
TẢI MẪU✓
TẢI LÊN (248 DÒNG)3
KIỂM TRA THEO DÒNG4
NHẬP VÀO HỆ THỐNGTổng dòng
248
2 pháp nhân: 🇻🇳 201 · 🇱🇦 47
Hợp lệ
236
214 tạo mới · 22 cập nhật theo mã NV
Lỗi — chặn nhập
12
liệt kê theo dòng bên dưới
Cảnh báo — vẫn nhập được
5
vd: thiếu ảnh chân dung (chưa bật chấm khuôn mặt)
12 dòng lỗi — sửa trong file rồi tải lên lại, hoặc nhập trước 236 dòng hợp lệ
| Dòng | Cột | Giá trị | Lý do lỗi | Quy tắc |
|---|---|---|---|---|
| 17 | noi_lam_viec | (trống) | Thiếu địa điểm làm việc → không xác định được vùng lương tối thiểu để đối chiếu sàn lương (VN bắt buộc qua work_location) | Trường bắt buộc |
| 23 | ngay_sinh | 31/13/2001 | Sai định dạng ngày — yêu cầu dd/MM/yyyy, tháng 13 không tồn tại | Định dạng |
| 41 | ma_nv | NV2024-0089 | Trùng mã nhân viên đang hoạt động (Trần Quốc Bảo) — mã phải duy nhất trong tenant, không tái sử dụng | Mã NV duy nhất |
| 58 | ngay_sinh + ngay_vao_lam | 12/09/2011 · 16/03/2026 | Tuổi tại ngày vào làm = 14,5 < tuổi lao động tối thiểu 15 của VN | Tuổi lao động tối thiểu |
| 66 | trinh_do_dao_tao | (trống) | Pháp nhân Lào: trình độ đào tạo bắt buộc — cờ is_trained quyết định phụ cấp sinh hoạt (tới 900.000 ₭ cho LĐ chưa qua đào tạo) | Bắt buộc với pháp nhân Lào |
| 72 | so_cccd | 0381930022 | CCCD 10 ký tự — phải đủ 12 chữ số theo loại giấy tờ CCCD | document_type |
| 89 | so_cccd | 0794••••••31 | Trùng giấy tờ + họ tên + ngày sinh với person P-002845 đã có (nghỉ việc 2023) — cần xác nhận tái tuyển dụng qua wizard, import không tự tạo person trùng | Trùng hồ sơ cá nhân |
| 104 | don_vi | PKD-MT | Mã đơn vị không tồn tại hoặc hết hiệu lực tại ngày vào làm — cây tổ chức truy vấn kèm as_of_date | Đơn vị hiệu lực theo ngày |
| 121 | luong_thoa_thuan | 3.800.000 | Thấp hơn sàn lương tối thiểu Vùng I (5.310.000 ₫) theo work_location "VP Hà Nội" | wage_floor |
| 137 | loai_hd | HĐ thử việc | Pháp nhân Lào không có loại "HĐ thử việc" trong danh mục contract_type (chỉ VN có) — chọn HĐ xác định/không xác định thời hạn | Danh mục loại hợp đồng |
| 165 | gioi_tinh | (trống) | Bắt buộc với pháp nhân Lào — điều kiện hưởng ngày lễ theo giới tính (vd 08/03 chỉ nữ được nghỉ) | Bắt buộc với pháp nhân Lào |
| 202 | tien_te_luong | VND | Pháp nhân Lào bắt buộc trả lương bằng LAK — không nhận tiền tệ khác trên hợp đồng | Tiền tệ theo pháp nhân |
| 12 lỗi / 248 dòng · dòng lỗi không chặn các dòng hợp lệ khác — có thể nhập từng phần | ||||
Nhập xong: 214 hồ sơ mới ở trạng thái HĐ DRAFT — chưa tính lương cho tới khi HĐ ACTIVE.
Hợp đồng lao động
FOXAI Việt Nam + FOXAI Laos Co., Ltd · dữ liệu đến 07/03/2026
HĐ đang hiệu lực
1.284
gồm 34 thử việc · 8 tạm hoãn
Hết hạn trong 30 ngày
7
1 ca bắt buộc chuyển vô thời hạn
Chờ ký (PENDING_SIGN)
3
2 ký số · 1 ký ướt
HĐ lương NET
41
VN 39 · LA 2 — phổ biến khối FDI
⚠ 7 hợp đồng hết hạn ≤ 30 ngày (hệ thống cảnh báo trước 30 ngày). Trong đó Lê Văn Hùng (NV2023-0455) đã ký HĐ xác định thời hạn lần 2 — lần ký tiếp theo bắt buộc là vô thời hạn (VN: tối đa 1 lần ký lại HĐ xác định).
Tất cả
🇻🇳 Việt Nam
🇱🇦 Lào
Sắp hết hạn ≤30 ngày
Có phụ lục
Danh sách hợp đồng
contract_no duy nhất trong tenant · lương hiển thị theo quyền — mọi lần xem đều ghi nhật ký
| Số HĐ | Nhân viên | Loại hợp đồng | Cách trả | Lương HĐ | Lương đóng BH (si_base) | Hiệu lực | Ký kết | Trạng thái |
|---|---|---|---|---|---|---|---|---|
| HĐ-VN/2021-077 | VL Vũ Đình Long NV2021-0077 · TP Kinh doanh · G7 |
🇻🇳 Vô thời hạn | GROSS | 45.000.000 ₫ | = lương HĐ | 01/07/2021 → ∅ | Ký số CA | ACTIVE |
| HĐ-VN/2022-367 | HP Nguyễn Hữu Phước NV2022-0367 · Xưởng may 2 |
🇻🇳 Vô thời hạn | GROSS | 16.500.000 ₫ | 14.000.000 ₫ ≠ lương HĐ | 15/08/2022 → ∅ | Ký ướt | ACTIVE |
| HĐ-VN/2026-0412 | PH Phạm Thu Hằng NV2026-0412 · CV KD cao cấp · G5 |
🇻🇳 Xác định 24 tháng lần 1 | GROSS | 25.000.000 ₫ theo PL-2026/031 (22tr trước 01/01) |
= lương HĐ | 05/01/2026 → 04/01/2028 | Ký điện tử | ACTIVE |
| └ PL-2026/031 | PHỤ LỤC của HĐ-VN/2026-0412 — điều chỉnh lương theo QĐ-2026/031 | 22.000.000 → 25.000.000 ₫ | = lương mới | 01/01/2026 → ∅ | Ký điện tử | hồi tố → truy lĩnh | ||
| HĐ-VN/2023-455-L2 | LH Lê Văn Hùng NV2023-0455 · Tổ trưởng chuyền BN |
🇻🇳 Xác định 12 tháng LẦN 2 | GROSS | 14.000.000 ₫ + PC tổ trưởng 800.000 (contract_allowance) |
= lương HĐ | 01/04/2025 → 31/03/2026 | Ký ướt | còn 24 ngày |
| HĐ-VN/2026-455-KXĐ | LH Lê Văn Hùng HĐ kế tiếp — bắt buộc vô thời hạn |
🇻🇳 Vô thời hạn 🔒 bắt buộc | GROSS | 14.000.000 ₫ + PC tổ trưởng 800.000 (contract_allowance) |
= lương HĐ | 01/04/2026 → ∅ | Ký ướt | PENDING_SIGN |
| HĐ-VN/2025-301 | TL Trương Mỹ Linh NV2025-0301 · Kế toán trưởng |
🇻🇳 Vô thời hạn | NET | 30.000.000 ₫ NET cam kết | gross-up | 01/03/2025 → ∅ | Ký số CA | ACTIVE |
| HĐ-TV/2026-0501 | NL Ngô Thị Lan Anh NV2026-0501 · NV nội dung |
🇻🇳 Thử việc 60 ngày | GROSS | 13.600.000 ₫ = 16.000.000 × 85% (probation_rate) |
— chưa đóng BHXH | 10/02/2026 → 10/04/2026 | Ký điện tử | còn 34 ngày |
| HĐ-VN/2020-155 | PĐ Phan Văn Đức NV2020-0155 · NV kho (thủ kho) |
🇻🇳 Vô thời hạn | GROSS | 13.200.000 ₫ | = lương HĐ | 01/06/2020 → ∅ | Ký ướt | chấm dứt 20/03 → |
| HĐ-LA/2024-112 | SV Somchai Vongsa LA2024-0112 · Kế toán tổng hợp |
🇱🇦 Vô thời hạn | GROSS | 9.800.000 ₭ LAK bắt buộc | 4.500.000 ₭ trần NSSF | 01/10/2024 → ∅ | Ký ướt + scan 📎 | ACTIVE |
| HĐ-LA/2025-090 | KS Khamphan Sisouk LA2025-0090 · LĐ phổ thông — chưa qua đào tạo |
🇱🇦 Xác định 12 tháng | GROSS | 1.800.000 ₭ + PC sinh hoạt 700.000 ₭ (contract_allowance — trình độ chưa qua đào tạo) |
2.500.000 ₭ lương + PC, dưới trần | 01/07/2025 → 30/06/2026 | Ký ướt | ACTIVE |
| HĐ-LA/2024-055 | NT Nguyễn Văn Tùng LA2024-0055 · người VN làm tại Lào |
🇱🇦 Xác định 36 tháng = trần 36 th | GROSS | 26.000.000 ₭ LAK bắt buộc | 4.500.000 ₭ trần NSSF | 01/06/2024 → 31/05/2027 | Ký ướt + scan 📎 | GPLĐ hết 15/05 |
| HĐ-TV/2026-… | LG Lý Gia Hân ứng viên trúng tuyển REQ-2026-011 — chưa cấp mã NV |
🇻🇳 Thử việc 60 ngày | GROSS | 17.000.000 ₫ = 20.000.000 × 85% |
— | 16/03/2026 → 14/05/2026 | chưa gửi | DRAFT ← tuyển dụng |
Luồng ký điện tử — HĐ-VN/2026-455-KXĐ (Lê Văn Hùng)
6 bước từ soạn thảo đến lưu trữ
⚠ Ràng buộc loại hợp đồng: nhân viên đã ký HĐ xác định thời hạn 2 lần (2024→2025, 2025→2026). Khi soạn HĐ kế tiếp, hệ thống khoá cứng loại hợp đồng = Vô thời hạn — HR không chọn được loại khác.
✓Soạn từ mẫu
✓HR duyệt nội dung
3Gửi NLĐ
4NLĐ xem & ký
5Đại diện DN ký
6Lưu trữ + gửi bản sao
Gửi NLĐ lúc
06/03/2026 16:42 — chờ nhân viên mở xem
employee_signed_at / employer_signed_at
— / —
Phương thức
WET — in 2 bản, ký tươi, scan đính kèm 📎
Ký số theo quốc gia
đối chiếu quy định hai nước
🇻🇳 VN — chữ ký số CA / chữ ký điện tử (Luật Giao dịch điện tử)
mặc định E_SIGN
🇱🇦 LA — Luật Chữ ký điện tử 59/NA (17/5/2019) nhưng hệ sinh thái CA còn mỏng
mặc định KÝ ƯỚT + scan
Tích hợp nhà cung cấp CA (VN)
1 nhà cung cấp đã tích hợp
Cảnh báo hợp đồng
quét hằng đêm, nhắc trước 30 ngày
⚠
HĐ Lê Văn Hùng hết hạn 31/03 — còn 24 ngày
Đã ký xác định thời hạn 2 lần → HĐ kế tiếp bắt buộc vô thời hạn (đang PENDING_SIGN)
◔
Thử việc Ngô Thị Lan Anh hết 10/04 — còn 34 ngày
Cần quyết định PROBATION_END trước hạn; quá hạn không quyết định = mặc nhiên tiếp tục
▲
Giấy phép lao động Nguyễn Văn Tùng hết 15/05/2026
Người nước ngoài tại Lào — tỷ lệ LĐ nước ngoài hiện 8,6% / hạn ngạch 10%
●
HĐ Phan Văn Đức chấm dứt 20/03 (TERMINATION)
Wizard nghỉ việc đang chạy — 2 mục chặn chưa xong
Biến động nhân sự
Mọi thay đổi là một SỰ KIỆN có before/after — không UPDATE đè hồ sơ
Tạo quyết định biến động
QĐ-2026/031 · nhập ngày 05/03/2026
PH
Phạm Thu Hằng
NV2026-0412 · CV KD cao cấp · G5 · Phòng KD Miền Bắc
| Trường | Trước | Sau | Chênh |
|---|---|---|---|
| Mức lương GROSS | 22.000.000 ₫ | 25.000.000 ₫ | +13,6% |
| Bậc lương | G5 | G5 | không đổi |
| Vị trí / đơn vị | CV KD cao cấp · P.KD MB | không đổi | — |
| Phụ cấp | giữ nguyên theo HĐ | giữ nguyên | — |
⚠ Hiệu lực 01/01/2026 TRƯỚC hôm nay (07/03/2026) và các kỳ lương 01/2026, 02/2026 đã CLOSED. Khi quyết định được APPROVED, hệ thống sẽ tự đặt triggers_retro = true, retro_from = 01/01/2026 và phát RetroTriggeredEvent → phân hệ lương tự tạo yêu cầu TRUY LĨNH: (25.000.000 − 22.000.000) × 2 kỳ = 6.000.000 ₫, trả gộp vào kỳ 03/2026. Kỳ 03 trở đi tính thẳng theo mức mới. Vì sao ra số này?
●DRAFT
2PENDING
3APPROVED
4APPLIED
Chỉ khi APPLIED hồ sơ nhân viên mới được ghi nhận thay đổi — bản ghi movement giữ nguyên vĩnh viễn để truy vết.
Biến động hàng loạt — tăng lương Phòng KD
1 lệnh → tách thành N quyết định SALARY_CHANGE riêng
| Nhân viên | Lương hiện tại | Mới (+8%) | Chênh / tháng |
|---|---|---|---|
VL Vũ Đình Long NV2021-0077 · TP KD · G7 | 45.000.000 | 48.600.000 | +3.600.000 |
PH Phạm Thu Hằng NV2026-0412 · CV KD cao cấp | 25.000.000 sau QĐ-2026/031 | 27.000.000 | +2.000.000 |
BH Bùi Quang Huy NV2024-0198 · CV KD | 18.000.000 | 19.440.000 | +1.440.000 |
ĐM Đỗ Thị Mai NV2025-0266 · NV KD | 15.500.000 | 16.740.000 | +1.240.000 |
TQ Tạ Minh Quân NV2023-0287 · NV KD | 14.000.000 | 15.120.000 | +1.120.000 |
| Tổng (₫/tháng) | 117.500.000 | 126.900.000 | +9.400.000 |
Quỹ lương tăng thêm
+9.400.000 ₫/tháng
BH phần doanh nghiệp 21,5% (ước trên phần tăng)
+2.021.000 ₫/tháng
Tổng chi phí DN tăng thêm
+11.421.000 ₫/tháng
* Ước tính chưa xét trần BHXH và si_base riêng — ví dụ Nguyễn Hữu Phước (Xưởng may 2) đóng BH trên 14.000.000 ₫ (≠ lương HĐ 16.500.000 ₫) nên phần BH thực tế thấp hơn.
✓ Hiệu lực 01/04/2026 là kỳ tương lai → không phát sinh truy lĩnh (đối chiếu với trường hợp hồi tố ở cột trái). Mỗi người sẽ có 1 quyết định riêng (QĐ-2026/044…048), số QĐ tự sinh theo mẫu cấu hình, đi qua luồng duyệt trước khi APPLIED.
Điều chuyển — QĐ-2026/044 · Đặng Minh Tú (NV2025-0233)
movement_type TRANSFER · hiệu lực 01/04/2026 · KHÔNG hồi tố — hiệu lực tương lai nên không sinh truy lĩnh
| Thuộc tính | before_state (đến 31/03) | after_state (từ 01/04) | Hệ quả dây chuyền |
|---|---|---|---|
| Đơn vị org_unit_id | Phòng Kỹ thuật OU-VN-KT | Nhà máy Bắc Ninh — Tổ Cơ điện OU-VN-BN-CD | Cây 1 đổi · báo cáo đơn vị tháng 4 tính vào Khối SX |
| Vị trí / chức danh position_id | Kỹ sư phần mềm · G5 | Kỹ sư hệ thống sản xuất · G5 giữ ngạch | Định biên đơn vị đích 41/42 → còn 1 suất, không vượt định biên |
| Quản lý trực tiếp reporting_line | Nguyễn Tiến Dũng (TP Kỹ thuật) | Đỗ Văn Sơn (Quản đốc Xưởng) | Cây 2 độc lập cây 1 · đơn nghỉ từ 01/04 chuyển hàng đợi duyệt sang QĐ mới |
| Trung tâm chi phí cost_center_id | CC-200 Kỹ thuật | CC-110 Nhà máy Bắc Ninh | Cây 3 đổi · bút toán lương tháng 4 hạch toán sang CC-110 |
| Địa điểm làm việc work_location_id | VP Duy Tân, Hà Nội Vùng I · 5.310.000 ₫ | KCN VSIP Bắc Ninh Vùng II · chờ kiểm sàn LTTV | Đổi vùng lương tối thiểu — hệ thống kiểm lại sàn LTTV, GPS chấm công đổi toạ độ + bán kính |
| Ca làm việc work_shift_id | ADMIN 08:00–17:00 · tuần 5 ngày | SHIFT_A 06:00–14:00 · mẫu xoay 5-2 | Phát ShiftAssignmentChanged → phân hệ Chấm công tính lại timesheet từ 01/04 |
| Lương & phụ cấp | 32.000.000 ₫ | 32.000.000 ₫ không đổi | Thêm ALW_HAZARD phụ cấp độc hại 800.000 ₫/tháng theo môi trường xưởng |
✓ Vì sao điều chuyển phải là một sự kiện, không phải một lần UPDATE:
bảy thuộc tính trên đổi cùng lúc, cùng ngày hiệu lực, và mỗi thuộc tính lại kéo theo một phân hệ khác.
Nếu sửa đè lên hồ sơ, báo cáo chi phí tháng 3 sẽ bị tính sang CC-110 — sai kỳ.
Bản ghi cũ chỉ được đóng lại tại 31/03, bản mới mở từ 01/04.
ℹ Sự kiện phát ra khi APPROVED:
OrgUnitChanged → Lương & Báo cáo cập nhật phân bổ chi phí ·
ShiftAssignmentChanged → Chấm công tính lại lịch ·
reporting_line mới → hàng đợi duyệt đơn chuyển người ·
không có RetroTriggeredEvent vì hiệu lực nằm ở tương lai.
✓
Kiểm tra trước khi duyệt — 4/4 đạt
Điều chuyển pháp nhân xuyên quốc gia — QĐ-2026/046 · Nguyễn Văn Tùng (LA2024-0055)
movement_type ENTITY_TRANSFER · 🇱🇦 FOXAI Laos → 🇻🇳 FOXAI Việt Nam · hiệu lực 01/05/2026
| Thuộc tính | 🇱🇦 Trước 01/05 | 🇻🇳 Từ 01/05 | Vì sao không thể xử lý như điều chuyển thường |
|---|---|---|---|
| Pháp nhân | FOXAI Laos Co., Ltd | FOXAI Việt Nam | Country pack áp theo pháp nhân, không theo tenant |
| Country pack | LA-2024.10 | VN-2026.01 | Toàn bộ quy tắc thuế, bảo hiểm, lễ, OT đổi sang bộ khác |
| Đồng tiền trả lương | 8.400.000 ₭ | 9.660.000 ₫ | Quy đổi theo tỷ giá NHTM ngày ký · không dùng tỷ giá hợp đồng cũ |
| Quỹ đóng góp | NSSF 5,5% · trần 4.500.000 ₭ | BHXH+BHYT+BHTN 10,5% · trần theo mức tham chiếu | 1 quỹ → 5 quỹ: chốt sổ LSSO rồi mở sổ BHXH mới |
| Tuần làm việc | 48h · 6 ngày · công chuẩn 26 | 40h · 5 ngày · công chuẩn 22 | Kỳ lương tháng 5 phải cắt hai lát nếu chuyển giữa kỳ |
| Phép năm | 15 ngày (LA) | 12 ngày + thâm niên (VN) | Quỹ phép Lào phải chốt và thanh toán trước khi mở quỹ VN |
| Giấy tờ | Giấy phép lao động LA (hết 05/2026) | Không cần GPLĐ — người Việt tại VN | Trả lại quota lao động nước ngoài LA: 32/372 → 31/372 (8,3%) |
⚠ Hồi tố: HẠN CHẾ. Không cho phép đặt ngày hiệu lực trong quá khứ với
ENTITY_TRANSFER: kỳ lương đã chốt ở pháp nhân cũ dùng country pack khác,
tính lại sẽ phải chọn dùng pack nào — câu hỏi không có đáp án đúng.
Muốn sửa thì phải huỷ quyết định và làm lại, có ghi nhật ký.
✓ Một Person — hai Employee. Hệ thống không tạo con người mới:
person_id giữ nguyên, đóng bản ghi employee Lào tại 30/04
và mở bản ghi Việt Nam từ 01/05. Nhờ vậy lịch sử công tác, học vấn, giấy tờ vẫn liền một mạch,
và báo cáo hợp nhất đếm đúng một con người ở cả hai nước.
Biến động gần đây
toàn công ty · 30 ngày
PĐ
TERMINATION — Phan Văn Đức (NV2020-0155) APPROVED
Wizard offboarding đang chạy — còn 2 mục chặn. Hồi tố: hạn chế.
PH
SALARY_CHANGE — Phạm Thu Hằng DRAFT hồi tố 01/01
Kỳ 01+02/2026 đã CLOSED → sẽ tự tạo truy lĩnh 6.000.000 ₫ khi APPROVED.
NL
PROBATION_END — Ngô Thị Lan Anh DRAFT (hệ thống tự tạo)
Sinh tự động từ cảnh báo hết thử việc 10/04 — HR cần xác nhận kết quả đánh giá trước hạn.
12 loại biến động & khả năng hồi tố
quy tắc áp dụng cho từng loại
HIRE ✓PROBATION_END ✓
TRANSFER ✓PROMOTION ✓
SALARY_CHANGE ✓ phổ biến nhất
ALLOWANCE_CHANGE ✓SHIFT_CHANGE ✓
ENTITY_TRANSFER ⚠ hạn chế
SUSPENSION ✓RESUME ✓
TERMINATION ⚠ hạn chế
REHIRE ✓
Quy tắc hồi tố: movement APPROVED có effective_date < hôm nay VÀ rơi vào kỳ lương đã CLOSED → triggers_retro = true + phát RetroTriggeredEvent. ENTITY_TRANSFER xuyên quốc gia (VN↔LA) hồi tố hạn chế vì đổi cả pack pháp quy, tiền tệ và cơ quan bảo hiểm. Thuật toán truy lĩnh chi tiết nằm ở phân hệ Lương.
Nghỉ việc (wizard)
Checklist bắt buộc trước khi chuyển TERMINATED
PĐ
Phan Văn Đức đang nghỉ việc
✓1 · Quyết định chấm dứt
2Bàn giao & thu hồi
3Quyết toán lương cuối
4Chốt sổ & hồ sơ
5TERMINATED
Checklist nghỉ việc — 5/10 hoàn tất
2 mục chặn (is_blocking) · quá hạn sẽ nhắc người phụ trách
✓
Quyết định chấm dứt HĐLĐ đã duyệt
QĐ-2026/039 · duyệt 20/02/2026 bởi TP HCNS 📎
✓
Bàn giao công việc
Người nhận bàn giao: Lương Văn Thắng (NV2022-0140) · biên bản ký 04/03 📎
✕
Thu hồi tài sản cấp phát CHẶN
Còn 1 tài sản chưa trả: laptop Dell Latitude 5440 (TS-VN-0873, cấp 15/06/2023). Phương án thay thế: ghi nhận khấu trừ 1.200.000 ₫ vào kỳ lương cuối (asset_assignment.deduction_amount).
✓
Chốt quỹ phép còn lại
Tồn 4,5 ngày phép chưa dùng → chọn phương án THANH TOÁN vào kỳ lương cuối
✓
Tính trợ cấp thôi việc
= 0 ₫ — toàn bộ thời gian 06/2020→03/2026 đều tham gia BHTN nên không phát sinh trợ cấp thôi việc
Chốt sổ BHXH (VN)
Thực hiện sau ngày làm việc cuối 19/03 · trách nhiệm hoàn tất thủ tục trong 14 ngày sau chấm dứt
Quyết toán thuế TNCN / chứng từ khấu trừ
Cấp chứng từ khấu trừ thuế khi NLĐ yêu cầu — dùng cho quyết toán cuối năm tại nơi mới
Thu hồi quyền truy cập hệ thống
Tự động khoá tài khoản 18:00 ngày 20/03 khi phát sự kiện EmployeeTerminated → Auth
✕
Chuyển giao quyền quản lý CHẶN — ràng buộc cứng
Còn 2 nhân viên báo cáo trực tiếp: Lương Văn Thắng (NV2022-0140), Vũ Thị Hoa (NV2025-0244). Không cho phép chuyển TERMINATED khi chưa chỉ định người quản lý thay.
✓
Cấp giấy xác nhận công tác
NLĐ yêu cầu 05/03 → đã cấp GXN-2026/112 cùng ngày 📎
Kỳ lương cuối — 03/2026 (tạm tính)
Phan Văn Đức · lương ngày = 13.200.000 / 22 công chuẩn VN = 600.000 ₫ (đơn giá tròn đồng)
9.900.000 ₫ trước BH & thuế
Thu nhập
Lương 14 công thực tế (02→19/03)600.000 ₫/công × 14 · công chuẩn VN = 228.400.000
Thanh toán 4,5 ngày phép chưa dùng600.000 ₫/công × 4,52.700.000
Trợ cấp thôi việckhông phát sinh — đóng BHTN liên tục0
Khấu trừ
Khấu trừ tài sản chưa thu hồi (TS-VN-0873)tự sinh từ asset_assignment.deduction_amount−1.200.000
Tạm tính trước BH & thuế9.900.000 ₫
BH bắt buộc NLĐ 10,5% và thuế TNCN sẽ khấu trừ khi chạy bảng lương kỳ 03/2026 — số cuối cùng xem ở phân hệ lương. Vì sao ra số này?
Khi chuyển TERMINATED — sự kiện phát ra
phát tự động sang các phân hệ liên quan
◧
Time — dừng xếp ca từ 20/03
Ca đã xếp sau 19/03 bị gỡ, timesheet chốt đến ngày cuối
▤
Payroll — tính lương cuối kỳ 03/2026
Gồm 14 công + 4,5 phép − khấu trừ tài sản
●
Auth — khoá tài khoản 18:00 20/03
Thu hồi mọi phiên đăng nhập, ESS chỉ còn xem phiếu lương cuối
▲
Asset — chốt hồ sơ cấp phát
TS-VN-0873 chuyển trạng thái theo phương án khấu trừ
⛔ Nút Chuyển TERMINATED đang bị khoá: còn 2 mục chặn (thu hồi tài sản, chỉ định người quản lý thay). Mã nhân viên NV2020-0155 sẽ không được tái sử dụng sau khi nghỉ; nếu quay lại sẽ đi luồng REHIRE trên cùng hồ sơ person.
Tuyển dụng (Kanban)
Yêu cầu tuyển dụng → ứng viên → hồ sơ ứng tuyển
ℹ Tuân thủ dữ liệu cá nhân: mọi ứng viên phải có consent_at (đồng ý xử lý DLCN) trước khi hồ sơ được xử lý; hồ sơ tự động xoá/ẩn danh khi quá retention_until (mặc định 6 tháng sau khi đóng tin). Luật Bảo vệ dữ liệu cá nhân 91/2025/QH15 hiệu lực 01/01/2026 trao quyền yêu cầu xoá dữ liệu cho cá nhân — nút "Xoá theo yêu cầu" có ở từng hồ sơ.
Yêu cầu tuyển dụng đang mở (job_requisition)
SoD: requested_by ≠ approved_by
| Mã | Vị trí · đơn vị | Định biên | Khung ngân sách | Lý do | Hạn tuyển | Trạng thái |
|---|---|---|---|---|---|---|
| REQ-2026-011 | CV Kinh doanh · Phòng KD Miền Bắc | 2 | 18–25 tr ₫ | EXPANSION | 31/03/2026 | OPEN — đã tuyển 1/2 |
| REQ-2026-014 | NV kho (thủ kho) · Kho Hà Nội | 1 | 11–14 tr ₫ | REPLACEMENT | 01/04/2026 | OPEN |
| REQ-LA-2026-003 | NV kho · FOXAI Laos (Vientiane) | 1 | 2,2–3,0 tr ₭ | EXPANSION | 15/04/2026 | CHỜ DUYỆT |
Mới nộp 3
Trần Đức Anh
CV Kinh doanh · REQ-2026-011 · nguồn TopCV
consent ✓ 05/03
Lê Hoài Nam
NV kho · REQ-2026-014 · giới thiệu nội bộ (Lương Văn Thắng)
consent ✓ 06/03
Soudavanh Phimmasone
NV kho Lào · REQ-LA-2026-003 · nộp trực tiếp
⚠ chưa có consent_at — khoá xử lý
Sàng lọc CV 2
Phạm Nhật Quang
CV Kinh doanh · REQ-2026-011
parsed_data từ CV: B2B 4 năm · tiếng Trung HSK5
★ 3,5consent ✓
Đinh Công Tráng
NV kho · REQ-2026-014 · CV giấy scan 📎
consent ✓ (bản giấy có chữ ký)
Phỏng vấn 2
Nguyễn Thu Trang
NV kho · REQ-2026-014
PV 14:00 thứ Ba 10/03 · hội đồng: Vũ Đình Long + Hoàng Thị Ngọc
★ 4,0lịch né 23–25/03
Hà Minh Châu
CV Kinh doanh · REQ-2026-011 · PV vòng 2: 12/03
★ 4,2consent ✓
Đề nghị (Offer) 1
Đoàn Văn Phú
NV kho · REQ-2026-014
offer_amount 12.500.000 ₫ · gửi 05/03 · hạn phản hồi 12/03
trong khung ngân sách ✓SENT
Trúng tuyển (HIRED) 1
Lý Gia Hân
CV Kinh doanh · REQ-2026-011
offer 20.000.000 ₫ · ACCEPTED 04/03 · vào làm dự kiến 16/03
consent ✓HIRED
⚠ Đối chiếu trùng danh tính: tìm thấy 1 person trùng họ tên + ngày sinh — ứng viên cũ năm 2024. Xác nhận gộp hồ sơ person thay vì tạo mới để tránh nhân bản danh tính.
- Tạo person — gộp với hồ sơ 2024 ✓
- Tạo employee (mã tự sinh NV2026-05xx)
- Tạo employment_contract DRAFT — thử việc 60 ngày, 20tr × 85%
- Tạo movement HIRE (hiệu lực 16/03)
- Kích hoạt checklist onboarding
- Sao chép CV, giấy tờ sang hồ sơ nhân sự
Loại 1
Hoàng Văn Sơn
NV kho · REQ-2026-014
rejection_reason: không đạt PV chuyên môn
tự ẩn danh sau 07/09/2026
Chiến dịch & Đề xuất tuyển dụng
Nhu cầu tuyển được duyệt trước khi mở nhận hồ sơ
Ứng viên (kho CV)
Hồ sơ ứng viên và tình trạng đồng ý xử lý dữ liệu cá nhân
Hồ sơ ứng tuyển
Bảng Kanban theo giai đoạn — bấm một thẻ để thao tác
Lịch phỏng vấn
Buổi phỏng vấn của cả tổ chức, xếp theo thời gian
Xếp ca & Lịch làm việc
Tuần 09–15/03/2026 · Nhà máy Bắc Ninh + FOXAI Laos · nguồn xếp: PATTERN / MANUAL / SWAP
⚠ 2 vi phạm tuân thủ phát hiện ngay khi xếp — nghỉ giữa 2 ca < 12h (Trần Quốc Bảo, 12/03) · chuỗi 7 ngày không nghỉ tuần (Lê Văn Hùng, 09–15/03). Hệ thống chặn trước khi vi phạm xảy ra, không đợi đến kỳ tính lương.
Lưới xếp ca tuần 09–15/03/2026
Kéo thả để đổi ca · ô có 🔒 đã khoá theo roster chốt · SHIFT_C ghi vào work_date = ngày BẮT ĐẦU ca
TuầnTháng
A SHIFT_A 06:00–14:00
B SHIFT_B 14:00–22:00
C↦ SHIFT_C 22:00–06:00 (+1 ngày, crosses_midnight)
S⁄S SPLIT_FB ca gãy 09–13 & 16–21
HC Hành chính 08:00–17:00
· Nghỉ tuần
P Nghỉ phép/ốm đã duyệt
Trần OT luỹ kế tháng 3/2026 — kiểm khi xếp ca
VN: 40h/tháng · LA: 45h/tháng
▲ Bảo đã vượt trần OT tháng VN (40h) — hệ thống chặn xếp thêm ca có OT cho Bảo trong tháng 3. Trần năm VN: 200h (300h ngành đặc thù). Vượt trần chỉ CẢNH BÁO ở bước tính, không tự cắt giờ.
◔ Trần OT tháng của Lào đang cấu hình 45h — CẦN XÁC MINH VĂN BẢN GỐC (V-03): một số nguồn ghi 30h. Phải đối chiếu Luật Lao động 43/NA bản gốc trước khi chốt cấu hình country pack.
Mẫu xoay ca (shift_pattern)
Áp cho nhóm — nguồn ô = PATTERN
5-2 · 5 làm 2 nghỉ (T7+CN) — khối văn phòng VN
6-1 · 6 làm 1 nghỉ (CN) — sản xuất Lào, tuần chuẩn 48h
2-2-3 · xoay 3 kíp 24/7 (A→B→C) — chuyền Bắc Ninh
Hàng đợi đổi ca chờ duyệt
shift_swap_request · nguồn ô sau duyệt = SWAP
Trần Quốc Bảo ⇄ Lê Văn Hùng — thứ Sáu 13/03
⚠ Nếu duyệt: Bảo nhận SHIFT_A 13/03 sau SHIFT_B 12/03 (giả định) — hệ thống sẽ kiểm lại quy tắc nghỉ 12h TRƯỚC khi ghi vào roster.
Khamla Phommachanh — xin đổi tự do ca 14/03 (target trống)
Bảng chấm công tháng 3/2026
01–31/03/2026 · VN nghỉ T7+CN → công chuẩn 22 · Lào chỉ nghỉ CN → công chuẩn 26 · hôm nay 07/03 · từ 08/03 trở đi là công dự kiến theo lịch đã xếp
Pipeline dữ liệu chấm công — 7 bước
chạy gần nhất 07/03 05:30
1RAW INGESTION
2NORMALIZE
3PAIR
4RESOLVE SHIFT
5ADJUST
6BUCKET
7AGGREGATE
Bước [1] append-only BẤT BIẾN · bước [3] ghép punch lấy roster làm mỏ neo — khi không chắc chắn KHÔNG đoán, tạo exception · bước [6] đang chờ xử lý 3 exception BLOCKING trước khi phân rổ chốt.
Ma trận công 10 nhân sự × 31 ngày
bấm ô đỏ ! để mở chi tiết punch ngày · ✓ đủ công · +n giờ OT · ▲ phút đi muộn
✓ đủ công
+2 OT (giờ)
▲12 đi muộn (phút, sau grace 5')
P nghỉ có phép · KH nghỉ kết hôn
L nghỉ lễ theo điều kiện cá nhân
! exception chờ xử lý
· nghỉ tuần · — ngoài quan hệ lao động
🇱🇦 08/03 — lễ theo GIỚI TÍNH: Khamla (nữ, Lào) được nghỉ lễ 08/03; nam đồng nghiệp Somchai, Bounmy KHÔNG. IS_PUBLIC_HOLIDAY() lọc theo điều kiện cá nhân. Năm 2026 lễ 08/03 trùng CN — nữ Lào được NGHỈ BÙ T2 09/03, ô ngày 9 ghi L nghỉ bù có lương.
✚ Bounmy Keo ốm 09–11/03 có giấy bác sĩ — quỹ ốm Lào 30 ngày/năm: đã dùng 2, đơn này 3 → còn 25. Ngày 10/03 máy vẫn ghi 1 punch của Bounmy → exception WORKED_ON_LEAVE (WARNING) chờ giải trình.
! Trần Quốc Bảo 10/03 MISSING_OUT (máy ZK-BN-02 mất kết nối) — ngày treo, KHÔNG tự suy diễn giờ ra. Công tạm tính 0, sẽ hồi lại khi điều chỉnh được duyệt → xem màn Chi tiết chấm công ngày.
Chi tiết chấm công ngày
Trần Quốc Bảo · NV2024-0089 · CN bậc 4, chuyền Bắc Ninh · thứ Ba 10/03/2026 · ca xếp: SHIFT_A 06:00–14:00 (nghỉ giữa ca 12:00–12:30 không lương)
① Punch thô — punch_raw (dữ liệu gốc, BẤT BIẾN)
append-only · dữ liệu gốc không bao giờ sửa/xoá — chỉ THÊM bản ghi điều chỉnh
| # | Giờ thiết bị | UTC | Hướng | Nguồn | Thiết bị | verify_mode | Trạng thái |
|---|---|---|---|---|---|---|---|
| 1 | 06:02:11 | 09/03 23:02:11Z | IN | DEVICE | ZK-BN-02 | FINGERPRINT | PROCESSED |
| 2 | 11:58:04 | 10/03 04:58:04Z | OUT | DEVICE | ZK-BN-02 | FINGERPRINT | PROCESSED |
| 3 | 12:29:37 | 10/03 05:29:37Z | IN | DEVICE | ZK-BN-02 | FINGERPRINT | PROCESSED |
| 4 | — thiếu — | — | OUT? | Máy ZK-BN-02 mất kết nối 11:05–14:20 — không nhận được punch ra cuối ca | MISSING_OUT | ||
◈ Dữ liệu gốc: bảng trên là sự thật gốc, khoá ghi vĩnh viễn (append-only, partition theo punched_at_utc). Thuật toán ghép punch lấy ca SHIFT_A làm mỏ neo: cửa sổ tìm punch = 02:00–20:00 (lookback 4h / lookahead 6h). Thiếu OUT → KHÔNG suy diễn, không ghép bừa với punch ngày hôm sau (tránh tính thành 24h) — treo exception cho con người quyết.
② Ba giá trị thời gian song song — punch_pair
rounding_rule: NEAREST 15' · grace vào 5' · use_rounded_for_ot = true
| Cặp / mốc | ① actual (thực) | ② rounded (tính lương) | ③ effective (xét quy tắc) |
|---|---|---|---|
| IN sáng | 06:02:11 | 06:00 | 06:00 |
| OUT trưa | 11:58:04 | 12:00 | 12:00 |
| IN chiều | 12:29:37 | 12:30 | 12:30 |
| OUT cuối ca | thiếu | chờ điều chỉnh | chờ điều chỉnh |
Đi muộn? IN thực 06:02 = trễ 2' — trong grace 5'KHÔNG ghi đi muộn (grace chỉ phục vụ kỷ luật chuyên cần)
Trả lương theo giá trị nào?② rounded — NEAREST trung tính, không bất lợi NLĐ
Xét OT / nghỉ giữa 2 ca theo giá trị nào?③ effective (doanh nghiệp CHỌN được, tách khỏi ②)
◈ Làm tròn ≠ ân hạn (grace). Làm tròn quyết định SỐ GIỜ ĐƯỢC TRẢ (rủi ro pháp lý cao nếu bất lợi NLĐ); grace chỉ quyết định CÓ BỊ GHI ĐI MUỘN. Khuyến nghị an toàn nhất: trả lương từng phút thực tế, grace chỉ dùng cho chuyên cần — hệ thống cảnh báo nếu khách bật làm tròn hướng UP ở punch IN.
③ Phiếu điều chỉnh — punch_adjustment
ADD punch OUT · KHÔNG đụng vào punch_raw
Loại điều chỉnhADD (thêm punch thiếu)
Hướng · thời điểm đề xuấtOUT · 10/03/2026 14:00
Bằng chứng đính kèm📎 bien-ban-su-co-ZKBN02_1003.pdf
Người yêu cầuLê Văn Hùng (tổ trưởng)
Người duyệtVũ Đình Long — TP KD chờ duyệt
Nhật kýmọi thao tác ghi audit log, kể cả từ chối
Sau duyệt: engine đọc punch_raw ∪ punch_adjustment đã duyệt → tập punch hiệu lực; punch gốc vẫn nguyên vẹn. Nếu kỳ công đã LOCKED → tự kích hoạt tính lại + đánh dấu truy lĩnh.
④ Phân rổ giờ của ngày (sau điều chỉnh dự kiến)
Ghép theo segment ca · bucket EXCLUSIVE trước, ADDITIVE sau
| Đoạn cắt | Khớp segment ca | Giờ | Rổ (bucket) |
|---|---|---|---|
| 06:00 → 12:00 | SHIFT_A khúc sáng | 6,0 | REG ×1,0 |
| 12:00 → 12:30 | nghỉ giữa ca (không lương) | 0,0 | — |
| 12:30 → 14:00 | SHIFT_A khúc chiều | 1,5 | REG ×1,0 |
| Tổng ngày 10/03 — work_day_credit = 1,0 công | 7,5 | REG 7,5h · OT 0 · NIGHT 0 | |
◔ Trạng thái hiện tại: ngày treo MISSING_OUT nên chưa phân rổ (REG tạm 0). Bảng trên là kết quả dự kiến nếu điều chỉnh OUT 14:00 được duyệt — hiện lên trước cho người duyệt thấy hệ quả từng giờ.
Ngoại lệ & Chốt công
attendance_exception kỳ 3/2026 · đủ 12 loại theo danh mục chuẩn · quy tắc vàng: không chắc chắn → không đoán, treo cho con người quyết
🔒 Nút chốt bị khoá: ràng buộc cứng — không được chốt timesheet kỳ nếu còn exception BLOCKING chưa xử lý. Hiện còn 3 BLOCKING mở (2 của Trần Quốc Bảo + 1 của Phan Văn Đức). WARNING/INFO không chặn chốt nhưng lưu vết giải trình.
Vòng đời timesheet kỳ
người duyệt bảng công ≠ người chạy tính (SoD)
✓DRAFT
2CALCULATED
3APPROVED
4LOCKED → payroll
CALCULATED → APPROVED chỉ mở khi hết BLOCKING. Sau LOCKED: mọi thay đổi phải qua punch_adjustment có duyệt, tự kích hoạt tính lại và tự đánh dấu truy lĩnh nếu kỳ lương đã đóng. Payroll chỉ đọc TimesheetFact — không bao giờ đọc punch_raw.
Tất cả · 12
BLOCKING · 3
WARNING · 6
INFO · 3
· mỗi loại một dòng phát sinh trong kỳ 3/2026
| exception_type | Severity | Nhân sự · ngày | Chi tiết | Trạng thái | |
|---|---|---|---|---|---|
| MISSING_OUT | BLOCKING | Trần Quốc Bảo · 10/03 | Thiếu chấm ra cuối ca (máy ZK-BN-02 mất kết nối) — phiếu điều chỉnh OUT 14:00 đang chờ duyệt | OPEN | |
| MISSING_IN | BLOCKING | Lê Văn Hùng · 04/03 | Có OUT 22:07 nhưng không có IN — nghi quên chấm khi vào ca B 14:00 | OPEN | |
| NO_PUNCH | BLOCKING | Phan Văn Đức · 06/03 | Có lịch SHIFT_C 22:00–06:00 nhưng không có punch nào trong cửa sổ 18:00→12:00 hôm sau | OPEN | |
| OT_LIMIT_EXCEEDED | WARNING | Trần Quốc Bảo · luỹ kế T3 | OT 43,5h > trần VN 40h/tháng — hệ thống chỉ CẢNH BÁO, không tự cắt giờ (cắt tự động làm sai lương) | OPEN | |
| OT_WITHOUT_APPROVAL | WARNING | Lê Văn Hùng · 05/03 | Ở lại sau ca 2,0h chưa có đăng ký OT được duyệt — giờ tạm treo ngoài rổ OT | OPEN | |
| ORPHAN_PUNCH | WARNING | Somchai Vongsa · 03/03 | Punch 20:14 ngoài mọi segment ca HC 08:00–17:00 (lookahead 6h → nghi OT chưa đăng ký) | EXPLAINED | |
| LOCATION_VIOLATION | WARNING | Nguyễn Văn Tùng · 05/03 | Chấm GPS cách work_location Vientiane 1,8km — vượt bán kính cho phép 300m | OPEN | |
| SUSPICIOUS_DEVICE | WARNING | Phan Văn Đức · 04/03 | Android bật mock location khi chấm mobile — nghi giả mạo GPS, punch giữ nguyên + cờ nghi vấn | OPEN | |
| WORKED_ON_LEAVE | WARNING | Bounmy Keo · 10/03 | Có punch IN 08:44 trong ngày đã duyệt nghỉ ốm (09–11/03) — xung đột nghỉ/làm | OPEN | |
| LATE_IN | INFO | Ngô Thị Lan Anh · 05/03 | IN 08:12 — trễ 12' sau grace 5' → late_minutes=12, không ảnh hưởng giờ được trả | RESOLVED | |
| EARLY_OUT | INFO | Hoàng Thị Ngọc · 06/03 | OUT 16:40 — sớm 20' có xin phép miệng, ghi nhận early_minutes=20 | RESOLVED | |
| DUPLICATE_PUNCH | INFO | Khamla Phommachanh · 02/03 | 2 punch cách 3 giây cùng máy KIOSK-VTE-01 — khử trùng lặp theo dedup_hash, giữ bản ghi đầu | RESOLVED |
Máy chấm công
Device Adapter Layer — mọi thiết bị chuẩn hoá về DevicePunchEvent → Device Gateway → queue → punch_raw
⚠ ZK-BN-02 (xưởng Bắc Ninh) mất kết nối 3h 12' — từ 11:05 hôm nay. Punch được máy đệm cục bộ, agent sẽ đẩy bù khi có mạng (không mất dữ liệu). Đây chính là máy gây MISSING_OUT của Trần Quốc Bảo ngày 10/03.
Thiết bị đang khai báo
3 phương thức kết nối: PUSH (máy tự gửi ADMS) · AGENT (phần mềm tại chỗ pull→đẩy cloud) · IMPORT (file, dự phòng bắt buộc)
| Mã máy | Loại · verify_mode | Vị trí | Kết nối | Trạng thái | Sync cuối | Punch hôm nay |
|---|---|---|---|---|---|---|
| ZK-BN-01 | ZKTeco · FINGERPRINT | Cổng nhà máy Bắc Ninh | PUSH·ADMS | Online | 07/03 14:02 | 312 |
| ZK-BN-02 | ZKTeco · FINGERPRINT | Xưởng chuyền BN | AGENT·LAN | Offline 3h 12' | 07/03 11:05 | 96 (đệm 41) |
| HIK-HN-01 | Hikvision · FACE (score ≥ 0,88) | Sảnh HQ Hà Nội | PUSH·ISAPI | Online | 07/03 14:05 | 207 |
| MOB-GPS | Mobile app · GPS + selfie | Kinh doanh hiện trường | API | Hoạt động | thời gian thực | 78 1 mock |
| KIOSK-VTE-01 | Kiosk · PIN + camera | Nhà máy Vientiane 🇱🇦 | AGENT·LAN | Online | 07/03 13:58 | 241 |
| IMP-XLSX | Import Excel thủ công | — (kênh dự phòng) | IMPORT | Sẵn sàng | 28/02 (kỳ trước) | 0 |
| Tổng punch nhận hôm nay (07/03) — 312+96+207+78+241 = | 934 | |||||
Ánh xạ mã máy ↔ nhân viên — device_employee_mapping
mã trên máy THƯỜNG KHÁC mã nhân viên — thiếu ánh xạ punch thành ORPHAN
| Máy | device_user_no | → Nhân viên | Trạng thái |
|---|---|---|---|
| ZK-BN-02 | 89 | Trần Quốc Bảo NV2024-0089 | Đã map |
| ZK-BN-02 | 455 | Lê Văn Hùng NV2023-0455 | Đã map |
| KIOSK-VTE-01 | 34 | Khamla Phommachanh LA2023-0034 | Đã map |
| ZK-BN-01 | 512 | chưa khớp ai — 6 punch treo employee_id = NULL | ORPHAN |
Đồng bộ 2 chiều: Hệ thống → máy: danh sách NV, vân tay/khuôn mặt, quyền ra vào · Máy → hệ thống: punch, trạng thái, cảnh báo. Nhân sự nghỉ việc (Phan Văn Đức, 20/03) tự động bị thu quyền trên mọi máy từ 21/03.
Chống gian lận chấm công
6 kỹ thuật ↔ biện pháp · 2 cảnh báo đang mở hôm nay
| Kỹ thuật gian lận | Biện pháp của hệ thống |
|---|---|
| Chấm hộ bằng thẻ | Bắt buộc sinh trắc học hoặc chụp ảnh kèm punch |
| Giả mạo GPS (fake location) | Phát hiện mock location Android/iOS + kiểm tốc độ di chuyển bất khả thi |
| Chấm ngoài vùng cho phép | Kiểm bán kính từ work_location (300m) |
| Chỉnh giờ trên thiết bị | So punched_at_local với received_at, cảnh báo lệch bất thường |
| Chấm rồi về ngay | Cảnh báo khi khoảng cách IN–OUT quá ngắn |
| Sửa dữ liệu trong hệ thống | punch_adjustment bắt buộc lý do + người duyệt + audit log |
⚑
Mock location — Phan Văn Đức · 04/03 07:56
App phát hiện isMockLocation=true khi chấm mobile; toạ độ khai cách vị trí ước tính theo tốc độ di chuyển 14km trong 6 phút (bất khả thi). Punch giữ nguyên + cờ SUSPICIOUS_DEVICE, chuyển HR.
◔
IN–OUT cách 3 phút — Phan Văn Đức · 06/03 07:58 → 08:01
Nghi "chấm rồi về ngay" tại ZK-BN-01 — dưới ngưỡng tối thiểu 30'. Ngày này đồng thời NO_PUNCH ca đêm 06/03 → gộp hồ sơ xác minh.
Đăng ký sinh trắc học
Vân tay · Khuôn mặt · Thẻ từ — thu nhận mẫu, đồng bộ xuống máy chấm công, thu hồi khi nghỉ việc
🔒 Dữ liệu sinh trắc học là dữ liệu cá nhân NHẠY CẢM theo Luật Bảo vệ dữ liệu cá nhân
(Luật 91/2025/QH15, hiệu lực 01/01/2026). Hệ thống lưu vector đặc trưng đã mã hoá —
không lưu ảnh vân tay hay ảnh khuôn mặt gốc, và không thể dựng ngược lại ảnh từ vector.
Mỗi lần thu nhận phải có văn bản đồng ý của người lao động; người lao động được quyền
rút lại đồng ý và chuyển sang phương thức chấm công khác bất cứ lúc nào.
Đã đăng ký mẫu
1.147 / 1.284
89,3% nhân sự · 137 người dùng phương thức khác
Chờ đồng bộ xuống máy
23
1 máy mất kết nối 3h — hàng đợi giữ lại
Chất lượng mẫu kém
14
điểm < 60 — nên thu nhận lại
Chờ thu hồi mẫu
3
nhân sự đã nghỉ việc · quá hạn xoá 1 người
Tất cả (1.284)
Chờ đồng bộ (23)
Chất lượng kém (14)
Chưa đăng ký (137)
Chờ thu hồi (3)
Trạng thái đồng bộ theo máy
mẫu phải nằm sẵn TRÊN máy thì mới chấm công được — máy không hỏi server lúc chấm
| Máy chấm công | Vị trí | Mẫu trên máy | Chờ đẩy | Đồng bộ lần cuối | Trạng thái |
|---|---|---|---|---|---|
| D-BN-01 ZKTeco MB460 · vân tay + khuôn mặt |
Cổng chính Xưởng 2 | 512 | 0 | 07/03 09:12 | ĐỒNG BỘ |
| D-BN-02 ZKTeco MB460 · vân tay |
Cửa chuyền A | 498 | 14 | 07/03 06:05 (3h trước) | MẤT KẾT NỐI |
| D-HN-01 Hikvision DS-K1T671 · khuôn mặt |
Sảnh VP Duy Tân | 186 | 9 | 07/03 09:40 | ĐANG ĐẨY |
| D-LA-01 Suprema BioStation · vân tay |
🇱🇦 Nhà máy Vientiane | 341 | 0 | 07/03 08:55 | ĐỒNG BỘ |
| 4 máy · tổng lượt mẫu đã nạp | 1.537 | 23 | 1.537 > 1.147 vì một người được nạp lên nhiều máy | ||
⚠ D-BN-02 mất kết nối 3 giờ — 14 mẫu mới đang nằm trong hàng đợi.
Trong lúc chờ, người mới đăng ký chấm công ở máy này sẽ không nhận diện được,
sinh ngoại lệ NO_PUNCH. Hệ thống tự đẩy lại khi máy trở lại;
không cần ai bấm gì, nhưng có cảnh báo để tổ trưởng biết mà cho chấm bù.
Thu nhận mẫu — Ngô Thị Lan Anh
NV2026-0501 · nhân viên mới, thử việc từ 10/02
✓Đồng ý
2Quét mẫu
3Kiểm chất lượng
4Đẩy xuống máy
Văn bản đồng ý xử lý dữ liệu sinh trắc
✓ đã ký 10/02/2026
Thiết bị thu nhận
D-HN-01 · Hikvision
Loại mẫu
Khuôn mặt + vân tay ngón trỏ phải
Lần quét 3/3 — điểm chất lượng
87 / 100
Lần 1 · 84
Lần 2 · 89
Lần 3 · 87
✓ Điểm ≥ 60 ở cả 3 lần quét → mẫu đạt. Hệ thống lấy vector trung bình làm mẫu chuẩn.
Điểm thấp thường do ngón tay khô, bụi, hoặc ánh sáng ngược — nên thu nhận lại thay vì để nhận diện sai ngoài hiện trường.
Mã trên máy ≠ mã nhân viên
bảng device_employee_mapping
| Nhân viên | Mã hệ thống | Mã trên máy | Máy |
|---|---|---|---|
| Trần Quốc Bảo | NV2024-0089 | 1042 | D-BN-01, D-BN-02 |
| Lê Văn Hùng | NV2023-0455 | 0871 | D-BN-01, D-BN-02 |
| Somchai Vongsa | LA2024-0112 | 2211 | D-LA-01 |
ℹ Máy chấm công chỉ nhận số nguyên ngắn, không nhận mã dạng NV2024-0089.
Thiếu bảng ánh xạ này thì punch về server sẽ thành ORPHAN —
có dữ liệu nhưng không biết của ai.
Thu hồi mẫu khi nghỉ việc
Xoá khỏi từng máy TRƯỚC, xoá trên server SAU — thứ tự này không được đảo
1 QUÁ HẠN
| Nhân viên | Ngày nghỉ | Hạn xoá mẫu | Xoá khỏi máy | Xoá trên server | Trạng thái | |
|---|---|---|---|---|---|---|
PĐ Phan Văn Đức NV2020-0155 |
20/03/2026 | 27/03/2026 | chờ ngày nghỉ | chờ | ĐÃ LÊN LỊCH | |
VT Vương Thị Thanh NV2022-0091 |
28/02/2026 | 07/03/2026 | ✓ 3/3 máy | hôm nay | ĐANG XOÁ | |
HT Hà Minh Thắng NV2021-0044 |
15/01/2026 | 22/01/2026 | ✓ 2/2 máy | chưa xoá | QUÁ HẠN 44 NGÀY |
⚠ Vì sao xoá khỏi máy trước, xoá server sau: nếu xoá bản ghi trên server trước,
hệ thống mất danh sách máy nào đang giữ mẫu của người đó — và mẫu vẫn nằm lại trong
bộ nhớ máy chấm công không ai biết. Người đã nghỉ việc vẫn mở được cửa nhà máy.
Thứ tự này là ràng buộc cứng, không cho cấu hình đảo.
⚠ Hà Minh Thắng quá hạn 44 ngày — mẫu đã xoá khỏi 2 máy nhưng bản ghi server còn.
Đây là vi phạm nguyên tắc lưu trữ tối thiểu của Luật 91/2025:
dữ liệu sinh trắc chỉ được giữ trong thời gian cần thiết cho mục đích thu thập,
mục đích đó chấm dứt khi quan hệ lao động chấm dứt. Cảnh báo này đẩy cho cả
Quản trị hệ thống và Kiểm toán.
Hệ thống lưu gì
Vector đặc trưng (đã mã hoá)
CÓ
Điểm chất lượng, thuật toán, phiên bản
CÓ
Ảnh vân tay gốc
KHÔNG
Ảnh khuôn mặt gốc
KHÔNG
✓ Mã hoá at-rest bằng khoá riêng theo tenant. Lộ cơ sở dữ liệu vẫn không dựng lại được
vân tay của ai, và không dùng chéo được sang tenant khác.
Ai được chạm vào
| Vai trò | Quyền |
|---|---|
| Cán bộ thu nhận mẫu | THU NHẬN |
| Quản trị hệ thống | ĐỒNG BỘ · THU HỒI |
| Kiểm toán | CHỈ XEM NHẬT KÝ |
| Chuyên viên C&B | KHÔNG |
| Quản lý trực tiếp | KHÔNG |
ℹ Không vai trò nào được XUẤT vector ra ngoài — kể cả Quản trị hệ thống.
Muốn dùng ở hệ thống khác thì thu nhận lại, không sao chép.
Quyền của người lao động
Từ chối đăng ký ngay từ đầu
✓
Rút lại đồng ý bất cứ lúc nào
✓
Xem nhật ký ai đã truy cập
✓
Yêu cầu xoá sau khi nghỉ
✓
⚠ Từ chối sinh trắc không được trở thành lý do kỷ luật hay trừ lương.
Hệ thống bắt buộc còn phương thức thay thế: thẻ từ, mã NV + PIN tại kiosk,
hoặc chấm công GPS trên điện thoại — 137 người đang dùng các cách này.
Đơn từ & Duyệt
Hàng chờ phê duyệt của bạn · hôm nay 07/03/2026 08:40 (thứ Bảy) · kỳ công 3/2026 — chốt công ngày 25
◔ Uỷ quyền: Vũ Đình Long đang uỷ quyền duyệt cho bạn 16–20/03 — mọi hành động ghi nhật ký CẢ HAI danh tính.
Phạm vi giới hạn: chỉ leave.request.approve · hiệu lực 16/03 00:00 → 20/03 23:59 · trạng thái: ĐÃ LÊN LỊCH · lý do: công tác Viêng Chăn · xem bảng uỷ quyền ở màn Quy trình duyệt
Đơn chờ duyệt
4
3 chờ bạn · 1 đang ở cấp 2
Quá SLA
1
Bounmy Keo — quá hạn 41h (đơn hồi tố)
Sắp hết SLA (< 12h)
3
Tú còn 9h · Bảo (cấp 2) còn 6h · Ngọc còn 5h
Đã xử lý tháng 3
12
11 duyệt · 1 từ chối (có lý do bắt buộc)
Tất cả (4)
Chờ bạn — cấp 1 (3)
Đang ở cấp 2 (1)
Quá SLA (1)
🇻🇳 FOXAI Việt Nam (3)
🇱🇦 FOXAI Laos (1)
Đơn chờ phê duyệt
Từ chối BẮT BUỘC nhập lý do · mọi quyết định ghi audit log kèm IP & thời điểm
Đặng Minh Tú — Nghỉ phép năm · 2 ngày · 12–13/03/2026 (T5–T6)
ANNUAL Cấp 1/1 ◔ SLA còn 9h
Quỹ ANNUAL 2026 sau đơn này vì sao?
7,5 / 12 ngày — 12 cấp đầu năm − 2,5 đã dùng − 2 đơn này (pending trừ ngay khi gửi)
- ✓ Không trùng lịch nghỉ — nhóm Kỹ thuật PM (6 người) không ai nghỉ 12–13/03
- ✓ Đủ quỹ · min_unit HALF_DAY — đơn trọn ngày hợp lệ
- ✓ Không rơi vào 3 ngày trước chốt công (23–25/03 hạn chế nghỉ)
Lý do: về quê giải quyết việc gia đình. Người bàn giao: Lê Văn Hùng.
Bounmy Keo — Nghỉ ốm · 3 ngày · 09–11/03/2026 (T2–T4)
SICK · LA HỒI TỐ ⚠ QUÁ SLA 41h Cấp 1/1
Quỹ nghỉ ốm Lào 2026 (30 ngày/năm) vì sao?
25 / 30 ngày — 30 theo luật LA − 2 đã dùng − 3 đơn này
- ✓ 📎 giay-chung-nhan-y-te_BV-Mahosot.pdf — loại phép SICK có requires_attachment = true: không đính kèm thì không gửi được đơn
- ✓ Duyệt đơn sẽ tự giải trình 3 exception NO_PUNCH ngày 09–11/03 (liên kết chấm công ↔ nghỉ phép)
- ⚠ paid_by = COMPANY: Lào DN tự trả lương ốm — khác VN nơi BHXH chi trả
Lào làm việc 6 ngày/tuần — 04→06/03 là 3 ngày công (công chuẩn LA = 26). Nhân viên đã đi làm lại sáng nay 07/03 (T7 là ngày làm việc tại Lào).
Hoàng Thị Ngọc — Nghỉ kết hôn · 3 ngày · 23–25/03/2026 (T2–T4)
MARRIAGE Cấp 1/1 ◔ SLA còn 5h
Quỹ áp dụng
Phép chế độ BLLĐ — 3 ngày nguyên lương, KHÔNG trừ quỹ phép năm (is_paid 100%, paid_by COMPANY)
- ✓ min_unit = DAY — chỉ nghỉ trọn ngày, ô «nửa ngày / theo giờ» bị khoá khi tạo đơn
- ✓ Báo trước ≥ 7 ngày: gửi 06/03 cho ngày nghỉ 23/03 (trước 17 ngày) — đạt
- ⚠ Trùng lịch: 23/03 có 1 người khác phòng HCNS đã được duyệt nghỉ — xem lịch nhóm trước khi duyệt
- ⚠ 23–25/03 sát ngày chốt công 25/03 — nhắc C&B kiểm bảng công trước khi khoá
Đính kèm sau: giấy đăng ký kết hôn (bổ sung trong 30 ngày theo quy định nội bộ).
Trần Quốc Bảo — Nghỉ không lương · 5 ngày · 16–20/03/2026 (T2–T6)
UNPAID Cấp 2/2 — đang chờ bạn ◔ SLA còn 6h
✓ Cấp 1 · Lê Văn Hùng (Tổ trưởng chuyền BN) — duyệt 06/03 14:20
2 Cấp 2 · Bạn (ORG_UNIT_HEAD)
Quỹ áp dụng
UNPAID không giới hạn (thoả thuận) — không trừ quỹ; không lương · không tính ngày công · không tính thâm niên
- ✓ 5 ngày < 14 ngày làm việc/tháng → tháng 3 vẫn đóng BHXH bình thường (≥ 14 ngày không lương mới dừng đóng tháng đó)
- ⚠ Roster 16–20/03 đã xếp ca SHIFT_A — duyệt đơn sẽ đổi 5 ngày thành day_off_type = LEAVE
- ✓ Nghỉ 5 ngày làm giảm OT dự kiến — NV này đang vượt trần OT tháng (43,5h / trần 40h)
Lý do: việc gia đình — sửa nhà sau bão. Ghi chú cấp 1 (Lê Văn Hùng): «Chuyền BN đủ người thay ca tuần 16–20/03».
Quỹ phép & Tích luỹ
Danh mục loại phép VN | LA đặt cạnh nhau · sổ cái quỹ phép (leave_balance_txn) — không bao giờ UPDATE thẳng số dư
Loại phép seed sẵn — 🇻🇳 Việt Nam | 🇱🇦 Lào cạnh nhau
Cùng một leave_type.code, tham số khác nhau theo country pack (VN-2026.01 · LA-2024.10)
| code | Loại phép | 🇻🇳 Việt Nam | 🇱🇦 Lào | paid_by | min_unit | Chứng từ |
|---|---|---|---|---|---|---|
| ANNUAL | Nghỉ phép năm | 12 ngày + 1 ngày / 5 năm thâm niên (14–16 ngày nghề nặng nhọc, độc hại) | 15 ngày (18 nếu nghề rủi ro cao) · min_service_months = 12 — đủ 1 năm liên tục mới hưởng | COMPANY | HALF_DAY | — |
| SICK | Nghỉ ốm | BHXH chi trả — DN không trả lương ngày ốm, lập hồ sơ hưởng chế độ | 30 ngày/năm, DN trả, bắt buộc giấy chứng nhận y tế | VN: SOCIAL_INSURANCE LA: COMPANY | DAY | 📎 bắt buộc |
| MATERNITY | Nghỉ thai sản | 6 tháng — BHXH chi trả | 90–105 ngày — chế độ thai sản thuộc quỹ NSSF | SOCIAL_INSURANCE | DAY | 📎 bắt buộc |
| PATERNITY | Nghỉ khi vợ sinh gender = MALE | 5–14 ngày (BHXH chi trả, tuỳ trường hợp sinh) | Theo thoả thuận — không có mức pháp định | VN: SOCIAL_INSURANCE | DAY | 📎 giấy khai sinh |
| MARRIAGE | Nghỉ kết hôn | 3 ngày nguyên lương | Theo thoả thuận | COMPANY | DAY — khoá nửa ngày | 📎 bổ sung 30 ngày |
| BEREAVEMENT | Nghỉ tang | 3 ngày (thân nhân trực hệ) | Theo thoả thuận | COMPANY | DAY | — |
| UNPAID | Nghỉ không lương | Không giới hạn (thoả thuận) · không tính công, không tính thâm niên · VN: ≥ 14 ngày làm việc/tháng → không đóng BHXH tháng đó | is_paid = false | DAY | — | |
| COMPENSATORY | Nghỉ bù | Sinh tự động từ giao dịch ACCRUAL nguồn OT / trực lễ — không cấp đầu năm | COMPANY | HALF_DAY | — | |
| BUSINESS_TRIP | Công tác | Tính công đủ (affects_attendance = true) — không phải nghỉ, khai để khớp exception chấm công ngoài văn phòng | COMPANY | HALF_DAY | — | |
Vì sao paid_by là trường bắt buộc? Ở VN, nghỉ ốm và thai sản do BHXH chi trả — engine lương phải LOẠI các ngày này khỏi SALARY_BY_DAYS (DN không trả) và sinh hồ sơ đề nghị hưởng chế độ nộp cơ quan BHXH. Ở Lào, nghỉ ốm 30 ngày/năm lại do DN tự trả. Thiếu trường này, cùng một đơn nghỉ ốm sẽ tính lương đúng ở nước này và sai ở nước kia.
Vũ Đình Long — sổ cái quỹ phép ANNUAL 2026
NV2021-0077 · Trưởng phòng KD · G7 · vào làm 01/01/2021 → thâm niên 5,2 năm
ANNUAL 2026 = 12 + FLOOR(SENIORITY_YEARS() / 5) = 12 + FLOOR(5,0 / 5) = 12 + 1 = 13 ngày · thâm niên chốt tại ngày cấp 01/01/2026 = tròn 5,0 năm
Đối chiếu cùng công thức: Phạm Thu Hằng tái tuyển dụng — thâm niên NỐI qua Person ≈ 3,4 năm (giai đoạn 06/2021–08/2024 ≈ 3,2 năm + từ 01/01/2026) → FLOOR(3,4/5) = 0 → chỉ 12 ngày. Thêm 1 ngày thâm niên phải chờ mốc tròn 5 năm thâm niên cộng dồn (khoảng giữa 2027).
⚠ 1,5 ngày carry-over 2025 sẽ HẾT HẠN 31/03/2026 (carry_over_expire_month = 3) — còn 24 ngày để dùng. Đã dùng 2 ngày đầu năm được trừ vào carry-over trước (FIFO): 3,5 − 2 = 1,5 còn lại.
| Ngày | Giao dịch | Số ngày | Tham chiếu | Lý do / Ghi chú | Người tạo |
|---|---|---|---|---|---|
| 01/01/2026 | CARRY_OVER | +3,5 | CO-2025 | Chuyển 3,5 ngày dư 2025 (≤ carry_over_max = 5) · hạn dùng 31/03/2026 | Hệ thống |
| 01/01/2026 | ACCRUAL | +13,0 | GRANT-2026 | Cấp đầu năm (method UPFRONT): 12 cơ bản + 1 thâm niên | Hệ thống |
| 15/01/2026 | USE | −1,0 | LV-2026-0089 | Nghỉ phép 15/01 — duyệt cấp 1: Ban Giám đốc | Vũ Đình Long |
| 05/02/2026 | USE | −2,0 | LV-2026-0161 | Nghỉ phép 05–06/02 | Vũ Đình Long |
| 06/02/2026 | CANCEL | +1,0 | LV-2026-0161 | Huỷ ngày 06/02 — đi công tác đột xuất · hoàn quỹ tự động, đơn gốc giữ nguyên vết | Hệ thống |
| 20/02/2026 | ADJUST | +0,5 | ADJ-2026-007 | Bù 0,5 ngày tính thiếu kỳ 12/2025 — lý do bắt buộc, duyệt: Trưởng phòng HR (audit log) | Chuyên viên C&B |
| 31/03/2026 | EXPIRE dự kiến | −1,5 | CO-2025 | Sẽ tự sinh nếu 1,5 ngày carry-over không dùng trước 31/03 | Hệ thống |
| Số dư khả dụng hiện tại (chưa tính dòng dự kiến) | 15,0 | = 3,5 + 13,0 − 1,0 − 2,0 + 1,0 + 0,5 | |||
available = opening + accrued + adjusted − used − pending − encashed − expired
opening
3,5+ accrued
13,0+ adjusted
0,5− used
2,0− pending
0,0− encashed
0,0− expired
0,0= available
15,0
3,5+ accrued
13,0+ adjusted
0,5− used
2,0− pending
0,0− encashed
0,0− expired
0,0= available
15,0
used ròng = 1,0 + 2,0 − 1,0 (CANCEL hoàn lại) = 2,0 · cột available là cột GENERATED — muốn đổi số dư phải ghi thêm giao dịch vào sổ cái, không UPDATE trực tiếp
Ngày lễ 2 quốc gia — 2026
🇻🇳 11 ngày đồng đều | 🇱🇦 9 ngày pháp định trong đó 4 dòng CÓ ĐIỀU KIỆN cá nhân (eligibility_expr)
🇻🇳 FOXAI Việt Nam — lịch lễ pháp định 2026
pack VN-2026.01 · STATUTORY — chỉ compliance team sửa
| Ngày | Tên | Số ngày | Ghi chú |
|---|---|---|---|
| 01/01 | Tết Dương lịch | 1 | — |
| 16–20/02 | Tết Nguyên đán Bính Ngọ | 5 | Mùng 1 = 17/02 · lịch nghỉ theo thông báo Chính phủ |
| 26/04 | Giỗ Tổ Hùng Vương (10/3 ÂL) | 1 | rơi CHỦ NHẬT → nghỉ bù T2 27/04 |
| 30/04 | Ngày Giải phóng miền Nam | 1 | — |
| 01/05 | Quốc tế Lao động | 1 | — |
| 01–02/09 | Quốc khánh | 2 | 02/09 + 1 ngày liền kề |
| Tổng — áp dụng đồng đều mọi NLĐ | 11 | không cần cột điều kiện | |
Pack VN không cần eligibility_expr — 11 ngày cho tất cả. Lễ trùng ngày nghỉ hằng tuần thì nghỉ bù ngày làm việc kế tiếp (Giỗ Tổ 26/04 → bù 27/04). Đi làm ngày lễ: giờ công vào rổ OT_HOLIDAY 300% + phụ cấp đêm nếu có (ADDITIVE).
🇱🇦 FOXAI Laos Co., Ltd — lịch lễ pháp định 2026
pack LA-2024.10 · 4 dòng có eligibility_expr
| Ngày | Tên | Ngày | eligibility_expr |
|---|---|---|---|
| 01/01 | Tết Dương lịch | 1 | toàn bộ |
| 08/03 | Quốc tế Phụ nữ | 1 | EMP('gender') = 'FEMALE' 2026 rơi CN → nữ nghỉ bù T2 09/03 |
| 14–16/04 | Tết Lào (Pi Mai) | 3 | toàn bộ |
| 01/05 | Quốc tế Lao động | 1 | toàn bộ |
| 20/07 | Thành lập Hội LHPN Lào | 1 | EMP('gender') = 'FEMALE' chỉ cán bộ / công nhân viên nữ |
| 07/10 | Ngày Nhà giáo | 1 | EMP('job_family') = 'TEACHING' FOXAI Laos: 0 nhân sự thuộc diện |
| 02/12 | Quốc khánh Lào | 1 | toàn bộ |
| theo QT | Quốc khánh nước sở tại của NLĐ | 1 | EMP('nationality') <> 'LA' vd 02/09 cho người Việt Nam |
| Tổng lễ pháp định (không kể dòng theo quốc tịch) | 9 | 4 dòng có điều kiện cá nhân | |
Ai được nghỉ 08/03/2026? — cùng công ty FOXAI Laos
08/03 rơi Chủ nhật → suất nghỉ chuyển sang T2 09/03
Khamla Phommachanh · LA2023-0034 · Trưởng ca SX · NỮ
✓
✓ Nghỉ có lương — bù thứ Hai 09/03 (08/03 rơi CN). Nếu chị vẫn đi làm 09/03: IS_PUBLIC_HOLIDAY() = true chỉ với chị → giờ làm được phân vào rổ lễ, không phải ngày thường.
Somchai Vongsa · LA2024-0112 · Kế toán tổng hợp · NAM
✗
✗ Ngày làm việc bình thường — cùng công ty, cùng lịch lễ, khác giới tính. Đi làm 09/03 tính công REG như mọi thứ Hai.
Nguyễn Văn Tùng · LA2024-0055 · quốc tịch VN, làm tại Lào · NAM
02/09
✗ 08/03 không áp dụng (nam) — NHƯNG được nghỉ 02/09 (Quốc khánh Việt Nam) theo EMP('nationality') <> 'LA'. Đồng nghiệp người Lào ngày 02/09 đi làm bình thường.
Cùng một ngày, cùng một pháp nhân — quyền nghỉ khác nhau theo thuộc tính cá nhân. Đây là lý do statutory_holiday bắt buộc có cột eligibility_expr và VN thì không cần: không thể «dùng chung một bản, chỉnh vài tham số».
Lễ Phật giáo tại Lào — KHÔNG pháp định
Cấu hình «lễ công ty» trong holiday_calendar riêng của tenant, tuỳ chọn từng doanh nghiệp
Visakha Bousa (Phật đản) · ~31/05/2026 đi làm
Boun Khao Phansa (vào chay) · ~29/07/2026 đi làm
Boun Ok Phansa (ra chay) · ~26/10/2026 đi làm
Boun That Luang · ~24/11/2026 lễ công ty — nghỉ có lương
⚠ FOXAI Laos chọn nghỉ That Luang làm lễ công ty (chính sách riêng, có lương). Ngày lễ công ty không nằm trong pack STATUTORY — bật/tắt tại đây không cần compliance team; hiệu lực ghi valid_from/valid_to và giờ đi làm hôm đó phân rổ theo cấu hình tenant, không theo luật.
Nhắc lịch kỳ 3/2026: LA chỉ nghỉ CN (1, 8, 15, 22, 29/03) → 26 công chuẩn; VN nghỉ T7+CN → 22 công chuẩn. Tháng 3/2026 không có ngày lễ nào ở cả hai nước — riêng nữ tại Lào có 1 ngày nghỉ bù 09/03.
Quy trình duyệt & Uỷ quyền
12 quy trình seed sẵn cho tenant mới · thiết kế chi tiết «Duyệt bảng lương» 3 cấp · uỷ quyền có thời hạn và phạm vi giới hạn
12 quy trình seed sẵn
Sinh tự động khi khởi tạo tenant · số cấp mặc định theo chính sách chuẩn — khách sửa được, trừ ràng buộc SoD
| Quy trình | Số cấp | Người duyệt theo | SLA/bước | Ghi chú nghiệp vụ |
|---|---|---|---|---|
| Đơn xin nghỉ phép | 1–2 | DIRECT_MANAGER → ORG_UNIT_HEAD | 24h | ≤ 3 ngày: 1 cấp · > 3 ngày: tự nâng 2 cấp (condition trên bước 2) |
| Đơn xin nghỉ không lương | 2 | DIRECT_MANAGER → ORG_UNIT_HEAD | 24h | Cố định 2 cấp — ảnh hưởng BHXH nếu ≥ 14 ngày/tháng |
| Đơn giải trình chấm công | 1 | DIRECT_MANAGER | 12h | Kết quả ghi thành punch_adjustment — punch gốc bất biến |
| Đăng ký làm thêm giờ | 2 | DIRECT_MANAGER → ORG_UNIT_HEAD | 12h | Chặn kèm cảnh báo khi vượt trần OT (VN 40h/tháng · LA 45h ⚠ cần xác minh) |
| Đổi ca | 1 | DIRECT_MANAGER | 12h | Từ shift_swap_request — duyệt xong roster ghi source = SWAP |
| Đề xuất tuyển dụng | 2–3 | ORG_UNIT_HEAD → ROLE: HR_MANAGER | 48h | + cấp 3 (GĐ) khi vị trí ngoài định biên — condition |
| Đề xuất tăng lương | 3 | DIRECT_MANAGER → ROLE: HR_MANAGER → ROLE: EXECUTIVE | 48h | Kết quả sinh QĐ lương có hiệu lực theo ngày (hồi tố được) |
| Quyết định điều chuyển | 2 | ORG_UNIT_HEAD → ROLE: HR_MANAGER | 48h | Đơn vị nhận + đơn vị giao đều nhận thông báo |
| Quyết định nghỉ việc | 2–3 | ORG_UNIT_HEAD → ROLE: HR_MANAGER | 48h | Kích hoạt wizard offboarding (thanh toán phép tồn, thu hồi tài sản) |
| Duyệt bảng lương 🔒 SoD | 2–3 | ROLE: CB_SPECIALIST → ROLE: HR_MANAGER → ROLE: Kế toán trưởng | 24h | Người tạo ≠ người duyệt cuối — ràng buộc CỨNG, xem chi tiết dưới ▾ |
| Duyệt chi trả lương | 2 | ROLE: PAYROLL_APPROVER → ROLE: ACCOUNTANT | 24h | Chỉ chạy sau khi bảng lương đã APPROVED · sinh file chi ngân hàng |
| Tạm ứng lương | 2 | AMOUNT_MATRIX | 24h | ≤ 5.000.000 ₫: DIRECT_MANAGER · > 5.000.000 ₫: thêm Kế toán trưởng |
| 12 quy trình | tổng 22–26 bước duyệt | mỗi bước có approver_rule + condition + sla_hours riêng | ||
Thiết kế: «Duyệt bảng lương» — 3 cấp, kỳ 3/2026 🇻🇳
C&B → Trưởng phòng HR → Kế toán trưởng
✓ Lập bảng lương
C&B (Nguyễn Thị Mai) · 05/03
C&B (Nguyễn Thị Mai) · 05/03
1 Cấp 1 · C&B đối soát chéo
ROLE: CB_SPECIALIST · SLA 8h
ROLE: CB_SPECIALIST · SLA 8h
2 Cấp 2 · Trưởng phòng HR
ROLE: HR_MANAGER · SLA 24h
ROLE: HR_MANAGER · SLA 24h
3 Cấp 3 (cuối) · Kế toán trưởng
Trương Mỹ Linh · SLA 24h
Trương Mỹ Linh · SLA 24h
Cấp 3 — Trương Mỹ Linh (Kế toán trưởng)MFA bắt buộc khi phê duyệt
Condition bước 4 (chỉ chạy khi cần)EXPRESSION: quỹ lương lệch > 10% kỳ trước → thêm cấp Giám đốc
Đối soát kỳ 3/2026net 15,71 tỷ ₫ · 912 NV · 12 người lệch > 30% phải giải trình trước cấp 3
🔒 Ràng buộc cứng (SoD): người tạo bảng lương không được là người duyệt cuối. Kỳ 3/2026 do C&B Nguyễn Thị Mai lập → hệ thống tự loại chị Mai khỏi danh sách người duyệt cấp 3, kể cả khi chị được gán thêm vai trò.
Cho phép người tạo tự duyệt cấp cuối
Cách xác định người duyệt (approver_rule)
7 loại đang hỗ trợ
| Loại | Ý nghĩa | Ví dụ đang dùng |
|---|---|---|
| DIRECT_MANAGER | Quản lý trực tiếp | Đơn nghỉ phép cấp 1 |
| MANAGER_LEVEL_N | Quản lý cấp N phía trên | N=2 cho đơn của tổ trưởng (tránh tự duyệt vòng) |
| ORG_UNIT_HEAD | Trưởng đơn vị của người tạo | Nghỉ không lương cấp 2 |
| ROLE | Bất kỳ ai có vai trò X | HR_MANAGER duyệt tăng lương cấp 2 |
| SPECIFIC_USER | Người cụ thể | Trương Mỹ Linh — duyệt lương cấp cuối |
| AMOUNT_MATRIX | Theo ma trận hạn mức tiền | Tạm ứng > 5.000.000 ₫ thêm Kế toán trưởng |
| EXPRESSION | Biểu thức tuỳ chỉnh (L3) | Quỹ lương lệch > 10% → thêm cấp GĐ |
Uỷ quyền duyệt (delegation)
Có phạm vi giới hạn + thời hạn · mọi hành động ghi nhật ký CẢ HAI danh tính (actor_identity + on_behalf_of)
| Người uỷ quyền | Người nhận | Phạm vi giới hạn | Từ – Đến | Lý do | Trạng thái | Nhật ký |
|---|---|---|---|---|---|---|
Vũ Đình Long NV2021-0077 |
Phạm Thu Hằng NV2026-0412 |
leave.request.approve KHÔNG gồm duyệt OT, KHÔNG gồm bảng lương |
16/03 00:00 → 20/03 23:59 |
Công tác Viêng Chăn | ĐÃ LÊN LỊCH | 0 hành động |
Vũ Đình Long NV2021-0077 |
Phạm Thu Hằng NV2026-0412 |
leave.request.approve | 09/02 00:00 → 13/02 23:59 |
Nghỉ phép | ĐÃ HẾT HẠN | 14 hành động kép |
🔒 Uỷ quyền không vượt được SoD: yêu cầu «Trương Mỹ Linh uỷ quyền duyệt bảng lương cấp cuối cho C&B Nguyễn Thị Mai» ngày 05/03 đã bị hệ thống TỪ CHỐI — người nhận uỷ quyền là người tạo bảng lương kỳ 3/2026. Ràng buộc «người tạo ≠ người duyệt cuối» áp cả qua đường uỷ quyền, không có ngoại lệ.
Kỳ lương
FOXAI Việt Nam (VND · 22 công) · FOXAI Laos Co., Ltd (LAK · 26 công) — pack & tỷ giá đóng băng theo kỳ
Net hợp nhất kỳ 03/2026
18,98 tỷ ₫
1.284 nhân viên · 2 pháp nhân
VN — thực lãnh
15,71 tỷ ₫
912 phiếu · đang REVIEWING (run 2)
LA — thực lãnh
2,84 tỷ ₭
× 1,15 = 3,27 tỷ ₫ · fx 25/03 BCEL
Chi phí DN — VN
22,60 tỷ ₫
gồm 21,5% BH phần doanh nghiệp
⚠ Phong toả phát hành 22/03 → 07/04 — từ 3 ngày trước chốt công (25/03) đến 2 ngày sau ngày chi lương (05/04): không phát hành country pack mới, không kích hoạt công thức mới. Pack LA-2026.07 đang DRAFT sẽ chỉ được gán cho kỳ sau khi PUBLISHED.
Vòng đời kỳ 2026-03 · FOXAI Việt Nam
tính lại từ REVIEWING sẽ quay về CALCULATED; REOPENED là nhánh riêng sau PAID, bắt buộc có audit
✓OPEN
✓CALCULATING
✓CALCULATED
●REVIEWING
5APPROVED
6CLOSED
7PAID
run 1 · REGULAR · 05/03 (huỷ — thiếu QĐ-2026/031)
run 2 · REGULAR + gộp RETRO · 06/03 21:13 · 912 phiếu · 38s
input_snapshot SNP-2603-8841
rule_snapshot RUL-2603-3327
Các kỳ 12/2025 → 04/2026
country_pack_ver và fx_rate_date đóng băng lúc tạo kỳ — đổi pack sau đó phải tạo run mới, không sửa ngầm
hôm nay: 07/03/2026
| Kỳ | Pháp nhân | Chu kỳ | Chốt công | Ngày chi | Pack (đóng băng) | fx_rate_date | Run | Trạng thái |
|---|---|---|---|---|---|---|---|---|
| 2025-12 | 🇻🇳 FOXAI VN | 01–31/12 | 25/12 | 05/01 | VN-2025.07 giảm trừ cũ 11tr | — | 1 | PAID |
| 2026-01 | 🇻🇳 FOXAI VN | 01–31/01 | 25/01 | 05/02 | VN-2026.01 kỳ đầu áp 15,5tr + 6,2tr/NPT (NQ 110/2025) | — | 1 | PAID |
| 2026-02 | 🇻🇳 FOXAI VN | 01–28/02 | 25/02 | 05/03 | VN-2026.01 | — | 1 | PAID |
| 2026-03 | 🇻🇳 FOXAI VN | 01–31/03 | 25/03 | 05/04 | VN-2026.01 biểu thuế 7 bậc — 5 bậc chỉ từ kỳ 07/2026 | — | 2 gộp RETRO | REVIEWING |
| 2025-12 | 🇱🇦 FOXAI Laos | 01–31/12 | 26/12 | 05/01 | LA-2024.10 | 24/12 · 1₭=1,19₫ | 1 | PAID |
| 2026-01 | 🇱🇦 FOXAI Laos | 01–31/01 | 26/01 | 05/02 | LA-2024.10 | 26/01 · 1₭=1,17₫ | 1 | PAID |
| 2026-02 | 🇱🇦 FOXAI Laos | 01–28/02 | 25/02 | 05/03 | LA-2024.10 | 25/02 · 1₭=1,16₫ | 1 → 2 OFF_CYCLE | REOPENED |
|
🗒 Audit mở lại kỳ 2026-02 (LA) — 06/03/2026 08:40, quyết định: Kế toán trưởng LA · đề nghị: Somchai Vongsa (LA2024-0112).
Lý do: (1) BCEL trả về 2 dòng lỗi sai số tài khoản — chi lại tiền mặt đợt 12/03; (2) Bounmy Keo (LA2025-0078) nộp bổ sung giấy bác sĩ nghỉ ốm 3 ngày (quỹ 30 ngày/năm) sau chốt công — tính lại 1 phiếu.
Kế hoạch: run 2 · OFF_CYCLE, chỉ 3 nhân viên trong phạm vi. Mọi lần mở lại kỳ đều ghi nhật ký.
|
||||||||
| 2026-03 | 🇱🇦 FOXAI Laos | 01–31/03 | 26/03 | 05/04 | LA-2024.10 LA-2026.07 DRAFT — cấm gán cho kỳ | 25/03 (kế hoạch) · 1₭=1,15₫ BCEL | — | OPEN |
◔ Kỳ Lào bắt buộc có fx_rate_date: trả lương bằng LAK, tỷ giá ngân hàng thương mại trong vòng 3 ngày làm việc của kỳ chi (loại COMMERCIAL_BANK · BCEL) — cấm dùng tỷ giá lịch sử ghi trong hợp đồng. Kỳ VN không có tỷ giá (—). Quy đổi 1 ₭ = 1,15 ₫ chỉ dùng cho báo cáo hợp nhất.
Bảng lương — kỳ 2026-03 · FOXAI Việt Nam
run 2 (REGULAR + gộp RETRO) · pack VN-2026.01 · 912 phiếu · trạng thái kỳ: REVIEWING
Thực lãnh toàn kỳ
15,71 tỷ ₫
+1,8% so kỳ 02/2026
Chi phí doanh nghiệp
22,60 tỷ ₫
= gross + 21,5% BH phần DN
Thuế TNCN khấu trừ
1,42 tỷ ₫
biểu 7 bậc · giảm trừ NQ 110/2025
Cờ cần chú ý
15
12 lệch >30% · 2 vượt trần OT · 1 nghỉ việc
Có cờ nghiệp vụ · 7
Tất cả · 912
SNP-2603-8841RUL-2603-3327
| Nhân viên | Thu nhập | Khấu trừ NLĐ | Thực lãnh | Chi phí DN (+21,5%) | Cờ | ||||
|---|---|---|---|---|---|---|---|---|---|
| Lương CB | Công | OT giờ | Tổng thu nhập | BH 10,5% | Thuế TNCN | ||||
| 7 nhân viên (lọc) | 176.992.705 | — | 89,5 h | 207.088.160 | 17.156.234 | 6.189.062 | 183.742.864 | 242.217.592 | |
◔ Bấm dòng để mở phiếu lương + cây giải trình. Thuế Hùng & Bảo = 0 vì giảm trừ mới (15,5tr + 6,2tr/NPT · NQ 110/2025) cộng BH đã vượt thu nhập chịu thuế — phần OT vượt đơn giá 100% dự kiến miễn thuế TNCN chờ xác minh NĐ 253/2026.
Kiểm tra sau tính — run 2 · 06/03 21:13
9 kiểm tra tự động; 🔴 chặn trình duyệt, 🟡 cảnh báo phải giải trình
2 cảnh báo có số lượng
| # | Kiểm tra | Mức | Kết quả | Chi tiết |
|---|---|---|---|---|
| 1 | gross − tổng khấu trừ = net, từng phiếu | 🔴 chặn | ✓ 912/912 | khớp từng đồng |
| 2 | SUM(payslip_line) = payslip.gross | 🔴 chặn | ✓ | 0 phiếu lệch dòng |
| 3 | net_pay ≤ 0 | 🟡 | ✓ 0 trường hợp | — |
| 4 | Thực nhận dưới lương tối thiểu vùng | 🔴 chặn | ✓ 0 | vùng I 5.310.000 ₫ · NĐ 293/2025 (vùng II–IV chờ xác minh) |
| 5 | Chênh lệch > 30% so kỳ trước | 🟡 | ⚠ 12 người | lớn nhất: Lê Văn Hùng +38,0% (OT 40h) — kèm danh sách giải trình |
| 6 | Nhân viên ACTIVE không có phiếu | 🔴 chặn | ✓ 0 | — |
| 7 | Đã nghỉ việc nhưng vẫn có phiếu | 🟡 | ✓ 1 — hợp lệ | Phan Văn Đức nghỉ 20/03 → phiếu kỳ cuối FINAL_PAY (đã xác nhận) |
| 8 | Vượt trần OT 40h/tháng — Đ.107 BLLĐ | 🟡 | ⚠ 2 người | Trần Quốc Bảo 43,5h · Nguyễn Hữu Phước 41,5h — cần phê duyệt ngành đặc thù |
| 9 | Tổng quỹ lương lệch > 20% so kỳ trước | 🟡 | ✓ +1,8% | 18,92 tỷ vs 18,59 tỷ — trong ngưỡng |
Phiếu lương & Giải trình
Mỗi con số trên phiếu đều có cây tính toán từng bước (calc_trace) — bằng chứng cho nhân viên, C&B và thanh tra
Phạm Thu Hằng — NV2026-0412
CV Kinh doanh cao cấp · G5 · kỳ 2026-03 · run 2 · pack VN-2026.01
34.508.068 ₫ thực lãnh
Thu nhập
Lương cơ bản BASIC_SALARY · 22/22 công · v4 hiệu lực 01/01/2026
25.000.000
Phụ cấp ăn ca ALW_MEAL · miễn thuế tối đa 730.000 ₫/tháng
730.000
Thưởng hiệu quả kinh doanh BON_PERF · chịu thuế
4.500.000
Làm thêm 150% ngày thường OT_150 · 6,0h × 213.068,181818 ₫/h (đơn giá giữ 6 số lẻ)
1.278.409
Truy lĩnh tăng lương 01–02/2026 RETRO_BASIC_SALARY · QĐ-2026/031 · 2 kỳ × 3.000.000
+6.000.000
Tổng thu nhập
37.508.409
Khấu trừ
BHXH 8% trên lương đóng BH 25.000.000
−2.000.000
BHYT 1,5%
−375.000
BHTN 1% trần theo lương tối thiểu vùng — cơ sở trần tách đôi từ 2026
−250.000
Thuế TNCN PIT · biểu 7 bậc · trace bên phải →
−375.341
Thực lãnh chia 2 tài khoản 70/30 — xem Chi trả
34.508.068
⚠ Truy thu BHXH kỳ 01–02/2026: 630.000 ₫ (2 kỳ × 315.000 = 10,5% × chênh 3.000.000) sẽ khấu trừ vào kỳ 04/2026, sau khi hồ sơ điều chỉnh mức đóng (D02-LT) được cơ quan BHXH xác nhận — không trừ trước khi hồ sơ được duyệt.
Cây giải trình thuế TNCN — 7 bước
calc_trace · formula_version 7
PIT = ROUND( BRACKET( THU_NHAP_TINH_THUE, 'PIT_VN' ), 0, 'HALF_UP' )
1 · THU_NHAP_CHIU_THUE36.778.409
37.508.409 − 730.000 ăn ca miễn thuế. Truy lĩnh 6.000.000 chịu thuế tại kỳ chi trả (nguyên tắc thuế TNCN theo thời điểm chi trả).
2 · GIAM_TRU_BAN_THAN−15.500.000
CONST('PIT_SELF_DEDUCTION') Nghị quyết 110/2025/UBTVQH15 — áp từ kỳ tính thuế 2026
3 · GIAM_TRU_PHU_THUOC−12.400.000
2 người phụ thuộc × 6.200.000 (đã đăng ký với cơ quan thuế)
4 · BAO_HIEM_BAT_BUOC−2.625.000
10,5% × 25.000.000 (8% + 1,5% + 1%)
5 · THU_NHAP_TINH_THUE6.253.409
36.778.409 − 15.500.000 − 12.400.000 − 2.625.000
6 · BRACKET · PIT_VN375.340,90
biểu 7 bậc, table_version 2026.01 — biểu 5 bậc chỉ hiệu lực từ 01/07/2026 (pack VN-2026.07)
5%0 → 5.000.000 · trọn bậc250.000
10%5.000.000 → 10.000.000 · dùng 1.253.409125.340,90
15%+bậc 3–7 không chạm0
7 · ROUND375.341
scale 0 · HALF_UP — làm tròn là thuộc tính của component, chỉ làm tròn 1 lần ở bước cuối
B · OT đêm ngày lễ (VN) — cộng dồn ADDITIVE
Trần Quốc Bảo · tính thử 1 ca 22:00–06:00 ngày lễ 30/04/2026 · run SIMULATION
| Lớp đơn giá | Căn cứ | Hệ số | Thành tiền (₫) |
|---|---|---|---|
| OT ngày lễ, Tết | 8,0h × 68.181,818182 ₫/h | 300% | 1.636.363,64 |
| Phụ cấp làm đêm | cộng thêm trên cùng ca | +30% | 163.636,36 |
| Làm thêm vào ban đêm | cộng thêm trên cùng ca | +20% | 109.090,91 |
| Tổng 1 ca — time_bucket ADDITIVE | 350% | 1.909.091 | |
✓ Ba lớp cộng dồn trên cùng số giờ (300% + 30% + 20% = 350%). Nếu nhân chồng 3,0 × 1,3 × 1,2 = 468% — sai luật. Số lẻ trung gian giữ 2 chữ số, chỉ làm tròn tổng cuối: 1.909.090,91 → 1.909.091 ₫.
⚠ Tính theo pack LA-2026.07 DRAFT — ngưỡng miễn 2.500.000 ₭ · chờ văn bản gốc của Bộ Tài chính Lào — cấm dùng cho kỳ chính thức
C · Khamphan Sisouk — LA2025-0090
LĐ phổ thông · education_trained = FALSE · kỳ tính thử 2026-03 · 26/26 công
2.362.500 ₭ thực lãnh · chi TIỀN MẶT có ký nhận
Lương cơ bản BASIC_SALARY · dưới lương tối thiểu 2.500.000 ₭
1.800.000
Phụ cấp sinh hoạt ALW_SUBSISTENCE · TB 3534/MLSW · trần 900.000
+700.000
Tổng thu nhập đúng sàn lương tối thiểu 2.500.000 ✓
2.500.000
NSSF 5,5% trên MIN(2.500.000; trần 4.500.000) — 1 quỹ duy nhất, 1 dòng
−137.500
Thuế TNCN Lào 2.362.500 ≤ ngưỡng miễn 2.500.000 (DRAFT)
0
Thực lãnh
2.362.500 ₭
ALW_SUBSISTENCE = IF( AND( EMP('education_trained') = FALSE,
BASIC_SALARY < CONST('MIN_WAGE_LA') ),
MIN( CONST('SUBSISTENCE_MAX'), CONST('MIN_WAGE_LA') − BASIC_SALARY ), 0 )
BASIC_SALARY < CONST('MIN_WAGE_LA') ),
MIN( CONST('SUBSISTENCE_MAX'), CONST('MIN_WAGE_LA') − BASIC_SALARY ), 0 )
Biên liên quan: đã qua đào tạo, lương 1.800.000 → phụ cấp 0, chỉ cảnh báo dưới sàn · lương 2.600.000 ≥ 2.500.000 → phụ cấp 0 · Somchai 9.800.000 ₭ → NSSF chỉ tính trên trần 4.500.000 = 247.500 ₭.
Quy đổi 2.362.500 × 1,15 = 2.716.875 ₫ — chỉ cho báo cáo hợp nhất, bắt buộc trả bằng LAK.
Duyệt bảng lương — kỳ 2026-03 · FOXAI Việt Nam
run 2 · 912 phiếu · trình lúc 06/03 21:40 · quy trình 3 cấp: C&B → Trưởng phòng HR → Kế toán trưởng
⚠ Còn 12 phiếu lệch >30% và 2 phiếu vượt trần OT chưa được người duyệt xác nhận đã đọc giải trình — hệ thống sẽ nhắc lại ở bước KTT.
✓C&B TRÌNH — bạn · 06/03 21:40
●TRƯỞNG PHÒNG HR — Lê Thị Thu Trang · đang xem
3KẾ TOÁN TRƯỞNG — Trương Mỹ Linh · yêu cầu MFA
9 kiểm tra tự động sau tính
🔴 chặn duyệt · 🟡 phải giải trình
| Kiểm tra | Mức | Kết quả |
|---|---|---|
| gross − khấu trừ = net từng phiếu | 🔴 | ✓ 912/912 |
| SUM(payslip_line) = gross | 🔴 | ✓ |
| net ≤ 0 | 🟡 | ✓ 0 trường hợp |
| Dưới lương tối thiểu vùng | 🔴 | ✓ chặn 0 phiếu |
| Lệch >30% so kỳ trước | 🟡 | ⚠ 12 cảnh báo — Hùng +38% (OT), 8 ca SX BN, 3 thưởng KD |
| ACTIVE thiếu phiếu | 🔴 | ✓ 0 |
| Đã nghỉ còn phiếu | 🟡 | ⚠ 1 — Phan Văn Đức: phiếu kỳ cuối FINAL_PAY (nghỉ 20/03, +4,5 ngày phép) — hợp lệ, đã ghi chú |
| Vượt trần OT 40h/tháng | 🟡 | ⚠ 2 — Bảo 43,5h · Phước 41,5h |
| Tổng quỹ lệch >20% | 🟡 | ✓ lệch +1,8% (18,92 vs 18,59 tỷ) |
Quỹ lương gross theo đơn vị — kỳ 03 vs kỳ 02
tổng 18.924.843.750 ₫ · cộng khớp comment nguồn
SX Bắc Ninh tăng do OT (12 cảnh báo lệch tập trung tại đây) · Kho vận giảm do Phan Văn Đức nghỉ 20/03.
Phê duyệt
bước 2/3 — Trưởng phòng HR
🔒 Nút duyệt của bạn bị khoá (SoD) — bạn là người kích hoạt run 2 (06/03 21:13). Nguyên tắc phân tách nhiệm vụ: người chạy bảng lương không được là người duyệt cuối. Việc duyệt thuộc về Trưởng phòng HR và Kế toán trưởng.
Bước KTT (Trương Mỹ Linh) yêu cầu xác thực MFA trước khi ký duyệt. Sau APPROVED kỳ mới được CLOSED và file chi mới được gửi ngân hàng.
Lịch sử duyệt & nhật ký run
06/03 · 21:13
Run 2 hoàn tất
912 phiếu · 0 lỗi · 38 giây · gộp 1 RETRO (QĐ-2026/031) · snapshot SNP-2603-8841 / RUL-2603-3327
06/03 · 21:40
Bạn (C&B) trình duyệt
Đính kèm giải trình 12 ca lệch >30% + 2 ca vượt trần OT
07/03 · 09:12
Lê Thị Thu Trang mở xem
Trưởng phòng HR — chưa cho ý kiến
chờ
Trương Mỹ Linh (KTT)
Ký duyệt cuối — bắt buộc MFA · nếu duyệt: kỳ → APPROVED, mở khoá gửi file chi
Truy lĩnh / Truy thu
Tính lại kỳ đã CLOSED/PAID bằng đúng bộ quy tắc của từng kỳ — delta sinh dòng RETRO_* vào kỳ hiện tại, không mở lại kỳ cũ
Hồ sơ truy lĩnh — Phạm Thu Hằng (NV2026-0412)
Quyết định
QĐ-2026/031 — tăng lương 22.000.000 → 25.000.000
Hiệu lực (retro_from)
01/01/2026
Ngày nhập quyết định
05/03/2026 — sau khi kỳ 01, 02 đã PAID
Kỳ nguồn bị tính lại
2026-01 · 2026-02 (status PAID — giữ nguyên, không mở lại)
Kỳ nhận (applied_period)
2026-03 · run 2
Delta gross / ròng
+6.000.000 / +5.370.000 ₫
Dòng thời gian
01/01/2026
Hiệu lực tăng lương (hồi tố)
Kỳ 01, 02 chạy với mức cũ 22.000.000 — hợp lệ tại thời điểm chạy
05/03/2026
Nhập QĐ-2026/031
Engine phát hiện 2 kỳ PAID bị ảnh hưởng → xếp lịch retro
06/03/2026
Run 2 kỳ 03 gộp RETRO
+6.000.000 GROSS lên phiếu kỳ 3 · chịu thuế tại kỳ chi trả
kỳ 04/2026
Truy thu BHXH 630.000
Khấu trừ sau khi hồ sơ điều chỉnh D02-LT được cơ quan BHXH xác nhận
retro_adjustment — từng kỳ nguồn × từng component
luôn so với kết quả đã trả gần nhất; rule_version_used ghi đúng phiên bản công thức đã áp
| Kỳ nguồn | Component | old_amount | new_amount | delta | trigger | retro_policy | rule_version_used |
|---|---|---|---|---|---|---|---|
| 2026-01 | BASIC_SALARY | 22.000.000 | 25.000.000 | +3.000.000 | SALARY_CHANGE | USE_OLD_RULE | BASIC v4 · 2026.01 |
| 2026-02 | BASIC_SALARY | 22.000.000 | 25.000.000 | +3.000.000 | SALARY_CHANGE | USE_OLD_RULE | BASIC v4 · 2026.01 |
| 2026-01 | SI_EMPLOYEE | 2.310.000 | 2.625.000 | +315.000 truy thu | SALARY_CHANGE | USE_OLD_RULE tỷ lệ 10,5% không đổi | SI_VN · 2026.01 |
| 2026-02 | SI_EMPLOYEE | 2.310.000 | 2.625.000 | +315.000 truy thu | SALARY_CHANGE | USE_OLD_RULE | SI_VN · 2026.01 |
| 2026-01 | PIT | 0 | 0 | 0 | SALARY_CHANGE | USE_NEW_RULE NQ110 hồi tố kỳ thuế 2026 | PIT_VN 7 bậc · 2026.01 |
| 2026-02 | PIT | 0 | 0 | 0 | SALARY_CHANGE | USE_NEW_RULE | PIT_VN 7 bậc · 2026.01 |
| Tổng hợp sinh dòng RETRO_* vào kỳ 2026-03 | +6.000.000 · truy thu BH 630.000 · Δ thuế kỳ cũ 0 | ròng +5.370.000 ₫ | |||||
◔ RETRO_PIT kỳ nguồn = 0 vì hệ thống áp nguyên tắc thuế TNCN theo thời điểm chi trả: không tính lại thuế kỳ 01–02, toàn bộ khoản truy lĩnh +6.000.000 chịu thuế gộp tại kỳ chi trả 03/2026 — đã nằm trong PIT 375.341 ₫ của phiếu kỳ 3. Lưu ý: kỳ nguồn 01–02/2026 chỉ có 1 người phụ thuộc (bé Phạm Gia Hân sinh 01/2026, đăng ký 05/03/2026 → giảm trừ áp từ kỳ 03), nên không được dùng giảm trừ 12,4tr cho kỳ nguồn; delta = 0 là do chính sách thời điểm chi trả, không phải vì "dưới ngưỡng". BH phần DN phát sinh thêm 21,5% × 3.000.000 × 2 kỳ = 1.290.000 ₫ ghi vào chi phí, không qua phiếu NLĐ.
retro_policy — dùng quy tắc cũ hay mới khi tính lại?
cờ cấu hình trên từng công thức, tuyệt đối không hard-code
| Tình huống | Chế độ | Kỳ cũ được tính bằng… |
|---|---|---|
| Thay đổi do chính sách công ty vd: đổi công thức phụ cấp chuyên cần từ 01/03, không hồi tố | USE_OLD_RULE | công thức ACTIVE tại period_start của kỳ cũ |
| Thay đổi do luật hồi tố vd: NQ 110/2025 — giảm trừ mới áp từ đầu kỳ tính thuế 2026 dù ban hành sau | USE_NEW_RULE | công thức/tham số ACTIVE hiện tại |
5 vấn đề đặc thù của retro
bấm từng mục để mở
1 · Truy lĩnh làm đổi bậc thuế kỳ cũ
Tính lại thuế theo biểu của chính kỳ cũ, ghi delta thuế thành dòng riêng (RETRO_PIT). Ca Hằng: cả trước và sau tăng lương đều dưới ngưỡng nộp → delta 0; nếu kỳ cũ đã có thuế, phần chênh sẽ hiện riêng, không trộn vào thuế kỳ này.
2 · Truy thu bảo hiểm
Sinh dòng khấu trừ và hồ sơ điều chỉnh mức đóng gửi cơ quan BHXH (D02-LT). Khấu trừ 630.000 của Hằng chỉ chạy ở kỳ 04 sau khi hồ sơ được xác nhận — tránh lệch giữa số đã trừ và số cơ quan BHXH ghi nhận.
3 · Nhân viên đã nghỉ việc
Vẫn phải tính lại. Delta dương → chi trả bổ sung (chuyển khoản/tiền mặt ngoài kỳ); delta âm → thu hồi hoặc ghi nhận nợ. Vd: nếu QĐ lương ảnh hưởng Phan Văn Đức (nghỉ 20/03), hệ thống vẫn sinh retro cho phiếu FINAL_PAY của anh.
4 · Truy lĩnh chồng truy lĩnh
Luôn so với kết quả đã trả gần nhất, không so bản tính đầu tiên. Nếu tháng 5 lại có QĐ hồi tố nữa cho Hằng, engine so với phiếu kỳ 3 (đã gồm +6.000.000), tránh trả trùng.
5 · Vắt qua năm tài chính
Retro chạm kỳ ≤ 12/2025 sẽ bật cảnh báo ảnh hưởng quyết toán thuế TNCN năm cũ (tờ khai đã nộp) — yêu cầu C&B xác nhận trước khi áp, kèm danh sách chứng từ phải điều chỉnh.
Chi trả & Bút toán
disbursement_batch theo ngân hàng (adapter định dạng riêng) · đối chiếu kết quả trả về từng dòng · bút toán khớp Nợ/Có từng đồng
🔒 Kỳ 2026-03 (VN) đang REVIEWING — file chi được sinh trước để KTT soát nhưng nút GỬI ngân hàng khoá đến khi kỳ APPROVED.
Batch chi lương — kỳ 2026-03 · 🇻🇳 VN (VND)
ngày chi 05/04 · mỗi ngân hàng một adapter định dạng
| Kênh | Định dạng file | Số người | Tổng tiền (₫) | Trạng thái |
|---|---|---|---|---|
| VCB | VCB-CITAD v3.2 · .txt | 812 | 14.200.000.000 | GENERATED |
| BIDV | BIDV iBank · .xlsx | 88 | 1.268.132.000 | DRAFT |
| Chưa gắn TK (giữ lại) | — tự tách batch phụ khi NV bổ sung TK | 12 | 241.868.000 | DRAFT · chờ TK |
| Tổng = thực lãnh kỳ 03 VN | 912 | 15.710.000.000 | ✓ khớp | |
Batch chi lương — kỳ 2026-02 · 🇱🇦 LA (LAK)
ngày chi 05/03 · bắt buộc trả LAK · tiền mặt phải có danh sách ký nhận
| Kênh | Định dạng file | Số người | Tổng tiền (₭) | Trạng thái |
|---|---|---|---|---|
| BCEL | BCEL SmartTransfer · .csv | 341 | 2.710.000.000 | CONFIRMED · 339 ✓ / 2 lỗi |
| Tiền mặt | Mẫu ký nhận (song ngữ Lào–Việt) | 31 | 132.000.000 | 28/31 đã ký |
| Tổng = thực lãnh kỳ 02 LA | 372 | 2.842.000.000 | ✓ khớp | |
◔ Chi tiền mặt vẫn phổ biến ngoài Vientiane — danh sách ký nhận là chứng từ bắt buộc.
Đối chiếu kết quả BCEL trả về — batch kỳ 02 LA
trạng thái từng dòng · 2 lỗi → nguyên nhân kỳ LA-02 REOPENED
| Dòng | Nhân viên | Số tiền (₭) | Trạng thái | Mã lỗi ngân hàng |
|---|---|---|---|---|
| 117 | Vilay Chanthavong LA2025-0102 | 8.450.000 | FAILED | E013 — số TK không tồn tại |
| 252 | Somphone Keomany LA2026-0011 · vào 02/2026 | 5.230.000 | FAILED | E013 — số TK không tồn tại |
| — | 339 dòng còn lại | 2.696.320.000 | CONFIRMED | — |
| 341 dòng | 2.710.000.000 | ✓ khớp tổng batch | ||
↩ 2 dòng lỗi (13.680.000 ₭) chuyển sang chi tiền mặt đợt bổ sung 12/03 — thuộc run 2 OFF_CYCLE của kỳ LA-02 REOPENED. Nhân viên được nhắc cập nhật số TK trước kỳ 03.
Chia lương nhiều tài khoản — Phạm Thu Hằng
employee_bank_account.split_percent · kỳ 03 VN
| Tài khoản | split_percent | Số tiền (₫) |
|---|---|---|
| VCB ••••6688 | 70% | 24.155.648 |
| BIDV ••••1102 | 30% | 10.352.420 |
| Thực lãnh kỳ 03 | 34.508.068 |
◔ 70% = 24.155.647,6 → làm tròn 24.155.648; tài khoản cuối nhận phần dư để tổng khớp từng đồng. Mọi lần bấm "hiện" số TK đều ghi nhật ký.
Danh sách ký nhận tiền mặt — kỳ 02 LA
chứng từ bắt buộc · 28/31 đã ký · 3 chưa ký
| Nhân viên | Số tiền (₭) | Ký nhận |
|---|---|---|
| Khamphan Sisouk LA2025-0090 | 2.362.500 | ✓ 05/03 · 16:20 |
| Khamla Phommachanh LA2023-0034 | 5.600.000 | ✓ 05/03 · 16:32 |
| Bounmy Keo LA2025-0078 | 4.100.000 | chưa ký — nghỉ ốm có giấy BS |
| 28 người khác (26 đã ký · 2 chưa) | 119.937.500 | 26 ✓ / 2 chưa |
| 31 người | 132.000.000 | ✓ khớp batch |
◔ Tiền chưa ký nhận giữ tại quỹ, quá 30 ngày tự động chuyển trạng thái "chờ xử lý" và nhắc HR. Khamphan nhận đúng net 2.362.500 ₭ như trên phiếu lương.
payroll_journal — kỳ 2026-03 · 🇻🇳 VN
ánh xạ component → tài khoản theo pháp nhân (VN: TT200 · LA: hệ thống TK Lào riêng)
| Nợ | Có | Số tiền (₫) | Diễn giải |
|---|---|---|---|
| 622 / 641 / 642 | 334 | 18.924.843.750 | Chi phí lương kỳ 03 (gross) |
| 622 / 641 / 642 | 3383–3386 | 3.675.156.250 | BH phần DN 21,5% × 17.093.750.000 |
| 334 | 3383–3386 | 1.794.843.750 | BH NLĐ 10,5% khấu trừ qua lương |
| 334 | 3335 | 1.420.000.000 | Thuế TNCN khấu trừ |
| 334 | 112 | 15.710.000.000 | Chi lương qua ngân hàng (05/04) |
| Tổng Nợ = Tổng Có | 41.524.843.750 | ✓ TK 334 tất toán: 18.924.843.750 = 1.794.843.750 + 1.420.000.000 + 15.710.000.000 | |
Phân bổ phần dư theo cost center
quy tắc 3 — tổng phân bổ phải khớp tổng bảng lương, kế toán mới duyệt
| Cost center | Trọng số | Phần nguyên | Rải dư | Phân bổ (₫) |
|---|---|---|---|---|
| CC-HN01 Kinh doanh HN | 1/3 | 3.333.333 | +1 | 3.333.334 |
| CC-HN02 Văn phòng HN | 1/3 | 3.333.333 | +1 | 3.333.334 |
| CC-BN01 Nhà máy BN | 1/3 | 3.333.333 | — | 3.333.333 |
| Thưởng dự án FOX-Q1 | 9.999.999 | +2 | 10.000.001 |
PHAN_BO(total, w[]): base[i] = FLOOR(total × w[i] / SUM(w))
remainder = total − SUM(base) // = 2
sắp theo phần thập phân bị cắt giảm dần (0,6667 bằng nhau → thứ tự ổn định)
rải +1 từng đơn vị đến khi hết → không bao giờ lệch tổng
remainder = total − SUM(base) // = 2
sắp theo phần thập phân bị cắt giảm dần (0,6667 bằng nhau → thứ tự ổn định)
rải +1 từng đơn vị đến khi hết → không bao giờ lệch tổng
Nếu chia đều rồi làm tròn từng dòng (3.333.333,67 → 3.333.334 ×3 = 10.000.002) tổng sẽ thừa 1 ₫ so với bảng lương — kế toán không duyệt.
Thành phần lương
Danh mục pay_component — kiến trúc 4 tầng, 3 mức tự do · pháp nhân FOXAI Việt Nam + FOXAI Laos
Tổng thành phần
62
9 SYSTEM 🔒 · 38 STANDARD · 15 CUSTOM
Hạn mức gói Professional
53/60 cột tuỳ chỉnh
STANDARD + CUSTOM — còn 7 cột
Theo quốc gia
41 VN · 14 LA
+ 7 dùng chung 2 pháp nhân
Khoá pháp định
9 SYSTEM
PIT · SI_* · GROSS/NET/TOTAL_COST
Ba mức tự do trên thành phần lương: các cột bảo hiểm và cột tổng khấu trừ thuộc tier SYSTEM 🔒 — chỉ Compliance sửa tham số tỷ lệ/trần, không sửa công thức.
Tier STANDARD/CUSTOM dùng được IF/IFS, BRACKET luỹ tiến, TABLE tra bảng để mô tả quy chế riêng của doanh nghiệp.
Tất cả · 20
EARNING · 11
DEDUCTION · 4
EMPLOYER_COST · 2
INFO · 3
pay_component — 62 bản ghi
hiển thị 20 dòng tiêu biểu · nhấp nút cuối dòng để thấy quyền sửa theo tier
| Mã | Tên thành phần | Tier | Nhóm | Thuế TNCN | Nền BH | Nền OT | Làm tròn | |
|---|---|---|---|---|---|---|---|---|
| BASIC_SALARY | Lương cơ bản Tầng 3 COMPONENT — nền của SI, OT, tháng 13 |
STANDARD | EARNING | YES | ✓ | ✓ | 0 · HALF_UP | |
| SALARY_BY_DAYS | Lương theo ngày công = BASIC_SALARY × WORK_DAYS() / STANDARD_DAYS() |
STANDARD | EARNING | YES | — | — | 0 · HALF_UP | |
| PROBATION_RATE | Hệ số thử việc Ngô Thị Lan Anh (NV2026-0501): 85% × 16.000.000 — thử việc hết 10/04/2026 |
STANDARD | INFO | — | — | — | 2 · HALF_UP | |
| ALW_POSITION | Phụ cấp chức vụ = TABLE('PHU_CAP_CHUC_VU', EMP('job_grade'), EMP('location')) → xem bảng tra |
STANDARD | EARNING | YES | ✓ | ✓ | 0 · HALF_UP | |
| ALW_RESPONSIBILITY | Phụ cấp trách nhiệm Ghi trong HĐLĐ → tính vào nền đóng BHXH |
STANDARD | EARNING | YES | ✓ | — | 0 · HALF_UP | |
| ALW_LUNCH | Phụ cấp ăn ca taxable_expr = MAX(0, ALW_LUNCH − 730000) miễn thuế phần ≤ 730.000 ₫/tháng — vượt mới chịu thuế |
STANDARD | EARNING | PARTIAL | — | — | 0 · HALF_UP | |
| ALW_PHONE | Phụ cấp điện thoại Khoán theo quy chế công ty — trong mức khoán không tính thuế |
STANDARD | EARNING | NO | — | — | 0 · HALF_UP | |
| ALW_ATTENDANCE | Thưởng chuyên cần công thức v3 DRAFT v2 hard-code 22 công — sai với Lào (26 công) · nhấp để mở trình soạn |
STANDARD | EARNING | YES | — | — | 0 · HALF_UP | |
| ALW_SUBSISTENCE | Phụ cấp sinh hoạt 🇱🇦 Case test LA-04: Khamphan Sisouk (chưa qua đào tạo, 1.800.000 ₭) → +700.000 ₭ = đủ sàn 2.500.000 ₭ |
🔒 SYSTEM · LA | EARNING | YES | ✓ | — | 0 · HALF_UP | |
| OT_150 | Làm thêm ngày thường 150% Họ OT_* sinh theo time_bucket (200/300%, đêm +30%, OT đêm +20%) · phần phụ trội dự kiến miễn thuế — chờ NĐ 253/2026 (V-08) |
STANDARD | EARNING | PARTIAL | — | — | 0 · HALF_UP | |
| BONUS_13TH | Lương tháng 13 = AVG_LAST(BASIC_SALARY, 12) × SENIORITY_MONTHS()/12 (nếu < 1 năm) |
STANDARD | EARNING | YES | — | — | 0 · HALF_UP | |
| BONUS_PROJECT | Thưởng dự án (riêng FOXAI) Tier CUSTOM — tự do hoàn toàn, tính vào hạn mức 60 cột |
CUSTOM | EARNING | YES | — | — | 0 · HALF_UP | |
| DED_UNION | Đoàn phí công đoàn 1% tiền lương làm căn cứ đóng BHXH — chỉ đoàn viên |
STANDARD | DEDUCTION | — | — | — | 0 · HALF_UP | |
| DED_ADVANCE | Trừ tạm ứng Chỉ đọc đơn tạm ứng ĐÃ DUYỆT — tầng 1 FACT, bất biến, công thức không sửa được nguồn |
STANDARD | DEDUCTION | — | — | — | 0 · HALF_UP | |
| SI_EMPLOYEE | BH bắt buộc — NLĐ 🇻🇳 10,5% = HT 8 + BHYT 1,5 + BHTN 1 · 🇱🇦 NSSF 5,5% trần 4.500.000 ₭ — tầng 4 STATUTORY |
🔒 SYSTEM | DEDUCTION | — | — | — | 0 · theo quỹ | |
| SI_EMPLOYER | BH bắt buộc — DN 🇻🇳 21,5% (5 quỹ: HT 14 + ÔĐTS 3 + TNLĐ 0,5 + BHYT 3 + BHTN 1) · 🇱🇦 NSSF 6% (1 quỹ duy nhất) |
🔒 SYSTEM | EMPLOYER_COST | — | — | — | 0 · theo quỹ | |
| PIT | Thuế TNCN = BRACKET(THU_NHAP_TINH_THUE, 'PIT_VN') → bảng tra 7 bậc / 5 bậc Đổi luật = thêm bản ghi rate_table, không sửa công thức |
🔒 SYSTEM | DEDUCTION | — | — | — | 0 · HALF_UP | |
| GROSS_PAY | Tổng thu nhập Cột tổng bị khoá — kiểm tra SUM(dòng) = GROSS mức 🔴 chặn sau mỗi lần chạy |
🔒 SYSTEM | INFO | — | — | — | 0 · HALF_UP | |
| NET_PAY | Thực lĩnh Đối chiếu gross − khấu trừ = net từng phiếu (🔴 chặn) · cảnh báo net ≤ 0 |
🔒 SYSTEM | INFO | — | — | — | 0 · HALF_UP | |
| TOTAL_COST | Tổng chi phí DN = GROSS_PAY + SI_EMPLOYER + phí công đoàn DN — nguồn cho phân bổ cost_center (rải phần dư từng đồng) |
🔒 SYSTEM | EMPLOYER_COST | — | — | — | 0 · HALF_UP |
🔒 SYSTEM Compliance sửa tham số, công thức khoá
STANDARD sửa công thức được — kèm cảnh báo + quy trình duyệt
CUSTOM tự do — tính vào hạn mức gói
PARTIAL có taxable_expr riêng
Nền BH / OT is_si_base · is_ot_base — country pack quyết định
Trình soạn công thức
ALW_ATTENDANCE — Thưởng chuyên cần · tier STANDARD · bản nháp v3 (v2 ACTIVE từ 01/06/2025)
✓ DRAFT v3 · 05/03
✓ Chạy thử & so sánh · 06/03
✓ Bộ test 4/4 PASS
● Gửi duyệt (PENDING)
5 ACTIVE · valid_from 01/04/2026
change_reason: “Sửa lỗi hard-code 22 công (sai với pháp nhân Lào — công chuẩn 26); thêm bậc 400.000 cho người thiếu đúng 1 công và không đi muộn.”
· retro_policy = USE_OLD_RULE vì đây là thay đổi chính sách công ty — kỳ cũ giữ quy tắc cũ, không truy thu hàng loạt.
◔ Kỳ 03/2026 đang OPEN — không cho sửa công thức trên kỳ CALCULATING/CLOSED. Kích hoạt là dữ liệu có valid_from, không phải deploy → không vướng phong toả deploy 22/03 – 07/04.
Thanh công thức — cú pháp Excel, lưu AST
văn bản chỉ là giao diện · engine chạy AST JSON đã biên dịch
1= IFS(
2 WORK_DAYS() >= STANDARD_DAYS(), 800000,
3 AND( WORK_DAYS() >= STANDARD_D
4 LATE_MINUTES() = 0 ), 400000,
5 TRUE, 0
6 )
STANDARD_DAYS()Công chuẩn pháp nhân · NUMBER · VN-2026.01: 22 — LA-2024.10: 26
SCHEDULED_DAYS()Ngày được xếp lịch thực tế của NV trong kỳ · NUMBER · vd 21
SENIORITY_YEARS(from?)Thâm niên (năm) · NUMBER · vd 3,25
✓ Kiểu trả về: MONEY (theo tiền tệ pháp nhân) · 17/500 node · sâu 5/32 · 231B/4KB · biên dịch 4ms → cache AST
WORK_DAYS→
ALW_ATTENDANCE→
GROSS_PAY→
PIT→
NET_PAY→
TOTAL_COST
⚠ Cảnh báo bảo vệ: 4 component hạ nguồn phụ thuộc ALW_ATTENDANCE — đổi kết quả sẽ lan tới GROSS_PAY, PIT, NET_PAY, TOTAL_COST. Xoá/đổi tên bị chặn khi còn tham chiếu.
· ✓ Không phát hiện phụ thuộc vòng (Tarjan SCC) · ✓ Không bỏ sót component bắt buộc.
⛔ 05/03 09:12 — bản nháp đầu bị chặn khi lưu: tham chiếu ALW_DILIGENCE không tồn tại (kiểm tra hợp lệ ngay khi lưu — không để lỗi cú pháp lọt tới phiên chạy lương ban đêm).
Xem trước trực tiếp — 3 nhân viên đại diện
tính lại ngay khi đang nhập, chưa cần lưu · số liệu dự phóng đến hết kỳ 03/2026 — chốt công 25/03
| Nhân viên | Pháp nhân | WORK_DAYS() | STANDARD_DAYS() | LATE (phút) | Kết quả v3 |
|---|---|---|---|---|---|
PH Phạm Thu Hằng NV2026-0412 · G5 |
🇻🇳 VN | 22 | 22 | 0 | 800.000 ₫ |
TB Trần Quốc Bảo NV2024-0089 · CN bậc 4 |
🇻🇳 VN | 21 ⚠ | 22 | 0 | 400.000 ₫ |
SV Somchai Vongsa LA2024-0112 · Kế toán TH |
🇱🇦 LA | 26 | 26 | 0 | 800.000 ₭ |
Nhấp một dòng để xem bảng giải trình từng bước:
⚠ Gợi ý: hằng số 800000 áp theo tiền tệ pháp nhân (₫ / ₭). Nếu muốn mức riêng cho Lào → dùng TABLE('MUC_CHUYEN_CAN', EMP('legal_entity')).
Chạy thử & so sánh — v2 ACTIVE vs v3 DRAFT
1.284 NV · 18,7 giây2 NV lệch| Nhân viên | Công | v2 (ACTIVE) | v3 (DRAFT) | Δ | Ghi chú |
|---|---|---|---|---|---|
Phạm Thu Hằng VN · 22 công chuẩn | 22/22 | 800.000 | 800.000 | 0 | không đổi (dòng đối chứng) |
Trần Quốc Bảo VN · thiếu 1 công, 0 phút muộn | 21/22 | 0 | 400.000 | +400.000 | bậc khuyến khích mới của v3 |
Bounmy Keo LA · nghỉ ốm 3 ngày (SICK: affects_attendance = false) | 23/26 | 800.000 | 0 | −800.000 | v2 hard-code 22 → trả nhầm cho NV Lào thiếu công từ 01/06/2025 |
Somchai Vongsa LA · 26 công chuẩn | 26/26 | 800.000 | 800.000 | 0 | v3 đúng nhờ STANDARD_DAYS() |
| Quỹ chuyên cần cả kỳ (dự phóng) | 986.800.000 | 986.400.000 | −400.000 |
Khoản trả nhầm phía Lào: retro_policy = USE_OLD_RULE → không tự động truy thu; nếu muốn thu hồi phải mở đợt điều chỉnh riêng có duyệt.
Bộ test của người dùng — chạy lại tự động mỗi lần đổi công thức
4/4 PASS✓ PASST1 · Phạm Thu Hằng — 22/22 công, kỳ 03/2026 → kỳ vọng 800.000 ₫ · thực tế 800.000 ₫
✓ PASST2 · Trần Quốc Bảo — 21/22 công, 0 phút muộn → kỳ vọng 400.000 ₫ · thực tế 400.000 ₫
✓ PASST3 · Bounmy Keo — 23/26 công (ốm 3 ngày) → kỳ vọng 0 · thực tế 0
✓ PASST4 · Somchai Vongsa — 26/26 công, pháp nhân LA → kỳ vọng 800.000 ₭ · thực tế 800.000 ₭
Bộ test pass là điều kiện để nút “Gửi duyệt” mở khoá.
Thư viện hàm — 42 hàm, 5 nhóm
nhấp một hàm để chèn vào công thức
Thư viện mẫu theo ngành
chọn một mẫu để nạp vào bản nháp
◧ Sản xuất theo ca
▤ Bán lẻ
◔ F&B
▲ Xây dựng
§ Văn phòng
Sandbox — 8 chốt chặn bắt buộc
engine tham chiếu CEL — không Turing-đầy đủ, đảm bảo dừng
1 · Không I/O, network, importcontext bất biến
2 · Đảm bảo dừngkhông cho user viết vòng lặp
3 · Cost budget tất định17 / 500 đơn vị ✓
4 · Giới hạn cấu trúcsâu 5/32 · 231B/4KB ✓
5 · Data scoping — chốt hay bị quên nhấtchỉ thấy context 1 NV, không SUMIF toàn bảng
6 · Validate lúc lưuđã chặn 1 bản nháp lỗi 05/03
7 · Timeout 50ms/NVđo được 0,8ms ✓
8 · Cô lập tenanttầng process/pool riêng
Tổng phòng ban nếu cần → hàm dựng sẵn DEPT_AGG('SUM', code) có kiểm tra quyền — không mở SUMIF (chống rò rỉ lương giữa nhân viên).
Bảng tra & Lookup
rate_table pháp định (country pack) · lookup_table người dùng · statutory_constant — “sửa luật là sửa dữ liệu, không sửa công thức”
PIT_VN — biểu 7 bậc
ĐANG ÁP DỤNG · kỳ 03/2026
| Bậc | Thu nhập tính thuế/tháng | Suất | Thuế luỹ kế tại trần |
|---|---|---|---|
| 1 | Đến 5.000.000 | 5% | 250.000 |
| 2 | Trên 5 – 10 triệu | 10% | 750.000 |
| 3 | Trên 10 – 18 triệu | 15% | 1.950.000 |
| 4 | Trên 18 – 32 triệu | 20% | 4.750.000 |
| 5 | Trên 32 – 52 triệu | 25% | 9.750.000 |
| 6 | Trên 52 – 80 triệu | 30% | 18.150.000 |
| 7 | Trên 80 triệu | 35% | — |
Phiên bản này được giữ lại vĩnh viễn — truy lĩnh các kỳ ≤ 06/2026 luôn tính lại bằng biểu 7 bậc.
PIT_VN — biểu 5 bậc
ĐÃ LÊN LỊCH · valid_from 01/07/2026
| Bậc | Thu nhập tính thuế/tháng | Suất | Thuế luỹ kế tại trần |
|---|---|---|---|
| 1 | Đến 10 triệu | 5% | 500.000 |
| 2 | Trên 10 – 30 triệu | 10% | 2.500.000 |
| 3 | Trên 30 – 60 triệu | 20% | 8.500.000 |
| 4 | Trên 60 – 100 triệu | 30% | 20.500.000 |
| 5 | Trên 100 triệu | 35% | — |
2026 có hai chế độ thuế trong một năm: giảm trừ mới áp từ kỳ thuế 2026 (01/01) nhưng biểu 5 bậc chỉ từ 01/07 — hệ thống áp dụng nguyên tắc mọi tham số có hiệu lực theo ngày (case test VN-03/VN-04).
Đổi luật = THÊM bản ghi valid_from mới — không sửa công thức, không deploy.
Công thức PIT vẫn nguyên vẹn: = BRACKET(THU_NHAP_TINH_THUE, 'PIT_VN'). Engine tự chọn phiên bản theo ngày kỳ lương.
Ví dụ cùng TNTT 16.176.471 ₫ (hồ sơ gross-up của Trương Mỹ Linh): 7 bậc → 1.676.471 ₫ · 5 bậc → 1.117.647 ₫ (giảm 558.824 ₫/tháng) — xem màn Gross-up →
⚠ CẦN XÁC MINH VĂN BẢN GỐC — V-01 (bảng bậc đầy đủ) · V-02 (ngày hiệu lực sắc lệnh 06/08/2025) — pack LA-2026.07 đang DRAFT, chưa PUBLISHED
PIT_LA — thuế TNCN Lào 🇱🇦
pack LA-2026.07 · DRAFT
| Bậc | Thu nhập/tháng (₭) | Suất |
|---|---|---|
| 1 | Đến 2.500.000 ngưỡng miễn mới | 0% |
| 2 | Trên 2.500.000 – 5.000.000 | 5% |
| 3 | Trên 5.000.000 – … | 10% |
| … | các bậc giữa — chờ bản gốc Bộ Tài chính Lào (V-01) | … |
| cao nhất | Trên 65.000.000 | 25% |
Cảnh báo nguồn dữ liệu: hãng tư vấn chuyên về Lào, bản cập nhật 05/2026, vẫn công bố ngưỡng miễn cũ 1.300.000 ₭ — trong khi sắc lệnh đã nâng lên 2.500.000 ₭. Chỉ tin văn bản gốc; nguồn thứ cấp chỉ để phát hiện “có thay đổi”.
Ví dụ chính thức — case test LA-02, thu nhập 6.000.000 ₭/tháng:
0%2.500.000 ₭ đầu tiên (miễn)0
5%2.500.000 ₭ tiếp theo125.000
10%1.000.000 ₭ còn lại100.000
Thuế = 0 + 125.000 + 100.000 = 225.000 ₭
Cơ sở tínhthu nhập sau khi trừ NSSF — Lào rất ít giảm trừ cá nhân
Khamphan Sisouk (LA2025-0090)2.500.000 − 137.500 = 2.362.500 ₭ ≤ 2,5tr → thuế 0
Kỳ 06/2026 vs 07/2026 (case LA-13)tự áp ngưỡng cũ/mới theo valid_from
lookup_table — PHU_CAP_CHUC_VU (người dùng tự tạo)
key: job_grade × location · value: MONEY(VND) · tenant FOXAI Việt Nam
| job_grade | location | Giá trị | valid_from | valid_to | |
|---|---|---|---|---|---|
| G7 | HN | 3.000.000 | 01/01/2026 | ∞ | Vũ Đình Long — TP Kinh doanh |
| G7 | HCM | 3.000.000 | 01/01/2026 | ∞ | |
| G6 | HN | 2.200.000 | 01/01/2026 | ∞ | |
| G5 | HN | 1.500.000 | 01/01/2026 | ∞ | bản ghi mới |
| G5 | HN | 1.200.000 | 01/06/2025 | 31/12/2025 | SUPERSEDED |
| G5 | HCM | 1.500.000 | 01/01/2026 | ∞ |
Ô trống không im lặng: khoá G4 × BN chưa có giá trị — engine báo LOOKUP_MISS ngay lúc validate cấu hình, không âm thầm trả 0 vào lương.
Cách công thức gọi bảng tra
= TABLE('PHU_CAP_CHUC_VU', EMP('job_grade'), EMP('location'))
Long G7 · HN · kỳ 03/2026→ 3.000.000 ₫
G5 · HN, kỳ 11/2025 (truy lĩnh)→ 1.200.000 ₫ (bản ghi cũ)
Hiệu lựctừng dòng có valid_from/valid_to riêng
Thay đổi mức phụ cấp bằng dữ liệu: tăng phụ cấp chức vụ = thêm dòng dữ liệu có hiệu lực mới. Chuyên viên C&B tự làm, không cần sửa công thức, không gọi hỗ trợ.
statutory_constant — hằng số pháp lý có hiệu lực theo ngày
công thức gọi CONST('…') — không bao giờ hard-code số vào công thức
| code | Tên | Giá trị cũ (hiệu lực) | Giá trị mới (hiệu lực) | legal_basis |
|---|---|---|---|---|
| PIT_SELF_DEDUCTION | Giảm trừ bản thân (VN) | 11.000.000 (đến 31/12/2025) | 15.500.000 (kỳ thuế 2026) | NQ 110/2025/UBTVQH15 · luật hồi tố → retro_policy USE_NEW_RULE |
| PIT_DEPENDENT_DEDUCTION | Giảm trừ mỗi người phụ thuộc (VN) | 4.400.000 (đến 31/12/2025) | 6.200.000 (kỳ thuế 2026) | NQ 110/2025/UBTVQH15 · Hằng có 2 NPT → giảm trừ 12.400.000 |
| MIN_WAGE_LA | Lương tối thiểu Lào | 1.600.000 ₭ (đến 30/09/2024) | 2.500.000 ₭ (01/10/2024) | TB 3534/MLSW · V-04 đang đàm phán 2026: 2,71tr+900k / 4,1tr / 2,83tr |
| SUBSISTENCE_MAX | Trần phụ cấp sinh hoạt (Lào) | — | 900.000 ₭ (01/10/2024) | TB 3534/MLSW · chỉ LĐ phổ thông chưa qua đào tạo, lương < 2,5tr ₭ |
| NSSF_CEILING | Trần đóng NSSF (Lào) | — | 4.500.000 ₭ | LSSO · Somchai lương 9,8tr ₭ vẫn chỉ đóng 5,5% × 4,5tr = 247.500 ₭ |
| MIN_WAGE_REGION_1 | LTTV vùng I (VN) | 4.960.000 (đến 31/12/2025) | 5.310.000 (01/01/2026) | NĐ 293/2025/NĐ-CP · V-06 vùng II–IV chờ văn bản gốc |
| REFERENCE_WAGE | Mức tham chiếu (trần BHXH/BHYT = 20×) | — | ••• V-09 chặn | chờ văn bản hướng dẫn Luật BHXH 2024 — pack không PUBLISHED khi còn 🔴 |
◔ Mỗi thay đổi tham số cần 2 người kiểm tra chéo với văn bản gốc + ghi legal_basis từng bản ghi. Kỳ lương đóng băng country_pack_ver vào snapshot — chạy lại 10 năm sau vẫn ra đúng số cũ.
TL
Hợp đồng NET — Gross-up
Trương Mỹ Linh · NV2025-0301 · Kế toán trưởng · HĐ NET 30.000.000 ₫/tháng · 0 người phụ thuộc · kỳ 03/2026 (biểu 7 bậc)
Bài toán vòng: thuế phụ thuộc GROSS → GROSS phụ thuộc thuế. Vì biểu thuế luỹ tiến từng phần, không tồn tại công thức đóng — bắt buộc giải lặp:
solver đặt BASIC_SALARY = mid, chạy lại toàn bộ DAG 62 component, so NET ra với 30.000.000, rồi siết khoảng [lo ; hi] kiểu chia đôi.
NET mục tiêu
30.000.000 ₫
ghi trong HĐLĐ — phổ biến ở DN FDI
Số vòng lặp
25/60 MAX_ITER
25 lần chạy lại DAG ≈ 20ms
Sai số cuối
0 ₫
TOLERANCE 1₫ — VND ưu tiên khớp tuyệt đối
Tham số solver
đóng băng theo snapshot kỳ 03/2026 · pack VN-2026.01
Biểu thuếPIT_VN · 7 bậc (trước 01/07/2026)
Giảm trừ bản thân15.500.000 (NQ 110/2025)
Người phụ thuộc0 × 6.200.000 = 0
BH bắt buộc NLĐ10,5% · nền = GROSS (dưới trần)
Trần tách đôiBHXH/BHYT: 20× mức tham chiếu (V-09) · BHTN: 20× LTTV vùng I = 106.200.000 → đều dưới trần ✓
Khoảng khởi tạolo = 30.000.000 · hi = 30tr/(1−20%)×1,5 = 56.250.000
Dừng khi|diff| ≤ 1₫ hoặc hết 60 vòng
Kiểm tra tính đơn điệu — 3 điểm trước khi chia đôi
nếu không đơn điệu thì cảnh báo, không chạy
✓ NET tăng nghiêm ngặt theo GROSS trên [lo ; hi] → chia đôi an toàn. Công thức bậc thang do người dùng viết có thể phá tính đơn điệu — khi đó solver từ chối chạy và chỉ tên component gây ra.
Ba nguyên tắc vận hành của solver
1 · Engine phải rẻ để chạy lạigross-up = 20–60 lần chạy DAG cho MỘT nhân viên · đo được ≈ 0,8ms/lần
2 · Phát hiện không hội tụbáo lỗi rõ ràng — tuyệt đối không im lặng trả kết quả sai
3 · Solver BỌC NGOÀI DAGkhông phải hàm trong công thức — nó điều khiển cả đồ thị
SOLVER gross-up→ override BASIC_SALARY = mid →
DAG 62 component→ NET →
so với 30.000.000→ siết lo/hi ↺
⛔ Ví dụ lỗi — GrossUpNotConvergedError: NV2025-0188 · target_net 28.000.000 · 60 vòng · last_diff +214.508.
Nguyên nhân thường gặp: thưởng bậc thang làm NET không đơn điệu. Phiếu lương bị CHẶN, kỳ lương không khoá được — không bao giờ trả “gần đúng”.
Phiếu kiểm chứng — chạy DAG lần cuối tại GROSS tìm được
Trương Mỹ Linh · kỳ 03/2026 · run_type SIMULATION → ghi vào phiếu chính thức khi chốt
30.000.000 ₫ NET — đúng từng đồng với HĐ
Thu nhập
GROSS_PAY (nghiệm solver)BASIC_SALARY sau gross-up35.392.705
Khấu trừ
BH bắt buộc NLĐ 10,5%BHXH 8% = 2.831.416 · BHYT 1,5% = 530.891 · BHTN 1% = 353.927−3.716.234
Giảm trừ bản thân (không trừ tiền — chỉ trừ nền thuế)TNTT = 35.392.705 − 3.716.234 − 15.500.000 = 16.176.471·
Thuế TNCN — BRACKET 7 bậc250.000 + 500.000 + 6.176.471 × 15% (→ 926.471)−1.676.471
NET_PAY30.000.000
Đối chiếu tự động sau tính: gross − khấu trừ = net ✓ (kiểm tra 🔴 chặn) · mở cây giải trình đầy đủ
Chi phí thật của hợp đồng NET
NET nhân viên nhận30.000.000 ₫
GROSS quy đổi35.392.705 ₫
BH phía DN 21,5%+7.609.432 ₫
TOTAL_COST43.002.137 ₫ = 143,3% NET
Từ 01/07/2026 (biểu 5 bậc), cùng HĐ NET 30tr → GROSS chỉ còn 34.698.945 ₫ (tiết kiệm 693.760 ₫/tháng). Engine tự đổi theo valid_from — HĐ NET không phải ký lại.
Trường hợp đặc biệt
Cố định cả NET + một khoản phụ cấpNewton–Raphson đa biến, hoặc giới hạn chỉ solve 1 biến
Thưởng gross-up một lầnsolve riêng phần thưởng, giữ nguyên lương cơ bản
Công thức không đơn điệuphát hiện bằng 3 điểm thử → cảnh báo người dùng
Nhật ký hội tụ — chia đôi khoảng (binary search)
mỗi vòng = 1 lần EVALUATE_DAG đầy đủ · mid làm tròn tới ₫ trước khi chạy · nhấp dòng xem BH/TNTT/thuế của vòng đó
| Vòng | lo (₫) | hi (₫) | mid — GROSS thử | NET(mid) | diff vs 30.000.000 | Hành động |
|---|---|---|---|---|---|---|
| 1 | 30.000.000 | 56.250.000 | 43.125.000 | 35.627.500 | +5.627.500 | NET quá cao → hi ← mid |
| 2 | 30.000.000 | 43.125.000 | 36.562.500 | 30.889.921 | +889.921 | hi ← mid |
| 3 | 30.000.000 | 36.562.500 | 33.281.250 | 28.393.711 | −1.606.289 | NET quá thấp → lo ← mid |
| 4 | 33.281.250 | 36.562.500 | 34.921.875 | 29.641.816 | −358.184 | lo ← mid |
| 5 | 34.921.875 | 36.562.500 | 35.742.188 | 30.265.869 | +265.869 | hi ← mid |
| 6 | 34.921.875 | 35.742.188 | 35.332.032 | 29.953.844 | −46.156 | lo ← mid |
| ⋯ vòng 7 – 20: khoảng [lo ; hi] thu hẹp 410.156 ₫ → 25 ₫ (mỗi vòng chia đôi, 14 lần chạy DAG) ⋯ | ||||||
| 21 | 35.392.691 | 35.392.716 | 35.392.704 | 29.999.999 | −1 | vào dung sai — dò tiếp nghiệm diff = 0 * |
| 22 | 35.392.704 | 35.392.716 | 35.392.710 | 30.000.004 | +4 | hi ← mid |
| 23 | 35.392.704 | 35.392.710 | 35.392.707 | 30.000.002 | +2 | hi ← mid |
| 24 | 35.392.704 | 35.392.707 | 35.392.706 | 30.000.001 | +1 | hi ← mid |
| 25 | 35.392.704 | 35.392.706 | 35.392.705 | 30.000.000 | 0 | HỘI TỤ ✓ trả GROSS |
* TOLERANCE = 1 đơn vị tiền. Với VND (minor_unit = 0), engine tiếp tục dò trong dải dung sai để ưu tiên nghiệm khớp tuyệt đối 0 ₫ — vòng 25/60, còn xa MAX_ITER. Kết quả + toàn bộ nhật ký vòng lặp được ghi vào calc_trace của dòng phiếu lương (giải trình được với thanh tra).
Bảo hiểm bắt buộc
Kỳ 03/2026 · FOXAI Việt Nam (pack VN-2026.01) · FOXAI Laos Co., Ltd (pack LA-2024.10) · hôm nay 07/03/2026
Tham gia BHXH — VN
870 người
912 NV − 34 thử việc − 8 tạm hoãn
Tham gia NSSF — LA
372 người
1 quỹ duy nhất (LSSO)
Truy đóng điều chỉnh kỳ này
1,92 tr ₫
hồi tố tăng lương P.T.Hằng ×2 kỳ
Hạn kê khai gần nhất
31/03
IVAN (VN) · 15/04 LSSO (LA)
🇻🇳 5 quỹ tách biệt — 🇱🇦 1 quỹ NSSF
Tỷ lệ đóng từ 2026 · VN: 5 dòng trên phiếu lương · LA: 1 dòng
| Quỹ (contribution_scheme) | Cơ quan | NLĐ | DN |
|---|---|---|---|
| 🇻🇳 Hưu trí và tử tuất SI_VN_PENSION | BHXH VN | 8% | 14% |
| 🇻🇳 Ốm đau – thai sản SI_VN_SICK_MAT | BHXH VN | — | 3% |
| 🇻🇳 TNLĐ – bệnh nghề nghiệp SI_VN_OSH theo ngành — V-10 | BHXH VN | — | 0,5% |
| 🇻🇳 Bảo hiểm y tế SI_VN_HEALTH | BHXH VN | 1,5% | 3% |
| 🇻🇳 Bảo hiểm thất nghiệp SI_VN_UNEMP | BHXH VN | 1% | 1% |
| 🇻🇳 Tổng Việt Nam | 10,5% | 21,5% | |
| 🇱🇦 NSSF — quỹ duy nhất SI_LA_NSSF hưu trí + y tế + thai sản + TNLĐ | LSSO | 5,5% | 6% |
| 🇱🇦 Tổng Lào | 5,5% | 6% |
◧ Nguyên tắc thiết kế: schema không có cột "bhxh/bhyt/bhtn" cứng. Mỗi quỹ là một bản ghi contribution_scheme có hiệu lực theo ngày — VN sinh 5 bản ghi, Lào 1 bản ghi. Nhờ vậy thêm quốc gia mới không phải sửa bảng lương.
⚠ Một số nguồn ghi tổng DN Việt Nam là 22% (biến thể tỷ lệ TNLĐ-BNN theo ngành). Tỷ lệ 0,5% cho phép cấu hình theo ngành nghề — điểm xác minh V-10.
Ví dụ 2026: một người "đụng" cả HAI trần khác nhau
Hồ sơ Ban điều hành — tên che theo quyền · lương đóng BH 120.000.000 ₫ · địa bàn vùng I
| Quỹ | Cơ sở trần (ceiling_basis) | Trần áp dụng | NLĐ đóng | DN đóng |
|---|---|---|---|---|
| Hưu trí – tử tuất | REFERENCE_WAGE × 20 | 46.800.000 | 3.744.000 | 6.552.000 |
| Ốm đau – thai sản | REFERENCE_WAGE × 20 | 46.800.000 | — | 1.404.000 |
| TNLĐ – BNN | REFERENCE_WAGE × 20 | 46.800.000 | — | 234.000 |
| BHYT | REFERENCE_WAGE × 20 | 46.800.000 | 702.000 | 1.404.000 |
| BHTN | MINIMUM_WAGE_REGION (vùng I) × 20 | 106.200.000 | 1.062.000 | 1.062.000 |
| Tổng trích trên lương 120.000.000 ₫ | 5.508.000 | 10.656.000 | ||
◔ Từ 2026 cơ sở tính trần bị tách đôi: BHXH/BHYT theo 20× mức tham chiếu (khái niệm mới thay "mức lương cơ sở"), riêng BHTN theo 20× lương tối thiểu vùng. Vì vậy mỗi quỹ phải có ceiling_basis riêng — không thể dùng một trần chung. Tỷ lệ trích thực tế của người này chỉ còn 4,59% (5.508.000 ∕ 120.000.000) thay vì 10,5%.
⚠ Mức tham chiếu 2.340.000 ₫ là GIẢ ĐỊNH theo mức lương cơ sở hiện hành — giá trị chính thức chờ văn bản hướng dẫn Luật BHXH 2024 (điểm chặn V-09). Sàn đóng = LTTV vùng (floor_basis = MINIMUM_WAGE_REGION, vùng I: 5.310.000 ₫ theo NĐ 293/2025).
🇱🇦 Trần NSSF cứng 4.500.000 ₭
Thu nhập vượt ngưỡng KHÔNG tính đóng
SV
Somchai Vongsa
LA2024-0112 · Kế toán tổng hợp · FOXAI Laos
Lương tháng 3/2026
9.800.000 ₭
Căn cứ đóng NSSF trần cứng
4.500.000 ₭
Phần vượt trần — không tính đóng
5.300.000 ₭
NLĐ đóng 5,5% × 4.500.000
247.500 ₭
DN đóng 6% × 4.500.000
270.000 ₭
Căn cứ đóng chiếm 46% lương thực — đúng case test LA-03
Hạn nộp & kênh kê khai
🇻🇳 Kê khai tăng/giảm/điều chỉnh (D02-LT)
qua IVAN · trong tháng phát sinh
🇻🇳 Nộp tiền BHXH kỳ 03/2026
chậm nhất 31/03/2026
🇱🇦 Bảng kê + nộp NSSF kỳ 03/2026
trước 15/04/2026 · LSSO
🇱🇦 Kênh điện tử
LSSO App — đang triển khai
◧ Pack LA v1.0 xuất file & biểu mẫu theo đúng biểu quy định — LSSO chưa mở API cho doanh nghiệp (NSSO mới tập huấn nộp trực tuyến 6/2026 cùng ILO). Adapter API sẽ bổ sung khi cơ quan công bố chuẩn kết nối.
🇻🇳 Kê khai biến động tháng 03/2026 — TĂNG · GIẢM · ĐIỀU CHỈNH
Mẫu D02-LT · gửi cơ quan BHXH qua IVAN · trạng thái: CHƯA GỬI
| Loại | Nhân viên | Hiệu lực | Mức đóng cũ | Mức đóng mới | Ghi chú nghiệp vụ |
|---|---|---|---|---|---|
| TĂNG | BQ Bùi Anh Quân NV2026-0512 · CN vận hành |
02/03/2026 | — | 8.500.000 | Tuyển mới, HĐ xác định thời hạn 12 tháng |
| TĂNG | LT Lý Thu Trang NV2026-0513 · NV kho |
05/03/2026 | — | 7.900.000 | Tuyển mới — khác Lan Anh (NV2026-0501): HĐ thử việc riêng chưa thuộc diện đóng |
| GIẢM | PĐ Phan Văn Đức NV2020-0155 · NV kho |
01/04/2026 | 9.200.000 | — | Nghỉ việc 20/03 → làm ≥ 14 ngày công ⇒ tháng 3 vẫn đóng ĐỦ tháng, báo giảm từ 04/2026 |
| ĐIỀU CHỈNH | PH Phạm Thu Hằng NV2026-0412 · CV KD cao cấp |
hồi tố 01/01/2026 | 22.000.000 | 25.000.000 | QĐ-2026/031 nhập 05/03 → hồ sơ điều chỉnh 2 kỳ (01 + 02/2026) · truy đóng NLĐ 630.000 + DN 1.290.000 = 1.920.000 ₫ — khớp truy lĩnh 6tr trên bảng lương |
⚠ 8 nhân viên tạm hoãn HĐLĐ không phát sinh đóng kỳ này; 34 nhân viên thử việc sẽ báo TĂNG khi ký HĐLĐ chính thức (Ngô Thị Lan Anh dự kiến 11/04/2026).
Thuế TNCN
Kỳ 03/2026 · VN áp biểu 7 bậc + giảm trừ mới (hai chế độ trong một năm) · LA theo sắc lệnh 06/08/2025
◔ 2026 — hai chế độ thuế trong MỘT năm: giảm trừ gia cảnh mới 15,5tr + 6,2tr/người phụ thuộc (NQ 110/2025/UBTVQH15) áp từ kỳ tính thuế 2026, nhưng biểu 5 bậc chỉ hiệu lực từ 01/07/2026 (Luật 109/2025/QH15). Kỳ 03/2026 này: giảm trừ MỚI + biểu 7 bậc CŨ.
🇻🇳 Tờ khai khấu trừ thuế TNCN — kỳ 03/2026
Mẫu 05/KK-TNCN · khai theo tháng · trạng thái NHÁP
Tổng số người lao động trả thu nhập
912
Số cá nhân có thuế khấu trừ trong kỳ
487
Tổng thu nhập chịu thuế đã trả
18.260.000.000 ₫
Thuế TNCN đã khấu trừ
1.420.000.000 ₫
Hạn nộp tờ khai + tiền thuế
20/04/2026
◧ Ví dụ trong kỳ: Phạm Thu Hằng — giảm trừ 15.500.000 + 2 × 6.200.000 = 27.900.000 ₫, thuế khấu trừ 375.341 ₫ (khớp phiếu lương, đã gồm truy lĩnh 6tr chịu thuế tại kỳ chi trả 03/2026 (nguyên tắc thời điểm chi trả); kỳ gốc chỉ truy thu BH 630.000, không truy thu thuế).
🇻🇳 Quyết toán thuế TNCN năm 2025
Hạn 31/03/2026 — còn 24 ngày · 812/912 NV đủ điều kiện uỷ quyền quyết toán
| Nhân viên | Đã khấu trừ 2025 | Thuế theo quyết toán | Chênh lệch | Xử lý |
|---|---|---|---|---|
PH Phạm Thu Hằng NV2026-0412 · uỷ quyền | 14.820.000 | 13.956.000 | −864.000 | Hoàn / bù trừ kỳ sau |
ĐT Đặng Minh Tú NV2025-0233 · uỷ quyền | 21.480.000 | 21.480.000 | 0 | Khớp |
TL Trương Mỹ Linh NV2025-0301 · TN 2 nơi — tự QT | 36.250.000 | 38.114.000 | +1.864.000 | Nộp thêm — không được uỷ quyền |
VL Vũ Đình Long NV2021-0077 · uỷ quyền | 58.900.000 | 57.360.000 | −1.540.000 | Hoàn / bù trừ kỳ sau |
PĐ Phan Văn Đức NV2020-0155 · nghỉ 20/03 — tự QT | 3.120.000 | 2.208.000 | −912.000 | NV nghỉ việc — không uỷ quyền được |
| Cộng 5 hồ sơ | 134.570.000 | 133.118.000 | −1.452.000 |
🇻🇳 Người phụ thuộc — hồ sơ Phạm Thu Hằng
Giảm trừ 6.200.000 ₫/người/tháng · áp TỪ THÁNG đăng ký (case VN-12)
| Người phụ thuộc | Quan hệ | MST NPT | Đăng ký | Áp dụng |
|---|---|---|---|---|
| Phạm Gia Bảo (2019) | Con | 8412356789 | 02/2024 | từ kỳ 02/2024 |
| Phạm Gia Hân (01/2026) | Con | 8730114522 | 05/03/2026 | từ kỳ 03/2026 — KHÔNG hồi tố 01–02 |
PĐ
Cấp chứng từ khấu trừ thuế TNCN — Phan Văn Đức
Chứng từ cấp theo yêu cầu của người lao động — bắt buộc trước khi thanh lý hồ sơ offboarding.
⚠ Ngưỡng miễn thuế Lào MỚI 2.500.000 ₭ (sắc lệnh 06/08/2025) — chờ bản gốc Bộ Tài chính (V-01/V-02). Nhiều nguồn thứ cấp, kể cả hãng tư vấn cập nhật 5/2026, vẫn đăng ngưỡng CŨ 1.300.000 ₭ — bằng chứng trực tiếp cho rủi ro R1!
🇱🇦 Kê khai PIT tháng 03/2026
Nộp trước ngày 15 tháng sau · kênh TaxRIS / Smart Tax
Số NLĐ trả thu nhập
372
Số NLĐ dưới ngưỡng miễn (thuế = 0)
118
Thuế PIT khấu trừ kỳ 03/2026
96.480.000 ₭
Hạn nộp
15/04/2026 · TaxRIS
Khoản giảm trừ cá nhân
rất ít — bậc áp trên TN sau NSSF
🇱🇦 Ví dụ tính thuế — pack LA-2026.07 (DRAFT)
Thu nhập tính thuế = lương − NSSF · luỹ tiến từng phần
| Trường hợp | TN sau NSSF | Thuế | Diễn giải |
|---|---|---|---|
| Ví dụ chính thức (case LA-02) | 6.000.000 | 225.000 | 2,5tr miễn + 2,5tr×5% + 1tr×10% |
KS Khamphan Sisouk LA2025-0090 · LĐ phổ thông | 2.362.500 | 0 | Dưới ngưỡng miễn 2,5tr → net 2.362.500 ₭ (case LA-04) |
SV Somchai Vongsa LA2024-0112 · Kế toán TH | 9.552.500 | 580.250 | 125.000 + 4.552.500 × 10% bậc >5tr GIẢ ĐỊNH — chờ V-01 |
| Bậc PIT_LA (DRAFT) | Thu nhập/tháng (₭) | Thuế suất |
|---|---|---|
| 1 | đến 2.500.000 | 0% |
| 2 | 2.500.000 – 5.000.000 | 5% |
| 3 | 5.000.000 – … | 10% |
| … | chờ bảng bậc đầy đủ từ văn bản gốc | … |
| Cao nhất | trên 65.000.000 | 25% |
⚠ V-01 CHẶN PHÁT HÀNH: bảng bậc đầy đủ phải lấy từ bản gốc Bộ Tài chính Lào. Pack LA-2026.07 giữ trạng thái DRAFT — kỳ 03/2026 vẫn tính theo pack PUBLISHED LA-2024.10.
Country Pack — quản trị tuân thủ
Luật là DỮ LIỆU có phiên bản, không phải code · "Không deploy code. Không sửa công thức. Chỉ thêm dữ liệu."
Quy trình phát hành — VN-2026.07 (biểu thuế 5 bậc) đang ở bước REVIEW
SLA: PUBLISHED trước ngày hiệu lực ≥ 10 ngày làm việc → hạn chót 17/06/2026 (hiệu lực 01/07/2026)
✓DRAFT
✓NHẬP THAM SỐ + legal_basis
✓TEST HỒI QUY 12/12
◔REVIEW 2 NGƯỜI — VĂN BẢN GỐC
5PUBLISHED (valid_from = 01/07/2026)
Người nhập tham số
Trương Mỹ Linh
Review 1 — đối chiếu Luật 109/2025
Vũ Đình Long ✓ 05/03
Review 2 — đối chiếu NĐ 253/2026
đang chờ cố vấn pháp lý
Nguyên tắc 2 người kiểm tra chéo: người nhập ≠ người review — mọi thay đổi tham số phải có 2 người xác nhận với văn bản gốc.
◧ Bản PUBLISHED là bất biến — không ai sửa được. Muốn thay đổi: tạo version mới, chạy lại test, review lại. Bản cũ giữ nguyên để tính truy lĩnh đúng luật tại thời điểm phát sinh.
🇻🇳 Dòng phiên bản pack Việt Nam
rate_table · statutory_constant · contribution_scheme · wage_floor…
01/07/2025 · VN-2025.07 PUBLISHED — hết vai trò chính
Luật BHXH 2024 có hiệu lực
Vẫn được engine dùng khi tính truy lĩnh các kỳ ≤ 12/2025.
01/01/2026 · VN-2026.01 PUBLISHED — ĐANG ÁP DỤNG · KHOÁ SỬA
LTTV mới + giảm trừ gia cảnh mới
legal_basis: NĐ 293/2025/NĐ-CP (vùng I 5.310.000, +350.000) · NQ 110/2025/UBTVQH15 (15,5tr / 6,2tr) · Luật Việc làm 2025. Vùng II–IV chờ điền từ văn bản gốc (V-06), địa bàn vùng sau sáp nhập hành chính (V-07).
01/07/2026 · VN-2026.07 DRAFT — REVIEW
Biểu thuế TNCN 5 bậc
legal_basis: Luật 109/2025/QH15 · NĐ 253/2026, NĐ 252/2026 · TT 87/2026/TT-BTC. Kèm: miễn thuế tiền OT thay đổi (V-08 — taxable_expr khả năng PARTIAL), giảm trừ y tế – giáo dục mới (V-12).
🇱🇦 Dòng phiên bản pack Lào
Theo dõi: Công báo Lào · Bộ Tài chính · LSSO · KPL · Laotian Times
01/10/2024 · LA-2024.10 PUBLISHED — ĐANG ÁP DỤNG · KHOÁ SỬA
Lương tối thiểu 2.500.000 ₭ + phụ cấp sinh hoạt
legal_basis: Thông báo 3534/MLSW — phụ cấp sinh hoạt tối đa 900.000 ₭ CHỈ cho lao động phổ thông chưa qua đào tạo lương dưới 2,5tr (vì vậy education_level.is_trained là trường bắt buộc).
~01/07/2026 · LA-2026.07 DRAFT — CHẶN bởi V-01/V-02
Nâng ngưỡng miễn PIT lên 2.500.000 ₭
legal_basis: Sắc lệnh Chủ tịch nước 06/08/2025. Chờ bảng bậc đầy đủ + ngày hiệu lực chính xác từ bản gốc (báo chí 30/06/2026 mới nói "hiệu lực trong tháng").
2026 · LA-2026.xx CHUẨN BỊ SẴN
Lương tối thiểu mới — đang đàm phán 19/03/2026
Công đoàn đề xuất 4,1tr · Bộ LĐ 2.710.451 + 900.000 phụ cấp · giới chủ 2.831.680 tổng. Đã đặt cảnh báo theo dõi để phát hành nhanh khi Văn phòng Thủ tướng công bố (V-04).
🇻🇳 Diff VN-2026.01 → VN-2026.07: biểu thuế 7 bậc → 5 bậc
rate_table PIT_VN · thu nhập tính thuế/tháng · bậc 15% và 25% bị bỏ, ngưỡng nới rộng
| # | Biểu 7 bậc (đến 30/06/2026) | Suất | Biểu 5 bậc (từ 01/07/2026) | Suất |
|---|---|---|---|---|
| 1 | Đến 5 triệu | 5% | Đến 10 triệu | 5% |
| 2 | Trên 5 – 10 triệu | 10% | Trên 10 – 30 triệu | 10% |
| 3 | Trên 10 – 18 triệu | 15% | Trên 30 – 60 triệu | 20% |
| 4 | Trên 18 – 32 triệu | 20% | Trên 60 – 100 triệu | 30% |
| 5 | Trên 32 – 52 triệu | 25% | Trên 100 triệu | 35% |
| 6 | Trên 52 – 80 triệu | 30% | — | — |
| 7 | Trên 80 triệu | 35% | — | — |
Bộ test hồi quy — pack không PASS đủ thì KHÔNG được PUBLISHED
VN-2026.07: 12/12 PASS · LA-2026.07: 12/13 (1 chờ V-01)
🇻🇳 VN 12
🇱🇦 LA 13
12 điểm PHẢI xác minh trước khi phát hành pack
Nguồn thứ cấp chỉ để phát hiện thay đổi — tham số phải theo văn bản gốc
Báo cáo hợp nhất VN + LA
Kỳ 03/2026 · FOXAI Việt Nam (VND) + FOXAI Laos Co., Ltd (LAK) · quy đổi theo tỷ giá ĐÓNG BĂNG của kỳ
Net hợp nhất
18,98 tỷ ₫
15,71 tỷ ₫ + 3,27 tỷ ₫ quy đổi
Headcount hợp nhất
1.284 người
912 🇻🇳 + 372 🇱🇦
Chi phí DN hợp nhất
26,65 tỷ ₫
22,60 tỷ ₫ + 4,05 tỷ ₫ quy đổi
Tỷ giá kỳ (đóng băng)
1,15 ₫/₭
25/03/2026 · COMMERCIAL_BANK · BCEL
Quỹ lương 2 pháp nhân — kỳ 03/2026
Nguyên tệ giữ nguyên · cột quy đổi chỉ phục vụ hợp nhất
| Pháp nhân | HC | Công chuẩn | Net (nguyên tệ) | Quy đổi ₫ (×1,15) |
|---|---|---|---|---|
| 🇻🇳 FOXAI Việt Nam pack VN-2026.01 · nghỉ T7+CN | 912 | 22 | 15.710.000.000 ₫ | 15.710.000.000 |
| 🇱🇦 FOXAI Laos Co., Ltd pack LA-2024.10 · chỉ nghỉ CN · trả lương bắt buộc LAK | 372 | 26 | 2.840.000.000 ₭ | 3.266.000.000 |
| Hợp nhất | 1.284 | 18.976.000.000 ₫ |
Net bình quân/người 🇻🇳
17.225.877 ₫
Net bình quân/người 🇱🇦
7.634.409 ₭ (≈ 8.779.570 ₫)
Chi phí DN 🇻🇳 / 🇱🇦
22,60 tỷ ₫ / 3,52 tỷ ₭
Snapshot tỷ giá kỳ 03/2026
bảng exchange_rate → đóng băng vào payroll_period
rate (LAK → VND)
1,1500000000
rate_date
25/03/2026
rate_type
COMMERCIAL_BANK
source
BCEL
fx_rate_date so với ngày chi lương 05/04
trong vòng 3 ngày làm việc của kỳ trả ✓
⚠ Luật Lào CẤM tỷ giá lịch sử ghi trong hợp đồng — phải dùng tỷ giá ngân hàng thương mại tại kỳ trả (case LA-12: HĐ ghi USD vẫn quy đổi LAK, đóng băng ngày). payroll_period.fx_rate_date là trường bắt buộc với pháp nhân Lào.
◔ Rủi ro R6 — biến động tỷ giá LAK: báo cáo hợp nhất luôn đọc tỷ giá từ snapshot đóng băng theo kỳ, không lấy tỷ giá hiện hành. Mở lại báo cáo kỳ 03/2026 vào năm sau vẫn ra đúng 18,98 tỷ ₫ — con số không "trôi" theo thị trường.
Chi phí doanh nghiệp theo đơn vị — 2 nước trên cùng một trục (quy đổi ₫)
VN màu ngọc · LA màu tím kíp · tổng khớp 22,60 tỷ ₫ + 4,05 tỷ ₫ = 26,65 tỷ ₫
■ FOXAI Việt Nam — 22,60 tỷ ₫■ FOXAI Laos — 3,52 tỷ ₭ × 1,15 = 4,05 tỷ ₫
Đối chiếu chỉ tiêu pháp định VN – LA
Hai quốc gia cạnh nhau — lý do phải thiết kế bằng tham số, không hard-code
| Hạng mục | 🇻🇳 Việt Nam | 🇱🇦 Lào | Tác động thiết kế |
|---|---|---|---|
| Công chuẩn kỳ 03/2026 | 22 ngày (nghỉ T7 + CN) | 26 ngày (chỉ nghỉ CN) | work_calendar theo pháp nhân |
| Tuần làm việc | 48h (khuyến khích 40h) / 5 ngày | 48h / 6 ngày | Cấu hình pháp nhân |
| Trần OT tháng | 40h (200h/năm, 300h ngành đặc thù) | 45h V-03: nguồn khác ghi 30h | working_time_rule |
| Hệ số OT | 150 / 200 / 300% · đêm +30% · OT đêm +20% | 1,5 / 2,5 / 3× · ca đêm +15% mọi lúc | time_bucket chế độ ADDITIVE |
| Số quỹ bảo hiểm | 5 quỹ tách biệt | 1 quỹ NSSF | contribution_scheme trừu tượng |
| Tỷ lệ NLĐ / DN | 10,5% / 21,5% | 5,5% / 6% | Tham số theo pack |
| Cơ sở trần đóng | Tách đôi: mức tham chiếu + LTTV | Trần cứng 4,5tr ₭ | ceiling_basis từng quỹ |
| Phép năm | 12 ngày + 1/5 năm thâm niên | 15 ngày (18 nghề rủi ro) | leave_accrual_rule |
| Ngày lễ | 11 ngày, đồng đều | ~9 ngày, có điều kiện cá nhân (08/03 chỉ nữ; QK nước ngoài) | eligibility_expr |
| Lương tối thiểu | 4 vùng (vùng I: 5.310.000 ₫) | Toàn quốc 2,5tr ₭ + phụ cấp sinh hoạt có điều kiện | wage_floor + eligibility |
| Đồng tiền trả lương | VND | Bắt buộc LAK — tỷ giá NHTM trong 3 ngày | fx_rate_date bắt buộc |
| Nộp hồ sơ điện tử | IVAN + thuế điện tử | TaxRIS · LSSO App đang triển khai | Adapter khác nhau, LA v1 xuất file |
Tài khoản & Danh tính
Tách bạch PERSON — IDENTITY — EMPLOYEE · 1.284 nhân sự · 1.093 tài khoản đăng nhập · 4 tài khoản dịch vụ
Mô hình 3 khái niệm — vì sao không gộp "nhân viên" với "tài khoản"
PERSON · Con người
Danh tính duy nhất, tồn tại độc lập với việc làm và tài khoản
Nguyễn Văn Tùng
QT Việt Nam · Hộ chiếu C9****31
QT Việt Nam · Hộ chiếu C9****31
1 : N
──────▶
1 : N
──────▶
IDENTITY · Tài khoản đăng nhập
Có thể = 0 (công nhân kiosk) hoặc không gắn Person (SERVICE)
tung.nguyen ACTIVE HUMAN
EMPLOYEE · Quan hệ lao động
Thuộc đúng 1 pháp nhân tại 1 thời điểm — có lịch sử
NV2019-0102 FOXAI Việt Nam · kết thúc 31/08/2024
LA2024-0055 FOXAI Laos Co., Ltd · đang hiệu lực
LA2024-0055 FOXAI Laos Co., Ltd · đang hiệu lực
◈ Một con người (Tùng) → 1 identity đăng nhập duy nhất → 2 employee ở 2 pháp nhân. Chuyển từ VN sang Lào không tạo hồ sơ mới, không mất lịch sử thâm niên.
5 tình huống buộc phải tách
nếu gộp Person = Identity = Employee thì bế tắc
| Tình huống | Nếu gộp | Nếu tách | Ví dụ thực tế |
|---|---|---|---|
| Nghỉ việc rồi quay lại | Hồ sơ mới → mất lịch sử | Cùng Person, thêm Employee mới | Phan Văn Đức (nếu tái tuyển) |
| Làm ở 2 pháp nhân VN + Lào | Không xử lý được | 1 Person → 2 Employee | Nguyễn Văn Tùng |
| Kế toán thuê ngoài truy cập | Phải tạo "nhân viên ảo" | Identity không cần Employee | kt-ngoai (PARTNER) |
| Công nhân không email | Tài khoản rác | Employee không cần Identity | Trần Quốc Bảo |
| Xem phiếu lương sau nghỉ việc | Khóa tài khoản là mất quyền | Identity sống, quyền thu hẹp (ALUMNI) | Phan Văn Đức |
Vòng đời tài khoản
khoá sau 5 lần sai mật khẩu · tự mở sau 15 phút · DISABLED không bao giờ xoá
INVITED
lời mời hết hạn 7 ngày
──(kích hoạt)──▶
ACTIVE
đăng nhập bình thường
⇄ sai mật khẩu 5 lần
◀ hết 15 phút / admin mở
◀ hết 15 phút / admin mở
LOCKED
locked_until = +15 phút
──(nghỉ việc / admin)──▶
DISABLED
không xoá — giữ truy vết lịch sử thao tác
⚠ Nhân viên nghỉ việc: tài khoản chuyển vai trò ALUMNI (chỉ xem phiếu lương & giấy tờ của mình trong 60 tháng — theo thiết lập lưu trữ của tenant), sau đó mới DISABLED. INVITED hết hạn lời mời cũng rơi về DISABLED.
Danh sách tài khoản & định danh
Tất cả · 11HUMANSERVICEPARTNER
Có cờ cảnh báo
MFA bắt buộc
| Người / định danh | Đăng nhập | Loại | Vai trò | P · I · E | Trạng thái | MFA | Hoạt động gần nhất | |
|---|---|---|---|---|---|---|---|---|
Phạm Thu Hằng NV2026-0412 · CV KD cao cấp · G5 |
hang.pham | HUMAN | EMPLOYEE + nhận uỷ quyền duyệt 16–20/03 (từ Vũ Đình Long) |
PIE | ACTIVE | — không bắt buộc | Mobile · 07/03 08:56 xem phiếu lương của mình → đã ghi access log |
|
Trương Mỹ Linh NV2025-0301 · Kế toán trưởng |
linh.truong | HUMAN | PAYROLL_APPROVER · ACCOUNTANT | PIE | ACTIVE | ✓ MFA · TOTP bắt buộc với KTT |
Web · 07/03 07:40 | |
Đỗ Thu Trang NV2022-0198 · Chuyên viên C&B |
trang.do | HUMAN | CB_SPECIALIST | PIE | ACTIVE | ✓ MFA · TOTP bắt buộc với C&B |
Web · 06/03 16:44 sửa công thức — có ghi audit |
|
Vũ Đình Long NV2021-0077 · Trưởng phòng KD · G7 |
long.vu | HUMAN | MANAGER − uỷ quyền duyệt cho Hằng 16–20/03 · công tác Viêng Chăn |
PIE | ACTIVE | ✓ tự nguyện khuyến nghị cấp quản lý |
Mobile · 06/03 21:18 | |
Lê Hồng Nhung Công ty Kiểm toán AACS — thuê ngoài |
kt-ngoai | PARTNER | ACCOUNTANT (phạm vi giới hạn: báo cáo tổng hợp) | PIE | ACTIVE ⚠ cờ truy cập bất thường 06/03 | — | Web · 06/03 14:58 xem lương 47 người/giờ → xem Nhật ký |
|
Trần Quốc Bảo NV2024-0089 · CN bậc 4 · ca kíp |
KHÔNG IDENTITY chấm công kiosk: mã NV + PIN |
— | — (không đăng nhập) | PIE | — không có tài khoản | — | Kiosk · 07/03 06:31 vào ca OT thứ Bảy |
|
⚙ svc-integration Đồng bộ máy chấm công · person_id = NULL |
ak_live_7f2•••c9 API key — không có mật khẩu |
SERVICE | time.punch.import hr.employee.view phạm vi giới hạn, chỉ đọc + ghi punch |
PIE | ACTIVE | n/a | API · 07/03 06:30 đồng bộ 1.284 punch / 14 máy |
|
Phan Văn Đức NV2020-0155 · NV kho VN |
duc.phan | HUMAN | EMPLOYEE → ALUMNI từ 21/03/2026 xem phiếu lương & giấy tờ của mình đến 20/03/2031 (60 tháng) |
PIE | ACTIVE nghỉ việc 20/03 | — | Web · 05/03 17:02 | |
Nguyễn Văn Tùng LA2024-0055 · người VN làm tại Lào |
tung.nguyen | HUMAN | EMPLOYEE | PIEE | ACTIVE 1 người · 2 employee | — | Mobile · 06/03 19:44 (locale vi) | |
Bounmy Keo LA2025-0078 · NV kho LA |
+856 20 55 234 118 đăng nhập bằng SĐT + SMS OTP |
HUMAN | EMPLOYEE | PIE | ACTIVE | — | Mobile · 05/03 07:12 (locale lo) | |
Lê Văn Hùng NV2023-0455 · Tổ trưởng chuyền BN |
hung.le | HUMAN | MANAGER | PIE | LOCKED sai mật khẩu lần 5 lúc 08:47 · tự mở 09:02 |
— | failed_attempts = 5 | |
Ngô Thị Lan Anh NV2026-0501 · NV nội dung · thử việc 85% |
lananh.ngo | HUMAN | EMPLOYEE | PIE | INVITED gửi 05/03 · lời mời hết hạn 12/03 |
— | chưa kích hoạt |
Phiên làm việc theo kênh
TTL cấu hình cấp tenant
| Thông số | Web | Mobile | Kiosk |
|---|---|---|---|
| Access token TTL | 15 phút | 15 phút | 5 phút |
| Refresh token TTL | 8 giờ | 30 ngày | 12 giờ |
| Đồng thời nhiều thiết bị | ✓ Có | ✓ Có | ✗ Không |
| Thu hồi phiên từ xa | ✓ Có | ✓ Có | ✓ Có |
■ Bắt buộc: khi đổi mật khẩu, thay đổi vai trò, hoặc nghỉ việc → thu hồi toàn bộ refresh token của identity đó ngay lập tức.
Chính sách mật khẩu & xác thực
cấu hình theo tenant · hash Argon2id
Độ dài tối thiểu · chữ hoa · chữ số8 ký tự · bắt buộc · bắt buộc
Ký tự đặc biệtTắt — gây khó cho công nhân
Cấm mật khẩu phổ biến · chứa tên/ngày sinh/mã NV✓ Bật cả hai
Không dùng lại mật khẩu gần nhất3 lần
Bắt đổi định kỳKhông (max_age_days = 0, khuyến nghị hiện đại)
Khoá tài khoảnsai 5 lần → khoá 15 phút
HashArgon2id — cấm MD5/SHA1/bcrypt cost thấp
Username + mật khẩuEmail OTP
SMS OTP — bắt buộc thị trường Lào 🇱🇦
Mã NV + PIN (kiosk)SSO SAML/OIDC
API key (service)Sinh trắc học (mobile)
Vai trò & Phân quyền
Mô hình lai RBAC + ABAC + quyền cấp trường · 13 vai trò seed sẵn cho mọi tenant mới
QUYỀN = QUYỀN CHỨC NĂNG (RBAC) ∩ PHẠM VI DỮ LIỆU (ABAC) ∩ QUYỀN CẤP TRƯỜNG
"được xem bảng lương" ∩ "của pháp nhân FOXAI Việt Nam, cấp bậc dưới G6" ∩ "trừ cột số tài khoản ngân hàng" — câu hỏi thực tế của HRM luôn là ai được xem lương của ai, không chỉ ai được vào màn hình nào.
"được xem bảng lương" ∩ "của pháp nhân FOXAI Việt Nam, cấp bậc dưới G6" ∩ "trừ cột số tài khoản ngân hàng" — câu hỏi thực tế của HRM luôn là ai được xem lương của ai, không chỉ ai được vào màn hình nào.
13 vai trò mặc định (seed khi tạo tenant)
bấm để xem chi tiết
| Mã | Tên | Phạm vi mặc định |
|---|---|---|
| EMPLOYEE | Nhân viên | SELF |
| MANAGER | Quản lý trực tiếp | DIRECT_REPORTS |
| DEPT_HEAD | Trưởng đơn vị | TEAM_TREE |
| HR_SPECIALIST | Chuyên viên HR | LEGAL_ENTITY |
| HR_MANAGER | Trưởng phòng HR | LEGAL_ENTITY |
| CB_SPECIALIST ◀ | Chuyên viên C&B | LEGAL_ENTITY JOB_GRADE_BELOW |
| PAYROLL_APPROVER | Người duyệt lương | LEGAL_ENTITY |
| ACCOUNTANT | Kế toán | LEGAL_ENTITY |
| EXECUTIVE | Ban giám đốc | ALL |
| SYS_ADMIN | Quản trị hệ thống | ALL không xem lương |
| AUDITOR | Kiểm toán | ALL chỉ đọc |
| PARTNER_IMPL | Đối tác triển khai | ALL dữ liệu ẩn danh |
| ALUMNI | Cựu nhân viên | SELF giới hạn thời gian |
Chiều 1 — Quyền chức năng · CB_SPECIALIST
2 người đang giữ: trang.do, +1
| Permission | Ý nghĩa | Cấp |
|---|---|---|
| hr.employee.view | Xem hồ sơ nhân sự | ✓ |
| payroll.period.create | Tạo kỳ lương | ✓ |
| payroll.run.execute | Chạy tính lương | ✓ |
| payroll.component.config | Cấu hình khoản lương | ✓ |
| payroll.formula.edit | Sửa công thức (bắt buộc ghi lý do) | ✓ |
| payroll.payslip.view | Xem phiếu lương | ✓ |
| statutory.declare.submit | Nộp kê khai BHXH / thuế | ✓ |
| report.build · report.export | Báo cáo (xuất hàng loạt → ghi log) | ✓ |
| payroll.approve | Duyệt bảng lương — SoD: người tạo bảng lương không được duyệt cuối. Ràng buộc cứng tầng lõi, không cấu hình tắt được. | ✗ khoá |
| payroll.disburse | Chi trả lương (thuộc ACCOUNTANT) | ✗ |
| time.timesheet.approve | Duyệt bảng công (thuộc MANAGER) | ✗ |
| system.role.manage | Quản lý phân quyền (thuộc SYS_ADMIN) | ✗ |
Chiều 2 — Phạm vi dữ liệu của CB_SPECIALIST
role_scope #1 → LEGAL_ENTITY {"entity_ids":["FOXAI Việt Nam"]}
∩
role_scope #2 → JOB_GRADE_BELOW {"max_grade":"G6"}
⚠ JOB_GRADE_BELOW là bắt buộc thực tế: C&B / trưởng phòng nhân sự thường không được xem lương ban giám đốc. Hệ quả trên dữ liệu thật: Phạm Thu Hằng (G5) → thấy; Vũ Đình Long (G7, vượt max G6) → bị ẩn khỏi mọi danh sách lương.
Thử truy vấn: bảng lương kỳ 03/2026 · FOXAI Việt Nam912 hồ sơ → trả về 887 (25 hồ sơ ≥ G6 bị lọc)
Thử truy vấn: FOXAI Laos Co., Ltd0 hồ sơ — ngoài entity_ids
9 loại scope_type
bảng role_scope · scope_value dạng JSONB
| scope_type | Ý nghĩa | Ví dụ scope_value |
|---|---|---|
| SELF | Chỉ bản thân | — |
| DIRECT_REPORTS | NV báo cáo trực tiếp | — |
| TEAM_TREE | Toàn bộ cây bên dưới | {"depth": null} |
| ORG_UNIT | Đơn vị chỉ định | {"unit_ids": […]} |
| LEGAL_ENTITY | Pháp nhân chỉ định | {"entity_ids": […]} |
| COUNTRY | Toàn bộ một quốc gia | {"countries": ["VN"]} |
| JOB_GRADE_BELOW | Chỉ cấp bậc thấp hơn mình | {"max_grade": "G6"} |
| ALL | Toàn tenant | — |
| CUSTOM | Biểu thức (L3) | {"expr":"EMP('cost_center') IN […]"} |
Chiều 3 — Quyền cấp trường (field-level)
áp dụng kể cả khi đã có quyền xem bản ghi · MASKED = 0123****89 · RANGE = khoảng lương thay vì số chính xác
| field_path | MANAGER | DEPT_HEAD | CB_SPECIALIST | SYS_ADMIN | AUDITOR |
|---|---|---|---|---|---|
| person.national_id | MASKED | MASKED | FULL | MASKED | MASKED |
| person.date_of_birth | FULL | FULL | FULL | MASKED | MASKED |
| employee.bank_account | HIDDEN | HIDDEN | MASKED | HIDDEN | MASKED |
| employee.salary ◀ xem ví dụ bên dưới | HIDDEN | RANGE | FULL | HIDDEN ★ | FULL chỉ đọc |
| payslip.net_pay | HIDDEN | HIDDEN | FULL | HIDDEN | FULL |
| person.health_info | HIDDEN | HIDDEN | HIDDEN | HIDDEN | HIDDEN |
★ SYS_ADMIN không xem được lương — tách quản trị kỹ thuật khỏi dữ liệu nhạy cảm là nguyên tắc kiểm soát nội bộ cơ bản. Khách hàng muốn gộp? Phải chủ động gán thêm vai trò — và thao tác gán đó để lại dấu vết trong audit log (hành động bắt buộc ghi lý do).
Cùng một dòng dữ liệu — ba vai trò nhìn thấy ba kiểu
CB_SPECIALIST · FULL
25.000.000 ₫
STK VCB: 9704 22** **91 55 (MASKED)
Phạm Thu Hằng
NV2026-0412 · G5
DEPT_HEAD · RANGE
20 – 30 triệu (dải G5)
STK: •••••••••• (HIDDEN)
Phạm Thu Hằng
NV2026-0412 · G5
MANAGER · HIDDEN
●●●●●●●●
Phạm Thu Hằng
NV2026-0412 · G5
Ủy quyền tạm thời (delegation)
quản lý đi công tác, nghỉ phép là chuyện thường ngày — bắt buộc có
| Mã | Từ → Đến | Phạm vi được ủy | Hiệu lực | Lý do | Trạng thái |
|---|---|---|---|---|---|
| UQ-2026/012 | Vũ Đình Long → Phạm Thu Hằng | leave.request.approve time.timesheet.approve chỉ duyệt đơn nghỉ + bảng công — KHÔNG kèm quyền xem lương |
16/03 00:00 → 20/03 23:59 | Công tác Viêng Chăn | SCHEDULED |
| UQ-2026/007 | Vũ Đình Long → Phạm Thu Hằng | leave.request.approve | 10/02 → 14/02 | Nghỉ phép | EXPIRED |
■ Quy tắc: mọi hành động thực hiện qua ủy quyền phải ghi nhật ký cả hai danh tính — người thực hiện và người ủy quyền (xem ví dụ 12/02 trong Nhật ký & Kiểm toán).
Nhật ký & Kiểm toán
Ba loại nhật ký tách riêng — thời hạn lưu và người xem khác nhau · bảng chỉ INSERT
⚠ Cảnh báo đang mở: tài khoản kt-ngoai (đối tác kiểm toán AACS) xem lương 47 người trong 1 giờ — vượt ngưỡng 20 người/giờ → đã tự động báo SysAdmin + Auditor lúc 06/03 14:58.
Audit Log — thay đổi dữ liệu lưu ≥ 7 năm
Access Log — đọc dữ liệu nhạy cảm lưu ≥ 2 năm
System Log — kỹ thuật lưu 90 ngày
Audit log — ai sửa gì, giá trị trước/sau
người xem: Auditor, SysAdmin
| Thời điểm | Người thao tác | Hành động · Đối tượng | Thay đổi / Lý do | correlation |
|---|---|---|---|---|
| 06/03 16:44:07 | trang.do CV C&B |
UPDATE payroll.formula · ALW_ATTENDANCE |
IF(days_late=0, 500000, 0)
IF(AND(days_late=0, days_leave<=1), 500000, 0)
§ Lý do (bắt buộc): "QĐ 12/QĐ-FOX 01/03 — siết điều kiện thưởng chuyên cần"
|
8c41-77af |
| 06/03 16:44:07 | trang.do CV C&B |
UPDATE payroll.formula · DED_LATE |
Đổi mức trừ đi muộn theo cùng QĐ 12/QĐ-FOX — cùng correlation_id: 2 thay đổi trong 1 giao dịch được gom nhóm để truy vết trọn gói | 8c41-77af |
| 05/03 09:12:31 | trang.do CV C&B |
UPDATE employee_salary · NV2026-0412 |
22.000.000 → 25.000.000 · valid_from 01/01/2026 (hồi tố, QĐ-2026/031) Bitemporal: đóng bản ghi cũ (recorded_to = now), chèn bản ghi mới — không UPDATE đè. Truy lĩnh 6.000.000 ₫ (3.000.000 × 2 tháng) tính vào kỳ 03/2026. |
5510-1b2e |
| 06/03 08:40 | somchay.ktt Kế toán trưởng (LA) |
REOPEN payroll.period · 02/2026 🇱🇦 |
PAID → REOPENED · run 1 → 2 (OFF_CYCLE) § Lý do (bắt buộc, không nhập không lưu được): "2 dòng lỗi BCEL sai số TK + bổ sung giấy bác sĩ Bounmy Keo" |
c2d8-90e1 |
| 12/02 09:31:02 |
hang.pham
thừa ủy quyền long.vu · UQ-2026/007
ghi CẢ HAI danh tính
|
APPROVE leave.request · NV2025-0233 |
Duyệt đơn nghỉ phép Đặng Minh Tú qua ủy quyền — trường on_behalf_of = long.vu bắt buộc khác NULL khi hành động qua delegation | 77aa-3f02 |
| 03/03 08:20:15 | long.vu Trưởng phòng KD |
APPROVE time.punch_adjust · NV2024-0310 |
Duyệt điều chỉnh quên chấm ra 02/03 của Hoàng Thị Ngọc. Punch gốc bất biến — chỉ INSERT bản ghi điều chỉnh mới kèm lý do + người duyệt, bản gốc giữ nguyên. | 1f9c-44d7 |
| 02/03 11:02:58 | khoa.tran SYS_ADMIN |
UPDATE role_assignment · kt-ngoai |
Gán vai trò ACCOUNTANT (phạm vi: chỉ báo cáo tổng hợp) cho đối tác AACS. § Lý do (bắt buộc — thay đổi phân quyền): "HĐ kiểm toán số 04/2026/AACS" | b3e0-6c55 |
6 hành động BẮT BUỘC ghi lý do
không có reason → giao dịch bị từ chối
✓
Điều chỉnh dữ liệu chấm công
ví dụ dòng 03/03 — Hoàng Thị Ngọc
✓
Điều chỉnh quỹ phép
✓
Mở lại kỳ lương đã chốt
ví dụ dòng 06/03 — kỳ 02/2026 🇱🇦 REOPENED
✓
Sửa công thức lương
ví dụ dòng 06/03 — ALW_ATTENDANCE
✓
Xuất dữ liệu hàng loạt
✓
Thay đổi phân quyền
ví dụ dòng 02/03 — gán vai trò kt-ngoai
■ Bất biến của nhật ký
Bảng nhật ký chỉ cho INSERT. Quyền UPDATE/DELETE bị thu hồi ở cấp database, kể cả với tài khoản ứng dụng. Khách hàng yêu cầu kiểm toán chặt → sao lưu sang lưu trữ WORM (ghi một lần).
Bảng nhật ký chỉ cho INSERT. Quyền UPDATE/DELETE bị thu hồi ở cấp database, kể cả với tài khoản ứng dụng. Khách hàng yêu cầu kiểm toán chặt → sao lưu sang lưu trữ WORM (ghi một lần).
Thiết lập 4 cấp
PLATFORM → TENANT → LEGAL ENTITY → ORG UNIT · cấp dưới ghi đè cấp trên · mọi thiết lập có hiệu lực theo ngày
Chuỗi kế thừa & ghi đè
ví dụ sống: bán kính GPS chấm công
PLATFORM chỉ nhà cung cấp sửa
Gói dịch vụ · phát hành country pack · lịch bảo trì · rate limit · giới hạn xuất bản ghi
time.gps_radius_m = 300 (mặc định nền tảng)
time.gps_radius_m = 300 (mặc định nền tảng)
▼ cấp dưới ghi đè
TENANT · FOXAI Group
time.gps_radius_m = 200 ghi đè · cấm chấm công hộ · chốt công 25 · trả lương 05
▼
ENTITY · FOXAI Laos Co., Ltd 🇱🇦
time.gps_radius_m — kế thừa 200 (không ghi đè) · nhưng tiền tệ, tuần làm việc, pack… bắt buộc đặt ở cấp này (bảng bên dưới)
▼
ORG UNIT · Kho Viêng Chăn
time.gps_radius_m = 300 ghi đè — bãi xe rộng, sóng GPS yếu; giá trị hiệu lực cuối cùng cho nhân viên kho
Thiết lập cấp Tenant tiêu biểu
bảng setting · key dạng chấm · giá trị JSONB
| Khoá | Giá trị | Ghi chú nghiệp vụ |
|---|---|---|
| hr.employee_code_rule | NV{YYYY}-{####} | sinh ra NV2026-0412 (Hằng), NV2024-0089 (Bảo)… |
| hr.contract_no_rule | HĐ-{PN}/{YYYY}-{###} | PN = mã pháp nhân (VN/LA/TV) — sinh ra HĐ-VN/2026-0412; số tự tăng theo năm |
| time.gps_radius_m | 200 | bị ORG_UNIT Kho Viêng Chăn ghi đè 300 |
| time.punch_by_proxy | false | cấm chấm công hộ |
| time.sources | MÁY·GPS·WiFi·QR·KHUÔN MẶT | nguồn chấm công cho phép |
| leave.year_basis | CALENDAR | năm phép theo năm dương lịch |
| payroll.cutoff_day | 25 → 20 (từ 01/07/2026) | xem cách áp dụng hiệu lực theo ngày bên dưới ▼ |
| payroll.payday | 05 | phong toả deploy bám theo: 22/03 → 07/04 |
| payroll.net_contract | true | cho phép HĐ lương NET — Trương Mỹ Linh NET 30tr (gross-up) |
| payroll.payslip_visible_roles | SELF + CB + APPROVER | "ai được xem lương" — quản lý trực tiếp KHÔNG có |
| security.mfa_required_roles | SYS_ADMIN·CB·KTT | khớp badge MFA ở màn Tài khoản |
| retention.after_termination | 60 tháng | Phan Văn Đức xem phiếu lương ALUMNI đến 20/03/2031 |
Hiệu lực theo ngày — đổi ngày chốt công 25 → 20
hai bản ghi nối nhau trong bảng setting, không sửa đè
| key | value | valid_from | valid_to | updated_by |
|---|---|---|---|---|
| payroll.cutoff_day | 25 | 01/01/2024 | 30/06/2026 (được đóng lại) | khoa.tran · 05/03/2026 |
| payroll.cutoff_day | 20 | 01/07/2026 | 9999-12-31 | khoa.tran · 05/03/2026 |
Kỳ 03/2026 → 06/2026
Chốt công ngày 25
Bản ghi cũ vẫn hiệu lực — kỳ lương tháng 6 vẫn dùng ngày 25 dù thiết lập mới đã được nhập từ 05/03.
Từ kỳ 07/2026
Chốt công ngày 20
Bản ghi mới tự kích hoạt theo valid_from — không cần ai "bấm nút" vào đêm 30/06.
■ Nguyên tắc chung của toàn hệ thống: thiết lập, danh mục, lương, cơ cấu tổ chức… đều có valid_from / valid_to. Báo cáo kỳ 3 phải phản ánh cấu hình của kỳ 3, kể cả khi chạy lại vào tháng 8.
Thiết lập cấp Legal Entity — 🇻🇳 đặt cạnh 🇱🇦
những thứ bắt buộc ở cấp pháp nhân vì khác nhau giữa hai nước
| Thiết lập | FOXAI Việt Nam 🇻🇳 | FOXAI Laos Co., Ltd 🇱🇦 |
|---|---|---|
| Country pack đang áp | VN-2026.01 · PUBLISHED biểu thuế 7 bậc (5 bậc chỉ từ pack VN-2026.07) | LA-2024.10 · PUBLISHED LA-2026.07 · DRAFT — cần xác minh văn bản gốc V-01/V-02 |
| Đồng tiền chức năng | VND ₫ | LAK ₭ — luật buộc trả bằng LAK, tỷ giá NHTM đóng băng vào snapshot kỳ: 25/03/2026 · 1 ₭ = 1,15 ₫ (BCEL) |
| Múi giờ | Asia/Ho_Chi_Minh | Asia/Vientiane |
| Tuần làm việc chuẩn | 5 ngày (nghỉ T7 + CN) | 6 ngày (chỉ nghỉ CN) |
| Giờ chuẩn / tuần | 40 | 48 |
| Công chuẩn tháng 3/2026 (01/03 là Chủ nhật) | 22 công — 31 ngày − 5 CN (1,8,15,22,29) − 4 T7 (7,14,21,28) | 26 công — 31 ngày − 5 CN |
| Mã đơn vị BHXH / LSSO | BHXH: TB 0421 889 | LSSO: VTE-04-412 |
| Mã số thuế | MST 0104 987 654 | TIN 500 123 456-7-00 |
| Ngôn ngữ phiếu lương | vi | lo + en — font Noto Sans Lao nhúng PDF, dấu chồng nhiều tầng cần chiều cao dòng +30% |
| Lịch lễ pháp định 2026 | 11 ngày | ~9 ngày có điều kiện: 08/03 chỉ nữ (Khamla Phommachanh nghỉ, đồng nghiệp nam không); 02/09 quốc khánh nước mình cho người nước ngoài (Nguyễn Văn Tùng) |
| Cảnh báo riêng | Lương tối thiểu vùng theo work_location (không phải theo tenant) | ⚠ Hạn ngạch LĐ nước ngoài: 32/372 = 8,6% / trần 10% · GPLĐ của Tùng hết hạn 05/2026 → nhắc gia hạn |
Onboarding tenant — checklist tự sinh 11 mục
✓ hoàn tất sau 22 phút · mục tiêu ≤ 30 phút
✓
13 vai trò mặc định (gồm ràng buộc SoD của bảng lương)
✓
Toàn bộ danh mục hệ thống (theo đúng thứ tự ma trận phụ thuộc 14 bước)
✓
Country pack VN-2026.01 + LA-2024.10 pack = DỮ LIỆU có phiên bản, đổi không cần deploy
✓
Bộ pay component chuẩn lương cơ bản, phụ cấp, OT, BH, thuế + ALW_SUBSISTENCE (Lào)
✓
Bộ time bucket chuẩn theo quốc gia OT150/200/300 (VN) · 1.5/2.5/3× (LA)
✓
3 ca làm việc mẫu ADMIN 08:00–17:00 · SHIFT_A 06:00–14:00 · SHIFT_C 22:00–06:00 (qua đêm)
✓
Lịch nghỉ lễ 2026 VN 11 ngày · LA ~9 ngày có điều kiện giới tính/quốc tịch
✓
6 quy trình duyệt mặc định nghỉ phép, OT, giải trình công, bảng lương 2–3 cấp…
✓
Mẫu phiếu lương + mẫu hợp đồng song ngữ theo entity: vi / lo + en
✓
Tài khoản quản trị đầu tiên + email kích hoạt khoa.tran — INVITED → ACTIVE 12/01/2026
✓
Dữ liệu khởi tạo dùng thử (tuỳ chọn)
4 loại danh mục & quy tắc bất di bất dịch
áp dụng cho toàn bộ danh mục của hệ thống
| Loại | Ai quản lý | Ai sửa được | Ví dụ |
|---|---|---|---|
| SYSTEM | Nhà cung cấp | Không ai (chỉ đọc) | Quốc gia, tiền tệ, múi giờ |
| STATUTORY | Compliance team | Chỉ compliance | Biểu thuế, quỹ BH, lễ pháp định |
| SEEDED | Sinh sẵn khi tạo tenant | Khách hàng sửa được | Loại hợp đồng, loại phép, chức danh |
| TENANT | Khách hàng tự tạo | Khách hàng | Phòng ban, ca làm việc, khoản lương riêng |
3 quy tắc bất di bất dịch:
1 · Danh mục đã dùng trong nghiệp vụ không được xóa — chỉ is_active = false, kèm cảnh báo số bản ghi liên quan (ví dụ: vô hiệu "Ca 3 đêm" → chặn vì 4.812 bản chấm công đang tham chiếu).
2 · Trường code của bản ghi is_system = true không sửa được — công thức lương tham chiếu theo code.
3 · Mọi danh mục đều có valid_from / valid_to.
1 · Danh mục đã dùng trong nghiệp vụ không được xóa — chỉ is_active = false, kèm cảnh báo số bản ghi liên quan (ví dụ: vô hiệu "Ca 3 đêm" → chặn vì 4.812 bản chấm công đang tham chiếu).
2 · Trường code của bản ghi is_system = true không sửa được — công thức lương tham chiếu theo code.
3 · Mọi danh mục đều có valid_from / valid_to.
Tên đa ngôn ngữname_i18n {"vi","lo","en"} — tab nhập vi / lo / en trên cùng form
education_level (Lào)bắt buộc thuộc tính is_trained — quyết định phụ cấp sinh hoạt (Khamphan: chưa qua đào tạo → 700.000 ₭)
gender (Lào)dùng cho điều kiện ngày lễ 08/03 — chỉ FEMALE