//โค้ดนี้พัฒนาโดย นายนรินทร์ อนงค์ชัย ครูโรงรียนเทพอุดมวิทยา อ.สังขะ จ.สุรินทร์
// โดย ศึกษา จาก http://guidance.obec.go.th/?p=1012
var TEMPLATE_ID = '1MZlozlLP2ZQfOoqwzO27oY3M9jVOgLCWPrBt156sEII'
///-----------------------------------------------------------
var destinationFolder = ''
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('วิเคราะห์พหุปัญญา')
.addItem('เริ่มต้นสร้างรายงานพหุปัญญา', 'showAlert')
.addToUi();
}
function showAlert() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.alert(
'โปรดตรวจสอบ',
'แน่ใจแล้วว่า คลิกรายชื่อตำแหน่งเริ่มต้นถูกต้อง',
ui.ButtonSet.YES_NO);
if (result == ui.Button.YES) {
showPrompt()
} else {
ui.alert('คลิกที่บรรทัดเริ่มต้นใหม่อีกครั้ง');
}
}
function showPrompt() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.prompt(
'เลือกโฟลเดอร์จัดเก็บรายงาน',
'โปรดระบุ ID ของโฟลเดอร์ที่เอกสารรายงาน MIA',
ui.ButtonSet.OK_CANCEL);
var button = result.getSelectedButton();
var text = result.getResponseText();
if (button == ui.Button.OK) {
if(text == "") {
alert_error()
} else {
destinationFolder = text
MIA()
}
} else if (button == ui.Button.CANCEL) {
ui.alert('คุณยกเลิกการทำงาน');
} else if (button == ui.Button.CLOSE) {
ui.alert('คุณยกเลิกการทำงาน');
}
}
function alert_error() {
SpreadsheetApp.getUi().alert('คุณไม่ได้ป้อน ID ของโฟลเดอร์ปลายทาง');
}
/////////////////////////////////////////////////////////////////////////////
function MIA() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet()
var sheets = ss.getSheets()
var certify_sheet = sheets[1]
var active_range = sheet.getActiveRange();
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
Logger.log("จำนวนคอลัมน์ทั้งหมด = ", lastColumn)
var start_row = sheet.getActiveCell().getRowIndex()
var number_row = lastRow -start_row + 2
var range = sheet.getRange(start_row, 1, number_row , lastColumn);
range.activate()
var rangeValues = range.getValues()
var save_pdf_folder = DriveApp.getFolderById(destinationFolder);
var data = []
for(i = start_row; i< lastRow +1 ; i++){
for (var columnIndex = 1; columnIndex < lastColumn+1; columnIndex++) {
data[columnIndex] = sheet.getRange(i, columnIndex).getValue()
data.push(data[columnIndex])
}
Logger.log(data)
Logger.log('ข้อมูลคำถามแรก ', data[9])
Logger.log('ข้อมูลคำถามสุดท้าย ', data[76])
var lang_score = 0;
var logic_score = 0;
var visual_score = 0;
var kinest_score = 0;
var musical_score = 0;
var person_score = 0;
var self_score = 0;
//var nature_score = 0;
if(data[10] == 'ใช่'){lang_score++}
if(data[26] == 'ใช่'){lang_score++}
if(data[31] == 'ใช่'){lang_score++}
if(data[32] == 'ใช่'){lang_score++}
if(data[34] == 'ใช่'){lang_score++}
if(data[68] == 'ใช่'){lang_score++}
if(data[70] == 'ใช่'){lang_score++}
if(data[72] == 'ใช่'){lang_score++}
if(data[73] == 'ใช่'){lang_score++}
if(data[76] == 'ใช่'){lang_score++}
Logger.log('1. คะแนนด้านภาษา ', lang_score)
if(data[11] == 'ใช่'){logic_score++}
if(data[17] == 'ใช่'){logic_score++}
if(data[19] == 'ใช่'){logic_score++}
if(data[24] == 'ใช่'){logic_score++}
if(data[29] == 'ใช่'){logic_score++}
if(data[52] == 'ใช่'){logic_score++}
if(data[57] == 'ใช่'){logic_score++}
if(data[62] == 'ใช่'){logic_score++}
if(data[67] == 'ใช่'){logic_score++}
if(data[71] == 'ใช่'){logic_score++}
Logger.log('2. ปัญญาด้านตรรกะ – คณิตศาสตร์ ', logic_score)
if(data[9] == 'ใช่'){visual_score++}
if(data[23] == 'ใช่'){visual_score++}
if(data[27] == 'ใช่'){visual_score++}
if(data[28] == 'ใช่'){visual_score++}
if(data[30] == 'ใช่'){visual_score++}
if(data[46] == 'ใช่'){visual_score++}
if(data[59] == 'ใช่'){visual_score++}
if(data[60] == 'ใช่'){visual_score++}
if(data[66] == 'ใช่'){visual_score++}
if(data[75] == 'ใช่'){visual_score++}
Logger.log('3. ปัญญาด้านมิติสัมพันธ์ ', visual_score)
if(data[15] == 'ใช่'){musical_score++}
if(data[38] == 'ใช่'){musical_score++}
if(data[39] == 'ใช่'){musical_score++}
if(data[51] == 'ใช่'){musical_score++}
if(data[56] == 'ใช่'){musical_score++}
if(data[58] == 'ใช่'){musical_score++}
if(data[61] == 'ใช่'){musical_score++}
if(data[64] == 'ใช่'){musical_score++}
if(data[65] == 'ใช่'){musical_score++}
if(data[69] == 'ใช่'){musical_score++}
Logger.log('4. ปัญญาด้านดนตรี ', musical_score++)
if(data[16] == 'ใช่'){kinest_score++}
if(data[18] == 'ใช่'){kinest_score++}
if(data[20] == 'ใช่'){kinest_score++}
if(data[22] == 'ใช่'){kinest_score++}
if(data[40] == 'ใช่'){kinest_score++}
if(data[41] == 'ใช่'){kinest_score++}
if(data[48] == 'ใช่'){kinest_score++}
if(data[54] == 'ใช่'){kinest_score++}
if(data[55] == 'ใช่'){kinest_score++}
if(data[63] == 'ใช่'){kinest_score++}
Logger.log('5. ปัญญาด้านร่างกาย – การเคลื่อนไหว ', kinest_score)
if(data[12] == 'ใช่'){person_score++}
if(data[14] == 'ใช่'){person_score++}
if(data[21] == 'ใช่'){person_score++}
if(data[25] == 'ใช่'){person_score++}
if(data[36] == 'ใช่'){person_score++}
if(data[42] == 'ใช่'){person_score++}
if(data[50] == 'ใช่'){person_score++}
if(data[53] == 'ใช่'){person_score++}
if(data[74] == 'ใช่'){person_score++}
Logger.log('6. ปัญญาด้านมนุษยสัมพันธ์ ', person_score++)
if(data[13] == 'ใช่'){self_score++}
if(data[33] == 'ใช่'){self_score++}
if(data[35] == 'ใช่'){self_score++}
if(data[37] == 'ใช่'){self_score++}
if(data[43] == 'ใช่'){self_score++}
if(data[44] == 'ใช่'){self_score++}
if(data[45] == 'ใช่'){self_score++}
if(data[47] == 'ใช่'){self_score++}
if(data[49] == 'ใช่'){self_score++}
Logger.log('7. ปัญญาด้านความเข้าใจตน ', self_score)
var names = ['ด้านภาษา', 'ด้านตรรกะ/คณิตศาสตร์', 'ด้านมิติสัมพันธ์', 'ด้านการเคลื่อนไหว', 'ด้านดนตรี', 'ด้านมนุษย์สมพันธ์', 'ด้านเข้าใจตนเอง'];
var scores = [lang_score, logic_score, visual_score, kinest_score, musical_score, person_score, self_score];
var highScore = Math.max.apply(Math, scores);
var scoreIndex = scores.indexOf(highScore);
var high_MIA = names[scoreIndex];
Logger.log(high_MIA)
var result = high_MIA
// var suggest = ''
var file_name = data[8] + ' ' + 'ผลการประเมินพหุปัญญา ของ ' + data[3] + data[4] ;
Logger.log('TEMPLATE_ID ', TEMPLATE_ID)
var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(file_name)
DriveApp.getFolderById(destinationFolder).addFile(copyFile);
DriveApp.removeFile(copyFile)
var copyId = copyFile.getId()
var new_ss = SpreadsheetApp.openById(copyId)
var new_sheet = new_ss.getSheets()[0];
new_sheet.setHiddenGridlines(true)
//คำนำหน้า
var column_title = new_sheet.getRange(5, 3, 1)
column_title.setValue(data[3])
//ชื่อ - นามสกุล
var column_name = new_sheet.getRange(5, 4, 1)
column_name.setValue(data[4])
//ชั้น
var column_class = new_sheet.getRange(5, 8, 1)
column_class.setValue(data[5])
//ห้อง
var column_sub_class = new_sheet.getRange(5, 11, 1)
column_sub_class.setValue(data[6])
//เลขที่
var column_number = new_sheet.getRange(6, 3, 1)
column_number.setValue(data[7])
//เลขประจำตัว
var column_id = new_sheet.getRange(6, 8, 1)
column_id.setValue(data[8])
//---------------------
for(j = 0; j < names.length ; j++){
var column_1 = new_sheet.getRange(j+10, 3, 1)
column_1.setValue(names[j])
}
for(k = 0; k < scores.length ; k++){
var column_2 = new_sheet.getRange(k+10, 7, 1)
column_2.setValue(scores[k])
}
var chart = new_sheet.newChart()
chart
.addRange(new_sheet.getRange("c9:c16"))
.addRange(new_sheet.getRange("g9:g16"))
.setChartType(Charts.ChartType.RADAR)
.setNumHeaders(1)
.setOption("useFirstColumnAsDomain", true)
.setOption('isStacked', 'false')
// .setOption('title', 'แผนภูมิแสดงพหุปัญญาของ '+ data[3] + data[4])
//
.setOption('annotations.domain.textStyle.color', '#808080')
.setOption("colors",["#ff0000", "#000000", "#ff0000"])
.setOption('width', 550)
.setOption('height', 430)
.setOption('legend', {position: 'bottom', textStyle: {fontSize: 12}})
.setPosition(19,2,0,0)
.setOption('vAxis.gridlines.count', 8)
.setOption('bubble.stroke', '#000000')
.setOption('series', { 0: { lineWidth: 12, pointSize: 12},
1: { lineDashStyle: [12, 12] },
2: { lineDashStyle: [12, 12] },
3: { lineDashStyle: [6, 6] }
})
.setOption('hAxis.format',{format: 'percent'})
chart = chart.build();
new_sheet.insertChart(chart)
certify_sheet.appendRow([data[3], data[4],data[5], data[6], data[7], data[8], result])
var pdf_file = DriveApp.createFile(copyFile.getAs("application/pdf"))
var save_pdf_folder = DriveApp.getFolderById(destinationFolder);
save_pdf_folder.addFile(pdf_file);
MailApp.sendEmail(data[2], 'ผลการวิเคราะห์พหุปัญญา', 'ผลการวิเคราะห์พหุปัญญาของ'+data[3]+data[4], {attachments: [pdf_file],});
DriveApp.removeFile(pdf_file);
}
}