# คู่มือติดตั้ง ระบบเช็คชื่อพนักงานออนไลน์ (Google Apps Script)

## ขั้นตอนที่ 1: สร้าง Google Sheets
1. เข้า [sheets.google.com](https://sheets.google.com) → สร้างสเปรดชีตใหม่
2. ตั้งชื่อ เช่น "ระบบเช็คชื่อพนักงาน"

## ขั้นตอนที่ 2: วางโค้ด
1. ในสเปรดชีต ไปที่เมนู **ส่วนขยาย (Extensions) → Apps Script**
2. ลบโค้ดเดิมในไฟล์ `Code.gs` แล้ววางโค้ดจากไฟล์ **Code.gs** ทั้งหมด
3. กด **＋** ข้าง "ไฟล์" → เลือก **HTML** → ตั้งชื่อว่า `Index` (ตัว I ใหญ่ ห้ามพิมพ์ .html ต่อท้าย)
4. ลบโค้ดเดิม แล้ววางโค้ดจากไฟล์ **Index.html** ทั้งหมด
5. กด 💾 บันทึกโปรเจกต์

## ขั้นตอนที่ 3: ติดตั้งฐานข้อมูล (รันครั้งเดียว)
1. ที่แถบด้านบนของ Apps Script เลือกฟังก์ชัน **`setupSystem`**
2. กด **เรียกใช้ (Run)**
3. ครั้งแรกจะขออนุญาตสิทธิ์ → กด **Review permissions** → เลือกบัญชี → **Advanced → Go to (unsafe) → Allow**
4. ระบบจะสร้างชีต: Employees, Attendance, Shifts, LeaveRequests, Users, Settings พร้อมข้อมูลตัวอย่าง

## ขั้นตอนที่ 4: Deploy เป็น Web App
1. กดปุ่ม **Deploy → New deployment**
2. กดไอคอนเฟือง ⚙️ → เลือก **Web app**
3. ตั้งค่า:
   - Execute as: **Me (บัญชีของคุณ)**
   - Who has access: **Anyone**
4. กด **Deploy** → คัดลอก **Web app URL** ไปเปิดใช้งานได้เลย

> ⚠️ ทุกครั้งที่แก้โค้ด ให้ Deploy → **Manage deployments** → ✏️ → เปลี่ยน Version เป็น **New version** → Deploy จึงจะเห็นผลบน URL เดิม

## บัญชีทดลองใช้ (แก้ไขได้ในชีต Users)
| Username | Password | สิทธิ์ |
|---|---|---|
| admin | 1234 | ผู้ดูแลระบบ (จัดการทุกอย่าง + อนุมัติลา) |
| hr | 1234 | ฝ่ายบุคคล (อนุมัติลาได้) |
| head | 1234 | หัวหน้างาน (เช็คชื่อ ดูสถิติ) |

## การตั้งค่าแจ้งเตือน LINE (Messaging API)
> หมายเหตุ: LINE Notify ปิดให้บริการแล้ว ระบบนี้ใช้ **LINE Messaging API** แทน

1. เข้า [developers.line.biz](https://developers.line.biz) → สร้าง Provider → สร้าง Channel ประเภท **Messaging API**
2. แท็บ Messaging API → กด **Issue** เพื่อสร้าง **Channel access token (long-lived)**
3. หา Target ID:
   - แจ้งเตือนส่วนตัว: ใช้ **Your user ID** (แท็บ Basic settings ขึ้นต้นด้วย `U`)
   - แจ้งเตือนเข้ากลุ่ม: เชิญบอทเข้ากลุ่ม แล้วหา Group ID (ขึ้นต้นด้วย `C`)
4. เปิดเว็บแอป → เมนู **⚙️ ตั้งค่า** → วาง Token + Target ID → บันทึก → กด **🔔 ทดสอบส่ง LINE**

### การแจ้งเตือนอัตโนมัติ
- 📋 สรุปยอด มา/ขาด/ลา/สาย ทุกครั้งที่กดบันทึกเช็คชื่อ
- 📝 แจ้งเมื่อมีใบลาใหม่รออนุมัติ
- ✅/❌ แจ้งผลการอนุมัติใบลา

## ฟีเจอร์ทั้งหมด
- 🏠 Dashboard สถิติ Real-time (การ์ดสรุป + กราฟเส้น 7 วัน + Donut Chart + สรุปตามกะ)
- ✅ เช็คชื่อรายวัน 5 สถานะ (มาทำงาน/ขาด/ลาป่วย/ลากิจ/มาสาย) + ปุ่มมาทำงานทั้งหมด + บันทึกเวลาเข้างานอัตโนมัติ
- 👥 จัดการข้อมูลพนักงาน (เพิ่ม/แก้ไข/ลบ/ค้นหา) + คลิกชื่อดูสถิติรายบุคคล
- 🕐 ตารางกะ (เพิ่ม/แก้ไข/ลบ กะเช้า-บ่าย-ดึก)
- 📝 ยื่นใบลา + อนุมัติการลา (อนุมัติแล้วลงสถานะในตารางเช็คชื่ออัตโนมัติ)
- 📊 สถิติรายเดือน จัดอันดับพนักงาน + กราฟแท่ง
- 📄 รายงาน PDF รายวัน/รายเดือน พร้อมช่องลายเซ็น + ส่งออก Excel + พิมพ์
- ⚙️ ตั้งค่า LINE และชื่อบริษัท
- 📱 Responsive รองรับมือถือ/แท็บเล็ต/คอมพิวเตอร์

## แก้ปัญหาที่พบบ่อย
| ปัญหา | วิธีแก้ |
|---|---|
| ขึ้น "ไม่พบชีต..." | ยังไม่ได้รัน `setupSystem` |
| แก้โค้ดแล้วไม่เปลี่ยน | ต้อง Deploy เป็น New version |
| PDF ภาษาไทยเพี้ยน | ระบบ export ผ่าน Google Sheets จึงรองรับภาษาไทย 100% หากยังเพี้ยนให้ตรวจว่ารัน Execute as: Me |
| LINE ไม่แจ้งเตือน | ตรวจ Token/Target ID แล้วกดปุ่มทดสอบในหน้าตั้งค่า |
