Skip to main content

Training Enrollment

Revision 2.0 (2026-01-23) - Complete feature (all phases implemented, MoM 2026-01-16 improvements)

Feature Summary

Training Enrollment (ส่งรายชื่อผู้อบรม) allows contractors to submit worker lists for safety training sessions. Safety Officers review, optionally partially approve, and finalize enrollments — creating training attendance records automatically.

  • Worker Registry - Source of worker data for enrollment
  • Training Settings - Training schedules, sessions, and approvals dashboard
  • Training Info - Contractor view for browsing sessions and initiating enrollment

Key Capabilities

  • Select workers from contractor's Worker Registry via dedicated dialog
  • Choose available training sessions with capacity tracking
  • Form validation with clear error messages before submission
  • Worker eligibility checks (blacklist, documents, duplicate enrollment, training status)
  • Safety Officer partial approval (can deselect ineligible workers)
  • Automatic attendance record creation on approval
  • Duplicate enrollment blocking (one pending task per contractor)
  • Quick Enroll shortcut from Training Info page
  • Auto-navigation to document form based on user role
  • Inbox notifications on state transitions

Role Matrix

Revision 2.0 (2026-01-23)

ActionAdminSafety OfficerContractor
Create enrollment task
Fill worker list✅ (own tasks)
Submit for review✅ (own tasks)
Review enrollment
Approve (full/partial)
Request change
Reject enrollment
Cancel enrollment✅ (own tasks)
Quick Enroll (Training Info)

Quick Enroll Flow (Training Info)

Contractors can create enrollment tasks directly from the Training Info page:

  1. Open Training Info (เครื่องมือ > ข้อมูลการอบรม)
  2. Find an open session with available seats
  3. Click "ลงทะเบียน" button
  4. System creates task and redirects to Task Review page
  5. Fill in worker list and submit

Worker Selection Dialog

When adding workers to the enrollment, a dedicated dialog provides:

FeatureDescription
SearchFilter by worker name or ID card number
Training Status ChipsQuick filter: ผ่าน, รอการอบรม, ยังไม่ได้อบรม, หมดอายุ, ไม่ผ่าน
Multi-SelectCheckboxes for selecting multiple workers
Select AllSelects only eligible workers (skips disabled)
Auto-DisableWorkers with ผ่าน/รอการอบรม/Blacklisted/Pending status are grayed out
Default FilterOpens with "ยังไม่ได้อบรม" chip selected

Worker Eligibility

Training StatusCan SelectVisual
ยังไม่ได้อบรม (Not trained)Normal row
หมดอายุ (Expired)Normal row
ไม่ผ่าน (Failed)Normal row
ผ่าน (Passed)Grayed out (opacity-50)
รอการอบรม (Pending)Grayed out (opacity-50)
BlacklistedRed badge, grayed out
Pending ApprovalOrange badge, grayed out

Validation & Blocking Rules

Form Validation (Contractor Submit)

FieldRuleError Message
Training SessionMust be selected"รอบอบรม"
WorkersAt least 1 selected"ผู้อบรม (อย่างน้อย 1 คน)"

Worker Validation (SO Review)

CheckSeverityDescription
Blacklisted❌ BlockingWorker on blacklist — cannot be approved
Already Enrolled❌ BlockingWorker already enrolled in this session
Booking Conflict❌ BlockingWorker has enrollment on same day
Missing ID Card⚠️ WarningNo ID card document uploaded
Missing Profile Photo⚠️ WarningNo profile photo uploaded
Passed Training✅ OKCan enroll for refresher (green background)

Duplicate Enrollment Block

Only one pending Training Enrollment task is allowed per contractor. Creating a second while one is awaiting approval shows an error message.


Partial Approval (Safety Officer)

Safety Officers can partially approve worker lists during review:

  1. Open enrollment task in "Review" state
  2. Workers with validation issues shown with red background (auto-blocked)
  3. Workers with passed training shown with green background (eligible for refresher)
  4. SO can deselect additional workers if needed
  5. Click "อนุมัติ" → Only selected workers are enrolled

Minimum requirement: At least 1 worker must remain selected to approve.


Inbox Notifications

TriggerRecipientMessage
Task submitted for reviewSafety OfficerNew training enrollment to review
Task approvedContractorTraining enrollment approved
Task rejectedContractorTraining enrollment rejected
Task sent back for changesContractorTraining enrollment needs changes

Frontend Architecture


DocumentDescription
Workflow DetailsStates, commands, form permissions
Test CasesFrontend test cases (MoM 2026-01-16)
Service Report #008Implementation details and test status
Training ManagementSchedule/session management