var TEMPLATE_ID = '1d6k3QgBwIF-Nxxxxxxxxxx966d12h4LYjo' // id google slide เกียรติบัตร 29.7*21
var TOTAL_SCORE = 10 // คะแนนเต็ม กรณีสร้างแบบทดสอบ
var PASS_PERCENT = 60 // กำหนดเกณฑ์ผ่าน กรณีสร้างแบบทดสอบ
//สร้าง folder เก็บ pdf ตั้งชื่อ เปิดแชร์ ให้คนมีลิงก์ ดูได้ เอา id มาวาง
var SAVE_FOLDER_ID = '1VTS7l0xxxxxxheKJr2xlQUNLC';
// สร้าง sheet 1 แผ่น แค่ไปที่ sheet กด + มุมล่างซ้าย
// กด save scirpt นี้ กดบ่อย ๆ ก็ดี
// กำหนด trigger เป็น เมื่อส่ง form
//--------------------------------จบ-------------------------------------------
//var email_column = 'ที่อยู่อีเมล'
var date = new Date();
var YEAR = date.getFullYear();
function createPdf(event) {
if (TEMPLATE_ID === '') {
throw new Error('TEMPLATE_ID needs to be defined in Code.gs')
}
var activeSheet
var activeRowIndex
var range
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets()
var certify_sheet = sheets[1]
var running_number_sheet = sheets[1] // ใช้งาน sheet ที่ 2 (index 1) สำหรับเก็บเลขที่รันนิง
if (typeof event === 'undefined') {
activeSheet = SpreadsheetApp.getActiveSheet()
if (activeSheet === null) {
throw new Error('Select a cell in the row that you want to use')
}
range = activeSheet.getActiveRange()
if (activeSheet === null) {
throw new Error('Select a cell in the row that you want to use')
}
activeRowIndex = range.getRowIndex()
} else {
range = event.range
activeSheet = range.getSheet()
activeRowIndex = range.getRowIndex()
}
//var numberOfColumns = activeSheet.getLastColumn()
var numberOfColumns = 6
var activeRow = activeSheet.getRange(activeRowIndex, 1, 1, numberOfColumns).getValues()
var headerRow = activeSheet.getRange(1, 1, 1, numberOfColumns).getValues()
//Logger.log(headerRow)
var columnIndex = 0
var headerValue
var activeCell
var ID = null
var recipient = null
var user_email = activeRow[0][1]
var user_score = 10 //activeRow[0][2] กรณีสร้างแบบทดสอบ ลบ 10 และ //
var user_name = activeRow[0][2]
var user_position = activeRow[0][3]
var school_name = activeRow[0][4]
var percentage = (user_score/TOTAL_SCORE) * 100
Logger.log(user_name, school_name, percentage, )
// ดึงค่าเลขรันนิ่งล่าสุดจาก sheet ที่ 2
var last_row = running_number_sheet.getLastRow();
// ใช้เลขแถวปัจจุบันเป็นเลขรันนิง (โดยเริ่มจาก 1)
var running_number = 1; // เริ่มต้นที่ 1
// กรณีเป็นการเพิ่มข้อมูลในแถวที่มากกว่า 1
if (activeRowIndex > 1) {
running_number = activeRowIndex - 1; // ลบ 1 เพื่อไม่นับส่วนหัว
}
// สร้าง running_id
var str = "" + running_number;
var pad = "0000"; // จำนวนหลักที่คาดว่ามีคนเข้าใช้งาน
var running_id = pad.substring(0, pad.length - str.length) + str + "/" + getThaiYear();
var slide_file = DriveApp.getFileById(TEMPLATE_ID).makeCopy()
var copyFile = slide_file.makeCopy('เกียรติบัตรผ่านการอบรมของ '+user_name);
var copyId = copyFile.getId()
var copyDoc = SlidesApp.openById(copyId);
var slides = copyDoc.getSlides();
var templateSlide = slides[0];
var shapes = templateSlide.getShapes();
var count,any_file,all_files,save_pdf_folder; //Define variables without assigning a value
save_pdf_folder = DriveApp.getFolderById(SAVE_FOLDER_ID);
//-------------------------------
if (percentage >= PASS_PERCENT){
shapes.forEach(function (shape) {
// shape.getText().replaceAllText("{{id}}", thaiNumber(certify_running_id));
shape.getText().replaceAllText("{{name}}", user_name);
shape.getText().replaceAllText("{{position}}", user_position);
shape.getText().replaceAllText('{{school}}', school_name);
shape.getText().replaceAllText("{{email}}", user_email);
shape.getText().replaceAllText("{{score}}", thaiNumber(percentage));
shape.getText().replaceAllText("{{id}}", thaiNumber(running_id));
shape.getText().replaceAllText("{{date}}", getThaiDate());
shape.getText().replaceAllText('{{month}}',getThaiMonth());
shape.getText().replaceAllText('{{year}}', getThaiYear());
});
copyDoc.saveAndClose()
var pdf_file = DriveApp.createFile(copyFile.getAs("application/pdf"));
var pdf_download_url = pdf_file.getDownloadUrl()
certify_sheet.appendRow([user_email,user_name,school_name, pdf_download_url ]);
save_pdf_folder.addFile(pdf_file);
DriveApp.removeFile(pdf_file)
} else {
Logger.log("ขอแสดงความเสียใจ คุณสอบไม่ผ่าน")
}
slide_file.setTrashed(true);
copyFile.setTrashed(true);
GmailApp.sendEmail(user_email, "แจ้งรับเกียรติบัตรเรื่อง yyyyyy ","โดยกลุ่ม yyyyyyyy ท่านสามารถ Download ไฟล์ที่แนบมานี้ ", {
attachments: [pdf_file],
name: 'สพป.หนองบัวลำภู เขต 2 '
});
}
function getThaiDate() {
var date = new Date();
var DATE = date.getDate();
return thaiNumber(DATE);
}
function getThaiMonth() {
var date = new Date();
var DATE = date.getDate();
var MONTH = ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"];
var THAI_MONTH = MONTH[date.getMonth()];
return THAI_MONTH
}
function getThaiYear() {
var date = new Date();
var YEAR = date.getFullYear();
var THAI_YEAR = YEAR + 543;
return thaiNumber(THAI_YEAR);
}
function thaiNumber(num){
var array = {"1":"๑", "2":"๒", "3":"๓", "4" : "๔", "5" : "๕", "6" : "๖", "7" : "๗", "8" : "๘", "9" : "๙", "0" : "๐"};
var str = num.toString();
for (var val in array) {
str = str.split(val).join(array[val]);
}
return str;
}
สอบถามได้ที่ Line id : daivdjiam