- когда я отправляю форму, он отправляет электронное письмо утверждающему, чтобы принять решение (утвердить, отклонить или запросить дополнительные изменения)
- когда утверждающий нажимает кнопку запроса дополнительных изменений, комментарий и edit Url отправит запрашивающей стороне, и запрашивающая сторона может снова отредактировать форму и повторно отправить ее.
- Проблема заключается в том, что при повторной отправке формы запрашивающая почта всегда берется из последней строки в листе Google. Как я могу получить адрес электронной почты, соответствующий ID ответа или URL?
function sendApprovalEmail(e){
var sh = PropertiesService.getDocumentProperties().getProperty('ssID');
var ss = SpreadsheetApp.openById(sh);
var sheet = ss.getSheetByName('Form Responses 1');
var row = sheet.getLastRow();
var range = sheet.getRange(row, 1, 1, sheet.getLastColumn());
var range2 = sheet.getRange(1, 1, 1, sheet.getLastColumn());
var lr = range.getLastRow();
var fr = range2.getRow();
var col1 = sheet.getRange(lr, 1).getValue();
var col2 = sheet.getRange(lr, 2).getValue();
var col3 = sheet.getRange(lr, 3).getValue();
var col4 = sheet.getRange(lr, 4).getValue();
var col5 = sheet.getRange(lr, 5).getValue();
var col6 = sheet.getRange(lr, 6).getValue();
var col7 = sheet.getRange(lr, 7).getValue();
var col8 = sheet.getRange(lr, 8).getValue();
var colT1 = sheet.getRange(fr, 1).getValue();
var colT2 = sheet.getRange(fr, 2).getValue();
var colT3 = sheet.getRange(fr, 3).getValue();
var colT4 = sheet.getRange(fr, 4).getValue();
var colT5 = sheet.getRange(fr, 5).getValue();
var colT6 = sheet.getRange(fr, 6).getValue();
var colT7 = sheet.getRange(fr, 7).getValue();
var colT8 = sheet.getRange(fr, 8).getValue();
var url = ScriptApp.getService().getUrl();
var sheet2 = ss.getSheetByName('Detailed Approval Records');
var row2 = sheet2.getLastRow();
var range2 = sheet2.getRange(row2, 1, 1, sheet2.getLastColumn());
var lr2 = range2.getLastRow();
var timestamp = sheet2.getRange(lr2, 1).getValue();
var emails = sheet2.getRange(lr2, 2).getValue();
var responseUrl =sheet2.getRange(lr2, 5).getValue();
//var emails = Session.getEffectiveUser().getEmail();
var options = '?status=%STATUS%×tamp=%TIMESTAMP%&reply=%EMAIL%&responseUrl=%RESPONSEURL%'
.replace("%TIMESTAMP%",encodeURIComponent(timestamp))
.replace("%EMAIL%",emails)
.replace("%RESPONSEURL%", responseUrl)
var approve = url+options.replace("%STATUS%","Approved");
var reject = url+options.replace("%STATUS%","Rejected");
var moreInfo = url+options.replace("%STATUS%","MoreInformation");
var html = "<body>"+
"<div style='background-color: #eceff1 ; width: 650px; border: 2px solid blue-grey lighten-2; padding: 50px; margin: 20px; display: block;'>"+
"<h2 style='font-size:200%'><strong>Leave Application</strong></h2><br/>"+
//"<p style='font-size:120%'>"+ emailAddress + "<span> has submitted a leave application.</span></p>"+
"<table style='font-family: arial, sans-serif;border-collapse: collapse; width: 650px;'>"+
"<tr>"+
"<td style= 'font-size:120%; width: 315px; font-weight:bold; text-align: left; border: 1px solid #dddddd;padding: 8px;'>" + colT2 + "</td>"+
"<td style= 'font-size:120%;text-align: left; border: 1px solid #dddddd;padding: 8px; width: 315px'>" + col2 + "<td>"+
"</tr>"+
"<tr >"+
"<td style= 'font-size:120%; font-weight:bold;text-align: left; border: 1px solid #dddddd; padding: 8px;'>" + colT3 + "</td>"+
"<td style= 'font-size:120%;text-align: left; border: 1px solid #dddddd;padding: 8px; width: 315px'>" + col3 + "<td>"+
"</tr>"+
"<tr>"+
"<td style= 'font-size:120%; font-weight:bold;text-align: left; border: 1px solid #dddddd; padding: 8px;'>" + colT4 + "</td>"+
"<td style= 'font-size:120%;text-align: left; border: 1px solid #dddddd;padding: 8px; width: 315px'>" + col4 + "<td>"+
"</tr>"+
"<tr>"+
"<td style= 'font-size:120%; font-weight:bold; text-align: left; border: 1px solid #dddddd; padding: 8px;'>" + colT5 + "</td>"+
"<td style= 'font-size:120%;text-align: left; border: 1px solid #dddddd;padding: 8px; width: 315px'>" + col5 + "<td>"+
"</tr>"+
"<tr>"+
"<td style= 'font-size:120%; font-weight:bold; text-align: left; border: 1px solid #dddddd; padding: 8px;'>" + colT6 + "</td>"+
"<td style= 'font-size:120%;text-align: left; border: 1px solid #dddddd;padding: 8px; width: 315px'>" + col6 + "<td>"+
"</tr>"+
"<tr>"+
"<td style= 'font-size:120%; font-weight:bold; text-align: left; border: 1px solid #dddddd; padding: 8px;'> " + colT7 + "</td>"+
"<td style= 'font-size:120%;text-align: left; border: 1px solid #dddddd;padding: 8px; width: 315px'>" + col7 + "<td>"+
"</tr>"+
"</table><br/><br/>"+
"<a href="+ approve +">Approve</a><br />"+
"<a href="+ reject +">Reject</a><br />"+
"<a href="+ moreInfo +"> Request More Info</a><br />"+
"</body>";
var approverEmail = PropertiesService.getDocumentProperties().getProperty('email');
//var message = getMessageToApprover(colT2, col2, colT3, col3,colT4, col4,colT5, col5,colT6, col6,colT7, col7);
MailApp.sendEmail(approverEmail,
"Leave Application",
"Requires html",
{htmlBody: html});
var message2 = getMessageToRequestor(colT2, col2, colT3, col3,colT4, col4,colT5, col5,colT6, col6,colT7, col7);
MailApp.sendEmail(emails,
"Leave Application",
"Requires html",
{htmlBody: message2});
SpreadsheetApp.flush();
}