1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| var EVENT_IMPORTED = "AJOUTE"; // Ajoutera le texte "AJOUTE" dans la colonne J
var ss = SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
var menuEntries = [{name: "Ajouter les événements à l'agenda", functionName: "importCalendar"}];
ss.addMenu("Agenda", menuEntries); // Pour ajouter une menu Agenda et un sous-menu "ajouter les événements" dans la feuille de calcul. Cela permettra de tester manuellement la liaison entre la feuille de calcul et l'agenda
}
function importCalendar() {
// empêche le code de s'exécuter pour laisser le temps au code présent dans le formulaire d'enregistrer l'ID de la réponse
Utilities.sleep(3000);
var sheet = SpreadsheetApp.getActiveSheet();
var startcolumn = 2; // Première colonne de prise en compte des données, soit la colonne B (Nom - Prénom)
var numcolumns = 30; // Nombre de colonne
var dataRange = sheet.getRange(startcolumn, 1, numcolumns, 11) // Nombre de colonne contenant des données
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var column = data[i];
var titre = column[5]; // Colonne B - Titre de l'événement dans l'agenda - Titre du rendez-vous
var DateDebut = column[3]; // Colonne C - date et heure de début de l'événement
var DateFin = column[4]; // Colonne D - date et heure de fin de l'événement
var NomPrenom = column[1];
var Service = column[2];
var Lieu = column[6];
var Vehicule = column[7];
var IdReservation = column[9];
var Email = column[8]
var description = "Réservation par : "+ NomPrenom +" // Service : "+ Service +" // Lieu : "+ Lieu +" // Id. réservation : " + IdReservation;
var eventImported = column[10]; // Colonne J - Statut de l'importation - colonne AJOUTE A L'AGENDA
var setupInfo = ss.getSheetByName("agenda"); // Nom de la feuille de calcul contenant la nom de l'agenda
var calendarName = setupInfo.getRange("A1").getValue(); // Référence de la cellule contenant le nom de l'agenda
var cal = CalendarApp.openByName(calendarName);
if (eventImported != EVENT_IMPORTED && titre != "") { // Evite les doublons dans l'agenda, si le texte AJOUTE est présent en J, l'événement n'est pas ajouté
//create event https://developers.google.com/apps-script/class_calendarapp#createEvent
var newEvent = cal.createEvent(Vehicule + " - " + titre, new Date(DateDebut), new Date(DateFin),{description : description});
//get ID
var newEventId = newEvent.getId();
//mark as entered, enter ID
sheet.getRange(sheet.getLastRow(),12).setValue(newEventId);
sheet.getRange(startcolumn + i, 11).setValue(EVENT_IMPORTED); // Nombre de colonne contenant des données
var message = 'La réservation suivante : ' + Vehicule + ' - ' + titre + ' du ' + Utilities.formatDate(DateDebut,SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "dd-MM-yyyy HH:mm:ss") + ' au ' + Utilities.formatDate(DateFin,SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "dd-MM-yyyy HH:mm:ss") + ' a été enregistrée. \nVotre code de réservation est le ' + newEventId + ' Ce code devra être renseigné pour annuler votre réservation.';
var subject = 'Votre réservation de véhicule';
//MailApp.sendEmail(emailAddress, subject, message);
MailApp.sendEmail(Email,subject,message);
SpreadsheetApp.flush();
}
}
} |
Partager