งานธุรการครู · เริ่มก่อน
ระบบตรวจเวรประจำวัน
ครูเวรเช็กจุดตรวจ ถ่ายรูป และสรุปรายงานประจำวันจากมือถือ
เวลาสร้าง/อบรม: 2-3 ชม.
ความยาก: กลาง
🎯 ผลลัพธ์และประโยชน์ที่ครูจะได้รับ
ผู้บริหารเห็นหลักฐาน เวลา จุดตรวจ และสรุปเวรโดยไม่ต้องตามไฟล์แยก
🛠️ เครื่องมือที่ใช้งานในระบบนี้
Google FormsSheetsApps ScriptDrive
⚠️ ข้อควรระวังและข้อสังเกต
ต้องกำหนดสิทธิ์รูปภาพใน Drive ให้ชัดก่อนใช้งานจริง
📊 ขั้นตอนการทำงานของระบบ (Workflow)
- 1
กำหนดจุดตรวจ
- 2
สร้างฟอร์ม
- 3
แนบรูป
- 4
ทำสรุปรายวัน
- 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 ทันทีพร้อมแนบรายงาน