前提・実現したいこと
ステータスが"継続中"の場合かつ納期日が本日よりも過去日付の場合にメールを送信したい。
発生している問題・エラーメッセージ
たとえば
本日の日付が28/01/2022(2022年1月28日)の場合、
25/02/2022(2022年2月25日)の日付を取得し、メールが送られてしまう。
該当のソースコード
function mailAlerts() { //シートを取得 let sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const COLNUM = 10; //L列 const begin_row = 2; const last_row = sh.getRange(sh.getMaxRows(), COLNUM).getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); //今日の日付を取得し文字列を成型する var today = new Date(); var tgdata = new Date(); tgdata.setDate(today.getDate()+1); var formatDate = Utilities.formatDate(today,"ICT","dd/MM/yyyy"); tgdata=Utilities.formatDate(tgdata,"ICT","dd/MM/yyyy"); //繰り返し処理(1行づつ処理し、行の数だけ繰り返す) for(var i = begin_row; i <= last_row; i++) { if (sh.getRange(i, COLNUM).isBlank()) { continue; } //それぞれのセルの中身を取得していく //納期(日付は成型する) var sell1 = "J"+i; Logger.log(sell1); var value1 = sh.getRange(sell1).getValue(); //Logger.log(value1); var value1 = Utilities.formatDate(value1,"ICT","dd/MM/yyyy"); Logger.log(value1); //状況 var sell2 = "K"+i; var value2 = sh.getRange(sell2).getValue(); //もし、今日の日付と納期が同じで、なおかつ状況が継続中の場合メールを送る if(tgdata >= value1 && value2 == "継続中"){ //Logger.log(value1+"_"+value2); //依頼支店 //var sell3 = "C"+i; //var value3 = sh.getRange(sell3).getValue(); //プロジェクト var sell5 = "E"+i; var value5 = sh.getRange(sell5).getValue(); //依頼内容 var sell6 = "F"+i; var value6 = sh.getRange(sell6).getValue(); switch(true){ case tgdata == value1: var mes_subject = '【納期アラート】本日が納期予定前日です。: ' + value5 +'【依頼内容】'+ value6 break case formatDate == value1: var mes_subject = '【納期アラート】納期予定日です。: ' + value5 +'【依頼内容】'+ value6 break case formatDate < value1: var mes_subject = '【納期アラート】納期予定日を過ぎています。: ' + value5 +'【依頼内容】'+ value6 break }
function mailAlerts() {
//シートを取得
let sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const COLNUM = 10; //L列
const begin_row = 2;
const last_row = sh.getRange(sh.getMaxRows(), COLNUM).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
//今日の日付を取得し文字列を成型する
var today = new Date();
var tgdata = new Date();
tgdata.setDate(today.getDate()+1);
//繰り返し処理(1行づつ処理し、行の数だけ繰り返す)
for(var i = begin_row; i <= last_row; i++) {
if (sh.getRange(i, COLNUM).isBlank()) {
continue;
}
//それぞれのセルの中身を取得していく
//納期(日付は成型する)
var sell1 = "J"+i;
Logger.log(sell1);
var value1 = sh.getRange(sell1).getValue();
//Logger.log(value1);
Logger.log(value1);
//状況
var sell2 = "K"+i;
var value2 = sh.getRange(sell2).getValue();
//もし、今日の日付と納期が同じで、なおかつ状況が継続中の場合メールを送る
if(tgdata = value1 && value2 == "継続中"){
//Logger.log(value1+"_"+value2);
//依頼支店
//var sell3 = "C"+i;
//var value3 = sh.getRange(sell3).getValue();
//プロジェクト
var sell5 = "E"+i;
var value5 = sh.getRange(sell5).getValue();
//依頼内容
var sell6 = "F"+i;
var value6 = sh.getRange(sell6).getValue();
switch(true){
case tgdata == value1:
var mes_subject = '【納期アラート】本日が納期予定前日です。: ' + value5 +'【依頼内容】'+ value6
break
case today == value1:
var mes_subject = '【納期アラート】納期予定日です。: ' + value5 +'【依頼内容】'+ value6
break
case today < value1:
var mes_subject = '【納期アラート】納期予定日を過ぎています。: ' + value5 +'【依頼内容】'+ value6
break
}
Logger.log("mes_subject " + mes_subject);
//var mes_subject = '【納期アラート】本日が納期予定前日です。: ' + value5;
var mes = //'■依頼支店 : ' + value3 +
'\n■プロジェクト: '+ value5 +
'\n■依頼内容: '+ value6 +
'\n■状 況: '+ value2 +
'\n■納 期: '+ value1+
'\n■メッセージ' + '\n納期を確認してください。' +