เมื่อวันที่ 8 พฤษภาคม 2564 นายปฐมพร ธัมมาภิรัตตระกูล ข้าราชการครู กศน.อำเภอสิงหนคร ได้พัฒนาตนเอง โดยการเข้าร่วมการจัดทำเกียรติบัตรออนไลน์ โดยใช้ Google Sheet เพื่อทบทวนความรู้ ประยุกต์ต่อยอด
var TEMPLATE_ID = '11OES1FTT9KNzQxQnuuXSzAuNlzD9bwx2lDZUIkvEuP0' // id google slide เกียรติบัตร
var TOTAL_SCORE = 1 // ระบุจำนวนข้อมสอบที่มี
var PASS_PERCENT = 80 // กำหนดเกณฑ์ผ่าน
//สร้าง folder เก็บ pdf ตั้งชื่อ เปิดแชร์ ให้คนมีลิงก์ ดูได้ เอา id มาวาง
var SAVE_FOLDER_ID = '15-Sc9n0NM3g6HoOTxFvHHe1xvHqyqYtM';
// สร้าง 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[2]
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 = activeRow[0][2]
var user_name = activeRow[0][3]
var user_position = activeRow[0][4]
var school_name = activeRow[0][5]
var percentage = (user_score/TOTAL_SCORE) * 100
Logger.log(user_name, school_name, percentage, )
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("{{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);
}
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;
}