งานธุรการครู · เริ่มก่อน

ระบบตรวจเวรประจำวัน

ครูเวรเช็กจุดตรวจ ถ่ายรูป และสรุปรายงานประจำวันจากมือถือ

เวลาสร้าง/อบรม: 2-3 ชม.
ความยาก: กลาง

🎯 ผลลัพธ์และประโยชน์ที่ครูจะได้รับ

ผู้บริหารเห็นหลักฐาน เวลา จุดตรวจ และสรุปเวรโดยไม่ต้องตามไฟล์แยก

🛠️ เครื่องมือที่ใช้งานในระบบนี้

Google FormsSheetsApps ScriptDrive

⚠️ ข้อควรระวังและข้อสังเกต

ต้องกำหนดสิทธิ์รูปภาพใน Drive ให้ชัดก่อนใช้งานจริง

📊 ขั้นตอนการทำงานของระบบ (Workflow)

  1. 1

    กำหนดจุดตรวจ

  2. 2

    สร้างฟอร์ม

  3. 3

    แนบรูป

  4. 4

    ทำสรุปรายวัน

  5. 5

    ส่งรายงานอัตโนมัติ

Google Apps Script Code.js
/**
 * ระบบตรวจเวรประจำวัน (Daily Duty Inspection System)
 * พัฒนาโดย AKADEMOS (Stay Curious, Stay Inspired)
 */
const CONFIG = {
  NOTIFICATION_EMAIL: "admin_school@domain.com",
  EMAIL_SUBJECT: "🔔 รายงานการตรวจเวรประจำวันพบประเด็นที่ต้องแก้ไข",
  LINE_TOKEN: "", 
  SAVE_REPORT_PDF: true,
  FOLDER_ID: "1Hy2hykh5QLrUulF10Tu3wXxctxpc9M1m"
};

function onFormSubmit(e) {
  const sheet = e.range.getSheet();
  const row = e.range.getRow();
  const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  const rowData = sheet.getRange(row, 1, 1, sheet.getLastColumn()).getValues()[0];

  let timestamp = "", inspector = "", location = "", status = "", photoUrl = "", details = "";

  for (let i = 0; i < headers.length; i++) {
    const header = headers[i].toString().trim();
    const val = rowData[i];
    if (header.includes("ประทับเวลา")) {
      timestamp = val instanceof Date ? Utilities.formatDate(val, Session.getScriptTimeZone(), "dd/MM/yyyy HH:mm") : val.toString();
    } else if (header.includes("ผู้ตรวจ")) {
      inspector = val.toString().trim();
    } else if (header.includes("จุดตรวจ")) {
      location = val.toString().trim();
    } else if (header.includes("สถานะ")) {
      status = val.toString().trim();
    }
  }

  if (CONFIG.SAVE_REPORT_PDF && CONFIG.FOLDER_ID) {
    createReportPDF(timestamp, inspector, location, status);
  }
}

📖 คู่มือการติดตั้งและใช้งานจริง (5 ขั้นตอน)

1

คัดลอกเทมเพลตชีตและฟอร์มไปเก็บไว้ใน Google Drive

2

เปิด Extension > Apps Script จากหน้าชีต แล้ววางโค้ดสคริปต์นี้ลงไป

3

ตั้งค่า Trigger ใน Apps Script เลือกฟังก์ชัน 'onFormSubmit' ให้ทำงาน 'เมื่อส่งฟอร์ม' (On form submit)

4

กรอก LINE Notify Token และโฟลเดอร์สำหรับเก็บไฟล์ PDF ในตัวแปร CONFIG (ระบบตั้งค่าโฟลเดอร์เริ่มต้นให้แล้ว)

5

เมื่อครูสแกน QR และกรอกข้อมูลเวร ระบบจะแจ้งเตือนเข้ากลุ่ม LINE ทันทีพร้อมแนบรายงาน