# MASTER_PROMPT.md - Enterprise Procurement, Asset & Software Lifecycle Management System (Version 3.0) ## 1. บทนำ (Introduction) ระบบนี้คือ **Enterprise Procurement, Asset & Software Lifecycle Management System** สำหรับโรงพยาบาลและองค์กรขนาดใหญ่ ครอบคลุมการวางแผนงบประมาณ การจัดซื้อวัสดุ-ครุภัณฑ์ การบริหารซอฟต์แวร์แบบครบวงจร การบริหารสัญญาบำรุงรักษา (MA) และการติดตามสถานะ รวมถึง Audit Log ระดับฟิลด์ ระบบนี้จะต้องถูกพัฒนาในรูปแบบ Modern Web Application (PWA) และรองรับการขยายตัวเพื่อเชื่อมต่อกับ HIS, ERP, และ e-GP ในอนาคต --- ## 2. ข้อมูลทางเทคนิค (Tech Stack & Architecture) - **Backend:** PHP 8.1+ (ใช้โครงสร้าง MVC หรือ Framework เช่น Laravel) - **Frontend:** Bootstrap 5.3, HTML5, CSS3, JavaScript (ES6+), PWA - **Database:** MySQL 8.0+ - **Architecture:** MVC (Model-View-Controller) รองรับ REST API --- ## 3. สารบัญโมดูลหลัก (Core Modules) ### 3.1. ระบบปีงบประมาณ (Budget Year System) - รองรับการตั้งค่าปีงบประมาณและรอบการจัดซื้อ - สามารถ **คัดลอกแผนจัดซื้อจากปีงบประมาณเดิมไปยังปีใหม่** ได้อย่างสมบูรณ์ เพื่อลดภาระการคีย์ข้อมูลซ้ำ ### 3.2. ระบบแผนจัดซื้อวัสดุและครุภัณฑ์ (Procurement Planning) - แบ่งแยกประเภทวัสดุ ครุภัณฑ์ และซอฟต์แวร์ ได้อย่างชัดเจน - รองรับ Multi-Hospital หรือหลายหน่วยงานในระบบเดียว ### 3.3. ระบบ Workflow ที่กำหนดเองได้ (Customizable Workflow) - ผู้ดูแลระบบสามารถตั้งค่า Status Workflow สำหรับการขออนุมัติ การสั่งซื้อ การรับของ ได้ตามรูปแบบองค์กร - มี **Status Timeline และ History** เพื่อติดตามความคืบหน้าของแต่ละคำขอ ### 3.4. ระบบบริหารวงจรชีวิตซอฟต์แวร์ (Software License Management) เมื่อเลือกประเภทการจัดซื้อเป็น **ซอฟต์แวร์ (Software)** จะต้องให้ระบุประเภท: 1. **ซื้อขาด (Perpetual License):** - ไม่มีการสร้างข้อมูลติดตามการต่ออายุ (ไม่มีแจ้งเตือนหมดอายุรายปี) - กำหนดวันรับประกัน (Warranty) ได้ - บันทึกค่าบำรุงรักษา (Maintenance Agreement - MA) แยกได้ และผูก MA กับ License ในภายหลังได้ 2. **เช่าใช้/ต่ออายุ (Subscription / Annual License):** - **ระบบดึงข้อมูลอัตโนมัติ:** เมื่อตั้งสถานะจัดซื้อสำเร็จ ข้อมูลจะถูกนำเข้าสู่โมดูล License อัตโนมัติ (ไม่ต้องคีย์ซ้ำ) - ข้อมูลที่บันทึก ได้แก่ รหัส, ชื่อซอฟต์แวร์, Vendor, Version, License Type, หน่วยงาน, ผู้รับผิดชอบ, ราคา, วันที่ซื้อ, วันเริ่มใช้งาน, วันหมดอายุ, จำนวน License - **รูปแบบการต่ออายุ (Renewal Cycle):** เลือกได้ว่าจะต่อ 1 ปี, 2 ปี, 3 ปี, 4 ปี, 5 ปี หรือกำหนดเอง (Custom) - **การเปลี่ยนรอบการต่ออายุ:** สามารถเปลี่ยนรอบในอนาคตได้ (เช่น จาก 1 ปีเปลี่ยนเป็น 3 ปี) ระบบต้องคำนวณวันหมดอายุใหม่ตามรอบล่าสุดอัตโนมัติ - **ประวัติการต่ออายุ (Renewal History):** เก็บประวัติทุกครั้งที่เกิดการต่ออายุหรือเปลี่ยนแปลงรอบ พร้อมทั้ง Audit Log เก็บค่าเก่า (Old Value) / ค่าใหม่ (New Value) - **ระบบต่ออายุอัตโนมัติ (Auto-renewal log):** กดต่ออายุเพียงคลิกเดียว ระบบจะคำนวณวันหมดอายุใหม่ ตั้งรอบแจ้งเตือน อัปเดต Dashboard และบันทึกประวัติทันที ### 3.5. Dashboard และ Analytics - แดชบอร์ดแสดงสรุปแผนการจัดซื้อ, วัสดุ, ครุภัณฑ์ - **Software Dashboard:** แยกกราฟสถิติ License ซื้อขาด vs. Subscription, สถานะการต่ออายุ (ใกล้หมดอายุ, หมดอายุแล้ว, ต่ออายุแล้ว) จัดกลุ่มตามรอบระยะเวลาการต่ออายุ (1-5 ปี) ### 3.6. ระบบแจ้งเตือน (Notifications) - ดึงข้อมูลอ้างอิงจาก วันหมดอายุล่าสุด + รอบการต่ออายุปัจจุบัน - ส่งการแจ้งเตือนล่วงหน้าได้ตามตั้งค่า (เช่น 90 วัน, 60 วัน, 30 วัน) - รองรับหลายช่องทาง: ในระบบ (In-App), Email, LINE Notify, Telegram ### 3.7. Audit Log และ Change History แบบละเอียด (Field-level) - บันทึก **ทุกการกระทำ** ที่เกิดขึ้นในระบบ (เช่น สร้างรายการ, แก้ไข, เปลี่ยนรอบต่ออายุ, แนบไฟล์, ส่งอนุมัติ) - ต้องเก็บข้อมูลอย่างน้อย: - วันที่และเวลา, ผู้ใช้งาน, โมดูล, รหัสอ้างอิง, ฟิลด์ที่เปลี่ยน, ค่าเดิม (Old Value), ค่าใหม่ (New Value), เหตุผล, IP Address, Browser, Session ID - **Version History & Diff View:** มีหน้า Audit Viewer สำหรับเปรียบเทียบข้อมูลเวอร์ชันก่อนหน้าและหลังแก้ไข - รองรับ **Soft Delete** และสามารถกู้คืนข้อมูล (Restore) ได้ ### 3.8. ระบบสิทธิ์ผู้ใช้งาน (Role-Based Access Control - RBAC) - กำหนดสิทธิ์แบบละเอียด (View, Create, Edit, Delete, Approve, Export) - สามารถกำหนดตามสาขา/แผนก หรือ Role พื้นฐาน เช่น Admin, Manager, User ### 3.9. ระบบ Vendor Management และการจัดการเอกสาร - ฐานข้อมูลผู้จัดจำหน่าย (Vendor) - รองรับระบบสัญญาบำรุงรักษา (MA) และประกัน (Warranty Management) - **ระบบแนบไฟล์ (File Attachments):** อัปโหลด ลบ หรือแก้ไขไฟล์แนบในทุกๆ รายการ (พร้อมบันทึก Audit Log) ### 3.10. ระบบนำเข้า/ส่งออกข้อมูลและ API (Data & API) - รองรับการ Import ข้อมูลจาก Excel/CSV - ส่งออกรายงาน (Export) เป็น Excel, PDF, CSV - สร้าง **REST API Endpoint** เพื่อเตรียมพร้อมเชื่อมต่อกับระบบ HIS, ERP, e-GP และระบบคลังพัสดุในอนาคต --- ## 4. แผนภาพและโครงสร้างที่ต้องการเพิ่มเติม (Documentation & Architecture Diagrams) เมื่อเริ่มพัฒนาระบบ ให้เตรียมข้อมูลเอกสาร (System Design) เหล่านี้ควบคู่ไปด้วย: 1. **โครงสร้างฐานข้อมูล (Database Schema) & SQL Scripts** 2. **Data Dictionary** 3. **ER Diagram** 4. **Use Case Diagram** 5. **Sequence Diagram** 6. **Flowchart** (โดยเฉพาะ Flow ของการจัดการ Subscription License) 7. **Context Diagram** 8. **คู่มือติดตั้ง (Installation Manual) และ คู่มือการใช้งาน (User Manual)** --- ## 5. UI/UX และการใช้งาน - การออกแบบ UI/UX ต้องสวยงาม ใช้งานง่าย รองรับการแสดงผลทุกหน้าจอระดับ Production (Responsive 2026) - มีระบบ Dark/Light Mode - โครงสร้างเมนูที่จัดกลุ่มชัดเจน ไม่ซับซ้อน > **เป้าหมาย (Objective):** ระบบนี้ไม่เพียงแค่จัดการแผนจัดซื้อ แต่ต้องเป็น Enterprise Asset & Lifecycle Management เต็มรูปแบบที่สามารถบริหารความเสี่ยงเรื่องซอฟต์แวร์หมดอายุ และมีการตรวจสอบย้อนหลังทาง Audit Log ได้สมบูรณ์ 100%