Skip to main content

Service Report #007 In Review

Date: 2026-01-13 (Updated: 2026-01-20)


Workflow Standards Summary - Preview29

The Project Registration workflow is now feature-complete and establishes standard patterns for all remaining workflows (JSA Preparation, Tool List Preparation, Work Permit Request).

Workflow Standards Summary

Implemented Features

CategoryFeatureStatusNotes
WorkflowOptional Commands (Skip Logic)Skip Purchasing review when project has PO Number
WorkflowForm Validation with CommandsButtons disabled when form invalid, red asterisks on required fields
WorkflowAssignee Auto-SelectionAuto-selects WO/SO/WAO based on Project data
WorkflowReview State SimplificationComplex states simplified to Approve + Cancel only
DocumentsFile AttachmentsUpload and manage file attachments
DocumentsCommentsAdd, edit, delete comments on tasks
DocumentsPrint PreviewBrowser print with Save as PDF guidance
DocumentsPDF/XLSX DownloadExport individual documents
DocumentsDownload All (ZIP)Bulk export all documents as single ZIP archive
DocumentsAuto-NavigationOpens correct document form based on user role
SigningDigital Signature VerificationPassword verification with signer identity and timestamp
SigningSignature Grid (PTW Parts 3-5)Multi-signature grid for permit authorization
EmailNotificationsConfigurable email via dev SMTP server
Dev ModeDev Notes (Purple Banners)Tester communication banners in dev mode
Dev ModeSimulate DataQuick form filling button for testing
UIProgress Bar PositioningProgress bar below navbar during command execution
UICommand Button VisibilityCommands hidden on document list, shown on form view

Email Notifications

Email notifications are now working via the development SMTP server:

Dev Notes (Purple Banners)

Purple info banners appear in development mode only to communicate important design decisions to testers:

  • Explaining non-obvious UI/UX decisions
  • Flagging features that need tester approval
  • Documenting temporary workarounds

These banners are automatically hidden in production builds.

Cross-Workflow Standards

These patterns are confirmed standard and will apply to all workflows:

PatternDescriptionReusability
Download All (ZIP)Exports all task documents as single ZIPWorkflow-agnostic (works automatically)
Document SectionsGroups documents by category (PTW, Prerequisites, etc.)Extensible for new workflows
Reference DocumentsShows related workflow docs as read-onlyConfigurable per workflow
Follow-Up WorkflowsCheckboxes to auto-create related tasks on approvalConfigurable per workflow
Form Validity FlowStandard signal flow: form → service → toolbar → buttonReusable pattern
Digital SignaturePassword verification with audit trailReusable components

Golden Rules Documented

All implementation patterns are documented in .claude/rules/workflow-implementation.md:

  • TaskCommand configuration
  • Form validity signal flow
  • Validation UI banners
  • Document form layout standards
  • Signature verification pattern
  • Default document auto-navigation
  • Review state command simplification
  • Cross-workflow architecture patterns
  • Progress bar positioning
  • Command button visibility (document view state)

Feature Overview

Features originate from the following Minutes of Meetings:

#FeatureIssueMoM ReferenceTypeStatus
1Work Owner Send Actions#231MoM 2026-01-06, Item 9Bug Fix🔍 In Review
2Contractor No Projects#232MoM 2026-01-06, Item 10Resolved🔍 In Review
3Contractor Flow Blocked#235MoM 2026-01-06, Item 13Resolved🔍 In Review
4Close Project Flow Confusion#76MoM 2025-08-19, Item 5Resolved🔍 In Review
5Work Owner PR# Filter#115MoM 2025-10-07, Item 7Enhancement🔍 In Review
6Project Info on Contractor Tasks#153MoM 2025-11-21, Item 5Enhancement🔍 In Review
7Project Settings Create Button FixInternalInternalBug Fix🔍 In Review
8Project Settings Role Comparison DocsInternalInternalDocumentation🔍 In Review
9Version CentralizationInternalInternalEnhancement🔍 In Review
10User Invitation FlowInternalInternalEnhancement🔍 In Review
11Project Registration Optional CommandsInternalInternalEnhancement🔍 In Review
12Email Notification to Contractor#159MoM 2025-12-16, Item 4Enhancement🔍 In Review
13Contractor Task Sequence Mockup#157MoM 2025-12-16, Item 2Enhancement⚠️ Needs Requirements
14Work Owner Change Ownership#132MoM 2025-11-11, Item 4Enhancement⚠️ Needs Requirements
15Lock Project After Approval#133MoM 2025-11-11, Item 5Enhancement⚠️ Needs Requirements
16System Admin Edit Projects#137MoM 2025-11-11, Item 9Enhancement⚠️ Needs Requirements
17SO/Area Task Forwarding#160MoM 2025-12-16, Item 5Enhancement⚠️ Needs Requirements

1. Work Owner Send Actions

Issue: #231 Thai Name: เจ้าของงานส่งไปจัดซื้อและผู้รับเหมาไม่ได้ Status: 🔍 In Review

Description: Work owner cannot send projects to purchasing or contractor, blocking workflow testing.

MoM 2026-01-06, Item 9:

MoM Screenshot

Location: Project Registration > Work Owner Actions

Resolution (2026-01-20)

Form validation with command integration enables Work Owner to send tasks to Purchasing and Contractor. The Project Registration workflow is now fully implemented and tested.

PR: #276 Deployed in: Preview29

What to Test

#Test CaseStatus
1Work Owner: Create project and send to Purchasing Pending
2Work Owner: Create project and send to Contractor Pending
3Verify workflow progresses correctly after each send action Pending

2. Contractor No Projects

Issue: #232 Thai Name: ผู้รับเหมาไม่มีโครงการให้ทดสอบ flow Status: 🔍 In Review

Description: Contractor has no projects to test the workflow because work owner cannot send projects (blocked by #231).

MoM 2026-01-06, Item 10:

MoM Screenshot

Location: Project Registration > Contractor View

Resolution (2026-01-20)

Not a bug - this was a test timing issue. The Project Registration workflow was not yet complete when testing was attempted. The workflow is now fully implemented and ready for testing.


3. Contractor Flow Blocked

Issue: #235 Thai Name: ทดสอบ flow ผู้รับเหมาต่อไม่ได้ เพราะไม่มีโครงการ Status: 🔍 In Review

Description: Cannot test contractor workflow because no projects are available (consequence of #231 and #232).

MoM 2026-01-06, Item 13:

MoM Screenshot

Location: Project Registration > Contractor Flow

Resolution (2026-01-20)

Not a bug - this was a test timing issue. The Project Registration workflow was not yet complete when testing was attempted. The workflow is now fully implemented and ready for testing.


4. Close Project Flow Confusion

Issue: #76 Thai Name: หลังจากอนุมัติ กลายเป็นปิดงาน? Status: 🔍 In Review

Description: After approving a project, the status showed "Closed" which caused confusion. Users expected the workflow to continue with follow-up tasks (JSA Preparation, Tool List Preparation) rather than ending.

MoM 2025-08-19, Item 5:

MoM Screenshot

Location: Project Registration Workflow > Approval

Resolution (2026-01-20)

The Project Registration workflow now properly handles the approval state:

  • Clear state transitions with proper command validation
  • Follow-up workflow creation options (JSA Preparation, Tool List Preparation)
  • Review state command simplification (only Approve + Cancel)
  • Digital signature verification for form approval

Related PRs: #276, #295, #296, #299

Deployed in: Preview29

What to Test

#Test CaseStatus
1Approve a project → Verify status is not immediately "Closed" Pending
2Verify follow-up workflow checkboxes appear in approval dialog Pending
3Create follow-up tasks → Verify JSA/Tool List workflows created Pending

5. Work Owner PR# Filter

Issue: #115 Thai Name: เจ้าของงาน สร้าง Task ใหม่: เพื่อแก้ไขปัญหา กรณีเจ้าของสร้าง task ภายหลัง จัดซื้อสร้าง project Status: 🔍 In Review

MoM 2025-10-07, Item 7:

เจ้าของงาน สร้าง Task ใหม่: เพื่อแก้ไขปัญหา กรณีเจ้าของสร้าง task ภายหลัง จัดซื้อสร้าง project

  1. เจ้าของงาน filter PR# ต้องเป็นของตัวเองเท่านั้น หากจัดซื้อกำหนดมาแล้ว
  2. Filter แสดงเฉพาะงานที่ยังไม่มี project หรือ หากเลือก PR# ที่ใช้ไปแล้ว ให้แสดงข้อความเตือน
  3. การสร้าง task ที่ชี้ไปหา PR# เดียวกัน

Description: When Work Owner creates a new task after Purchasing has already created a project, the PR# filter must show only projects assigned to that Work Owner. This prevents ownership conflicts and ensures proper project association.

Location: My Tasks > Create New Task (Work Owner role)

Resolution (2026-01-20)

The Project Registration workflow now supports proper PR# filtering for Work Owner:

  • Work Owner can only see PR# assigned to them when creating tasks
  • Projects already associated with tasks are filtered out or show warning
  • Duplicate PR# association is prevented

Deployed in: Preview29

What to Test

#Test CaseStatus
1Work Owner creates task → PR# dropdown shows only their projects Pending
2Select PR# already used → Warning message appears Pending
3Create task with valid PR# → Task created successfully Pending

6. Project Info on Contractor Tasks

Issue: #153 Thai Name: ข้อมูลโครงการจะแนบเป็นใบปะหน้าทุก กิจกรรม ของผู้รับเหมา Status: 🔍 In Review

MoM 2025-11-21, Item 5:

ข้อมูลโครงการจะแนบเป็นใบปะหน้าทุก กิจกรรม ของผู้รับเหมา ตาม role matrix เช่น การส่งรายชื่อ, การส่งอุปกรณ์ตรวจ, การสร้าง JSA เป็นต้น

  1. ส่วนข้อมูลโครงการ
  2. ส่วนข้อมูลการจัดซื้อ
  3. ส่วนข้อมูลผู้รับเหมา

Description: Project information is attached as a cover sheet to every contractor activity. This includes project details, purchasing information, and contractor information displayed in all contractor-related workflows.

Location: All Contractor Tasks > Document Forms

Resolution (2026-01-20)

The Project Registration Form now displays on all contractor-related workflows:

  • Project Registration Form shown in JSA Preparation workflow
  • Project Registration Form shown in Tool List Preparation workflow
  • Pre-Work Procedures Form included where applicable
  • Reference documents marked as read-only with proper styling

Deployed in: Preview29

What to Test

#Test CaseStatus
1Open JSA Preparation task → Project info displayed Pending
2Open Tool List Preparation task → Project info displayed Pending
3Verify project info sections: Project, Purchasing, Contractor Pending

Internal Improvements

The following items are improvements initiated internally by the development team. They do not have associated MoM items or GitHub issues.

7. Project Settings Create Button Fix

Source: Internal Request Thai Name: แก้ไขปุ่ม "สร้าง" ในหน้า Project Settings ให้ตรงกับ Worker Registry

Description: Fixed the Create button styling in Project Settings to match the Worker Registry pattern. The button was using mat-button (text button) instead of mat-flat-button (filled green button).

Location: Tools > กำหนดค่า > Project Settings > List View

Before/After

BeforeAfter
mat-button (text only, no background)mat-flat-button (green background)
No iconadd icon

Files Modified

FileChange
project-setting-list-toolbar.component.tsAdded MatIconModule import, changed to mat-flat-button with add icon
.claude/rules/angular.mdAdded "Create Button Standard (List Toolbar)" section

Golden Rule Added

A new golden rule was added to Angular guidelines for consistent create button styling:

ElementValue
Directivemat-flat-button (green background)
Iconadd
i18n Key@@common.create or feature-specific

What to Test

#Test CaseStatus
1Open Project Settings → Verify green "สร้าง" button with add icon Pending
2Compare with Worker Registry → Buttons should look identical Pending

8. Project Settings Role Comparison Docs

Source: Internal Request Thai Name: เพิ่มเอกสารเปรียบเทียบสิทธิ์ระหว่าง Purchasing และ Work Owner

Description: Added detailed role comparison documentation for Project Settings feature, clarifying the differences between Purchasing and Work Owner roles.

Location: Docs Site > Features > Project Settings

Role Comparison Summary

CapabilityPurchasingWork Owner
View all projects
Create new projects
Edit all projects (own only)
Delete projects
Edit PO fields (PO.No, Duration, Period) (read-only)
Edit PR.No

Work Owner Restrictions

RestrictionDescription
No Create buttonButton is hidden for Work Owner role
Edit own projects onlyCannot edit projects owned by others
PO fields read-onlyPO.No, Duration, Period are disabled
No Delete actionDelete option is not available
PR.No is editableThis is the only PO-related field Work Owner can edit

Files Modified

FileChange
docs/docs/features/project-setting.mdAdded "Role Comparison: Purchasing vs Work Owner" section

What to Test

#Test CaseStatus
1View documentation at Features > Project Settings Pending
2Verify role comparison table is accurate Pending

9. Version Centralization

Source: Internal Request Thai Name: รวมศูนย์การจัดการ Version เป็นแหล่งเดียว

Description: Centralized version management to use frontend/package.json as the single source of truth. Previously, the version was duplicated in 5 environment files and hardcoded in the docs site.

Location: Frontend + Docs Site

Architecture

Single Source of Truth

frontend/package.json (version: "2025.10.1.0-preview29")

├─→ version.helper.ts → APP_VERSION constant
│ ↓
│ ├─→ about.component.ts
│ ├─→ login.component.ts
│ └─→ home.component.ts

└─→ docs/scripts/sync-version.js (prebuild hook)

└─→ docs/docs/index.md (auto-updated)

Changes Summary

AreaBeforeAfter
package.json0.0.0 (unused)2025.10.1.0-preview29
Environment filesappVersion in 5 filesRemoved (using helper)
Componentsenvironment.appVersionAPP_VERSION from helper
Docs indexHardcoded versionAuto-synced from package.json
Service reportsVersion lines in headersRemoved

Files Created

FileDescription
frontend/src/app/shared/helpers/version.helper.tsExports APP_VERSION from package.json
docs/scripts/sync-version.jsSyncs version to docs index page

Files Modified

FileChange
frontend/package.jsonUpdated version to 2025.10.1.0-preview29
frontend/tsconfig.jsonAdded resolveJsonModule: true
frontend/src/environments/environment.tsRemoved appVersion
frontend/src/environments/environment.dev.tsRemoved appVersion
frontend/src/environments/environment.development.tsRemoved appVersion
frontend/src/environments/environment.thaiscada.tsRemoved appVersion
frontend/src/environments/environment.neosyntax.tsRemoved appVersion
frontend/src/app/features/tools/about/about.component.tsUse APP_VERSION
frontend/src/app/features/auth/login/login.component.tsUse APP_VERSION
frontend/src/app/features/home/home.component.tsUse APP_VERSION
docs/package.jsonAdded sync-version, prestart, prebuild scripts
docs/docs/service-reports/report-001.mdRemoved version line
docs/docs/service-reports/report-002.mdRemoved version line
docs/docs/service-reports/report-003.mdRemoved version line
docs/docs/service-reports/report-004.mdRemoved version line
docs/docs/service-reports/report-005.mdRemoved version line
docs/docs/service-reports/report-006.mdRemoved version line

Version Bump Process (New)

When bumping version:

  1. Update frontend/package.json version field (single source of truth)
  2. Add new section to docs/docs/release-notes.md
  3. Docs index page updates automatically on build via sync-version.js

What to Test

#Test CaseStatus
1Build frontend → Verify About page shows correct version Pending
2Build docs → Verify index page shows correct version Pending
3Run npm run start in docs → Verify sync-version runs Pending
4Change package.json version → Rebuild → Verify all updated Pending

10. User Invitation Flow

Source: Internal Request Thai Name: ระบบเชิญผู้ใช้งานด้วยอีเมลที่กำหนดเอง (Thai/English)

Description: Custom invitation emails replacing Keycloak default emails. The application now controls the invitation email content with bilingual Thai/English support.

Location: User Settings > Send Invitation + /accept-invitation page

Architecture

Admin clicks "Send Invitation"

Backend creates invitation token in DB (72h TTL)

Backend sends custom bilingual email via Mailpit

User clicks link → /accept-invitation?token=xxx

User sets password → Keycloak account created

Files Created

FileDescription
Domain/Users/UserInvitation.csEntity for invitation tokens
Application/Contracts/IUserInvitationService.csService interface
Infrastructure/Services/UserInvitationService.csService implementation
WebApi/Features/Invitations/ValidateInvitationEndpoint.csGET /api/invitations/validate/{token}
WebApi/Features/Invitations/AcceptInvitationEndpoint.csPOST /api/invitations/accept
assets/templates/emails/user-invitation.htmlBilingual email template
frontend/src/app/features/auth/accept-invitation/*Frontend components (3 files)

Files Modified

FileChange
WebApi/Features/Users/SendInvitationEndpoint.csUse IUserInvitationService instead of Keycloak direct
Infrastructure/Keycloak/KeycloakUserAdminService.csAdded CreateAccountWithPasswordAsync()
frontend/src/app/features/auth/auth.routes.tsAdded accept-invitation route
frontend/src/locale/messages.jsonAdded acceptInvitation.* keys
frontend/src/locale/messages.en.jsonAdded English translations

What to Test

#Test CaseStatus
1Send invitation from User Settings Pending
2Check Mailpit for bilingual email Pending
3Click link → verify accept-invitation page Pending
4Set password → login with new credentials Pending
5Re-send invitation → verify old token invalidated Pending

11. Project Registration Optional Commands

Source: Internal Request Thai Name: ข้ามขั้นตอน Purchasing Review เมื่อมีเลข PO

Description: Skip Purchasing review step when project already has a PO Number. This allows projects with existing PO to go directly to contractor without Purchasing review.

Location: Project Registration Workflow

Architecture

Project has PO Number?
↓ Yes ↓ No
Skip to Contractor → Go through Purchasing
(RequestPreWorkProcedures (ReviewProjectDataByPurchasing)
FormDirect)

Files Created

FileDescription
Domain/Workflows/OptionalCommandConfig.csConfiguration for optional commands
Domain/Workflows/SkipConditionType.csEnum for skip conditions (HasPurchaseOrderNo, etc.)
Application/Contracts/ISkipConditionEvaluator.csEvaluator interface
Infrastructure/Services/SkipConditionEvaluator.csEvaluator implementation

Files Modified

FileChange
Application/Services/TaskCommandService.csFilter commands based on skip conditions
Domain/Workflows/ProjectRegistrationWorkflow.csHandle RequestPreWorkProceduresFormDirect command
Frontend task-command componentDisplay optional commands with confirmation

What to Test

#Test CaseStatus
1Create project WITH PO Number → should show skip option Pending
2Create project WITHOUT PO Number → should require Purchasing review Pending
3Confirm skip option → verify workflow proceeds to contractor Pending

12. Email Notification to Contractor

Issue: #159 Thai Name: เพิ่มการ email กลับไปยังผู้รับเหมา เมื่อได้รับอนุมัติโครงการแล้ว Status: 🔍 In Review

MoM 2025-12-16, Item 4:

เพิ่มการ email กลับไปยังผู้รับเหมา เมื่อได้รับอนุมัติโครงการแล้ว

MoM Screenshot

Description: Send email notification to contractor when a project is approved. The notification is configurable via workflow definition and can be enabled/disabled in the approval dialog.

Location: Project Registration Workflow > Approval Dialog

Architecture

Work Owner clicks "Approve"

Approval dialog shows notification checkboxes

User confirms with notification option checked

Workflow executes approval + sends email

Contractor receives "Project Approved" email

Implementation

The feature follows the Dynamic Configuration Pattern (similar to Follow-Up Workflows):

ComponentDescription
EmailNotificationConfigRecord defining notification (role, template, labels)
TaskCommand.NotificationConfigProperty on command to attach notifications
EmailNotificationOptionsOptions passed from frontend to backend
send-notification-emailsTemporal activity for sending emails

Files Created

FileDescription
Domain/Tasks/EmailNotificationConfig.csConfiguration record
Application/Models/EmailNotificationOptions.csAPI request options
frontend/shared/models/email-notification-config.model.tsFrontend interface
assets/templates/emails/project-approved.htmlBilingual email template

Files Modified

LayerFileChange
BackendProjectRegistrationWorkflow.csAdded ApprovalNotifications config
BackendWorkflowActivityService.csImplemented SendNotificationEmailsAsync
BackendExecuteCommandEndpoint.csAdded NotificationOptions to request
Frontendreview-task-execute-command.component.tsNotification checkboxes UI
Frontendreview-task.component.tsPass notification options on execute
i18nmessages.json, messages.en.jsonAdded translation keys

Email Template

The email template (project-approved.html) is bilingual (Thai/English) and includes:

  • Green header with "Project Approved / อนุมัติโครงการ"
  • Recipient name
  • Project name
  • Approver name (Work Owner)
  • Approval date
  • Status badge

What to Test

#Test CaseStatus
1Approve project with notification checkbox checked → Contractor receives email Pending
2Approve project with notification unchecked → No email sent Pending
3Verify email content shows correct project name, approver, date Pending
4Check Mailpit for received email format Pending

Needs Requirements

The following items require additional requirements from the tester before implementation can begin. The Project Registration workflow is now stable and standardized - please review and provide detailed requirements.

13. Contractor Task Sequence Mockup

Issue: #157 Thai Name: ลำดับ Tasks ที่ผู้รับเหมาจะสร้างได้ และให้ทำ mockup มาตรวจสอบ Status: ⚠️ Needs Requirements Priority: High

MoM 2025-12-16, Item 2:

ลำดับ Tasks ที่ผู้รับเหมาจะสร้างได้ และให้ทำ mockup มาตรวจสอบ เป็นดังนี้

  1. รายการเครื่องมือ (Tool List)
  2. รายชื่อผู้ปฏิบัติงาน (Manpower Name List)
  3. JSA

MoM Screenshot

MoM Screenshot

Location: My Tasks > Create New Task (Contractor role)

Current Implementation

The Project Registration workflow now supports follow-up workflow creation:

  • JSA Preparation
  • Tool List Preparation

These are created automatically after Project Registration approval via checkboxes in the approval dialog.

Requirements Needed

QuestionContext
1. Task Creation FlowShould contractor create tasks manually or auto-create after PR approval?
2. Task DependenciesAre Tool List → Manpower → JSA sequential or parallel?
3. UI LocationWhere should "Create New Task" appear for contractors?
4. Project SelectionShould contractor select from approved projects or auto-assigned?
5. Mockup ScopeWhat screens/flows need mockup before implementation?

Affected Areas (High Impact)

AreaImpact
Task Creation UINew contractor-specific task creation flow
Workflow EngineTask dependency/sequencing logic
My Tasks PageFilter/display logic for contractor tasks
Project SelectionDialog for selecting approved projects

14. Work Owner Change Ownership

Issue: #132 Thai Name: ก่อนการอนุมัติ ขั้นตอนสุดท้าย เจ้าของงาน จะเปลี่ยนงานตัวเอง เป็นคนอื่นได้ Status: ⚠️ Needs Requirements

MoM 2025-11-11, Item 4:

ก่อนการอนุมัติ ขั้นตอนสุดท้ายของเจ้าของงานหลังจากผู้รับเหมา รับทราบฯ, เจ้าของงาน จะเปลี่ยนงานตัวเอง เป็นคนอื่นได้ แต่จะเปลี่ยนของคนอื่นมาเป็นของตัวเองไม่ได้ ส่วนจัดซื้อ assign ให้ใครก็ได้ เป็นเจ้าของงาน

Note: จป และ เจ้าของพื้นที่ ก็จะเปลี่ยนได้ตลอด จนกว่าจะอนุมัติในขั้นตอนสุดท้าย

Location: Project Registration Form > Ownership fields

Requirements Needed

QuestionContext
1. Which roles can be changed?Work Owner, Safety Officer, Workspace Owner - all three?
2. Who can change?Only the current owner, or any authorized user?
3. Change deadline"Before final approval" - which state exactly?
4. Audit trailShould ownership changes be logged?
5. NotificationShould new owner receive notification?
  • #133 (Lock after approval)
  • #137 (System Admin override)

15. Lock Project After Approval

Issue: #133 Thai Name: เมื่ออนุมัติขั้นตอนสุดท้าย จะ lock ห้ามแก้ไขใด ๆ ทั้งสิ้น Status: ⚠️ Needs Requirements

MoM 2025-11-11, Item 5:

เมื่ออนุมัติขั้นตอนสุดท้าย จะ lock ห้ามแก้ไขใด ๆ ทั้งสิ้น ต้องใช้วิธีส่งต่องาน สำหรับ จป. และ เจ้าของพื้นที่ ตาม flow ที่ออกแบบไว้

Location: Project Registration Workflow > Approved state

Current Implementation

The workflow already transitions to "Approved" state after final approval. Form permissions are currently based on workflow state.

Requirements Needed

QuestionContext
1. What gets locked?Project Registration form only, or all related documents?
2. Lock exceptionsAny fields that should remain editable?
3. System Admin overrideShould #137 override this lock?
4. Visual indicatorHow to show user that project is locked?
5. Error messageWhat to display when user tries to edit locked project?
  • #132 (Ownership change before lock)
  • #137 (System Admin override)

16. System Admin Edit Projects

Issue: #137 Thai Name: Role Matrix มีปรับให้ System Admin แก้ไขโครงการได้ตลอดเวลา Status: ⚠️ Needs Requirements

MoM 2025-11-11, Item 9:

Role Matrix มีปรับให้ System Admin แก้ไขโครงการได้ตลอดเวลา

MoM Screenshot

Location: Project Registration Form + Project Settings

Current Implementation

System Admin has full access to Project Settings (create, edit, delete). Project Registration form follows workflow state permissions.

Requirements Needed

QuestionContext
1. ScopeOverride workflow state lock (#133) for System Admin?
2. Edit locationVia Project Settings, or directly in task review?
3. Audit trailShould admin edits be specially logged?
4. Approval resetIf admin edits approved project, does it require re-approval?
5. Role definitionIs "System Admin" same as current Admin role?
  • #132 (Ownership change)
  • #133 (Lock after approval)

17. SO/Area Task Forwarding

Issue: #160 Thai Name: จป. และ พื้นที่ จะเกิด Task ใหม่ในงานของฉัน เพื่อให้ส่งต่อ หรือ รับงาน Status: ⚠️ Needs Requirements Priority: Low

MoM 2025-12-16, Item 5:

จากข้อ 4 ในส่วนของ จ.ป. และ พื้นที่ จะเกิด Task ใหม่ในงานของฉัน เพื่อให้ส่งต่อ หรือ รับงาน หากมีการส่งต่อ ก็จะไป update ช่อง จ.ป. และ พื้นที่ ในข้อมูลโครงการ ตามลำดับ

MoM Screenshot

Location: My Tasks > Safety Officer / Workspace Owner

Requirements Needed

QuestionContext
1. Task Creation TriggerWhen are SO/Area tasks created? On project approval?
2. Task ActionsWhat actions can SO/Area perform? Accept/Forward/Reject?
3. Forward TargetWho can SO/Area forward to? Other users with same role?
4. Project UpdateHow does forwarding update the project's SO/Area fields?
5. NotificationShould forwarded user receive notification?
  • #159 (Email notification - completed)
  • #132 (Ownership change)