Service Report #005
Date: 2026-01-06
Feature Overview
Features originate from the following Minutes of Meetings:
- MoM 2025-12-24 - Items 1-3
- MoM 2025-12-29 - Items 3-5, 12-13
| # | Feature | Issue | MoM Reference | Type | Status |
|---|---|---|---|---|---|
| 1 | Task Type Separation | #168 | MoM 2025-12-24, Item 1 | Enhancement | 🔍 In Review |
| 2 | Worker Registry | #169 | MoM 2025-12-24, Item 2 | Feature | 🔍 In Review |
| 3 | Training Enrollment | #170 | MoM 2025-12-24, Item 3 | Feature | 🔍 In Review |
| 4 | Worker Registration Tab Order | #183 | MoM 2025-12-29, Item 3 | Enhancement | 🔍 In Review |
| 5 | Training Management Tools | #184 | MoM 2025-12-29, Item 4 | Feature | 🔍 In Review |
| 6 | Menu Reorder (Tools) | #185 | MoM 2025-12-29, Item 5 | Enhancement | 🔍 In Review |
| 7 | Safety Officer Dashboard | #192 | MoM 2025-12-29, Item 12 | Mockup | 🔍 In Review |
| 8 | Safety Board | #193 | MoM 2025-12-29, Item 13 | Mockup | 🔍 In Review |
| 9 | JSA Template Management | #189 | MoM 2025-12-29, Item 9 | Feature | 🔍 In Review |
1. Task Type Separation
Issue: #168 Thai Name: แยกประเภทงานตาม Flow
Description: Separate task creation by flow type. When creating a new task, users now see distinct task types.
Location: Tasks > สร้างงานใหม่
What to Test
- View task type list when creating new task
- Verify "ส่งรายชื่อผู้อบรม" task type is available
- Verify task types are properly separated
2. Worker Registry
Issue: #169 Thai Name: ทะเบียนผู้ปฏิบัติงาน
Description: Manage workers associated with contractors. Supports CRUD operations, training status management, and blacklist functionality.
Location: Tools > กำหนดค่า > ทะเบียนผู้ปฏิบัติงาน
Role Matrix
| Action | Admin | Safety Officer | Contractor |
|---|---|---|---|
| View all workers | ✅ | ✅ | Own only |
| Create worker | ❌ | ❌ | ✅ |
| Edit worker (general info) | ❌ | ❌ | Own only |
| Edit training status | ❌ | ✅ | ❌ |
| Delete worker | ❌ | ❌ | Own only |
| Toggle blacklist | ❌ | ✅ | ❌ |
What to Test
- Contractor: Add new worker with personal information
- Contractor: Upload worker documents (ID card, certificates)
- Contractor: Edit and delete own workers
- Safety Officer: View all workers from all contractors
- Safety Officer: Update training status (pass/fail/expiry date)
- Safety Officer: Toggle blacklist status with reason
- Admin: View worker list (readonly)
Full Documentation
Q/A - รอยืนยัน
| # | คำถาม | ตัวเลือก | สถานะปัจจุบัน |
|---|---|---|---|
| 1.1 | System Admin แก้ไขข้อมูลผู้ปฏิบัติงานได้หรือไม่? | A) แก้ไขได้ทุกอย่าง / B) ดูอย่างเดียว / C) ตั้งค่าได้ | B) ดูอย่างเดียว |
| 1.2 | เอกสารแนบส่วนบุคคลที่ต้องการมีอะไรบ้าง? | สำเนาบัตร, ใบรับรองแพทย์, วุฒิบัตร, อื่นๆ? | อัปโหลดได้อิสระ |
| 1.3 | เมื่อใบอบรมหมดอายุ ต้องการให้ระบบทำอะไร? | A) แจ้งเตือน / B) ล็อคอัตโนมัติ / C) ทั้งคู่ | A) แจ้งเตือน |
| 1.4 | Blacklist ปลดได้หรือไม่? ใครเป็นผู้มีสิทธิ์ปลด? | A) ปลดไม่ได้ / B) จป. ปลด / C) Admin ปลด | B) จป. ปลด |
| 1.5 | 3rd party (Specialist) สามารถทำงานให้หลายบริษัทพร้อมกันได้หรือไม่? | A) ได้ / B) ไม่ได้ | B) ไม่ได้ |
3. Training Enrollment Workflow
Issue: #170 Thai Name: ส่งรายชื่อผู้อบรม (Workflow)
Description: Contractors submit worker lists for safety training. Safety Officers review and approve the enrollment requests.
Location: Tasks > สร้างงานใหม่ > ส่งรายชื่อผู้อบรม
Workflow States
Role Matrix
| Action | Safety Officer | Contractor |
|---|---|---|
| Create enrollment task | ❌ | ✅ |
| Select training session | ❌ | ✅ |
| Select workers for enrollment | ❌ | ✅ (own workers) |
| Submit for approval | ❌ | ✅ |
| View validation summary | ✅ | ✅ (own) |
| Approve enrollment | ✅ | ❌ |
| Request changes | ✅ | ❌ |
| Reject enrollment | ✅ | ❌ |
What to Test
- Contractor: Create new training enrollment task
- Contractor: Select training session from dropdown
- Contractor: Select workers to enroll (with validation display)
- Contractor: Submit enrollment for approval
- Safety Officer: View enrollment request
- Safety Officer: Review validation summary (ID card, photo, blacklist status)
- Safety Officer: Approve enrollment
- Safety Officer: Request changes (send back to contractor)
- Safety Officer: Reject enrollment
Validation Checks (Displayed to Safety Officer)
| Check | Pass | Fail |
|---|---|---|
| ID Card uploaded | ✅ | ❌ Missing ID card |
| Profile photo uploaded | ✅ | ❌ Missing photo |
| Not blacklisted | ✅ | ❌ Worker is blacklisted |
| No duplicate enrollment | ✅ | ❌ Already enrolled in session |
Full Documentation
Q/A - รอยืนยัน
| # | คำถาม | ตัวเลือก | สถานะปัจจุบัน |
|---|---|---|---|
| 3.1 | เหตุผลในการส่งกลับแก้ไข/ปฏิเสธ ควรเป็นแบบใด? | A) เลือกจากรายการ / B) พิมพ์เอง / C) ทั้งคู่ | รอกำหนด |
| 3.2 | หากจำนวนผู้สมัครเกิน capacity ของ session? | A) รอคิว / B) ปฏิเสธ / C) แจ้งเตือน | รอกำหนด |
| 3.3 | เอกสารอนุมัติ (PDF) ต้องการข้อมูลอะไรบ้าง? | รายชื่อ, วันที่, ลายเซ็น, QR code? | รอกำหนด |
| 3.4 | ต้องการแจ้งเตือนก่อนใบอบรมหมดอายุล่วงหน้ากี่วัน? | 7 / 14 / 30 วัน? | รอกำหนด |
4. Worker Registration Tab Order
Issue: #183 Thai Name: เรียงลำดับ Tab ทะเบียนผู้ปฏิบัติงาน
Description: Reorder tabs in worker registration form. Move "เอกสารแนบ" (Attachments) tab next to "ข้อมูลส่วนบุคคล" (Personal Info).
Location: Tools > กำหนดค่า > ทะเบียนผู้ปฏิบัติงาน > [Edit Worker]
What to Test
- Open worker edit form
- Verify tab order: ข้อมูลส่วนบุคคล > เอกสารแนบ > ...
- Verify attachments tab is immediately after personal info
5. Training Management Tools
Issue: #184 Thai Name: จัดการการอบรม
Description: Safety Officers can manage training schedules, sessions, and approvals. Supports schedule definition, session generation, and batch approval workflows.
Location: Tools > กำหนดค่า > จัดการการอบรม
Role Matrix
| Action | Admin | Safety Officer | Contractor |
|---|---|---|---|
| View schedules | ✅ (readonly) | ✅ | ❌ |
| Create/Edit schedule | ❌ | ✅ | ❌ |
| Generate sessions | ❌ | ✅ | ❌ |
| View sessions | ✅ (readonly) | ✅ | Available slots |
| Create/Edit session | ❌ | ✅ | ❌ |
| Approve training | ❌ | ✅ | ❌ |
What to Test
- Safety Officer: Create training schedule (e.g., "Generic Safety Training")
- Safety Officer: Generate sessions from schedule
- Safety Officer: View pending approvals
- Safety Officer: Approve training results (individual, by session, by contractor)
- Contractor: View available training slots for enrollment
Full Documentation
Q/A - รอยืนยัน
| # | คำถาม | ตัวเลือก | สถานะปัจจุบัน |
|---|---|---|---|
| 2.1 | จำนวนผู้เข้าอบรมสูงสุดต่อ session เท่าไร? | 20 / 30 / 50 / กำหนดเอง? | 30 คน |
| 2.2 | รอบการอบรมมีอะไรบ้าง? | รายสัปดาห์ / รายเดือน / รายไตรมาส / อื่นๆ? | รายสัปดาห์, รายเดือน |
| 2.3 | ใครเป็นผู้กำหนดตารางการอบรม? | จป. เท่านั้น / Admin ด้วย? | จป. เท่านั้น |
6. Menu Reorder (Tools)
Issue: #185 Thai Name: เรียงลำดับเมนู (เครื่องมือ)
Description: Reorder menu items. Move "เครื่องมือ" (Tools) to position 2 in the main navigation.
Location: Main Navigation Menu
What to Test
- Verify "เครื่องมือ" menu is in position 2
- Verify menu order: งานของฉัน > เครื่องมือ > ...
7. Safety Officer Dashboard
Issue: #192 Thai Name: Dashboard สำหรับ จป.
Description: Dashboard page for Safety Officers showing operational metrics. Displays mockup data for demonstration.
Location: Dashboard (visible to Safety Officer only)
This feature displays sample data for demonstration purposes only.
Metrics Displayed
Today:
- งานที่เปิดอยู่ / งานที่ปิดแล้ว (Open/Closed works)
- แยกตามประเภท Work Permit
- จำนวนผู้รับเหมา และคนงานในพื้นที่
Month-to-Date:
- สรุปข้อมูลรายเดือน (Monthly summary chart)
What to Test
- Login as Safety Officer
- Navigate to Dashboard
- Verify Safety Officer Dashboard section is visible
- Verify mockup notice is displayed
- Verify metrics cards display sample data
- Verify charts display correctly
8. Safety Board
Issue: #193 Thai Name: Safety Board (กระดานความปลอดภัย)
Description: Safety status board visible to all roles. Displays safety metrics in two styles: Digital (LED scoreboard) and Modern (card-based with charts).
Location: Dashboard (visible to all roles)
This feature displays sample data for demonstration purposes only.
Two Display Styles
| Style | Description |
|---|---|
| Digital Board | POSCO-style LED scoreboard with dark theme |
| Modern Style | Card-based dashboard with ApexCharts |
Metrics Displayed
- เป้าหมายวันทำงานปลอดอุบัติเหตุ (Target days)
- วันทำงานปลอดอุบัติเหตุ (Working days without accident)
- สถิติสูงสุด (Best record)
What to Test
- Login as any role
- Navigate to Dashboard
- Verify Safety Board is visible
- Toggle between "Digital Board" and "Modern Style"
- Verify both styles display correctly
- Verify mockup notice is displayed
9. JSA Template Management
Issue: #189 Thai Name: ต้นแบบ JSA
Description: Manage JSA (Job Safety Analysis) templates. Safety Officers create system templates, Contractors can import and create their own templates. Export to PDF/XLSX matching official form layout (FP-BZ-034).
Location: Tools > กำหนดค่า > ต้นแบบ JSA
Role Matrix
| Action | Admin | Safety Officer | Contractor |
|---|---|---|---|
| View system templates | ✅ | ✅ | ✅ |
| Create/Edit system template | ✅ | ✅ | ❌ |
| Create/Edit own template | ❌ | ❌ | ✅ |
| Import system template | ❌ | ❌ | ✅ |
| Export (PDF/XLSX) | ✅ | ✅ | ✅ |
What to Test
- Admin/Safety Officer: Create and manage system templates
- Contractor: View all templates, create own templates
- Contractor: Import system template as own
- Export template to PDF (verify official form layout)
- Export template to XLSX (verify official form layout)