- Given Có quyền
staff.manage - When Nhập họ tên, mã nhân viên, chức danh, loại hình làm việc, chi nhánh, ngày bắt đầu, số điện thoại, và có thể chọn thêm "Tạo tài khoản đăng nhập" kèm vai trò
- Then Bản ghi nhân sự được tạo; nếu có yêu cầu tạo tài khoản, một lời mời được gửi qua email hoặc SMS, người dùng được thêm vào trường với vai trò đã chọn, và một
TeacherProfileđược tạo khi vai trò đó bao gồm việc giảng dạy. - Given Số điện thoại đã thuộc về một nhân sự khác trong tenant
- When Nhập và gửi
- Then Biểu mẫu hiển thị bản ghi đã có và đề nghị "Mở hồ sơ" thay vì tạo bản ghi trùng.
PRD 06 · Giáo viên và nhân sự
Danh bạ nhân sự, hồ sơ giáo viên, hợp đồng, cách tính lương theo buổi hoặc theo giờ, bảng công được tính từ dữ liệu điểm danh, và đánh giá định kỳ. Mô-đun này xây dựng trên TeacherProfile và tư cách thành viên trường đã có; các thực thể nhân sự là mới.
Xuất xứ / Prompt / Giới hạn
Tài liệu do trợ lý AI soạn trong một phiên làm việc ngày 10/09/2026, theo yêu cầu gốc được trích nguyên văn ở trang mục lục; mục Thiết kế đề xuất được bổ sung ngày 16/09/2026. Đây là bản đề xuất để đội thảo luận, chưa phải quyết định của đội sản phẩm.
Nguồn
- Nghiên cứu công khai về đối thủ cạnh tranh (PSE ONE, pse4.one), mã nguồn
center-crm-frontendvà đặc tả OpenAPI/v3trên staging (182 endpoint), tính đến ngày 10/09/2026. - Nhãn existing / extend / new trong trang được xác định bằng cách đối chiếu với đặc tả
/v3trên staging tại thời điểm trên.
Giới hạn
- Cần xác minh khi khảo sát trực tiếp trong ứng dụng, vì đăng nhập tự động vào sản phẩm tham chiếu chưa được cấp phép trong phiên soạn:
- Cách đối thủ tính "thống kê giờ dạy giáo viên" (từ điểm danh hay từ thời khoá biểu) và việc có xử lý trường hợp dạy thay không.
- Các trường trong "quản lý tiền lương" của đối thủ: lương cố định, theo buổi, phụ cấp, khoản trừ; có xuất phiếu lương không.
- Danh sách nhân sự của đối thủ có bao gồm nhân sự không có tài khoản đăng nhập không.
- Bố cục màn hình lịch dạy hằng tuần của giáo viên ("xếp lịch giáo viên theo tuần").
Thiết kế đề xuất
Chín màn hình dùng chung khung School OS với thanh điều hướng Nhân sự đang bật, đi từ danh bạ đến hồ sơ, hợp đồng, cách tính lương, bảng công và đánh giá; điều quan trọng nhất cần thấy là số tiền phải trả được tính từ dữ liệu điểm danh, còn mọi ngoại lệ (dạy thay, huỷ muộn, cờ của giáo viên, điều chỉnh, tháng đã khoá) đều xuất hiện thành dòng riêng có lý do chứ không nhập tay.









1Mục đích
Chi phí lớn nhất của một trung tâm là nhân sự giảng dạy, và câu hỏi vận hành thường gặp nhất là "giáo viên nào đã dạy bao nhiêu buổi trong tháng này và trung tâm còn nợ họ bao nhiêu". Mô-đun này giữ một bản ghi nhân sự duy nhất cho mỗi người trên tất cả chi nhánh, liên kết giáo viên với lớp học và buổi học, tính số buổi được trả lương từ dữ liệu điểm danh đã ghi nhận ở PRD 04, và lưu trữ hợp đồng cùng đánh giá để chủ trung tâm có thể quyết định gia hạn dựa trên minh chứng cụ thể.
Mục tiêu
- Mỗi người có một bản ghi nhân sự duy nhất, quyền truy cập hệ thống (tài khoản người dùng) là không bắt buộc. Nhân viên vệ sinh và gia sư bán thời gian vẫn có trong danh bạ mà không cần đăng nhập.
- Số tiền phải trả cho mỗi giáo viên mỗi tháng được tính toán tự động, không nhập tay. Các điều chỉnh thủ công là những dòng riêng biệt kèm lý do rõ ràng.
- Ngày hết hạn hợp đồng và tài liệu được cảnh báo trước 30 ngày.
Ngoài phạm vi
- Thuế thu nhập, tính bảo hiểm xã hội, xuất phiếu lương như một chứng từ pháp lý. Mô-đun chỉ xuất một bảng lương để kế toán đưa vào công cụ tính lương riêng.
- Yêu cầu và phê duyệt nghỉ phép (ứng viên cho giai đoạn 3).
- Quy trình tuyển dụng.
2Hiện trạng
| Năng lực hiện có | Ở đâu | Trạng thái |
|---|---|---|
| Tư cách thành viên trường với vai trò OWNER / ADMIN / TEACHER | SchoolRole enum; GET /v3/teacher/schools, GET /v3/crm/me/accessible-schools | existing |
| Hồ sơ giáo viên (họ tên, số điện thoại, email, user_name) | TeacherProfile schema; được nhúng trong đối tượng Tuition và Class | existing |
| Tổng hợp hiệu suất giáo viên (học viên, bài kiểm tra đã giao, tỷ lệ hoàn thành) | GET /v3/teacher/viewer/rollup-teachers (RollupTeacher) | existing |
| Nhân viên kinh doanh trong CRM (SaleProfile) với vai trò CRM | /v3/crm/sale-profiles, /v3/crm/roles | existing |
| Hợp đồng, cách tính lương, bảng công, đánh giá, tài liệu, phân công nhân sự theo chi nhánh | không có | new |
Quyết định: đưa vào một thực thể staff bao bọc một user_id không bắt buộc, một teacher_profile_id không bắt buộc và một sale_profile_id không bắt buộc, để mỗi người chỉ xuất hiện một lần trong danh bạ bất kể họ có bao nhiêu hồ sơ FLYER.
3Đối tượng sử dụng và vai trò
| Đối tượng | Vai trò | Nhu cầu |
|---|---|---|
| Chủ trung tâm | owner | Số lượng nhân sự và chi phí theo chi nhánh, gia hạn hợp đồng, kết quả đánh giá. |
| Quản lý chi nhánh | branch_manager | Phân công giáo viên vào lớp, phê duyệt bảng công, thực hiện đánh giá. |
| Kế toán | accountant | Bảng lương hằng tháng, duy trì cách tính lương, các điều chỉnh. |
| Giáo vụ | academic_admin | Tìm giáo viên dạy thay, cập nhật hồ sơ và tài liệu. |
| Giáo viên | teacher | Xem lịch dạy của bản thân, bảng công của bản thân, đánh giá của bản thân; xác nhận buổi học. |
4User story và tiêu chí chấp nhận
- Given Có giáo viên tồn tại trong trường (từ tư cách thành viên qua
/v3/teacher/schools) nhưng chưa có bản ghi nhân sự - When Mở Nhân sự → "Chưa có hồ sơ (N)"
- Then Mỗi giáo viên chưa liên kết được liệt kê kèm hành động "Tạo hồ sơ" giúp điền sẵn biểu mẫu từ
TeacherProfile.
- Given Có bản ghi nhân sự
- When Thêm loại hợp đồng, ngày bắt đầu, ngày kết thúc, cách tính lương, tài liệu đã ký
- Then Hợp đồng được lưu; các hợp đồng của cùng một nhân sự không được trùng thời gian; 30 ngày trước khi hết hạn, dòng nhân sự hiển thị Sắp hết hạn và một thông báo được gửi đến branch_manager và accountant.
- Given Có quyền
staff.pay_rules - When Tạo một quy tắc thuộc loại per_session, per_hour, hoặc monthly kèm đơn giá, có thể có ngoại lệ theo loại lớp, và ngày hiệu lực
- Then Quy tắc áp dụng cho các buổi học có ngày rơi vào khoảng hiệu lực; mỗi buổi học dùng quy tắc cụ thể nhất (ngoại lệ theo loại lớp > mặc định).
- Given Có các buổi học trong PRD 04 với trạng thái
heldvà đã ghi nhận giáo viên (chính hoặc dạy thay) - When Chọn "Tạo bảng công tháng 9/2026"
- Then Một bảng công được tạo cho mỗi giáo viên, gồm một dòng cho mỗi buổi học đã diễn ra (ngày, lớp, thời lượng, đơn giá, số tiền) cùng các dòng cho buổi học huỷ muộn nếu cách tính lương có trả cho trường hợp này; tổng số tiền được tính; trạng thái
draft. - Given Một buổi học đã được sửa trong PRD 04 sau khi bảng công được tạo
- When Xem bảng công
- Then Một banner "Có 2 buổi thay đổi sau khi tạo bảng công" hiển thị nút "Tính lại".
- Given Có bảng công dự thảo dành cho giáo viên
- When Mở Bảng công của tháng
- Then Xem được từng dòng, có thể gắn cờ một dòng kèm ghi chú ("tôi dạy thay buổi này"), và chọn "Xác nhận"; các dòng bị gắn cờ được chuyển đến branch_manager để xử lý; bảng công chỉ chuyển sang
confirmedkhi không còn cờ nào đang mở.
- Given Có bảng công ở trạng thái
confirmed - When Quản lý chi nhánh phê duyệt
- Then Trạng thái chuyển thành
approved, các dòng bị khoá; kế toán xuất file XLSX với một dòng cho mỗi giáo viên (mã, họ tên, số buổi, số giờ, số tiền cơ bản, điều chỉnh, tổng cộng) kèm một sheet chi tiết theo từng buổi học; việc xuất file được ghi lại trong nhật ký.
- Given Có một mẫu đánh giá (các tiêu chí kèm trọng số, thang điểm 1–5)
- When Chấm điểm một giáo viên cho một kỳ và thêm nhận xét
- Then Một điểm số có trọng số được lưu lại; giáo viên chỉ thấy kết quả sau khi quản lý đánh dấu "Đã chia sẻ"; hồ sơ hiển thị xu hướng qua các kỳ, bên cạnh phần tổng hợp hiệu suất đã có (học viên, tỷ lệ hoàn thành).
- Given Có bản ghi nhân sự với tài khoản đang hoạt động
- When Đặt trạng thái Đã nghỉ kèm ngày kết thúc
- Then Các phân công lớp trong tương lai bị xoá và được liệt kê để phân công lại, tài khoản bị vô hiệu hoá vào cuối ngày của ngày kết thúc, lịch sử vẫn được giữ hiển thị.
5Màn hình
Tab: Đang làm việc (N) · Sắp hết hạn HĐ (N) · Chưa có hồ sơ (N) · Đã nghỉ. Bộ lọc: tìm kiếm (họ tên, mã, số điện thoại), chi nhánh, chức danh, loại hình làm việc. Hành động: + Thêm nhân sự, Xuất Excel.
| Cột | Ghi chú |
|---|---|
| Mã NV | staff.code |
| Họ tên | avatar + họ tên; liên kết đến hồ sơ |
| Chức danh | job_title |
| Loại | chip: Toàn thời gian / Bán thời gian / Cộng tác viên |
| Chi nhánh | chip, tràn hiển thị "+2" |
| Lớp đang dạy | số lượng (chỉ với giáo viên), liên kết |
| Hợp đồng | ngày kết thúc + chip trạng thái |
| Tài khoản | chip: Đã kích hoạt / Chờ mời / Không có |
| Thao tác | kebab: Sửa, Vô hiệu hoá, Gửi lại lời mời |
Trạng thái rỗng: "Chưa có nhân sự. Thêm giáo viên và nhân viên để phân lớp và tính công." Sắp xếp mặc định theo tên (collation vi).
Phần đầu: avatar, họ tên, mã, chức danh, chip trạng thái, chi nhánh, các nút Sửa · Tạo tài khoản/Đặt lại mật khẩu · Vô hiệu hoá. Tab: Tổng quan · Lớp & lịch · Hợp đồng · Bảng công · Đánh giá · Tài liệu · Nhật ký.
- Tổng quan: hai cột: thông tin cá nhân (ngày sinh, giới tính, số CCCD đã ẩn một phần, địa chỉ, liên hệ khẩn cấp) và thông tin công việc (ngày bắt đầu, loại hình làm việc, tóm tắt cách tính lương, vai trò tài khoản). Cột bên phải: KPI từ
RollupTeacherkhi nhân sự là giáo viên: học viên, bài kiểm tra đã giao, tỷ lệ hoàn thành, tỷ lệ tăng trưởng. - Lớp & lịch: bảng các lớp hiện tại (tên, lịch học dạng văn bản, học viên, phòng học) và một chế độ xem theo tuần các buổi học (từ PRD 03) kèm dấu hiệu dạy thay.
- Hợp đồng: danh sách gồm loại hợp đồng, ngày bắt đầu, ngày kết thúc, cách tính lương, tài liệu, trạng thái; + Thêm hợp đồng.
- Bảng công: bộ chọn tháng; bảng các dòng; tổng cộng; trạng thái; giáo viên chỉ thấy bảng công của bản thân.
- Đánh giá: danh sách các lượt đánh giá kèm điểm số và biểu đồ sparkline thể hiện xu hướng; + Đánh giá mới dành cho quản lý.
- Tài liệu: các tệp tải lên kèm loại (CCCD, bằng cấp, chứng chỉ, hợp đồng, khác), ngày hết hạn, chip sắp hết hạn.
- Nhật ký: các mục nhật ký cho nhân sự này.
| Trường | Kiểu dữ liệu | Ràng buộc |
|---|---|---|
| Họ và tên | text | bắt buộc, 2–80 |
| Mã nhân viên | text | tự động sinh NV-####, có thể sửa, không trùng |
| Chức danh | select (danh sách của trung tâm) + thêm nhanh | bắt buộc |
| Loại hình | enum full_time / part_time / contractor | bắt buộc |
| Chi nhánh | multi-select | ≥ 1 |
| Ngày bắt đầu | date | bắt buộc, ≤ hôm nay + 90 ngày |
| Số điện thoại | tel | bắt buộc, đúng định dạng VN, kiểm tra trùng |
| bắt buộc nếu tạo tài khoản | ||
| Ngày sinh, Giới tính, CCCD, Địa chỉ | không bắt buộc; CCCD 12 số | |
| Liên hệ khẩn cấp | họ tên + số điện thoại | không bắt buộc |
| Bước 2: Tạo tài khoản đăng nhập | toggle | nếu bật: vai trò (theo các vai trò ở PRD 10), phạm vi chi nhánh, cờ "Là giáo viên" để tạo TeacherProfile |
Bảng: tên, loại (Theo buổi / Theo giờ / Theo tháng), đơn giá cơ bản, số lượng ngoại lệ, ngày hiệu lực từ/đến, số nhân sự đang áp dụng. Biểu mẫu: tên, loại, đơn giá (VND), bảng ngoại lệ (loại lớp hoặc khoá học → đơn giá), trả lương cho buổi huỷ muộn (toggle, tỷ lệ phần trăm), ngày hiệu lực. Việc gán một cách tính lương cho nhân sự được thực hiện trên hợp đồng.
Bộ chọn tháng, bộ lọc chi nhánh, chip trạng thái (Nháp / Chờ xác nhận / Đã xác nhận / Đã duyệt). Bảng: giáo viên, số buổi, số giờ, số tiền cơ bản, điều chỉnh, tổng cộng, trạng thái, số lượng cờ. Chọn một dòng để mở chi tiết bảng công: bảng dòng (ngày, lớp, tên buổi học, thời lượng, vai trò giáo viên chính/dạy thay, đơn giá, số tiền, cờ), khu vực điều chỉnh (+ Thêm điều chỉnh: số tiền có dấu, lý do), các nút theo từng trạng thái: Tính lại · Gửi GV xác nhận · Duyệt · Xuất Excel.
Bộ chọn mẫu đánh giá, kỳ đánh giá (tháng hoặc quý), các dòng tiêu chí với radio 1–5 và hiển thị trọng số, nhận xét tổng thể, toggle "Chia sẻ với giáo viên". Điểm số được tính trực tiếp ngay trên phần đầu.
6Quy tắc nghiệp vụ
- Một bản ghi nhân sự thuộc về một tenant và một hoặc nhiều chi nhánh; việc phân công lớp bị giới hạn trong các chi nhánh của nhân sự đó.
- Một người có thể có nhiều hợp đồng theo thời gian nhưng không được có hai hợp đồng đang hoạt động trùng thời gian.
- Các dòng bảng công chỉ đến từ các buổi học ở PRD 04 có trạng thái
heldhoặccancelled_late(khi cách tính lương có trả cho trường hợp này); các buổi học có trạng tháiplannedhoặccancelledkhông bao giờ được trả lương. - Giáo viên dạy thay được trả lương cho buổi học đó, không phải giáo viên chính, trừ khi cách tính lương có bật "trả cả GV chính khi có dạy thay" (mặc định tắt).
- Chụp lại đơn giá tại thời điểm tính: mỗi dòng bảng công lưu lại đơn giá đã dùng; các thay đổi cách tính lương sau đó không ảnh hưởng đến các bảng công đã được duyệt.
- Các điều chỉnh cần có lý do và quyền
staff.timesheets.adjust; chúng được ghi lại trong nhật ký. - Vô hiệu hoá tài khoản không xoá bản ghi nhân sự; mã nhân viên vẫn được giữ lại.
- Kết quả đánh giá chỉ hiển thị cho giáo viên sau khi được chia sẻ; chủ trung tâm và quản lý chi nhánh của các chi nhánh mà nhân sự đó thuộc về luôn thấy được kết quả.
7Mô hình dữ liệu
| Thực thể | Trường | Ghi chú |
|---|---|---|
| staff | id uuid; tenant_id; code; full_name; job_title_id; employment_type enum(full_time, part_time, contractor); status enum(active, on_leave, terminated); user_id int64 null; teacher_profile_id int64 null; sale_profile_id int64 null; phone; email; birthday; gender; id_number (encrypted); address; emergency_name; emergency_phone; start_date; end_date; branch_ids uuid[]; created_at; updated_at | unique (tenant_id, code); unique (tenant_id, phone) |
| job_title | id; tenant_id; name; is_teaching bool; position | mặc định: Giáo viên, Trợ giảng, Giáo vụ, Tư vấn, Kế toán, Quản lý |
| staff_contract | id; staff_id; type enum(labour, service, probation); start_date; end_date null; pay_rule_id; document_file_id; status enum(active, expired, terminated); note | ràng buộc chống trùng lặp trên khoảng [start, end] |
| pay_rule | id; tenant_id; name; type enum(per_session, per_hour, monthly); base_rate numeric; pay_cancelled_late bool; cancelled_late_pct int; pay_main_when_substituted bool; effective_from; effective_to | |
| pay_rule_override | id; pay_rule_id; class_type text null; course_id uuid null; rate numeric | quy tắc cụ thể nhất được ưu tiên |
| timesheet | id; tenant_id; branch_id; staff_id; year; month; status enum(draft, pending_confirm, confirmed, approved); base_amount; adjustment_amount; total_amount; generated_at; confirmed_at; approved_by; approved_at | unique (staff_id, year, month) |
| timesheet_line | id; timesheet_id; session_id (PRD 04); date; class_id; title; duration_min; role enum(main, substitute); rate; amount; flag_comment null; flag_status enum(none, open, resolved) | session_id không trùng trong mỗi bảng công |
| timesheet_adjustment | id; timesheet_id; amount signed; reason; created_by; created_at | |
| evaluation_template | id; tenant_id; name; criteria jsonb [{key, label, weight}] | |
| evaluation | id; staff_id; template_id; period_start; period_end; scores jsonb {key: 1..5}; weighted_score numeric; comment; evaluator_id; shared_at null; created_at | |
| staff_document | id; staff_id; type enum(id_card, degree, certificate, contract, other); file_id; expires_on null; created_at |
8Hợp đồng API
| Method | Path | Request / notes | Status |
|---|---|---|---|
| GET | /v3/teacher/schools | tư cách thành viên và vai trò của người dùng hiện tại | existing |
| GET | /v3/teacher/viewer/rollup-teachers | KPI giáo viên dùng cho cột bên của hồ sơ | existing |
| GET | /v3/school/staff | q, branch_id, job_title_id, employment_type, status, unlinked=true, page, limit | new |
| POST | /v3/school/staff | {full_name, code?, job_title_id, employment_type, branch_ids, start_date, phone, email?, ..., account?: {role_id, branch_ids, is_teacher}} | new |
| GET / PATCH | /v3/school/staff/{id} | chi tiết bao gồm hợp đồng, cách tính lương hiện tại, trạng thái tài khoản | new |
| POST | /v3/school/staff/{id}/account | {role_id, branch_ids, is_teacher} tạo lời mời người dùng + tư cách thành viên + TeacherProfile | new |
| POST | /v3/school/staff/{id}/link | {user_id | teacher_profile_id | sale_profile_id} | new |
| POST | /v3/school/staff/{id}/terminate | {end_date, reason} | new |
| GET / POST | /v3/school/staff/{id}/contracts | {type, start_date, end_date?, pay_rule_id, document_file_id?} | new |
| PATCH | /v3/school/staff/contracts/{id} | new | |
| GET / POST / PATCH | /v3/school/pay-rules[/{id}] | kèm overrides[] | new |
| POST | /v3/school/timesheets/generate | {year, month, branch_id?, staff_ids?} idempotent: chỉ tạo lại các bản nháp | new |
| GET | /v3/school/timesheets | year, month, branch_id, status, staff_id | new |
| GET | /v3/school/timesheets/{id} | các dòng, điều chỉnh, cờ | new |
| POST | /v3/school/timesheets/{id}/submit | confirm | approve | recalculate | chuyển trạng thái; trả 409 khi chuyển trạng thái không hợp lệ | new |
| POST | /v3/school/timesheets/{id}/lines/{line_id}/flag | {comment}; xử lý qua PATCH flag_status | new |
| POST | /v3/school/timesheets/{id}/adjustments | {amount, reason} | new |
| GET | /v3/school/timesheets/export | year, month, branch_id, format=xlsx | new |
| GET / POST | /v3/school/evaluation-templates | new | |
| GET / POST | /v3/school/staff/{id}/evaluations | {template_id, period_start, period_end, scores, comment, share} | new |
| GET / POST / DELETE | /v3/school/staff/{id}/documents | {type, file_id, expires_on} | new |
9Phân quyền
| Mã quyền | owner | branch_manager | accountant | academic_admin | teacher |
|---|---|---|---|---|---|
staff.view | có | chi nhánh | có | chi nhánh | chỉ bản thân + họ tên/chức danh của đồng nghiệp |
staff.manage | có | chi nhánh | không | chi nhánh | không |
staff.accounts (mời, vô hiệu hoá) | có | chi nhánh | không | không | không |
staff.contracts | có | xem | có | không | chỉ xem của bản thân |
staff.pay_rules | có | không | có | không | không |
staff.timesheets.view | có | chi nhánh | có | không | bản thân |
staff.timesheets.generate | có | không | có | không | không |
staff.timesheets.approve | có | chi nhánh | không | không | không |
staff.timesheets.adjust | có | không | có | không | không |
staff.evaluations | có | chi nhánh | không | không | chỉ xem của bản thân khi được chia sẻ |
staff.export | có | không | có | không | không |
10Sự kiện phân tích
| Sự kiện | Thuộc tính |
|---|---|
| staff_created | employment_type, with_account, is_teacher |
| staff_linked | link_type |
| contract_created | type, has_document, pay_rule_type |
| contract_expiring_notified | days_before |
| timesheet_generated | month, staff_count, line_count |
| timesheet_flagged | line_count |
| timesheet_approved | total_amount_bucket |
| payroll_exported | staff_count |
| evaluation_shared | score_bucket |
11Trường hợp biên
- Giáo viên làm việc ở hai chi nhánh với đơn giá khác nhau: việc ghi đè đơn giá theo chi nhánh chưa được hỗ trợ ở v1; dùng hai cách tính lương trên hai hợp đồng cũng không được phép (trùng thời gian). Quyết định: pay_rule_override có thêm một chiều
branch_idkhông bắt buộc ở v1. - Buổi học có hai giáo viên (chính + trợ giảng): buổi học mang theo
assistant_staff_id; trợ giảng được trả lương qua một quy tắc được đánh dấurole=assistant. - Ranh giới tháng: một buổi học vào 30/09 23:00 thuộc về tháng 9 theo ngày của buổi học tính theo múi giờ của tenant.
- Việc tạo lại bảng công sau khi đã duyệt bị từ chối; một khoản điều chỉnh sẽ được đưa vào tháng sau kèm tham chiếu.
- Nhân sự nghỉ việc giữa tháng vẫn giữ bảng công cho các buổi học trước ngày kết thúc.
- Email tài khoản đã được một thành viên của trường khác sử dụng: việc liên kết vẫn hoạt động (tài khoản FLYER có phạm vi toàn hệ thống); bản ghi nhân sự vẫn chỉ nằm trong phạm vi tenant.
12Câu hỏi còn mở
- Bảng công có nên bao gồm cả nhân sự không giảng dạy (lương cố định theo tháng) hay không, hay mô-đun này chỉ dành cho giáo viên ở giai đoạn 2?
- Các trung tâm có trả lương theo số học viên có mặt không (một số trung tâm áp dụng cách này cho lớp học nhóm)? Nếu có, sẽ cần thêm loại quy tắc
per_student_present. - Đánh giá từ phụ huynh (chấm điểm trong cổng phụ huynh) có được tính vào điểm đánh giá không?
Trường Số (truongso.net) · Nội bộ FLYER