Простая проверка «Правка» для отправки письма неработающему - PullRequest
0 голосов
/ 26 марта 2020

Когда кто-то помещает Y в ячейку на листе, он отправляет электронное письмо кому-либо.

Я получаю его независимо от того, что я ввожу для чека: Y, F, T, bob - он ВСЕГДА отсылает электронные письма независимо от того, стоимости. Это похоже на то, что IF просто устанавливает все, что я прошу, чтобы проверить значение и делает это. Никогда не видел этого за годы программирования ..

Может кто-нибудь увидеть, что я пропускаю? Я использую триггер редактирования

function Checkchange() {

  var POs=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(11, 2).getValue(); 
  var rec=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(31, 2).getValue();
  var backorder=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(37,5).getValue();
  var buyer=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(38,2).getValue();
  var QA=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(41,5).getValue();

  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(58, 3).setValue(POs)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 3).setValue(rec)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(61, 3).setValue(backorder)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(62, 3).setValue(buyer)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(63, 3).setValue(QA)


  sendEmailsRec(); 
}

function sendEmailsRec() {
  var EMAIL_SENT = 'EMAIL_SENT';
  var QAemailAddress = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 1).getValue();
  var POs = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(11, 2).getValue();
  var message = "Ready for receiving for PO " + POs;
  var QAcheckbox = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(31,2).getValue()  
  var subject = "Ready for receiving for PO" + POs;
  var check = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 4).getValue() + QAcheckbox

 // if(QAcheckbox ="Y",MailApp.sendEmail(QAemailAddress, subject, message));
  if(QAcheckbox ==="hdjkheehehie",
     SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 3).setValue(EMAIL_SENT)+
     SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(65, 3).setValue(QAemailAddress + subject + message)+
       SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 4).setValue(check));

    }

1 Ответ

0 голосов
/ 27 марта 2020

В вашем условии неверный логический оператор. Один = всегда будет возвращать true. Вместо этого используйте == или ===:

if (QAcheckbox == "Y"){
  MailApp.sendEmail(QAemailAddress, subject, message));// Always triggers regradless of value
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(63, 3).setValue(EMAIL_SENT));
}

Подробнее об операторах можно прочитать здесь .

...