Skip to content

\newpage

Báo cáo Đề xuất — Chấm công đa đơn vị

Triển khai chấm công cho Phương Nam & Daisy trên hệ thống Diva

Ngày: 07/04/2026

Người trình bày: PO/BA Team — Diva Group

Đối tượng: Ban Giám đốc, Stakeholders


\newpage

1. Bối cảnh

Hệ thống chấm công Diva hiện tại

Hệ thống chấm công Diva đang vận hành ổn định, phục vụ các chi nhánh Diva với đầy đủ chức năng:

Chức năngMô tả
Cấu hình ca làm việcTạo ca, nhóm ca, gán nhân viên vào nhóm ca
Lịch làm việcXếp lịch tuần cho từng NV, import Excel, tự động copy tuần trước
Chấm công trên appNV bấm Vào ca / Ra về trên app, có kiểm tra GPS
Bảng côngHR xem bảng công tháng, chi tiết từng ngày, trạng thái trễ/sớm/nghỉ
Đơn từ & duyệt10 loại đơn (đổi ca, tăng ca, nghỉ phép, trễ/sớm, quên chấm...), duyệt 2 cấp
Export báo cáoBảng công tháng, chi tiết ngày, trễ/sớm, OT
Tính công cuối ngàyCronjob tự động tính ngày công, đi trễ, về sớm, tăng ca

Nhu cầu mới

Phương Nam và Daisy — hai đơn vị thuộc hệ sinh thái DVA Holdings — cần sử dụng hệ thống chấm công trên app Diva thay vì phụ thuộc máy chấm vân tay.

Yêu cầu cốt lõi: Mỗi đơn vị có quy định riêng (ca làm, phạt trễ/sớm, OT, tính công) nhưng cùng chạy trên 1 hệ thống Diva. Dữ liệu 3 bên được phân quyền theo đơn vị — HR Daisy chỉ thấy dữ liệu Daisy, HR Phương Nam chỉ thấy dữ liệu Phương Nam. System Admin có quyền xem tất cả.


\newpage

2. Tổng quan 3 đơn vị

DivaPhương NamDaisy
Quy môHệ thống hiện tại247 NV, 4 cơ sở150 NV, 9 cơ sở
Dự kiến tăng+50–100 NV cuối 2026
Chấm công hiện tạiApp DivaVP: App DVA, DV: Máy vân tayVP: App Diva Partner, DV: Máy vân tay
Cách chấm2 mốc (vào-ra)2 mốc + 4 mốc (ca gãy)2 mốc + 4 mốc (BS, Phụ tá)
Tính côngCố định 0/0.5/1.0Theo giờ thực tếCố định 0/0.5/1.0
GPS
Ca đặc biệt6 ca gãy (break 2–3h)Ca xoay, BS break linh động 2h
Duyệt đơn2 cấp2 cấp2 cấp

\newpage

3. Yêu cầu chi tiết — đã khảo sát và xác nhận

3.1 Phương Nam — 247 nhân viên

Người khảo sát: Chị Hồ Thị Xuân Hương — CV TCHC

Cơ cấu tổ chức

  • 3 phòng khám: TT Y khoa Đà Lạt, PK Đức Trọng, PK Bảo Lộc + 1 Văn phòng
  • Khối Văn phòng: Marketing-IT, TCHC, Kế toán, Pháp lý
  • Khối Dịch vụ: Bác sĩ, Điều dưỡng, KTV, Thu ngân, Lễ tân, Dược sĩ, Bảo vệ, Tạp vụ
  • CTV: 3 người (1.3%)

Ca làm việc — 16 ca

LoạiSố caVí dụChấm công
Ca thường10 caCa HC 08:00–17:00, Ca 1 06:00–14:00, Ca tối 15:00–23:002 mốc (vào-ra)
Ca gãy6 caCa gãy 7:00 (07:00–18:00, nghỉ 11:00–14:00 = 3 tiếng)4 mốc (vào-ra nghỉ-vào lại-ra về)

Đã xác nhận: PN chọn 4 mốc cho ca gãy — lý do: cần xác định thời gian đi trễ vào đầu ca sáng VÀ đầu ca chiều.

Quy định đặc thù Phương Nam

Quy địnhChi tiết
Đi trễ / về sớm3 lần xin phép/tháng. Từ lần 4: 10.000đ/phút
Quên chấm côngQuên vào ca/ra ca: 30.000đ/lỗi (mọi lần). Quên giữa trưa: 3 lần miễn, từ lần 4: 30.000đ/lỗi
Tăng ca (OT)Bác sĩ: 150.000đ/giờ. Còn lại: 50.000đ/giờ. Tính từ 30 phút trở lên
Tính côngTheo giờ thực tế: có đơn xin phép → full công; không đơn → tính theo giờ (VD: làm 7h/8h = 0.875 công)
Công chuẩnKhối DV: tổng ngày − CN. Khối VP: tổng ngày − CN − nửa ngày T7
Remote3–4 NV (1.5%)
Báo cáo phép nămBắt buộc có ngay khi go-live

3.2 Daisy — 150 nhân viên

Người khảo sát: Chị Phan Hoa — CV TC-HC, DVA Holdings

Cơ cấu tổ chức

  • 6 chi nhánh (Đà Lạt, Bảo Lộc ×2, Nha Trang, Cần Thơ, Biên Hòa) + 3 văn phòng
  • Khối Văn phòng: Telesale, CSKH, Marketing–Trực Page, TCHC, Kế toán
  • Khối Dịch vụ: Bác sĩ–Điều trị, Phụ tá, Sales–Thu ngân
  • NV bán thời gian: 3.33%

Ca làm việc

Bộ phậnCaChấm công
MarketingCa 1 (7:30–15:00), Ca 2 (10:30–18:00), Ca 3 (15:00–22:30, từ xa)2 mốc
Telesales/CSKH7:45–17:302 mốc
Bác sĩCa 1 (8–17, xuyên trưa), Ca 2 (8–19, nghỉ linh động 2h)Ca 1: 2 mốc. Ca 2: 4 mốc
Phụ táCa 1 (8–17, xuyên trưa), Ca 2 (8–19, nghỉ linh động 2h)Ca 1: 2 mốc. Ca 2: 4 mốc
Tạp vụ6 ca cố định (06:30–10:30 đến 08:00–17:00), 7 NV2 mốc
Kế toán, Labo 5D, Bảo vệGiờ hành chính2 mốc

Đã xác nhận: Ca xoay sáng/chiều theo tuần. HR import lịch Excel hàng tuần.

Quy định đặc thù Daisy

Quy địnhChi tiết
Đi trễ / về sớm10.000đ/phút tùy vị trí. 3 lần/tháng, mỗi lần tối đa 60 phút
Quên chấm công3 lần miễn/tháng (gộp cả 3 loại mốc). Từ lần 4: đầu/cuối ca trừ 0.5 công, giữa trưa 50.000đ/lần
Tăng ca (OT)Bác sĩ: 150.000đ/giờ. Sale/Phụ tá/Điều trị/Bảo vệ/Tạp vụ: 35.000đ/giờ
BS/Phụ tá breakGiờ nghỉ mặc định 12:00–14:00, linh hoạt ±60 phút (vì ca điều trị trước trưa kéo dài)
Ca 3 MarketingChấm từ xa (không cần GPS)
Góp ýHạn chế cập nhật phần mềm quá nhiều lần/tháng → gộp release

\newpage

4. Các nội dung đã chốt với 2 bên

Sau khi gửi câu hỏi xác nhận và nhận phản hồi, các nội dung sau đã được chốt:

4.1 Phương Nam — đã chốt

#Nội dungKết quả
1Ca gãy chấm 2 hay 4 mốc?4 mốc — cần track trễ đầu ca sáng + chiều
2Tính công theo giờ áp dụng cho ai?Tất cả NV (full-time + part-time). Có đơn xin phép → full công. Không đơn → tính theo giờ
3Báo cáo phép nămBắt buộc có ngay khi go-live
4Tính phạt + công chuẩn + OT rateDay-1 tự động qua Settings Module. Chỉ tính lương thủ công 2–3 tháng đầu. Cần bảng công 4 lần vào/ra cho Khối DV

4.2 Daisy — đã chốt

#Nội dungKết quả
1BS/Phụ tá break linh độngBreak mặc định 12:00–14:00, linh hoạt ±60 phút. Ca "xuyên trưa" = 2 mốc
2Tạp vụ giờ linh động6 ca cố định mới (đã đề xuất cụ thể giờ nghỉ trưa), 7 NV
3"Hạn chế update"= Hạn chế deploy phần mềm quá nhiều → gộp release
4Tính phạt + công chuẩn + OT rateDay-1 tự động qua Settings Module. Chỉ tính lương thủ công 2–3 tháng đầu. Đề xuất chấm 4 lần vào/ra

4.3 Chung — đã chốt

#Nội dung
1Cả 2 đơn vị dùng duyệt đơn 2 cấp (hệ thống hiện có hỗ trợ)
2GPS bắt buộc cho cả 2 đơn vị
3Remote hỗ trợ nhóm nhỏ: Daisy Ca 3 Marketing + PN 3–4 NV
4Penalty engine + công chuẩn + OT rate → Day-1 (Settings Module v3). Chỉ tính lương tự động → phase sau

\newpage

5. Phương án triển khai

5.1 Giải pháp tổng thể

Thêm khái niệm "Đơn vị chấm công" (timekeeping_unit) — một lớp phân tách chỉ dùng trong module chấm công:

┌─────────────────────────────────────────────────────────────────────┐
│                    HỆ THỐNG DIVA                                     │
│                                                                       │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐               │
│  │    DIVA       │  │  PHƯƠNG NAM  │  │    DAISY     │               │
│  │  (giữ nguyên) │  │  247 NV      │  │  150 NV      │               │
│  │              │  │  4 cơ sở     │  │  9 cơ sở     │               │
│  │  Không thay  │  │  4 mốc ca gãy│  │  4 mốc BS/PT │               │
│  │  đổi gì      │  │  Công theo giờ│  │  Break ±60p  │               │
│  └──────────────┘  └──────────────┘  └──────────────┘               │
│                                                                       │
│  ✅ Phân quyền theo đơn vị (Hasura row-level permission)               │
│  ✅ Quy định riêng cho từng đơn vị (Settings Module)                  │
│  ✅ Diva không bị ảnh hưởng                                           │
└─────────────────────────────────────────────────────────────────────┘

Nguyên tắc số 1: Diva đang vận hành ổn định — KHÔNG SỬA code cũ, chỉ THÊM nhánh mới.

5.2 Các tính năng sẽ làm

Nhóm 1: Quản trị đơn vị (Admin)

Tính năngMô tảAi dùng
Cấu hình đơn vị chấm côngTạo đơn vị PN, Daisy. Map chi nhánh, phòng ban, nhân viênSystem Admin
Settings Module — Quy định per đơn vịCấu hình: cách tính công, max đơn trễ/sớm, OT threshold... trên UI. Riêng break cố định/linh hoạt cấu hình ở ca làm việcSystem Admin
Ca làm việc per đơn vịPN 16 ca (gồm 6 ca gãy 4 mốc), Daisy 17 ca seed hiện tại (gồm 6 ca Tạp vụ mới)System Admin
Người duyệt per đơn vịCấu hình approver riêng cho từng đơn vị, không lẫnSystem Admin

Nhóm 2: Chấm công (Mobile)

Tính năngMô tảAi dùng
Chấm công 2 mốcVào ca → Ra về (ca thường)NV
Chấm công 4 mốcVào ca → Ra nghỉ → Vào lại → Ra về (ca gãy PN, ca BS/Phụ tá Daisy)NV
GPS kiểm traChỉ cho chấm khi ở đúng chi nhánh thuộc đơn vị mìnhNV
Remote nhóm nhỏCho phép chấm ngoài GPS cho Daisy Ca 3 Marketing + PN 3–4 NVNV
Xem lịch sử cá nhânNV xem lịch sử chấm công, trễ/sớm, quên chấm, running total thángNV
Tạo đơn + xem quotaHiện "Đã sử dụng 2/3 lần trễ/sớm tháng này" khi tạo đơnNV

Nhóm 3: Quản lý & Báo cáo (Admin Web)

Tính năngMô tảAi dùng
Bảng công per đơn vịHR Daisy chỉ thấy NV Daisy, HR PN chỉ thấy NV PN. Filter chi nhánh, phòng banHR, Manager
Lịch làm việc per đơn vịXếp lịch, import Excel, tự động copy tuần (PN). Import thủ công (Daisy ca xoay)HR
Tính công theo giờ (PN)Cronjob tính workday = actual_hours / standard_hours. Có đơn → full côngTự động
Chi tiết ngày 4 mốcPopup hiện 4 dòng cho ca 4 mốc, 2 dòng cho ca 2 mốcHR, Manager
Export bảng công thángTổng hợp: ngày công, trễ, sớm, OT, quên chấm, tiền phạt, tiền OT, công chuẩnHR
Export chi tiết ngày2 mốc hoặc 4 mốc tùy ca, có cột tiền phạt + tiền OTHR
Export trễ/sớmPhút trễ, có đơn xin phép, lần thứ mấy trong tháng, tiền phạtHR
Export OTGiờ OT, tiền OT (PN bỏ qua OT < 30 phút)HR
Báo cáo phép năm (PN)Reuse màn báo cáo phép năm Diva hiện có — chỉ thêm filter đơn vị. Effort ~1 ngàyHR

Nhóm 4: Bảo vệ Diva

Tính năngMô tả
Template propagation an toànSửa ca Diva không ảnh hưởng PN/Daisy và ngược lại
Cronjob tách nhánhNV Diva chạy code cũ nguyên vẹn, NV PN/Daisy chạy code mới
Permission tách biệtDiva HR không thấy filter đơn vị, mọi màn giữ nguyên
Non-regression suiteTest tự động đảm bảo Diva không bị ảnh hưởng sau mỗi deploy

\newpage

6. Kế hoạch triển khai

6.1 Tổng quan 3 phase

Phase 1A (1 tuần)         Phase 1B (3 tuần dev + 2 tuần pilot)          Phase 1C
FOUNDATION                PN + DAISY                                     HARDENING
                          3 track song song                              
Schema + Migration        ┌── BE: runtime 4 mốc, cronjob, GPS,          Bugfix
Fix template propagation  │   penalty engine, công chuẩn, OT rate       Tối ưu performance
Settings Module UI        ├── FE Admin: bảng công, export (có tiền       Tính lương tự động
Non-regression Diva       │   phạt + tiền OT), filter, Settings Module   Mở rộng rollout
                          └── FE Mobile: 4 CTA, lịch sử, quota          
     │                         │                                              │
     ▼                         ▼                                              ▼
 Gate: Diva OK            Gate: Pilot pass                               Gate: Stable

6.2 Chi tiết từng phase

Phase 1A — Foundation (1 tuần)

Mục tiêu: Chuẩn bị nền tảng, fix điểm nguy hiểm nhất, đảm bảo Diva an toàn.

#Công việcOwnerGhi chú
1Tạo bảng timekeeping_unit + schema mớiBEKhông ảnh hưởng Diva
2Fix template propagation (dùng key thay vì tên ca)BEQuan trọng nhất — chặn lỗi sửa ca chéo đơn vị
3Thêm cột nullable vào bảng chấm công hiện cóBEDiva data = NULL, không ảnh hưởng
4Settings Module UI — Tab Quy địnhFEChạy song song với BE (không phụ thuộc)
5Non-regression suite cho DivaQATest full cycle: tạo lịch → chấm → tính công → export

Gate chuyển Phase 1B: Non-regression Diva pass 100%.

Phase 1B — PN + Daisy triển khai (3 tuần dev + 2 tuần pilot)

Mục tiêu: PN và Daisy chấm công được trên app, HR có bảng công và export.

3 track chạy song song, QA test liên tục:

Track BE (1 BE senior):

#Công việc
1Seed ca PN (16 ca) + Daisy (17 ca)
2Runtime chấm công 4 mốc (state machine)
3Cronjob tách nhánh: Diva legacy / PN tính công theo giờ / Daisy fixed
4GPS scoped theo đơn vị + remote nhóm nhỏ
5Request count scoped per unit + max duration validation
6Penalty enginetimekeeping_penalty_rule per unit
7Công chuẩntimekeeping_standard_workday_rule per branch_label
8OT rateot_rate_default + ot_rate_doctor per unit
9Export phép năm cho PN

Track FE Admin (1 FE):

#Công việc
1Filter đơn vị + chi nhánh + phòng ban (cascade reset)
2Bảng công: multi-record day, popup 2 mốc / 4 mốc
3Lịch làm việc: filter đơn vị
4Export: bảng công tháng, chi tiết ngày, trễ/sớm, OT, quên chấm, phép năm
5Phân quyền: HR auto-filter đơn vị mình, Diva giữ nguyên
6Approver settings: filter đơn vị

Track FE Mobile (1 FE Mobile):

#Công việc
12 CTA (ca thường) + 4 CTA (ca 4 mốc) theo shift template
2GPS check + reject message
3Tạo đơn: hiện quota "X/3 lần", max duration validation
4Lịch sử chấm công cá nhân + running total tháng

Pilot (2 tuần):

  • Tuần 1: Internal team test
  • Tuần 2: HR PN + HR Daisy test thật

Gate chuyển Phase 1C: Pilot pass + Diva non-regression pass.

Phase 1C — Hardening (sau go-live)

#Công việcGhi chú
1Bugfix từ pilot
2Tối ưu performanceCronjob +400 NV, export lớn
3Tính lương tạm tự độngDựa trên công chuẩn + penalty (đã có từ 1B)
4Mở rộng rolloutThêm đơn vị mới nếu có

Lưu ý: Penalty engine, công chuẩn, OT rate đã nằm trong Phase 1B (Settings Module v3). Phase 1C chỉ còn tính lương + hardening.

6.3 Timeline dự kiến

Tuần 1 — 14/04    TL review spec + trả lời câu hỏi kỹ thuật + chốt spec
                   ──────────────────────────────────────────────
Tuần 2 — 21/04    Phase 1A: Foundation (BE schema + FE Settings song song)
                   Gate: Diva non-regression pass ✓
                   ──────────────────────────────────────────────
Tuần 3 — 28/04 ┐
Tuần 4 — 05/05 ├─ Phase 1B: Dev (3 track song song: BE + FE Admin + FE Mobile)
Tuần 5 — 12/05 ┘
                   ──────────────────────────────────────────────
Tuần 6 — 19/05    Pilot tuần 1: Internal test
Tuần 7 — 26/05    Pilot tuần 2: HR PN + HR Daisy test thật + bugfix
                   ──────────────────────────────────────────────
                   GO-LIVE: đầu tháng 6/2026

Tháng 6–7/2026    Phase 1C: Hardening (bugfix, tính lương tự động, mở rộng)

Tổng: 7 tuần từ chốt spec đến go-live (giảm 4 tuần so với phương án ban đầu).

Điều kiện: Cần ít nhất 1 BE senior + 1 FE admin + 1 FE mobile chạy song song từ tuần 3.


\newpage

7. Ảnh hưởng đến Diva hiện tại

Cam kết: Diva KHÔNG bị ảnh hưởng

Thành phần DivaẢnh hưởngGiải thích
Chấm công trên appKhôngNV Diva chạy code cũ nguyên vẹn
Bảng côngKhôngHR Diva không thấy filter đơn vị, data giữ nguyên
Lịch làm việcKhôngKhông thay đổi
Cronjob tính côngKhôngNV Diva → nhánh code cũ. NV PN/Daisy → nhánh code mới
Đơn từ & duyệtKhôngApprover Diva giữ nguyên, không lẫn với PN/Daisy
Export báo cáoKhôngFormat giữ nguyên, data giữ nguyên
Dashboard, report doanh thuKhôngNgoài scope, không đụng
Salary, payrollKhôngNgoài scope, không đụng
CRM, EcommerceKhôngNgoài scope, không đụng

Cơ chế bảo vệ

#Cơ chếMô tả
1Tách nhánh codeMọi function: if NV Diva → code cũ nguyên vẹn; if NV PN/Daisy → code mới
2Non-regression suiteTest tự động chạy sau mỗi deploy: tạo lịch → chấm công → tính công → export → so sánh kết quả
3Permission tách biệtKhông sửa permission Diva. Thêm permission riêng cho role mới
4Template an toànSửa ca Diva không ảnh hưởng PN/Daisy và ngược lại (dùng key thay vì tên ca)
5Tab Triển khai + rollout flagBật/tắt tính năng mới theo từng đơn vị. Chỉ được bật khi checklist sẵn sàng triển khai đã đạt yêu cầu. Nếu có lỗi → tắt flag, Diva không bị kéo theo
6Gate reviewPhase 1A phải pass non-regression 100% mới sang Phase 1B

\newpage

8. Settings Module — Quy định riêng cho từng đơn vị

Thay vì viết cứng quy định vào code (mỗi lần đổi phải deploy phần mềm), chúng tôi xây dựng màn hình cấu hình để System Admin tự điều chỉnh quy định cho từng đơn vị.

Ví dụ cấu hình 3 đơn vị

Quy địnhDivaPhương NamDaisy
Cách tính côngCố định (0/0.5/1.0)Theo giờ thực tếCố định
Công chuẩn per loại CNNgày−CN / 26 cố địnhDV: Ngày−CN. VP: Ngày−CN−0.5T7Ngày−CN
Max đơn trễ/sớm/tháng333
Max phút per đơn trễ/sớmKhông giới hạnKhông giới hạn60 phút
Max đơn quên chấm/tháng333
Tự động tạo lịch tuầnBậtBậtTắt (ca xoay)
OT tối thiểu030 phút0
Break tolerance00±60 phút
Báo cáo phép nămBắt buộcChưa cần

Lợi ích:

  • Đổi quy định → Admin tự chỉnh trên màn hình, không cần deploy phần mềm
  • Thêm đơn vị mới → Admin tạo + cấu hình, không cần lập trình
  • Đáp ứng yêu cầu Daisy "hạn chế cập nhật phần mềm quá nhiều"
  • Minh bạch: mọi người thấy config hiện tại

\newpage

9. Day-1 tự động hoá — Settings Module v3

Nhờ Settings Module toàn diện, ngay từ Day-1 hệ thống đã tự động tính:

Hệ thống tự động Day-1

Tính năngMô tảConfig trên UI
Tiền phạt trễ/sớmTự tính theo timekeeping_penalty_rule per đơn vịAdmin chỉnh rate, exempt_count, exempt_pool
Tiền phạt quên chấmPN: 30k/lỗi (không miễn). Daisy: 3 lần miễn (pool chung), lần 4+ trừ 0.5 công hoặc 50kAdmin chỉnh per violation type
Tiền OTPN: 50k/h (BS: 150k/h). Daisy: 35k/h (BS: 150k/h)Admin chỉnh ot_rate_default, ot_rate_doctor
Công chuẩnPN DV: Ngày−CN. PN VP: Ngày−CN−0.5T7. Daisy: Ngày−CNAdmin chỉnh formula per loại chi nhánh
Tính công theo giờPN: actual_hours / standard_hours. Daisy: cố định 0/0.5/1.0Admin chỉnh mode + giờ chuẩn

Hệ thống cung cấp đầy đủ

  • Bảng công tháng tổng hợp (có cột tiền phạt + tiền OT + công chuẩn)
  • Bảng công 4 lần vào/ra cho Khối Dịch vụ (cả PN và Daisy)
  • Báo cáo trễ/sớm chi tiết (ngày, phút, có đơn xin phép, tiền phạt)
  • Báo cáo OT (có tiền OT. PN: bỏ qua OT < 30 phút)
  • Báo cáo phép năm (PN — bắt buộc) — reuse màn báo cáo Diva hiện có, chỉ thêm filter đơn vị
  • NV tự xem lịch sử trên app

Chỉ còn tính lương thủ công

HR dùng file export (đã có tiền phạt + tiền OT + công chuẩn) → chỉ cần tính lương trên Excel.

Phase 1C sẽ tự động hoá tính lương tạm — dự kiến 1–2 tháng sau go-live.

Lợi ích so với phương án cũ: HR không cần tính tiền phạt, tiền OT, công chuẩn trên Excel. Hệ thống tự tính từ config per đơn vị.


\newpage

10. Tóm tắt

MụcNội dung
Mục tiêuPhương Nam và Daisy chấm công trên app Diva, có bảng công và báo cáo vận hành
Phương ánThêm "Đơn vị chấm công" + Settings Module. Diva không bị ảnh hưởng
Tính năng chínhChấm 4 mốc, tính công theo giờ (PN), GPS, export, phép năm, remote nhóm nhỏ, penalty + OT rate + công chuẩn tự động Day-1
TimelinePhase 1A: 1 tuần (Foundation) → Phase 1B: 3 tuần dev + 2 tuần pilot → Phase 1C: Hardening sau go-live
Go-live dự kiếnĐầu tháng 6/2026 (7 tuần từ chốt spec)
Resource cần1 BE senior + 1 FE admin + 1 FE mobile + QA (3 track song song)
Rủi ro DivaKhông ảnh hưởng — code tách nhánh, non-regression test, permission tách biệt
Day-1Penalty + OT rate + công chuẩn tự động từ Settings Module. HR KHÔNG cần dùng Excel

Tài liệu này dùng để trình bày cho stakeholders. Chi tiết kỹ thuật xem tại: docs/features/cham-cong-da-don-vi-shared-tenant/