Reputation: 11
I am trying to make an inventory sheet where an automated email will be sent out when the inventory falls below a specific limit. I have set it so B2 is < C2, but I am not getting an email.
function sendEmailAlert() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var rangeA = sheet.getRange('A2:A8');
var item = rangeA.getValues();
var rangeB = sheet.getRange('B2:B8');
var inventory = rangeB.getValues();
var rangeC = sheet.getRange('C2:C8');
var limit = rangeC.getValues();
var toEmail = '[email protected]';
var subject = 'Inventory to Order';
var body = 'Item:' + item + 'needs to be ordered';
for (i in item){
if(inventory <= limit ) {
MailApp.sendEmail(toEmail,subject, body);
}
}
}
Upvotes: 1
Views: 46
Reputation: 64100
Try this:
function sendEmailAlert() {
var sheet=SpreadsheetApp.getActiveSpreadsheet();
var rangeA=sheet.getRange('A2:A8');
var item=rangeA.getValues();
var rangeB=sheet.getRange('B2:B8');
var inventory=rangeB.getValues();
var rangeC=sheet.getRange('C2:C8');
var limit=rangeC.getValues();
var toEmail='[email protected]';
var subject='Inventory to Order';
for (var i=0;i<item.length;i++){
if(inventory[i][0]<=limit[i][0]) {
var body='Item:' + item[i][0] + 'needs to be ordered';
MailApp.sendEmail(toEmail,subject, body);
}
}
}
You could also add something like this if you want to avoid sending duplicates
function sendEmailAlert() {
var sheet=SpreadsheetApp.getActiveSpreadsheet();
var rangeA=sheet.getRange('A2:A8');
var item=rangeA.getValues();
var rangeB=sheet.getRange('B2:B8');
var inventory=rangeB.getValues();
var rangeC=sheet.getRange('C2:C8');
var limit=rangeC.getValues();
var rangeD=sheet.getRange('D2:D8');
var sent=rangeD.getValues();
var toEmail='[email protected]';
var subject='Inventory to Order';
for (var i=0;i<item.length;i++){
if(inventory[i][0]<=limit[i][0] && sent[i][0]!="sent") {
var body='Item:' + item[i][0] + 'needs to be ordered';
MailApp.sendEmail(toEmail,subject, body);
sent[i][0]="sent";
}
}
rangeD.setValues(sent);
}
Upvotes: 1