SKRIPT
Automatizace odesílání upozornění o aktualizaci dokumentů
Automatizace odesílání upozornění o aktualizaci dokumentů
function checkAndSendNotifications() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('List 1');
var data = sheet.getDataRange().getValues();
var emailSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('emaily');
var emailData = emailSheet.getRange('A1:A' + emailSheet.getLastRow()).getValues();
var today = new Date();
// Získání seznamu e-mailových adres a validace
var emailAddresses = emailData.flat().filter(function(email) {
return validateEmail(email);
});
for (var i = 1; i < data.length; i++) { // Předpokládá, že první řádek jsou záhlaví
var docName = data[i][0]; // Název dokumentu ve sloupci A
var creationDate = new Date(data[i][2]); // Datum vytvoření dokumentu ve sloupci C
var lastUpdateDate = new Date(data[i][3]); // Datum poslední aktualizace ve sloupci D
var lastNotificationDate = data[i][4] ? new Date(data[i][4]) : null; // Datum odeslání upozornění ve sloupci E
if (!lastNotificationDate) {
// Odeslat e-mail o novém dokumentu
var subject = 'Upozornění - byl vydán nový řídící dokument: ' + docName;
var body = 'Upozorňujeme, že byl vydán nový řídící dokument "' + docName + '". Dokument je umístěn na intranetu. Pozorně si tento dokument nastudujte a potvrďte, že jste se s dokumentem seznámili.\n\nNa tuto zprávu neodpovídejte, byla vygenerována automaticky.';
emailAddresses.forEach(function(email) {
MailApp.sendEmail(email, subject, body);
});
// Aktualizovat datum odeslání upozornění
sheet.getRange(i + 1, 5).setValue(today);
} else if (lastUpdateDate > lastNotificationDate) {
// Odeslat e-mail o aktualizovaném dokumentu
var subject = 'Upozornění - řídící dokument "' + docName + '" byl aktualizován';
var body = 'Upozorňujeme, že byl aktualizován řídící dokument "' + docName + '". Dokument je umístěn na intranetu. Pozorně si nové znění dokumentu nastudujte a potvrďte, že jste se s dokumentem seznámili.\n\nNa tuto zprávu neodpovídejte, byla vygenerována automaticky.';
emailAddresses.forEach(function(email) {
MailApp.sendEmail(email, subject, body);
});
// Aktualizovat datum odeslání upozornění
sheet.getRange(i + 1, 5).setValue(today);
}
}
}
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66}\.[a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
}