| # | ชื่อ-นามสกุล | สัญชาติ | เลขพาสปอร์ต | Work Permit หมดอายุ | Work Permit สถานะ | วีซ่าหมดอายุ | วีซ่าสถานะ | จัดการ |
|---|---|---|---|---|---|---|---|---|
| กำลังโหลดข้อมูล... | ||||||||
DD/MM/YYYY หรือ YYYY-MM-DD
// ====== HR Permit Tracker — Email Notification Script ======
// ตั้งค่าตามสภาพจริงของคุณ
const SHEET_NAME = "Sheet1";
const COL_NAME = 0; // คอลัมน์ A
const COL_NAT = 1; // คอลัมน์ B
const COL_PASS = 2; // คอลัมน์ C
const COL_WP = 3; // คอลัมน์ D (Work Permit)
const COL_VISA = 4; // คอลัมน์ E (วีซ่า)
const NOTIFY_EMAIL = "hr@yourcompany.com"; // ← เปลี่ยนเป็นอีเมลของคุณ
const ALERT_DAYS = [30, 60, 90]; // จำนวนวันที่ต้องการแจ้งเตือน
function checkAndNotify() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(SHEET_NAME);
const data = sheet.getDataRange().getValues();
const today = new Date();
today.setHours(0,0,0,0);
let alerts = [];
for (let i = 1; i < data.length; i++) {
const row = data[i];
const name = row[COL_NAME];
if (!name) continue;
// ตรวจ Work Permit
checkDate(row[COL_WP], name, "Work Permit", today, alerts);
// ตรวจ วีซ่า
checkDate(row[COL_VISA], name, "วีซ่า", today, alerts);
}
if (alerts.length > 0) {
sendEmail(alerts);
}
}
function checkDate(dateVal, name, type, today, alerts) {
if (!dateVal) return;
let expDate;
if (dateVal instanceof Date) {
expDate = new Date(dateVal);
} else {
const parts = String(dateVal).split(/[\/\-]/);
if (parts.length !== 3) return;
if (parts[0].length === 4) {
expDate = new Date(parts[0], parts[1]-1, parts[2]);
} else {
expDate = new Date(parts[2], parts[1]-1, parts[0]);
}
}
expDate.setHours(0,0,0,0);
const diffDays = Math.ceil((expDate - today) / 86400000);
for (const d of ALERT_DAYS) {
if (diffDays === d || diffDays === 0 || diffDays < 0) {
const msg = diffDays < 0
? `❌ หมดอายุแล้ว ${Math.abs(diffDays)} วัน`
: diffDays === 0
? `🚨 หมดอายุวันนี้!`
: `⚠️ เหลืออีก ${diffDays} วัน`;
alerts.push({ name, type, date: expDate.toLocaleDateString('th-TH'), msg });
break;
}
}
}
function sendEmail(alerts) {
let body = "สวัสดีคุณ HR,\n\nรายการที่ต้องดำเนินการ:\n\n";
alerts.forEach(a => {
body += `👤 ${a.name} | ${a.type} | หมดอายุ: ${a.date} | ${a.msg}\n`;
});
body += "\n— ระบบ HR Permit Tracker";
MailApp.sendEmail({
to: NOTIFY_EMAIL,
subject: `[HR Alert] มี ${alerts.length} รายการที่ต้องต่ออายุ`,
body: body
});
}
index.htmlhttps://[username].neocities.org
คุณต้องการลบรายชื่อ ออกจากระบบหรือไม่?
ข้อมูลจะถูกลบออกจากระบบ (ไม่กระทบ Google Sheet)