🔑 สำหรับผู้ดูแลระบบ (Admin)

คู่มือผู้ดูแลระบบ
UP NETZERO

ระบบบันทึกและวิเคราะห์คาร์บอนฟุตพริ้นท์ มหาวิทยาลัยพะเยา
คู่มือฉบับนี้ครอบคลุมทุกฟังก์ชันการดูแลและบริหารระบบ

10 บทครอบคลุมทุกฟีเจอร์
Admin Roleสำหรับผู้ดูแลระบบ
UP NETZERO v2ปีงบประมาณ 2567–2571
📊
บทที่ 1
แดชบอร์ดและภาพรวมระบบ
admin/dashboard.php — ดูสถิติ ตัวเลข และแนวโน้มการปล่อยคาร์บอนทั่วมหาวิทยาลัย
📍 การเข้าถึง

หลังเข้าสู่ระบบ ระบบจะนำ Admin ไปยังแดชบอร์ดโดยอัตโนมัติ หรือคลิก แดชบอร์ด ในเมนูด้านซ้าย

💡
แดชบอร์ดดึงข้อมูลจากสถานะ submitted และ approved เท่านั้น ข้อมูลที่เป็น draft หรือ rejected จะไม่ถูกนับ
📊

KPI Cards (4 ตัวชี้วัด)

ปล่อยคาร์บอนรวมทุก Scope · การดูดกลับ (Absorption) · จำนวน Submission · จำนวนหน่วยงาน/ผู้ใช้งาน

📉

กราฟแนวโน้ม 5 ปี

แท่งกราฟ Scope 1/2/3 แยกสี เทียบ 5 ปีงบประมาณ (2567–2571) พร้อมปุ่ม Export PNG

🍩

กราฟสัดส่วน Scope

Donut chart แสดง % ของแต่ละ Scope เทียบกันในปีที่เลือก

🏆

Top 10 หน่วยงาน

แผนภูมิแท่งนอน แสดง 10 หน่วยงานที่ปล่อยคาร์บอนสูงสุด แยกตาม Scope

📅

กราฟรายเดือน

แท่งกราฟ 12 เดือนของปีที่เลือก แสดง Scope 1/2/3 รายเดือน

🕐

ประวัติการส่งข้อมูล

8 รายการล่าสุด พร้อมสถานะ badge: ร่าง / รอยืนยัน / อนุมัติ / ปฏิเสธ

🔍 การกรองข้อมูลตามปี

ด้านบนของแดชบอร์ดมี Dropdown เลือกปีงบประมาณ (พ.ศ.) ข้อมูลทุกส่วนจะเปลี่ยนตามปีที่เลือก

📋
บทที่ 2
จัดการและอนุมัติข้อมูลคาร์บอน
admin/data.php — ตรวจสอบ อนุมัติ หรือปฏิเสธข้อมูลที่หน่วยงานส่งมา
🔄 ขั้นตอนการอนุมัติข้อมูล
✏️
ร่าง
draft
📤
รอยืนยัน
submitted
อนุมัติ
approved

หรือ: submitted → rejected (ปฏิเสธ) → user แก้ไขและส่งใหม่

🔎 การกรองข้อมูล
ตัวกรองตัวเลือก
ปีงบประมาณDropdown เลือกปี พ.ศ.
หน่วยงานDropdown ทุกหน่วยงาน หรือเลือกเฉพาะหน่วยงาน
สถานะทั้งหมด / รอยืนยัน / อนุมัติ / ปฏิเสธ / ร่าง
✅ วิธีอนุมัติข้อมูล
  • 1
    ไปที่เมนู "ข้อมูลคาร์บอน"

    คลิก admin/data.php ในแถบเมนูซ้าย

  • 2
    กรองสถานะ "รอยืนยัน" (submitted)

    เพื่อดูเฉพาะข้อมูลที่ user ส่งมาและรอการตรวจสอบ

  • 3
    คลิก ▶ ขยายรายละเอียด

    ดูรายละเอียดการคำนวณ CO₂e ต่อ Scope → หมวดหมู่ → รายการ

  • 4
    คลิกปุ่ม "อนุมัติ" สีเขียว

    ข้อมูลเปลี่ยนสถานะเป็น approved และล็อกไม่ให้แก้ไขอีก

⚠️
เมื่ออนุมัติแล้ว ไม่สามารถเปลี่ยนกลับได้ ตรวจสอบตัวเลขให้ถูกต้องก่อนอนุมัติ
❌ วิธีปฏิเสธข้อมูล
  • 1
    คลิกปุ่ม "ปฏิเสธ" สีแดง

    ปรากฏ Modal สำหรับกรอกเหตุผล

  • 2
    กรอกเหตุผลการปฏิเสธ

    ข้อความนี้จะแสดงให้ user ทราบในหน้า "กรอกข้อมูล" ของเขา

  • 3
    คลิก "ยืนยันการปฏิเสธ"

    สถานะเปลี่ยนเป็น rejected และ user สามารถแก้ไขและส่งใหม่ได้

📐 ตารางรายละเอียด Submission

กดปุ่ม หน้าแถวเพื่อขยายดูรายละเอียด ข้อมูลที่แสดง:

รายละเอียดที่ขยายได้
  • Scope → หมวดหมู่ → รายการ (ชื่อ)
  • ปริมาณที่กรอก + หน่วย
  • ค่า EF (kgCO₂e/หน่วย)
  • CO₂e ที่คำนวณได้ (tCO₂e)
  • หัวข้อย่อยที่ user เพิ่มเอง (ถ้ามี)
📈
บทที่ 3
รายงานและส่งออกข้อมูล
admin/reports.php — สร้างรายงานสรุปรายหน่วยงาน และ Export ในรูปแบบต่างๆ
รูปแบบรายละเอียดวิธีดาวน์โหลด
Fr04.1 Excelฟอร์มมาตรฐานมหาวิทยาลัยพะเยา แยกรายเดือน แยก Scopeปุ่ม "Fr04.1 ทุกหน่วยงาน" หรือปุ่มรายหน่วยในตาราง
CSVไฟล์ CSV สรุปรายหน่วยงาน เปิดใน Excel ได้ (UTF-8 BOM)ปุ่ม "Export CSV"
PNGExport กราฟเป็นรูปภาพปุ่ม Export ใต้แต่ละกราฟ
Print/PDFพิมพ์ผ่าน Browserปุ่ม "พิมพ์รายงาน"
📊 กราฟในหน้า Reports
กราฟที่มี
  • แนวโน้ม 5 ปีเปรียบเทียบ (Stacked bar Scope 1/2/3)
  • รายเดือน 12 เดือน (Line chart Scope 1/2/3)
🏢 ตารางรายหน่วยงาน

แสดงทุกหน่วยงานพร้อมข้อมูล:

คอลัมน์ในตาราง
  • ชื่อหน่วยงาน + ประเภท
  • Scope 1 / Scope 2 / Scope 3 / การดูดกลับ (tCO₂e)
  • รวมสุทธิ (tCO₂e)
  • จำนวนเดือนที่ส่งข้อมูล (0–12)
  • ปุ่ม Export Fr04.1 รายหน่วย

แถวสุดท้ายแสดงยอดรวมทั้งมหาวิทยาลัย

📉 กราฟรายหน่วยงาน

ไปที่เมนู กราฟรายหน่วยงาน (admin/unit_charts.php) เพื่อดูแนวโน้มของแต่ละหน่วยงานแยกกัน

⚙️
บทที่ 4
ตั้งค่าระบบ
admin/settings.php — กำหนดโครงสร้างการปล่อยคาร์บอน ค่า EF ปีงบประมาณ และสิทธิ์
🗂️ โครงสร้าง 4 ระดับ
📌 Scope (ขอบเขต)  เช่น Scope 1 · Scope 2 · Scope 3 · การดูดกลับ
   └─ 📂 หมวดหมู่ (Category)  เช่น การเผาไหม้นิ่ง · ไฟฟ้า
       └─ 📄 รายการ (Item)  เช่น ดีเซล · ไฟฟ้า PEA · ค่า EF
           └─ 🔹 รายละเอียด (Detail)  เช่น รถกระบะ · รถตู้
📌 Tab: Scopes
  • 1
    เพิ่ม Scope

    กรอกชื่อ + ลำดับ (sort_order) แล้วกด "เพิ่ม Scope"

  • 2
    แก้ไข

    คลิกปุ่ม "แก้ไข" ในแถวที่ต้องการ → แก้ไขชื่อหรือลำดับ

  • 3
    เปิด/ปิด

    ปุ่ม "เปิด/ปิด" ซ่อน Scope นั้นจากฟอร์มของ User

⚠️
ไม่สามารถลบ Scope ที่มีหมวดหมู่อยู่ข้างใน ต้องลบหมวดหมู่ก่อน
📂 Tab: Categories และ Items

วิธีการเพิ่ม/แก้ไข/ลบ เหมือนกับ Scope แต่ต้องเลือก Scope (สำหรับ Category) และเลือก Category (สำหรับ Item) ก่อน

Item มี Options พิเศษ:

ตัวเลือกความหมาย
ค่า EF (kgCO₂e/หน่วย)ค่าปัจจัยการปล่อยก๊าซเรือนกระจก
มีรายละเอียดย่อย (has_detail)เปิดให้มีการแยกประเภทย่อย เช่น แยกตามชนิดรถ
ให้ user เพิ่มหัวข้อย่อยได้ (allow_add_row)user สามารถเพิ่มแถวเองได้ในฟอร์ม
🔹 Tab: Details (รายละเอียดย่อย)
  • 1
    เลือกรายการ (Item) จาก Filter ด้านบน

    จะเห็นตารางรายละเอียดย่อยของ Item นั้น

  • 2
    คลิก "+ เปิด" ที่คอลัมน์ "อื่นๆ (custom)"

    เปิดให้ User กรอกข้อความเพิ่มเติมในแถวนั้น เช่น ระบุยี่ห้อรถ

  • 3
    สร้างชุดรายละเอียด (Template)

    ทางซ้ายมีฟอร์มสร้าง Template รายละเอียด เพื่อนำไปใช้กับหลาย Item ได้

📅 Tab: ปีงบประมาณ
ฟิลด์ความหมาย
ปี พ.ศ.ปีงบประมาณ เช่น 2568
หมายเหตุบันทึกข้อความ เช่น "ปีงบประมาณปัจจุบัน"
เปิดรับข้อมูลติ๊ก = เปิด ให้ User กรอกข้อมูลได้, ไม่ติ๊ก = ล็อก
⚠️
ถ้า "เปิดรับข้อมูล = ปิด" User ทุกหน่วยงานจะกรอกข้อมูลปีนั้นไม่ได้ แม้จะมีสิทธิ์
🔐 Tab: สิทธิ์การกรอกข้อมูล

กำหนดว่าหน่วยงานไหนสามารถกรอกข้อมูลในปีไหนได้บ้าง

  • 1
    เลือกปีงบประมาณ

    จากปุ่มด้านบนของตาราง

  • 2
    ติ๊กหน่วยงานที่ต้องการให้กรอกได้

    หรือกด "เปิดทั้งหมด" / "ปิดทั้งหมด"

  • 3
    กด "บันทึกสิทธิ์"

    การเปลี่ยนแปลงมีผลทันที

🏢
บทที่ 5
จัดการหน่วยงาน
admin/units.php — เพิ่ม แก้ไข เปิด/ปิด และอัพโหลดโลโก้หน่วยงาน
➕ เพิ่มหน่วยงานใหม่
ฟิลด์รายละเอียดตัวอย่าง
ชื่อหน่วยงาน *ชื่อเต็มคณะวิทยาศาสตร์
ชื่อย่อตัวย่อSCI
ประเภทหมวดหน่วยงานส่วนงานวิชาการ
💡
ประเภทหน่วยงาน 4 ประเภท: สำนักงานสภา / ส่วนงานบริหาร / ส่วนงานวิชาการ / ส่วนงานอื่นๆ
🖼️ อัพโหลดโลโก้หน่วยงาน
  • 1
    คลิกปุ่ม "อัพโหลดโลโก้"

    ในแถวหน่วยงานที่ต้องการ

  • 2
    เลือกไฟล์

    รองรับ JPG, PNG, GIF, WEBP, SVG — ขนาดไม่เกิน 2 MB

  • 3
    กด Upload

    โลโก้จะแสดงในหน้า Login และหน้าอื่นๆ ที่เกี่ยวข้อง

🔄 เปิด/ปิดหน่วยงาน

ปุ่ม "เปิด/ปิด" ในตาราง — หน่วยงานที่ปิดจะไม่แสดงใน Dropdown ต่างๆ แต่ข้อมูลเดิมยังคงอยู่

👥
บทที่ 6
จัดการผู้ใช้งาน
admin/users.php — สร้างบัญชี แก้ไขสิทธิ์ รีเซ็ตรหัสผ่าน
➕ สร้างบัญชีผู้ใช้ใหม่
ฟิลด์รายละเอียด
Username *ชื่อผู้ใช้สำหรับ Login (ไม่ซ้ำกัน)
ชื่อ-นามสกุลแสดงในระบบ
อีเมลสำหรับติดต่อ
รหัสผ่าน *กำหนดรหัสผ่านเริ่มต้น
บทบาทadmin หรือ user
หน่วยงานกำหนดสังกัดหน่วยงาน (จำเป็นสำหรับ user)
🔑 รีเซ็ตรหัสผ่าน

คลิกปุ่ม "รีเซ็ตรหัสผ่าน" ในแถวผู้ใช้ → กรอกรหัสผ่านใหม่ → บันทึก

⚠️
Admin ไม่สามารถลบบัญชีของตัวเองได้ และไม่สามารถปิดการใช้งานบัญชีตัวเองได้
📊 บทบาทและสิทธิ์
ฟีเจอร์AdminUser
แดชบอร์ดภาพรวมมหาวิทยาลัย
อนุมัติ/ปฏิเสธข้อมูล
Export รายงานทุกหน่วยงาน
ตั้งค่า Scopes/Items/EF
กรอกข้อมูลคาร์บอน (หน่วยตัวเอง)
ดูประวัติ Submission✅ (ทุกหน่วย)✅ (หน่วยตัวเอง)
Export Fr04.1 หน่วยตัวเอง
📂
บทที่ 7
เอกสารหลักฐาน
admin/documents.php — ดูและจัดการเอกสารแนบทั้งหมดของทุกหน่วยงาน
🔎 การกรองและค้นหา

กรองได้ตาม: ปี · หน่วยงาน · Scope (scope1/2/3/absorption/general)

📄 ข้อมูลที่แสดงต่อเอกสาร
คอลัมน์
  • Scope ที่แนบ (scope1 / scope2 / ชื่อรายการย่อย)
  • ชื่อไฟล์ต้นฉบับ
  • ประเภทไฟล์ (PDF, Excel, รูปภาพ)
  • ขนาดไฟล์
  • วันที่อัพโหลด
  • ชื่อผู้อัพโหลด
  • ปุ่มดาวน์โหลด / ลบ
🗑️
การลบเอกสารโดย Admin จะลบไฟล์ออกจาก Server ถาวร ไม่มีการ Restore
🚗
บทที่ 8
แบบสำรวจการเดินทาง
admin/commute.php — ดูข้อมูลการเดินทางของนิสิตและบุคลากร
📊

สรุปสถิติ

จำนวนผู้ตอบทั้งหมด · บุคลากร · นิสิต · ระยะทางเฉลี่ย

📉

กราฟยานพาหนะ

Bar chart แสดงสัดส่วนการใช้ยานพาหนะแต่ละประเภท

กราฟเชื้อเพลิง

สัดส่วนชนิดเชื้อเพลิงที่ใช้ (เบนซิน / ดีเซล / EV / ฯลฯ)

📥

Export CSV

ดาวน์โหลดข้อมูลทั้งหมดพร้อม filter ที่เลือก

🔗 ลิงก์สาธารณะ (ไม่ต้อง Login)
หน้าURL
เลือกประเภท/commute/index.php
ฟอร์มบุคลากร/commute/staff.php (email เป็น Key)
ฟอร์มนิสิต/commute/student.php (รหัสนิสิตเป็น Key)
💡
แต่ละ email/รหัสนิสิต กรอกได้ครั้งเดียวเท่านั้น ระบบป้องกันการกรอกซ้ำ
🔐
บทที่ 9
สิทธิ์และความปลอดภัย
ระบบ Authentication, CSRF Protection, Audit Log
🔑

Session-Based Auth

ระบบใช้ PHP Session ทุกหน้าตรวจสอบ session ก่อนแสดงข้อมูล

🛡️

CSRF Protection

ทุก Form มี hidden token เพื่อป้องกัน Cross-Site Request Forgery

📝

Audit Log

ทุกการเปลี่ยนแปลงสำคัญถูกบันทึก (user, action, timestamp, IP)

🔒

Password Hashing

รหัสผ่านถูก hash ด้วย bcrypt ไม่มีการเก็บ plain-text

🚫 การควบคุม 3 ชั้น
ชั้นกลไกผลที่ได้
1. Roleadmin / userแยกหน้า admin/user
2. Fiscal Yearis_open = 0/1ล็อกทั้งระบบในปีนั้น
3. Unit Permissioncan_submit = 0/1ล็อกรายหน่วยงาน
บทที่ 10
แก้ปัญหาและคำถามที่พบบ่อย
ปัญหาสาเหตุวิธีแก้
User กรอกข้อมูลไม่ได้ปีงบประมาณปิด หรือไม่ได้รับสิทธิ์Settings → ปีงบประมาณ เปิด is_open + Settings → สิทธิ์ เปิด can_submit
ไม่เห็น Item ในฟอร์ม UserItem ถูกปิด (is_active=0)Settings → Items → คลิก "เปิด"
ข้อมูลไม่ขึ้นในรายงานสถานะเป็น draft หรือ rejectedให้ User ส่งข้อมูล หรือ Admin อนุมัติ
Export Fr04.1 ไม่มีข้อมูลไม่มีข้อมูลที่ approved ในปีนั้นตรวจสอบสถานะ Submission ในหน้า data.php
User Login ไม่ได้บัญชีถูกปิด หรือรหัสผ่านผิดusers.php → ตรวจสอบ is_active + รีเซ็ตรหัสผ่าน
ลบ Scope/Category ไม่ได้มีข้อมูลข้างในต้องลบข้อมูลย่อยทั้งหมดก่อน หรือใช้ "ปิด" แทน
อนุมัติแล้วแก้ไขไม่ได้ตั้งใจออกแบบให้ล็อกไม่สามารถแก้ไขได้ หากข้อมูลผิด ให้ Reject และส่งใหม่ก่อน Approve
📞
หากพบปัญหาอื่นๆ กรุณาติดต่อทีมพัฒนาระบบ CESM มหาวิทยาลัยพะเยา
UP NETZERO — Carbon Footprint System
มหาวิทยาลัยพะเยา · CESM · คู่มือผู้ดูแลระบบ
📘 คู่มือผู้ใช้งาน 🔑 เข้า Admin