📋 โค้ด Google Apps Script
คัดลอกโค้ดนี้ไปวางใน Apps Script
// ========================================
// Google Apps Script — ระบบสแกนรถกอล์ฟ (v2)
// ========================================
const SHEET_NAME = "บันทึก";
const CART_SHEET = "รถกอล์ฟ";
function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
const ss = SpreadsheetApp.getActiveSpreadsheet();
// --- เพิ่มรถ ---
if (data.type === 'addCart') {
let s = ss.getSheetByName(CART_SHEET);
if (!s) {
s = ss.insertSheet(CART_SHEET);
s.appendRow(["id","model","note"]);
s.getRange(1,1,1,3).setFontWeight("bold").setBackground("#4a7c59").setFontColor("#ffffff");
s.setFrozenRows(1);
}
// ป้องกันซ้ำ
const ids = s.getLastRow() > 1 ? s.getRange(2,1,s.getLastRow()-1,1).getValues().map(r=>r[0]) : [];
if (!ids.includes(data.cartId)) s.appendRow([data.cartId, data.model||'', data.note||'']);
return json({status:"ok"});
}
// --- ลบรถ ---
if (data.type === 'deleteCart') {
const s = ss.getSheetByName(CART_SHEET);
if (s && s.getLastRow() > 1) {
const vals = s.getRange(2,1,s.getLastRow()-1,1).getValues();
for (let i = vals.length-1; i >= 0; i--) {
if (vals[i][0] === data.cartId) s.deleteRow(i+2);
}
}
return json({status:"ok"});
}
// --- บันทึกกิจกรรม ---
let sheet = ss.getSheetByName(SHEET_NAME);
if (!sheet) {
sheet = ss.insertSheet(SHEET_NAME);
const headers = ["วันที่","เวลา","ประเภท","ทะเบียนรถ","หมายเหตุ"];
sheet.appendRow(headers);
const hr = sheet.getRange(1,1,1,headers.length);
hr.setFontWeight("bold").setBackground("#4a7c59").setFontColor("#ffffff").setHorizontalAlignment("center");
sheet.setFrozenRows(1);
sheet.setColumnWidths(1,5,[110,80,90,120,200]);
}
sheet.appendRow([data.date, data.time, data.action, data.cartNo, data.note||""]);
return json({status:"ok"});
} catch(err) {
return json({status:"error", msg:err.toString()});
}
}
function doGet(e) {
// --- ดึงรายการรถ ---
if (e.parameter.action === 'getCarts') {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(CART_SHEET);
if (!sheet || sheet.getLastRow() <= 1) return json([]);
const rows = sheet.getRange(2, 1, sheet.getLastRow()-1, 3).getValues();
const carts = rows.filter(r => r[0]).map(r => ({
id: r[0], model: r[1]||'', note: r[2]||'', lastStatus: 'unknown'
}));
return json(carts);
}
return json({status:"ready"});
}
function json(d) {
return ContentService.createTextOutput(JSON.stringify(d)).setMimeType(ContentService.MimeType.JSON);
}