SKRIPT
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);

}