SKRIPT
Automatické zasílání připomínky
k opětovnému seznámení s řídícím dokumentem
Automatické zasílání připomínky
k opětovnému seznámení s řídícím dokumentem
function sendNotificationEmails() {
// Otevře aktuální tabulku a specifický list "Odpovědi formuláře 2"
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Odpovědi formuláře 2');
if (!sheet) {
Logger.log('List "Odpovědi formuláře 2" nebyl nalezen.');
return;
}
// Načte všechna data z listu
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
var today = new Date();
// Projde všechny řádky počínaje druhým řádkem
for (var i = 1; i < data.length; i++) {
var row = data[i];
var dateInColumnA = new Date(row[0]); // Datum ve sloupci A
var email = row[1]; // E-mail ve sloupci B
var documentName = row[2]; // Název dokumentu ve sloupci C
var notificationDate = row[4]; // Datum notifikace ve sloupci E
// Vypočítá rozdíl v dnech mezi aktuálním datem a datem ve sloupci A
var daysDifference = Math.floor((today - dateInColumnA) / (1000 * 60 * 60 * 24));
// Pokud uplynulo více než 365 dní a datum notifikace není nastaveno
if (daysDifference > 365 && !notificationDate) {
var subject = 'Upozornění – je čas na refresh dokumentu ' + documentName;
var body = 'Upozorňujeme, že od posledního seznámení s dokumentem ' + documentName + ' již uplynul více než 1 rok. Prostudujte proto znovu tento dokument a potvrďte seznámení s tímto dokumentem.\n\nSoubor všech řídících dokumentů je k dispozici na intranetu.\n\nNa tuto zprávu neodpovídejte, byla vygenerována automaticky.';
// Odeslání e-mailu
MailApp.sendEmail(email, subject, body);
// Zápis aktuálního data do sloupce E jako datum odeslání notifikace
sheet.getRange(i + 1, 5).setValue(today);
}
}
}