# 3.3 RFA Management (การจัดการเอกสาขออนุมัติ) --- title: 'Functional Requirements: RFA Management' version: 1.8.0 status: first-draft owner: Nattanin Peancharoen last_updated: 2026-02-23 related: - specs/01-requirements/01-01-objectives.md - specs/02-architecture/README.md - specs/01-requirements/01-03-modules/01-03-00-index.md --- ## 3.3.1. วัตถุประสงค์: - เอกสารขออนุมัติ (RFA) ภายใน โครงการ (Projects) ## 3.3.2. ประเภทเอกสาร: - ระบบต้องรองรับเอกสารรูปแบบ ไฟล์ PDF - เอกสารขออนุมัติ (RFA) สามารถมีได้หลาย revision - มีประถทของเอกสาร ได้หลายประเภท (RFA Types) และสามารถเพิ่มประเภทใหม่ได้ในภายหลัง ## 3.3.3. การสร้างเอกสาร: - ผู้ใช้ที่มีสิทธิ์ (เช่น Document Control) สามารถสร้างเอกสารขออนุมัติ (RFA) รอไว้ในสถานะ ฉบับร่าง" (Draft) ได้ ซึ่งผู้ใช้งานต่างองค์กรจะมองไม่เห็น - เมื่อเอกสารเปลี่ยนสถานะเป็น "Submitted" แล้ว การแก้ไข, ถอนเอกสารกลับไปสถานะ Draft, หรือยกเลิก (Cancel) จะต้องทำโดยผู้ใช้ระดับ Admin ขึ้นไป พร้อมระบุเหตุผล ## 3.3.4. การอ้างอิงและจัดกลุ่ม: - RFA สามารถอ้างถึง (Reference) แบบก่อสร้าง (Shop Drawing) ได้หลายฉบับ - การสร้าง RFA ต้องสร้างเอกสารแม่ใน `correspondences` โดยใช้ `correspondence_types.type_code = 'RFA'` - ประเภทย่อยของ RFA ต้องเก็บใน `rfas.rfa_type_id` - ถ้า `rfa_types.type_code` เป็น `DDW` หรือ `SDW` ระบบต้องบังคับให้เลือกอย่างน้อย 1 `shop_drawing_revision` - ถ้า `rfa_types.type_code` เป็น `ADW` ระบบต้องบังคับให้เลือกอย่างน้อย 1 `asbuilt_drawing_revision` - 1 แถวใน `rfa_items` ต้องอ้างอิง Drawing Revision ได้เพียง 1 รายการเท่านั้น โดยเป็น `shop_drawing_revision` หรือ `asbuilt_drawing_revision` อย่างใดอย่างหนึ่ง ## 3.3.5. Workflow (Unified Workflow): - ระบบต้องรองรับ Workflow ที่เป็นแบบ Unified Workflow