///////////////////////////////////////////////// // LOGGING ///////////////////////////////////////////////// const logger = require("../public/js/app/logger"); logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename); ///////////////////////////////////////////////// // APPELS DES MODULES ///////////////////////////////////////////////// const moment = require('moment'); const ejs = require('ejs'); var nodemailer = require('nodemailer'); const path = require("path"); const stripe = require('stripe')(process.env.STRIPE_PRIVATE_KEY); var pdf = require("pdf-creator-node"); var fs = require("fs"); ///////////////////////////////////////////////// // GOOGLE SHEET PARAMETERS ///////////////////////////////////////////////// const { GoogleSpreadsheet } = require('google-spreadsheet'); const GS_creds_stagean = require('../inscriptionsafps-53b60452f63d.json'); const GS_stagean = new GoogleSpreadsheet('1STdRD5lXP316hgtdQfNqcqSQavzaoOXDMOqmfqPc3_0'); ///////////////////////////////////////////////// // VARIABLES GLOBALES ///////////////////////////////////////////////// ///////////////////////////////////////////////// // PAGE 1 // http://localhost:8888/stagenational/identifier // // RECHERCHE SI PERSONNE DÉJA INSCRITE // SI NON INSCRITE // RECHERCHE SI ADHÉRENTE DANS BD AFPS // ///////////////////////////////////////////////// const SN_checkidentifiant = async function(req, res) { ///////////////////////////////////////////////// // RECHERCHE SI PERSONNE DÉJA INSCRITE // DANS BD DU STAGE ANNUEL logger.info("======================================"); logger.info("======== FUNCTION SN_checkidentifiant =========="); logger.info("======================================"); await GS_stagean.useServiceAccountAuth(GS_creds_stagean); await GS_stagean.loadInfo(); // loads document properties and worksheets logger.info("NOM FICHIER SHEET: " + GS_stagean.title, { numsession: req.session.id }); const GS_SN_sheet = GS_stagean.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): "+GS_SN_sheet.title); //NOM DU TABLEAU (ONGLET) const GS_SN_rows = await GS_SN_sheet.getRows(); // mettre les identifiants dans un array let lesidentifiants = new Array; let compteur = GS_SN_sheet.rowCount - 1; console.log("compteur: ",compteur); for (let i=0; iCliquez ici'; req.session.err_mail_form_adhesion_3 = 'Vous pouvez également adhérer à l\'association de votre pays. Vous trouverez ici les pays européens'; res.redirect('/stagenational/identifier'); } // SI RIEN COCHÉ if (typeof req.body.check_autrepays === 'undefined' && typeof req.body.check_nonadherent === 'undefined') { // ON VA VOIR S'IL EST DANS LA BD DES ADHÉRENTS // BASE DE DONNÉES DES ADHÉRENTS // 2 SHEETS const GS_creds_adhe = require('../testapi336520-3105cc3caa46.json'); const GS_adhe = new GoogleSpreadsheet('1BhpYj-KtsyC8inXIDVl-zldDYRuhEqPwBFvP45FtJkI'); await GS_adhe.useServiceAccountAuth(GS_creds_adhe); await GS_adhe.loadInfo(); // loads document properties and worksheets console.log("NOM FICHIER SHEET: ",GS_adhe.title); //nom du fichier const GS_adh_sheet = GS_adhe.sheetsByTitle['adhesion_annuelle_web']; const GS_adh_sheet_asslocales = GS_adhe.sheetsByTitle['adhesion_ass_locales']; const GS_adh_rows = await GS_adh_sheet.getRows(); const GS_adh_rows_asslocales = await GS_adh_sheet_asslocales.getRows(); let lesidentifiants_adh = new Array; let compteur_adh = GS_adh_sheet.rowCount - 1; let compteur_adh_asslocales = GS_adh_sheet_asslocales.rowCount - 1; // RÉCUPÉRER LES IDENTIFIANTS DU TABLEAU adhesion_annuelle_web for (let i=0; i adherent.identifiant === req.session.identifiant); if (adherent_resultat){ logger.info("Identifiant trouvé dans la base des adhésions : " + adherent_resultat.identifiant, { numsession: req.session.id }); logger.info("Adhésion payé : " + adherent_resultat.Adhesion_paye, { numsession: req.session.id }); if (adherent_resultat.Adhesion_paye === "paye" || adherent_resultat.Adhesion_paye === "attente"){ logger.info("Identifiant trouvé et payé dans la base des adhésions", { numsession: req.session.id }); req.session.err_mail_form_adhesion_1 = "Cet identifiant est bien inscrit dans les adhésions 2022/2023."; req.session.err_mail_form_adhesion_2 = "Nous pouvons donc procéder à l'inscription au stage."; req.session.err_mail_form_adhesion_3 = "Vous allez être rediriger vers le formulaire."; req.session.association = adherent_resultat.association; console.log("NOM FICHIER SHEET: ",adherent_resultat); console.log("adherent_resultat association : ",adherent_resultat.association); console.log("adherent_resultat identifiant : ",adherent_resultat.identifiant); res.redirect('/stagenational/formulaire'); } else { logger.info("Identifiant trouvé mais NON payé dans la base des adhésions", { numsession: req.session.id }); req.session.err_mail_form_adhesion_1 = "Cet identifiant n'a pas payé l'adhésion 2022/2023."; req.session.err_mail_form_adhesion_2 = "Vous devez adhérer avant de vous inscrire au stage"; req.session.err_mail_form_adhesion_3 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki Cliquez ici'; res.redirect('/stagenational/identifier'); } } else { logger.info("Identifiant NON trouvé dans la base des adhésions", { numsession: req.session.id }); req.session.err_mail_form_adhesion_1 = "Cet identifiant N'EST PAS inscrit dans les adhésions 2022/2023."; req.session.err_mail_form_adhesion_2 = "Vous devez adhérer avant de vous inscrire au stage"; req.session.err_mail_form_adhesion_3 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki Cliquez ici'; res.redirect('/stagenational/identifier'); } } } } else { // IDENTIFIANT NON SAISI req.session.err_mail_form_adhesion_1 = "Etre adhérent (et posséder un identifiant) à une association de la pédagogie Suzuki est obligatoire pour toute famille ou personne qui souhaite participer au stage"; req.session.err_mail_form_adhesion_2 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki Cliquez ici'; req.session.err_mail_form_adhesion_3 = 'Vous pouvez également adhérer à l\'association de votre pays. Vous trouverez ici les pays européens'; res.redirect('/stagenational/identifier'); } } ///////////////////////////////////////////////// // PAGE 2 // http://localhost:8888/stagenational/formulaire // // RECUPERATION CHAMPS SAISIS // CALCUL AGE // CALCUL DU PRIX // AFFICHER PAGE RECAP // ///////////////////////////////////////////////// const SN_checkinfos = async function(req, res) { logger.info("======================================"); logger.info("======== FUNCTION post_form_stagenat =========="); logger.info("======================================"); // RÉCUPÉRATION DES DONNÉES DU FORMULAIRE DANS LA SESSION EN COURS req.session.association = req.body.association; logger.info("req.session.association : " + req.session.association, { numsession: req.session.id }); logger.info("req.session.montant_accompte = " + req.session.montant_accompte, { numsession: req.session.id }); req.session.adherent_nom = req.body.adherent_nom; req.session.adherent_prenom = req.body.adherent_prenom; req.session.adherent_adresse_rue = req.body.adherent_adresse_rue; req.session.adherent_adresse_complement = req.body.adherent_adresse_complement; req.session.adherent_adresse_codepostal = req.body.adherent_adresse_codepostal; req.session.adherent_adresse_ville = req.body.adherent_adresse_ville; req.session.adherent_adresse_pays = req.body.adherent_adresse_pays; req.session.adherent_telephone_mobile = req.body.adherent_telephone_mobile; req.session.adherent_telephone_fixe = req.body.adherent_telephone_fixe; req.session.adherent_mail = req.body.adherent_mail; req.session.hebergement = req.body.hebergement; req.session.commentaire_adherent = req.body.commentaire_adherent; //// INITIALISATION DES MONTANTS PAR FAMILLE req.session["cout_total"] = 0; req.session.frais_dossier = 0; req.session["cout_total_hebergement"] = 0; req.session["cout_total_transport"] = 0; req.session.cout_total_dalcroze = 0; req.session.cout_total_percussion = 0; req.session.cout_total_chant = 0; req.session.cout_total_dalcroze_surplace = 0; req.session.cout_total_percussion_surplace = 0; req.session.cout_total_observation = 0; req.session.cout_total_cours = 0; req.session.cout_total_campado = 0; req.session.accompte_frais_bancaire = 0; req.session.remise = ""; req.session.montant_accompte = 0; logger.info("req.session.montant_accompte = " + req.session.montant_accompte, { numsession: req.session.id }); logger.info("req.session.cout_total_dalcroze_surplace = " + req.session.cout_total_dalcroze_surplace, { numsession: req.session.id }); var adulte_trouve = "non"; for (let toto = 1; toto < 7; toto++) { req.session["personne_"+toto+"_nom"] = req.body["personne_"+toto+"_nom"]; logger.info('req.session["personne_"'+toto+'"_nom"]' + req.session["personne_"+toto+"_nom"], { numsession: req.session.id }); req.session["personne_"+toto+"_prenom"] = req.body["personne_"+toto+"_prenom"]; console.log('req.session["personne_"'+toto+'"_prenom"] =',req.session["personne_"+toto+"_prenom"]); req.session["personne_"+toto+"_datenaissance"] = req.body["personne_"+toto+"_datenaissance"]; console.log('req.session["personne_"'+toto+'"_datenaissance"]', req.session["personne_"+toto+"_datenaissance"]); req.session["personne_"+toto+"_transport_mode"] = req.body["personne_"+toto+"_transport_mode"]; console.log('req.session["personne_"'+toto+'"_transport_mode"]',req.session["personne_"+toto+"_transport_mode"]); req.session["personne_"+toto+"_transport_arret"] = req.body["personne_"+toto+"_transport_arret"]; console.log('req.session["personne_"'+toto+'"_transport_arret"]',req.session["personne_"+toto+"_transport_arret"]); req.session["personne_"+toto+"_categorie"] = req.body["personne_"+toto+"_categorie"]; console.log('req.session["personne_"'+toto+'"_categorie"]',req.session["personne_"+toto+"_categorie"]); req.session["personne_"+toto+"_profil"] = req.body["personne_"+toto+"_profil"]; console.log('req.session["personne_"'+toto+'"_profil"]',req.session["personne_"+toto+"_profil"]); req.session["personne_"+toto+"_instrument"] = req.body["personne_"+toto+"_instrument"]; console.log('req.session["personne_"'+toto+'"_instrument"]',req.session["personne_"+toto+"_instrument"]); req.session["personne_"+toto+"_cahier"] = req.body["personne_"+toto+"_cahier"]; console.log('req.session["personne_"'+toto+'"_cahier"]',req.session["personne_"+toto+"_cahier"]); req.session["personne_"+toto+"_piece"] = req.body["personne_"+toto+"_piece"]; console.log('req.session["personne_"'+toto+'"_piece"]',req.session["personne_"+toto+"_piece"]); req.session["personne_"+toto+"_prof"] = req.body["personne_"+toto+"_prof"]; console.log('req.session["personne_"'+toto+'"_prof"]',req.session["personne_"+toto+"_prof"]); req.session["personne_"+toto+"_mail_prof"] = req.body["personne_"+toto+"_mail_prof"]; console.log('req.session["personne_"'+toto+'"_mail_prof"]',req.session["personne_"+toto+"_mail_prof"]); req.session["personne_"+toto+"_option_coursindividuel"] = req.body["personne_"+toto+"_option_coursindividuel"]; console.log('req.session["personne_"'+toto+'"_option_coursindividuel"]',req.session["personne_"+toto+"_option_coursindividuel"]); req.session["personne_"+toto+"_option_concertsolo"] = req.body["personne_"+toto+"_option_concertsolo"]; console.log('req.session["personne_"'+toto+'"_option_concertsolo"]',req.session["personne_"+toto+"_option_concertsolo"]); req.session["personne_"+toto+"_option_concertsolo_cahier"] = req.body["personne_"+toto+"_option_concertsolo_cahier"]; console.log('req.session["personne_"'+toto+'"_option_concertsolo_cahier"]',req.session["personne_"+toto+"_option_concertsolo_cahier"]); req.session["personne_"+toto+"_option_concertsolo_piece"] = req.body["personne_"+toto+"_option_concertsolo_piece"]; console.log('req.session["personne_"'+toto+'"_option_concertsolo_piece"]',req.session["personne_"+toto+"_option_concertsolo_piece"]); req.session["personne_"+toto+"_activite_1"] = req.body["personne_"+toto+"_activite_1"]; console.log('req.session["personne_"'+toto+'"_activite_1"]',req.session["personne_"+toto+"_activite_1"]); req.session["personne_"+toto+"_activite_2"] = req.body["personne_"+toto+"_activite_2"]; console.log('req.session["personne_"'+toto+'"_activite_2"]',req.session["personne_"+toto+"_activite_2"]); // CALCUL ÂGE PERSONNE AU 20 aout 2023 // CALCUL PROFIL AGE DE LA PERSONNE AU 20 aout 2023 console.log('req.session["personne_"'+toto+'"_datenaissance"]', req.session["personne_"+toto+"_datenaissance"]); if (req.session["personne_"+toto+"_datenaissance"]) { logger.info('req.session["personne_"'+toto+'"_datenaissance"] : ' + req.session["personne_"+toto+"_datenaissance"], { numsession: req.session.id }); let datenaissance_concat = req.session["personne_"+toto+"_datenaissance"]; logger.info("datenaissance_concat : " + datenaissance_concat, { numsession: req.session.id }); var an=datenaissance_concat.substr(6,4); // l'année (les quatre premiers caractères de la chaîne à partir de 6) var mois=datenaissance_concat.substr(3,2);// On selectionne le mois de la date de naissance var day= datenaissance_concat.substr(0,2); // On selectionne la jour de la date de naissance var birthDate = new Date(an + "-" + mois + "-" + day); var debutstage = new Date('2023-08-20'); logger.info("birthDate : " + birthDate, { numsession: req.session.id }); logger.info("debutstage : " + debutstage, { numsession: req.session.id }); var age = debutstage.getFullYear() - birthDate.getFullYear(); logger.info("age : " + age, { numsession: req.session.id }); var m = debutstage.getMonth() - birthDate.getMonth(); console.log("m = ",m); if (m < 0 || (m === 0 && debutstage.getDate() < birthDate.getDate())) { logger.info("debutstage.getDate() = " + debutstage.getDate(), { numsession: req.session.id }); age--; } req.session["personne_"+toto+"_age"] = age; logger.info('age : ' + age, { numsession: req.session.id }); // CALCUL PROFIL_AGE DE LA PERSONNE AU 20 aout 2023 req.session["personne_"+toto+"_profilage"] = (age < 3) ? "moins_3ans": (age >= 3 && age <= 5) ? "3-5ans": (age >= 6 && age <= 11) ? "6-11ans": (age >= 12 && age <= 15) ? "12-15ans" : (age >= 16 && age <= 17) ? "16-17ans" : "adulte"; logger.info('req.session["personne_"'+toto+'"_profilage"]' + req.session["personne_"+toto+"_profilage"], { numsession: req.session.id }); // Pour camp ado : on vérifie s'il y a un adulte ou non if (req.session["personne_"+toto+"_age"] > 17) { adulte_trouve = "oui"; logger.info("adulte_trouve : " + adulte_trouve, { numsession: req.session.id }); }; /////////////////////// // TARIF PAR PERSONNE //// INITIALISATION DES MONTANTS PAR PERSONNE req.session["personne_"+toto+"_cout_hebergement"] = 0; req.session["personne_"+toto+"_cout_transport"] = 0; req.session["personne_"+toto+"_activite_cout"] = 0; req.session["personne_"+toto+"_observation_cout"] = 0; req.session["personne_"+toto+"_cours_cout"] = 0; req.session["personne_"+toto+"_campado_cout"] = 0; // FLOCONS VERT COUT PAR PERSONNE if (req.session.hebergement == "flocons verts") { logger.info("CALCUL HEBERGEMENT : " + req.session.hebergement, { numsession: req.session.id }); console.log('req.session["personne_"+toto+"_age"] =',req.session["personne_"+toto+"_age"]); // ADULTE if (req.session["personne_"+toto+"_age"] > 15) { console.log("AGE > 17"); req.session["personne_"+toto+"_cout_hebergement"] = 290; req.session["cout_total"] += 290; console.log(typeof req.session["cout_total"]); req.session["cout_total_hebergement"] += 290; console.log ("cout_total = ", req.session["cout_total"]); } if (req.session["personne_"+toto+"_age"] >= 12 && req.session["personne_"+toto+"_age"] <= 15) { console.log("12 < AGE > 15"); req.session["personne_"+toto+"_cout_hebergement"] = 261; req.session["cout_total"] += 261; req.session["cout_total_hebergement"] += 261; console.log ("cout_total = ", req.session["cout_total"]); } if (req.session["personne_"+toto+"_age"] >= 6 && req.session["personne_"+toto+"_age"] <= 11) { console.log("6 < AGE > 11"); req.session["personne_"+toto+"_cout_hebergement"] = 232; req.session["cout_total"] += 232; req.session["cout_total_hebergement"] += 232; console.log ("cout_total = ", req.session["cout_total"]); } if (req.session["personne_"+toto+"_age"] >= 3 && req.session["personne_"+toto+"_age"] <= 5) { console.log("3 < AGE > 5"); req.session["personne_"+toto+"_cout_hebergement"] = 174; req.session["cout_total_hebergement"] += 174; req.session["cout_total"] += 174; console.log ("cout_total = ", req.session["cout_total"]); } } console.log ('req.session["personne_"+toto+"_cout_hebergement"] = ', req.session["personne_"+toto+"_cout_hebergement"]); console.log ("cout_total_hebergement = ", req.session["cout_total_hebergement"]); console.log ("cout_total = ", req.session["cout_total"]); // CAR COUT PAR PERSONNE if (req.session["personne_"+toto+"_transport_mode"] == "car") { req.session["personne_"+toto+"_cout_transport"] = 55; req.session["cout_total_transport"] += 55; req.session["cout_total"] += 55; } console.log ("cout_total_transport = ", req.session["cout_total_transport"]); console.log ("cout_total = ", req.session["cout_total"]); // ACTIVITE COUT PAR PERSONNE if (req.session["personne_"+toto+"_activite_1"]) { if (req.session["personne_"+toto+"_activite_1"] == "dalcroze" && req.session["personne_"+toto+"_age"] < 18) { req.session.cout_total_dalcroze += 75; req.session["personne_"+toto+"_activite_cout"] += 75; req.session["cout_total"] += 75; } if (req.session["personne_"+toto+"_activite_1"] == "dalcroze" && req.session["personne_"+toto+"_age"] > 17) { req.session.cout_total_dalcroze_surplace += 75; logger.info("req.session.cout_total_dalcroze_surplace ACTIVITE 1 = " + req.session.cout_total_dalcroze_surplace, { numsession: req.session.id }); } if (req.session["personne_"+toto+"_activite_1"] == "percussions" && req.session["personne_"+toto+"_age"] < 18) { req.session.cout_total_percussion += 75; req.session["personne_"+toto+"_activite_cout"] += 75; req.session["cout_total"] += 75; } if (req.session["personne_"+toto+"_activite_1"] == "percussions" && req.session["personne_"+toto+"_age"] > 17) { req.session.cout_total_percussion_surplace += 75; } if (req.session["personne_"+toto+"_activite_1"] == "chant" && req.session["personne_"+toto+"_age"] < 12 ) { req.session.cout_total_chant += 75; req.session["personne_"+toto+"_activite_cout"] += 75; req.session["cout_total"] += 75; } } if (req.session["personne_"+toto+"_activite_2"]) { if (req.session["personne_"+toto+"_activite_2"] == "dalcroze" && req.session["personne_"+toto+"_age"] < 18) { req.session.cout_total_dalcroze += 75; req.session["personne_"+toto+"_activite_cout"] += 75; req.session["cout_total"] += 75; } if (req.session["personne_"+toto+"_activite_2"] == "dalcroze" && req.session["personne_"+toto+"_age"] > 17) { req.session.cout_total_dalcroze_surplace += 75; logger.info("req.session.cout_total_dalcroze_surplace ACTIVITE 2 = " + req.session.cout_total_dalcroze_surplace, { numsession: req.session.id }); } if (req.session["personne_"+toto+"_activite_2"] == "percussions" && req.session["personne_"+toto+"_age"] < 18) { req.session.cout_total_percussion += 75; req.session["personne_"+toto+"_activite_cout"] += 75; req.session["cout_total"] += 75; } if (req.session["personne_"+toto+"_activite_2"] == "percussions" && req.session["personne_"+toto+"_age"] > 17) { req.session.cout_total_percussion_surplace += 75; } if (req.session["personne_"+toto+"_activite_2"] == "chant" && req.session["personne_"+toto+"_age"] < 12 ) { req.session.cout_total_chant += 75; req.session["personne_"+toto+"_activite_cout"] += 75; req.session["cout_total"] += 75; } } console.log ("cout_total = ", req.session["cout_total"]); console.log ("cout_total_percussion = ", req.session.cout_total_percussion); console.log ("cout_total_dalcroze = ", req.session.cout_total_dalcroze); console.log ("cout_total_chant = ", req.session.cout_total_chant); // observateur cout par personne if (req.session["personne_"+toto+"_categorie"] == "observateur" && req.session["personne_"+toto+"_profil"] == "non_professeur") { req.session["personne_"+toto+"_observation_cout"] = 30; req.session.cout_total_observation += 30; req.session["cout_total"] += 30; } console.log ("cout_total = ", req.session["cout_total"]); console.log ("cout_total_observation = ", req.session.cout_total_observation); // INSTRUMENTISTE PAR PERSONNE let date1 = new Date('2023-04-30'); let date2 = new Date(); console.log('date1 =',date1); console.log('date2 =',date2); console.log('date2 - date1 =',date2 - date1); if (req.session["personne_"+toto+"_categorie"] == "instrumentiste") { console.log("IF INSTRUMENTISTE"); if (req.session["personne_"+toto+"_instrument"]== "alto" || req.session["personne_"+toto+"_instrument"]== "violon" || req.session["personne_"+toto+"_instrument"] == "violoncelle" ) { console.log("IF INSTRUMENTISTE ALTO V V"); console.log("date supérieur au 01/05/2023"); req.session["personne_"+toto+"_cours_cout"] = 300; req.session.cout_total_cours += 300; req.session["cout_total"] += 300; if (req.session["personne_"+toto+"_option_coursindividuel"] == "cours individuel") { if (req.session["personne_"+toto+"_cahier"]=="Cahier 1" || req.session["personne_"+toto+"_cahier"]=="Cahier 2" || req.session["personne_"+toto+"_cahier"]=="Cahier 3") { req.session["personne_"+toto+"_cours_cout"] += 45; req.session.cout_total_cours += 45; req.session["cout_total"] += 45; } else { req.session["personne_"+toto+"_cours_cout"] += 65; req.session.cout_total_cours += 65; req.session["cout_total"] += 65; } } } if (req.session["personne_"+toto+"_instrument"]== "piano") { if (req.session["personne_"+toto+"_cahier"]=="Cahier 1") { req.session["personne_"+toto+"_cours_cout"] = 320; req.session.cout_total_cours += 320; req.session["cout_total"] += 320; } else if (req.session["personne_"+toto+"_cahier"]=="Cahier 2" || req.session["personne_"+toto+"_cahier"]=="Cahier 3" || req.session["personne_"+toto+"_cahier"]=="Cahier 4") { req.session["personne_"+toto+"_cours_cout"] = 340; req.session.cout_total_cours += 340; req.session["cout_total"] += 340; } else { req.session["personne_"+toto+"_cours_cout"] = 370; req.session.cout_total_cours += 370; req.session["cout_total"] += 370; } } console.log ("cout_total = ", req.session["cout_total"]); console.log ("cout_total_cours = ", req.session.cout_total_cours); console.log('req.session["personne_"'+toto+'"_cours_cout"]',req.session["personne_"+toto+"_cours_cout"]); if (date2 < date1) { console.log("date inférieur au 01/05/2023 on enlève 20 euros"); req.session.cout_total_cours -= 20; req.session["personne_"+toto+"_cours_cout"] -= 20; req.session["cout_total"] -= 20; req.session.remise = "Remise pour inscription avant le 30 avril 23h59."; console.log ("req.session.remise = ", req.session.remise); } logger.info("cout_total = " + req.session["cout_total"], { numsession: req.session.id }); console.log ("cout_total_cours = ", req.session.cout_total_cours); console.log('req.session["personne_"'+toto+'"_cours_cout"]',req.session["personne_"+toto+"_cours_cout"]); // ACCOMPTE + 100 PAR INSTRUMENTISTE req.session.montant_accompte += 100; logger.info("req.session.montant_accompte = " + req.session.montant_accompte, { numsession: req.session.id }); } logger.info("req.session.montant_accompte = " + req.session.montant_accompte, { numsession: req.session.id }); } } ///////////////////////////////// // CAMP ADO console.log("/////////////////////////////////"); logger.info("// CAMP ADO"); console.log("adulte_trouve : ", adulte_trouve); let compteur_ado = 0 logger.info("compteur_ado au départ : " + compteur_ado, { numsession: req.session.id }); if (adulte_trouve == "non" && req.session.hebergement == "flocons verts") { for (let toto = 1; toto < 7; toto++) { if (req.session["personne_"+toto+"_age"] >= 14 && req.session["personne_"+toto+"_age"] < 18) { req.session["personne_"+toto+"_profil"] = "Camp ado"; req.session["personne_"+toto+"_campado_cout"] = 100; req.session.cout_total_campado += 100; req.session["cout_total"] += 100; compteur_ado ++; logger.info("compteur_ado incrémenté : " + compteur_ado, { numsession: req.session.id }); } else if (req.session["personne_"+toto+"_age"] < 14) { req.session.err_mineur = 'Vous ne pouvez inscrire un enfant de moins de 14 ans (âge au premier jour du stage) sans adulte pour l\'accompagner. Age de la personne saisi : '+req.session["personne_"+toto+"_age"]+' ans ('+req.session["personne_"+toto+"_datenaissance"]+')'; console.log("adding session_err_mineur : ",req.session.err_mineur); } console.log('req.session["personne_"'+toto+'"_profil"]',req.session["personne_"+toto+"_profil"]); } ////////////////////////////////// // VÉRIFICATION DU NOMBRE D'ADO DISPO DANS GOOGLE SHEET await GS_stagean.useServiceAccountAuth(GS_creds_stagean); await GS_stagean.loadInfo(); // loads document properties and worksheets console.log("NOM FICHIER SHEET: ",GS_stagean.title); //nom du fichier const GS_SN_sheet_campado = GS_stagean.sheetsByTitle['campado']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_SN_sheet_campado.title, { numsession: req.session.id }); await GS_SN_sheet_campado.loadCells('B1:B2'); const GS_SN_sheet_campado_b2 = GS_SN_sheet_campado.getCellByA1('B2'); logger.info("CONTENU DE LA CELLULE B2 : " + GS_SN_sheet_campado_b2.value, { numsession: req.session.id }); if (GS_SN_sheet_campado_b2.value < compteur_ado) { req.session.err_mineur = "Il n'y a plus de place disponible pour inscrire une personne en Camp Ado"; logger.info("Il n'y a plus de place disponible pour inscrire une personne en Camp Ado", { numsession: req.session.id }); } } req.session.compteur_ado = compteur_ado; logger.info("req.session.compteur_ado : " + req.session.compteur_ado, { numsession: req.session.id }); if (req.session.err_mineur) { logger.info("existing session_err_mineur : " + req.session.err_mineur, { numsession: req.session.id }); res.redirect('/stagenational/formulaire'); } else { ////////////////////////////////// // FRAIS DE DOSIER req.session.frais_dossier = 30; req.session["cout_total"] += 30; ////////////////////////////////// // ACOMPTE // Si acompte est de 0 on lui met 100 (par ex si c'est un observateur) logger.info("req.session.montant_accompte = " + req.session.montant_accompte, { numsession: req.session.id }); if (req.session.montant_accompte < 100 && req.session["cout_total"] > 100 ) { req.session.montant_accompte = 100; logger.info("req.session.montant_accompte = " + req.session.montant_accompte, { numsession: req.session.id }); } ////////////////////////////////// // FRAIS bancaire // 1,4 % + 0,25 € pour l'Espace économique européen (hors UK) if (req.session.montant_accompte > 99) { req.session.accompte_frais_bancaire = 0.25; req.session.accompte_frais_bancaire += req.session.montant_accompte * 0.014; req.session.accompte_frais_bancaire = Math.round(req.session.accompte_frais_bancaire * 100) / 100; req.session["cout_total"] += req.session.accompte_frais_bancaire; } logger.info("cout_total_campado = " + req.session.cout_total_campado, { numsession: req.session.id }); console.log ("cout_total = ", req.session["cout_total"]); console.log ("montant_accompte = ", req.session.montant_accompte); // RECAP SANS ACOMPTE À PAYER if (req.session.montant_accompte < 100) { logger.info("REDIRECTION VERS RÉCAP SANS ACOMMPTE (montant_accompte) = " + req.session.montant_accompte, { numsession: req.session.id }); res.redirect('/stagenational/recapssacompte'); } // RECAP AVEC ACOMPTE À PAYER if (req.session.montant_accompte > 99) { logger.info("REDIRECTION VERS RÉCAP AVEC ACOMMPTE (montant_accompte) = " + req.session.montant_accompte, { numsession: req.session.id }); res.redirect('/stagenational/recap'); } } } ///////////////////////////////////////////////// // PAGE 3 // http://localhost:8888/stagenational/recap // // Bouton modifier // ///////////////////////////////////////////////// // CLICK SUR BOUTON MODIFIER const post_recap_modifier = async function(req, res) { res.redirect('/stagenational/identifier'); } ///////////////////////////////////////////////// // PAYER ACCOMPTE // // Enregistrement des infos dans la Google Sheet avant le paiement // (car le redirect après le paiement vers la page "réussi" ou "annulé" initialise une autre session qui fait perdre le cookie précédent et les infos saisies) // Payer accompte par carte bancaire // STIPE // ///////////////////////////////////////////////// // CLICK SUR BOUTON PAYER ACCOMPTE PAGE RECAP const post_payer_accompte = async function(req, res, next) { logger.info("======================================"); logger.info("======== FUNCTION post_payer_accompte =========="); logger.info("======================================"); ////////////////////////////////// // AJOUT INFO DANS LA GOOGLE SHEET await GS_stagean.useServiceAccountAuth(GS_creds_stagean); await GS_stagean.loadInfo(); // loads document properties and worksheets logger.info("NOM FICHIER SHEET : " + GS_stagean.title, { numsession: req.session.id }); const GS_SN_sheet = GS_stagean.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_SN_sheet.title, { numsession: req.session.id }); // DATE DE L'INSCRIPTION moment().format(); moment.locale('fr'); var date_formattee = moment().format('L') console.log("date_formattee:", date_formattee); // AJOUTER UNE LIGNE DANS LA GOOGLE SHEET logger.info("/ AJOUTER UNE LIGNE DANS LA GOOGLE SHEET", { numsession: req.session.id }); logger.info("req.session.identifiant : " + req.session.identifiant, { numsession: req.session.id }); logger.info("req.session.adherent_nom : " + req.session.adherent_nom, { numsession: req.session.id }); const moreRows = await GS_SN_sheet.addRows([ { 'saison': "2022/2023", 'identifiant': req.session.identifiant, 'association_suzuki': req.session.association, 'inscription_date': date_formattee, 'adherent_nom': req.session.adherent_nom, 'adherent_prenom': req.session.adherent_prenom, 'inscription_accompte_paiement_montant': req.session.montant_accompte, 'cout_total': req.session.cout_total, 'remise': req.session.remise, 'frais_dossier': req.session.frais_dossier, 'cout_total_hebergement': req.session.cout_total_hebergement, 'cout_total_transport': req.session.cout_total_transport, 'cout_total_dalcroze': req.session.cout_total_dalcroze, 'cout_total_dalcroze_surplace': req.session.cout_total_dalcroze_surplace, 'cout_total_percussion': req.session.cout_total_percussion, 'cout_total_percussion_surplace': req.session.cout_total_percussion_surplace, 'cout_total_chant': req.session.cout_total_chant, 'cout_total_observation': req.session.cout_total_observation, 'cout_total_cours': req.session.cout_total_cours, 'cout_total_campado': req.session.cout_total_campado, 'accompte_frais_bancaire': req.session.accompte_frais_bancaire, 'adherent_adresse_rue': req.session.adherent_adresse_rue, 'adherent_adresse_complement': req.session.adherent_adresse_complement, 'adherent_adresse_codepostal': req.session.adherent_adresse_codepostal, 'adherent_adresse_ville': req.session.adherent_adresse_ville, 'adherent_adresse_pays': req.session.adherent_adresse_pays, 'adherent_telephone_fixe': req.session.adherent_telephone_fixe, 'adherent_telephone_mobile': req.session.adherent_telephone_mobile, 'adherent_mail': req.session.adherent_mail, 'hebergement': req.session.hebergement, 'commentaire_adherent': req.session.commentaire_adherent, 'personne_1_nom': req.session.personne_1_nom, 'personne_1_prenom': req.session.personne_1_prenom, 'personne_1_datenaissance': req.session.personne_1_datenaissance, 'personne_1_age': req.session.personne_1_profilage, 'personne_1_transport_mode': req.session.personne_1_transport_mode, 'personne_1_transport_arret': req.session.personne_1_transport_arret, 'personne_1_categorie': req.session.personne_1_categorie, 'personne_1_profil': req.session.personne_1_profil, 'personne_1_instrument': req.session.personne_1_instrument, 'personne_1_cahier': req.session.personne_1_cahier, 'personne_1_piece': req.session.personne_1_piece, 'personne_1_prof': req.session.personne_1_prof, 'personne_1_mail_prof': req.session.personne_1_mail_prof, 'personne_1_option_coursindividuel': req.session.personne_1_option_coursindividuel, 'personne_1_option_concertsolo': req.session.personne_1_option_concertsolo, 'personne_1_option_concertsolo_cahier': req.session.personne_1_option_concertsolo_cahier, 'personne_1_option_concertsolo_piece': req.session.personne_1_option_concertsolo_piece, 'personne_1_activite_1': req.session.personne_1_activite_1, 'personne_1_activite_2': req.session.personne_1_activite_2, 'personne_2_nom': req.session.personne_2_nom, 'personne_2_prenom': req.session.personne_2_prenom, 'personne_2_datenaissance': req.session.personne_2_datenaissance, 'personne_2_age': req.session.personne_2_profilage, 'personne_2_transport_mode': req.session.personne_2_transport_mode, 'personne_2_transport_arret': req.session.personne_2_transport_arret, 'personne_2_categorie': req.session.personne_2_categorie, 'personne_2_profil': req.session.personne_2_profil, 'personne_2_instrument': req.session.personne_2_instrument, 'personne_2_cahier': req.session.personne_2_cahier, 'personne_2_piece': req.session.personne_2_piece, 'personne_2_prof': req.session.personne_2_prof, 'personne_2_mail_prof': req.session.personne_2_mail_prof, 'personne_2_option_coursindividuel': req.session.personne_2_option_coursindividuel, 'personne_2_option_concertsolo': req.session.personne_2_option_concertsolo, 'personne_2_option_concertsolo_cahier': req.session.personne_2_option_concertsolo_cahier, 'personne_2_option_concertsolo_piece': req.session.personne_2_option_concertsolo_piece, 'personne_2_activite_1': req.session.personne_2_activite_1, 'personne_2_activite_2': req.session.personne_2_activite_2, 'personne_3_nom': req.session.personne_3_nom, 'personne_3_prenom': req.session.personne_3_prenom, 'personne_3_datenaissance': req.session.personne_3_datenaissance, 'personne_3_age': req.session.personne_3_profilage, 'personne_3_transport_mode': req.session.personne_3_transport_mode, 'personne_3_transport_arret': req.session.personne_3_transport_arret, 'personne_3_categorie': req.session.personne_3_categorie, 'personne_3_profil': req.session.personne_3_profil, 'personne_3_instrument': req.session.personne_3_instrument, 'personne_3_cahier': req.session.personne_3_cahier, 'personne_3_piece': req.session.personne_3_piece, 'personne_3_prof': req.session.personne_3_prof, 'personne_3_mail_prof': req.session.personne_3_mail_prof, 'personne_3_option_coursindividuel': req.session.personne_3_option_coursindividuel, 'personne_3_option_concertsolo': req.session.personne_3_option_concertsolo, 'personne_3_option_concertsolo_cahier': req.session.personne_3_option_concertsolo_cahier, 'personne_3_option_concertsolo_piece': req.session.personne_3_option_concertsolo_piece, 'personne_3_activite_1': req.session.personne_3_activite_1, 'personne_3_activite_2': req.session.personne_3_activite_2, 'personne_4_nom': req.session.personne_4_nom, 'personne_4_prenom': req.session.personne_4_prenom, 'personne_4_datenaissance': req.session.personne_4_datenaissance, 'personne_4_age': req.session.personne_4_profilage, 'personne_4_transport_mode': req.session.personne_4_transport_mode, 'personne_4_transport_arret': req.session.personne_4_transport_arret, 'personne_4_categorie': req.session.personne_4_categorie, 'personne_4_profil': req.session.personne_4_profil, 'personne_4_instrument': req.session.personne_4_instrument, 'personne_4_cahier': req.session.personne_4_cahier, 'personne_4_piece': req.session.personne_4_piece, 'personne_4_prof': req.session.personne_4_prof, 'personne_4_mail_prof': req.session.personne_4_mail_prof, 'personne_4_option_coursindividuel': req.session.personne_4_option_coursindividuel, 'personne_4_option_concertsolo': req.session.personne_4_option_concertsolo, 'personne_4_option_concertsolo_cahier': req.session.personne_4_option_concertsolo_cahier, 'personne_4_option_concertsolo_piece': req.session.personne_4_option_concertsolo_piece, 'personne_4_activite_1': req.session.personne_4_activite_1, 'personne_4_activite_2': req.session.personne_4_activite_2, 'personne_5_nom': req.session.personne_5_nom, 'personne_5_prenom': req.session.personne_5_prenom, 'personne_5_datenaissance': req.session.personne_5_datenaissance, 'personne_5_age': req.session.personne_5_profilage, 'personne_5_transport_mode': req.session.personne_5_transport_mode, 'personne_5_transport_arret': req.session.personne_5_transport_arret, 'personne_5_categorie': req.session.personne_5_categorie, 'personne_5_profil': req.session.personne_5_profil, 'personne_5_instrument': req.session.personne_5_instrument, 'personne_5_cahier': req.session.personne_5_cahier, 'personne_5_piece': req.session.personne_5_piece, 'personne_5_prof': req.session.personne_5_prof, 'personne_5_mail_prof': req.session.personne_5_mail_prof, 'personne_5_option_coursindividuel': req.session.personne_5_option_coursindividuel, 'personne_5_option_concertsolo': req.session.personne_5_option_concertsolo, 'personne_5_option_concertsolo_cahier': req.session.personne_5_option_concertsolo_cahier, 'personne_5_option_concertsolo_piece': req.session.personne_5_option_concertsolo_piece, 'personne_5_activite_1': req.session.personne_5_activite_1, 'personne_5_activite_2': req.session.personne_5_activite_2, 'personne_6_nom': req.session.personne_6_nom, 'personne_6_prenom': req.session.personne_6_prenom, 'personne_6_datenaissance': req.session.personne_6_datenaissance, 'personne_6_age': req.session.personne_6_profilage, 'personne_6_transport_mode': req.session.personne_6_transport_mode, 'personne_6_transport_arret': req.session.personne_6_transport_arret, 'personne_6_categorie': req.session.personne_6_categorie, 'personne_6_profil': req.session.personne_6_profil, 'personne_6_instrument': req.session.personne_6_instrument, 'personne_6_cahier': req.session.personne_6_cahier, 'personne_6_piece': req.session.personne_6_piece, 'personne_6_prof': req.session.personne_6_prof, 'personne_6_mail_prof': req.session.personne_6_mail_prof, 'personne_6_option_coursindividuel': req.session.personne_6_option_coursindividuel, 'personne_6_option_concertsolo': req.session.personne_6_option_concertsolo, 'personne_6_option_concertsolo_cahier': req.session.personne_6_option_concertsolo_cahier, 'personne_6_option_concertsolo_piece': req.session.personne_6_option_concertsolo_piece, 'personne_6_activite_1': req.session.personne_6_activite_1, 'personne_6_activite_2': req.session.personne_6_activite_2, }, ]); ////////////////////////////////// // PAIEMENT STRIPE logger.info("req.session.montant_accompte: " + req.session.montant_accompte, { numsession: req.session.id }); console.log ("req.session.identifiant: ",req.session.identifiant); console.log ("process.env.STRIPE_PRIVATE_KEY : ", process.env.STRIPE_PRIVATE_KEY); // STRIPE - ETAPE 1 - CREER l'INTENTION DE PAIEMENT logger.info("cookiesessionid AVANT Stripe :" + req.session.id, { numsession: req.session.id }); const session = await stripe.checkout.sessions.create({ metadata: {cookiesessionid: req.session.id, identifiant: req.session.identifiant}, customer_email: req.session.adherent_mail, //There are four different submit types. submit_type: 'pay', //success_url: 'http://localhost:8888/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}', //cancel_url: 'http://localhost:8888/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}', //success_url: 'https://www.adusuki.juliechaumard.paris/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}', //cancel_url: 'https://www.adusuki.juliechaumard.paris/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}', //success_url: 'https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}', //cancel_url: 'https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}', success_url: process.env.STRIPE_SN_SUCCESSURL, cancel_url: process.env.STRIPE_SN_CANCELURL, payment_method_types: ['card'], line_items: [{ price_data: { currency: 'eur', product_data: { name: 'Stage annuel accompte', }, unit_amount: req.session.montant_accompte * 100, }, quantity: 1, },], //Checkout has three modes: payment, subscription, or setup. mode: 'payment' }); console.log("session: ",session) console.log("session.id: ",session.id); logger.info("session.url: " + session.url, { numsession: req.session.id }); let url_stripe = session.url res.redirect(session.url) } ///////////////////////////////////////////////// // CLICK SUR LE BOUTON ENREGISTRER PAGE RECAP SANS ACOMPTE const post_enregistrer_inscrip_ssacompte = async function(req, res){ logger.info("======================================"); logger.info("======== FUNCTION post_enregistrer_inscrip_ssacompte =========="); logger.info("======================================"); ////////////////////////////////// // AJOUT INFO DANS LA GOOGLE SHEET await GS_stagean.useServiceAccountAuth(GS_creds_stagean); await GS_stagean.loadInfo(); // loads document properties and worksheets logger.info("NOM FICHIER SHEET : " + GS_stagean.title, { numsession: req.session.id }); const GS_SN_sheet = GS_stagean.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_SN_sheet.title, { numsession: req.session.id }); // DATE DE L'INSCRIPTION moment().format(); moment.locale('fr'); var date_formattee = moment().format('L') console.log("date_formattee:", date_formattee); // AJOUTER UNE LIGNE DANS LA GOOGLE SHEET logger.info("/ AJOUTER UNE LIGNE DANS LA GOOGLE SHEET", { numsession: req.session.id }); logger.info("req.session.identifiant : " + req.session.identifiant, { numsession: req.session.id }); logger.info("req.session.adherent_nom : " + req.session.adherent_nom, { numsession: req.session.id }); const moreRows = await GS_SN_sheet.addRows([ { 'saison': "2022/2023", 'identifiant': req.session.identifiant, 'association_suzuki': req.session.association, 'inscription_date': date_formattee, 'adherent_nom': req.session.adherent_nom, 'adherent_prenom': req.session.adherent_prenom, 'inscription_accompte_paye': "pas d'acompte", 'inscription_accompte_paiement_montant': req.session.montant_accompte, 'cout_total': req.session.cout_total, 'remise': req.session.remise, 'cout_total_hebergement': req.session.cout_total_hebergement, 'cout_total_transport': req.session.cout_total_transport, 'cout_total_dalcroze': req.session.cout_total_dalcroze, 'cout_total_dalcroze_surplace': req.session.cout_total_dalcroze_surplace, 'cout_total_percussion': req.session.cout_total_percussion, 'cout_total_percussion_surplace': req.session.cout_total_percussion_surplace, 'cout_total_chant': req.session.cout_total_chant, 'cout_total_observation': req.session.cout_total_observation, 'cout_total_cours': req.session.cout_total_cours, 'cout_total_campado': req.session.cout_total_campado, 'accompte_frais_bancaire': req.session.accompte_frais_bancaire, 'adherent_adresse_rue': req.session.adherent_adresse_rue, 'adherent_adresse_complement': req.session.adherent_adresse_complement, 'adherent_adresse_codepostal': req.session.adherent_adresse_codepostal, 'adherent_adresse_ville': req.session.adherent_adresse_ville, 'adherent_adresse_pays': req.session.adherent_adresse_pays, 'adherent_telephone_fixe': req.session.adherent_telephone_fixe, 'adherent_telephone_mobile': req.session.adherent_telephone_mobile, 'adherent_mail': req.session.adherent_mail, 'hebergement': req.session.hebergement, 'commentaire_adherent': req.session.commentaire_adherent, 'personne_1_nom': req.session.personne_1_nom, 'personne_1_prenom': req.session.personne_1_prenom, 'personne_1_datenaissance': req.session.personne_1_datenaissance, 'personne_1_age': req.session.personne_1_profilage, 'personne_1_transport_mode': req.session.personne_1_transport_mode, 'personne_1_transport_arret': req.session.personne_1_transport_arret, 'personne_1_categorie': req.session.personne_1_categorie, 'personne_1_profil': req.session.personne_1_profil, 'personne_1_instrument': req.session.personne_1_instrument, 'personne_1_cahier': req.session.personne_1_cahier, 'personne_1_piece': req.session.personne_1_piece, 'personne_1_prof': req.session.personne_1_prof, 'personne_1_mail_prof': req.session.personne_1_mail_prof, 'personne_1_option_coursindividuel': req.session.personne_1_option_coursindividuel, 'personne_1_option_concertsolo': req.session.personne_1_option_concertsolo, 'personne_1_option_concertsolo_cahier': req.session.personne_1_option_concertsolo_cahier, 'personne_1_option_concertsolo_piece': req.session.personne_1_option_concertsolo_piece, 'personne_1_activite_1': req.session.personne_1_activite_1, 'personne_1_activite_2': req.session.personne_1_activite_2, 'personne_2_nom': req.session.personne_2_nom, 'personne_2_prenom': req.session.personne_2_prenom, 'personne_2_datenaissance': req.session.personne_2_datenaissance, 'personne_2_age': req.session.personne_2_profilage, 'personne_2_transport_mode': req.session.personne_2_transport_mode, 'personne_2_transport_arret': req.session.personne_2_transport_arret, 'personne_2_categorie': req.session.personne_2_categorie, 'personne_2_profil': req.session.personne_2_profil, 'personne_2_instrument': req.session.personne_2_instrument, 'personne_2_cahier': req.session.personne_2_cahier, 'personne_2_piece': req.session.personne_2_piece, 'personne_2_prof': req.session.personne_2_prof, 'personne_2_mail_prof': req.session.personne_2_mail_prof, 'personne_2_option_coursindividuel': req.session.personne_2_option_coursindividuel, 'personne_2_option_concertsolo': req.session.personne_2_option_concertsolo, 'personne_2_option_concertsolo_cahier': req.session.personne_2_option_concertsolo_cahier, 'personne_2_option_concertsolo_piece': req.session.personne_2_option_concertsolo_piece, 'personne_2_activite_1': req.session.personne_2_activite_1, 'personne_2_activite_2': req.session.personne_2_activite_2, 'personne_3_nom': req.session.personne_3_nom, 'personne_3_prenom': req.session.personne_3_prenom, 'personne_3_datenaissance': req.session.personne_3_datenaissance, 'personne_3_age': req.session.personne_3_profilage, 'personne_3_transport_mode': req.session.personne_3_transport_mode, 'personne_3_transport_arret': req.session.personne_3_transport_arret, 'personne_3_categorie': req.session.personne_3_categorie, 'personne_3_profil': req.session.personne_3_profil, 'personne_3_instrument': req.session.personne_3_instrument, 'personne_3_cahier': req.session.personne_3_cahier, 'personne_3_piece': req.session.personne_3_piece, 'personne_3_prof': req.session.personne_3_prof, 'personne_3_mail_prof': req.session.personne_3_mail_prof, 'personne_3_option_coursindividuel': req.session.personne_3_option_coursindividuel, 'personne_3_option_concertsolo': req.session.personne_3_option_concertsolo, 'personne_3_option_concertsolo_cahier': req.session.personne_3_option_concertsolo_cahier, 'personne_3_option_concertsolo_piece': req.session.personne_3_option_concertsolo_piece, 'personne_3_activite_1': req.session.personne_3_activite_1, 'personne_3_activite_2': req.session.personne_3_activite_2, 'personne_4_nom': req.session.personne_4_nom, 'personne_4_prenom': req.session.personne_4_prenom, 'personne_4_datenaissance': req.session.personne_4_datenaissance, 'personne_4_age': req.session.personne_4_profilage, 'personne_4_transport_mode': req.session.personne_4_transport_mode, 'personne_4_transport_arret': req.session.personne_4_transport_arret, 'personne_4_categorie': req.session.personne_4_categorie, 'personne_4_profil': req.session.personne_4_profil, 'personne_4_instrument': req.session.personne_4_instrument, 'personne_4_cahier': req.session.personne_4_cahier, 'personne_4_piece': req.session.personne_4_piece, 'personne_4_prof': req.session.personne_4_prof, 'personne_4_mail_prof': req.session.personne_4_mail_prof, 'personne_4_option_coursindividuel': req.session.personne_4_option_coursindividuel, 'personne_4_option_concertsolo': req.session.personne_4_option_concertsolo, 'personne_4_option_concertsolo_cahier': req.session.personne_4_option_concertsolo_cahier, 'personne_4_option_concertsolo_piece': req.session.personne_4_option_concertsolo_piece, 'personne_4_activite_1': req.session.personne_4_activite_1, 'personne_4_activite_2': req.session.personne_4_activite_2, 'personne_5_nom': req.session.personne_5_nom, 'personne_5_prenom': req.session.personne_5_prenom, 'personne_5_datenaissance': req.session.personne_5_datenaissance, 'personne_5_age': req.session.personne_5_profilage, 'personne_5_transport_mode': req.session.personne_5_transport_mode, 'personne_5_transport_arret': req.session.personne_5_transport_arret, 'personne_5_categorie': req.session.personne_5_categorie, 'personne_5_profil': req.session.personne_5_profil, 'personne_5_instrument': req.session.personne_5_instrument, 'personne_5_cahier': req.session.personne_5_cahier, 'personne_5_piece': req.session.personne_5_piece, 'personne_5_prof': req.session.personne_5_prof, 'personne_5_mail_prof': req.session.personne_5_mail_prof, 'personne_5_option_coursindividuel': req.session.personne_5_option_coursindividuel, 'personne_5_option_concertsolo': req.session.personne_5_option_concertsolo, 'personne_5_option_concertsolo_cahier': req.session.personne_5_option_concertsolo_cahier, 'personne_5_option_concertsolo_piece': req.session.personne_5_option_concertsolo_piece, 'personne_5_activite_1': req.session.personne_5_activite_1, 'personne_5_activite_2': req.session.personne_5_activite_2, 'personne_6_nom': req.session.personne_6_nom, 'personne_6_prenom': req.session.personne_6_prenom, 'personne_6_datenaissance': req.session.personne_6_datenaissance, 'personne_6_age': req.session.personne_6_profilage, 'personne_6_transport_mode': req.session.personne_6_transport_mode, 'personne_6_transport_arret': req.session.personne_6_transport_arret, 'personne_6_categorie': req.session.personne_6_categorie, 'personne_6_profil': req.session.personne_6_profil, 'personne_6_instrument': req.session.personne_6_instrument, 'personne_6_cahier': req.session.personne_6_cahier, 'personne_6_piece': req.session.personne_6_piece, 'personne_6_prof': req.session.personne_6_prof, 'personne_6_mail_prof': req.session.personne_6_mail_prof, 'personne_6_option_coursindividuel': req.session.personne_6_option_coursindividuel, 'personne_6_option_concertsolo': req.session.personne_6_option_concertsolo, 'personne_6_option_concertsolo_cahier': req.session.personne_6_option_concertsolo_cahier, 'personne_6_option_concertsolo_piece': req.session.personne_6_option_concertsolo_piece, 'personne_6_activite_1': req.session.personne_6_activite_1, 'personne_6_activite_2': req.session.personne_6_activite_2, }, ]); ////////////////////////////////////////////////////////////////////////////// // CONFIRMATION PAR MAIL console.log("MAIL ENVOI AVANT"); var transporter = nodemailer.createTransport({ service: 'gmail', auth: { // TEST JULIE //user: 'juliechaumard@gmail.com', //pass: 'etfq umof iwbx ltxk' // SUZUKI user: 'afps.inscription@gmail.com', pass: 'vljxrkhwgljjracs' } }); var mail_objet = "ASSOCIATION FRANÇAISE POUR LA PÉDAGOGIE SUZUKI - STAGE ANNUEL 2022/2023 - "; mail_objet += req.session.adherent_nom; mail_html = "

Cher adhérent,

Félicitations ! Vous êtes désormais inscrit au stage annuel de l’Association Française pour la Pédagogie Suzuki (http://www.afpedagogiesuzuki.fr) qui se tiendra du 20 au 25 août 2023.

"; mail_html += "
"; mail_html += "

RÉCAPITULATIF :

"; mail_html += "

Identifiant Suzuki : "; mail_html += req.session.identifiant; mail_html += "

Association Suzuki : "; mail_html += req.session.association; mail_html += "

Mode d'hébergement : "; mail_html += req.session.hebergement; mail_html += "


"; for (let toto = 1; toto<7; toto++) { if (req.session["personne_"+toto+"_nom"]) { mail_html += "

Nom : "; mail_html += req.session["personne_"+toto+"_nom"]; mail_html += " "; mail_html += req.session["personne_"+toto+"_prenom"]; mail_html += "

Profile âge : "; mail_html += req.session["personne_"+toto+"_age"]; mail_html += "

Catégorie : "; mail_html += req.session["personne_"+toto+"_categorie"]; if (req.session["personne_"+toto+"_profil"]) { mail_html += " "; mail_html += req.session["personne_"+toto+"_profil"]; } mail_html += "

Mode de transport : "; mail_html += req.session["personne_"+toto+"_transport_mode"]; mail_html += " "; mail_html += req.session["personne_"+toto+"_transport_arret"]; mail_html += "

"; if (req.session["personne_"+toto+"_instrument"]) { mail_html += "

Instrument : "; mail_html += req.session["personne_"+toto+"_instrument"]; mail_html += " "; mail_html += req.session["personne_"+toto+"_cahier"]; mail_html += " "; mail_html += req.session["personne_"+toto+"_option_coursindividuel"]; mail_html += "

"; } if (req.session["personne_"+toto+"_activite_1"]) { mail_html += "

Activité : "; mail_html += req.session["personne_"+toto+"_activite_1"]; mail_html += " "; mail_html += req.session["personne_"+toto+"_activite_2"]; mail_html += "

"; } if (req.session["personne_"+toto+"_cout_hebergement"]) { mail_html += "

Coût hébergement : "; mail_html += req.session["personne_"+toto+"_cout_hebergement"]; mail_html += "

"; } if (req.session["personne_"+toto+"_cout_transport"]) { mail_html += "

Coût transport : "; mail_html += req.session["personne_"+toto+"_cout_transport"]; mail_html += "

"; } if (req.session["personne_"+toto+"_campado_cout"]) { mail_html += "

Coût camp ado : "; mail_html += req.session["personne_"+toto+"_campado_cout"]; mail_html += "

"; } if (req.session["personne_"+toto+"_cours_cout"]) { mail_html += "

Coût cours : "; mail_html += req.session["personne_"+toto+"_cours_cout"]; mail_html += "

"; } if (req.session["personne_"+toto+"_activite_cout"]) { mail_html += "

Coût activité : "; mail_html += req.session["personne_"+toto+"_activite_cout"]; mail_html += "

"; } if (req.session["personne_"+toto+"_observation_cout"]) { mail_html += "

Coût observation : "; mail_html += req.session["personne_"+toto+"_observation_cout"]; mail_html += "

"; } mail_html += "
"; } } mail_html += "
"; mail_html += "

Coût total : "; mail_html += req.session.cout_total; mail_html += "

Remise : "; mail_html += req.session.remise; mail_html += "

Frais bancaire de l'acompte : "; mail_html += req.session.accompte_frais_bancaire; mail_html += "

Montant de l'acompte versé : "; mail_html += req.session.inscription_accompte_paiement_montant; mail_html += "

"; if (req.session.cout_total_dalcroze_surplace > 0) { mail_html += "

Coût activité Dalcroze adulte à payer sur place : "; mail_html += req.session.cout_total_dalcroze_surplace; mail_html += "€

"; } if (req.session.cout_total_percussion_surplace > 0) { mail_html += "

Coût activité percussions adulte à payer sur place : "; mail_html += req.session.cout_total_percussion_surplace; mail_html += "€

"; } mail_html += "


Nous vous remercions pour votre intérêt et vous souhaitons une très bon stage !

Association Française pour la pédagogie Suzuki
Anne-Laure SAUVEGRAIN
Pôle organisation du stage

"; var mailOptions = { from: 'afps.inscription@gmail.com', to: req.session.adherent_mail, subject: mail_objet, html: mail_html, }; transporter.sendMail(mailOptions, function(error, info){ if (error) { logger.info("error : " + error, { numsession: req.session.id}); } else { console.log('Email sent: ' + info.response); } }); console.log("MAIL ENVOI APRES"); // REDIRECTION VERS LA PAGE DE CONFIRMATION PAIEMENT CARTE BANCAIRE res.locals.identifiant = req.session.identifiant; res.locals.association = req.session.association; res.locals.adherent_nom = req.session.adherent_nom; res.locals.adherent_prenom = req.session.adherent_prenom; res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue; res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement; res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal; res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville; res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays; res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile; res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe; res.locals.adherent_mail = req.session.adherent_mail; res.locals.hebergement = req.session.hebergement; res.locals.commentaire_adherent = req.session.commentaire_adherent; for (let toto = 1; toto < 7; toto++) { res.locals["personne_"+toto+"_numero"] = toto; res.locals["personne_"+toto+"_nom"] = req.session["personne_"+toto+"_nom"]; res.locals["personne_"+toto+"_prenom"] = req.session["personne_"+toto+"_prenom"]; res.locals["personne_"+toto+"_profilage"] = req.session["personne_"+toto+"_profilage"]; res.locals["personne_"+toto+"_categorie"] = req.session["personne_"+toto+"_categorie"]; res.locals["personne_"+toto+"_profil"] = req.session["personne_"+toto+"_profil"]; res.locals["personne_"+toto+"_transport_mode"] = req.session["personne_"+toto+"_transport_mode"]; res.locals["personne_"+toto+"_transport_arret"] = req.session["personne_"+toto+"_transport_arret"] res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"]; res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"]; res.locals["personne_"+toto+"_option_coursindividuel"] = req.session["personne_"+toto+"_option_coursindividuel"]; res.locals["personne_"+toto+"_option_concertsolo"] = req.session["personne_"+toto+"_option_concertsolo"]; res.locals["personne_"+toto+"_activite_1"] = req.session["personne_"+toto+"_activite_1"]; res.locals["personne_"+toto+"_activite_2"] = req.session["personne_"+toto+"_activite_2"]; res.locals["personne_"+toto+"_cout_hebergement"] = req.session["personne_"+toto+"_cout_hebergement"]; res.locals["personne_"+toto+"_cout_transport"] = req.session["personne_"+toto+"_cout_transport"]; res.locals["personne_"+toto+"_activite_cout"] = req.session["personne_"+toto+"_activite_cout"]; res.locals["personne_"+toto+"_observation_cout"] = req.session["personne_"+toto+"_observation_cout"]; res.locals["personne_"+toto+"_cours_cout"] = req.session["personne_"+toto+"_cours_cout"]; res.locals["personne_"+toto+"_campado_cout"] = req.session["personne_"+toto+"_campado_cout"]; } res.locals.cout_total = req.session.cout_total; res.locals.remise = req.session.remise; res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire; res.locals.montant_accompte = req.session.inscription_accompte_paiement_montant; if (!req.session.identifiant) { res.locals.error = "Il y a eu une erreur lors de l'ajout de votre inscription dans la base de données du stage, veuillez contacter l'association Suzuki par mail pour le signaler à l'adresse StgNational@gmail.com"; } res.render('stagenat/page_templates/inscription_reussi.ejs'); } ///////////////////////////////////////////////// // RETOUR PAIEMENT REUSSI const SN_accompte_reussi = async function(req, res){ logger.info("======================================"); logger.info("======== FUNCTION SN_accompte_reussi =========="); logger.info("======================================"); // RETOUR STRIPE var id = req.query.id; logger.info("id : " + id, { numsession: req.session.id }); const session_stripe = await stripe.checkout.sessions.retrieve(id); var customer_email = session_stripe.customer_email; var payment_status = session_stripe.payment_status; var amount_total = session_stripe.amount_total/100; var stripe_customer = session_stripe.customer; var stripe_payment_intent = session_stripe.payment_intent; var payment_method_types = session_stripe.payment_method_types; var stripe_status = session_stripe.status; var identifiant = session_stripe.metadata.identifiant; var CB_retour = "identifiant_adherent:"+identifiant+",payment_status:"+payment_status+",stripe_customer:"+stripe_customer+",stripe_payment_intent:"+stripe_payment_intent+",sessionID:"+session_stripe.id+",payment_method_types:"+payment_method_types+",amount_total:"+amount_total+",stripe_status:"+stripe_status; logger.info("cookiesessionid APRES Stripe :" + session_stripe.metadata.cookiesessionid, { numsession: req.session.id }); var cookiesessionid = session_stripe.metadata.cookiesessionid; console.log("customer_email: ", customer_email); logger.info("payment_status : " + payment_status, { numsession: req.session.id }); console.log("stripe_customer: ", stripe_customer); console.log("amount_total: ", amount_total); console.log("stripe_payment_intent: ", stripe_payment_intent); console.log("payment_method_types: ", payment_method_types); console.log("payment_method_types: ", payment_method_types[0]); console.log("stripe_status: ", stripe_status); console.log("CB_retour: ", CB_retour); ////////////////////////////////////////////////////////////////////////////// // RÉCUPÉRATION DES INFOS STAGIAIRES DANS LA GOOGLE SHEET // MISE À JOUR DES INFORMATIONS SUR LE PAIEMENT DANS LA BASE DE DONNÉES GSHEET await GS_stagean.useServiceAccountAuth(GS_creds_stagean); await GS_stagean.loadInfo(); // loads document properties and worksheets console.log("NOM FICHIER SHEET: ",GS_stagean.title); //nom du fichier const GS_SN_sheet = GS_stagean.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_SN_sheet.title, { numsession: req.session.id }); // on récupère le contenu de la GSheet dans un array nommé "infos_adherents" const infos_adherents = await GS_SN_sheet.getRows(); // on récupère quelle ligne contient l'identifiant concerné pour mettre à jour cette ligne let list_identifiants = new Array; let compteur = GS_SN_sheet.rowCount - 1; let rowToBeUpdate; logger.info("identifiant TRANSMIS PAR STRIPE :" + identifiant, { numsession: req.session.id }); for (let i=0; i 0) { //await GS_stagean.useServiceAccountAuth(GS_creds_stagean); //await GS_stagean.loadInfo(); // loads document properties and worksheets logger.info("NOM FICHIER SHEET : " + GS_stagean.title, { numsession: req.session.id }); const GS_SN_sheet_campado = GS_stagean.sheetsByTitle['campado']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_SN_sheet_campado.title, { numsession: req.session.id }); await GS_SN_sheet_campado.loadCells('B1:B2'); const GS_SN_sheet_campado_b2 = GS_SN_sheet_campado.getCellByA1('B2'); logger.info("CONTENU DE LA CELLULE B2 : " + GS_SN_sheet_campado_b2.value, { numsession: req.session.id }); GS_SN_sheet_campado_b2.value -= compteur_ado_a_ajouter; logger.info("CONTENU DE LA CELLULE B2 APRES SOUSTRACTION DU COMPTEUR ADO : " + GS_SN_sheet_campado_b2, { numsession: req.session.id }); await GS_SN_sheet_campado.saveUpdatedCells(); } ////////////////////////////////////////////////////////////////////////////// // CONFIRMATION PAR MAIL console.log("MAIL ENVOI AVANT"); var transporter = nodemailer.createTransport({ service: 'gmail', auth: { // TEST JULIE //user: 'juliechaumard@gmail.com', //pass: 'etfq umof iwbx ltxk' // SUZUKI user: 'afps.inscription@gmail.com', pass: 'vljxrkhwgljjracs' } }); var mail_objet = "ASSOCIATION FRANÇAISE POUR LA PÉDAGOGIE SUZUKI - STAGE ANNUEL 2022/2023 - "; mail_objet += infos_adherents[rowToBeUpdate].adherent_nom; mail_html = "

Cher adhérent,

Félicitations ! Vous êtes désormais inscrit au stage annuel de l’Association Française pour la Pédagogie Suzuki (http://www.afpedagogiesuzuki.fr) qui se tiendra du 20 au 25 août 2023.

"; mail_html += "
"; mail_html += "

RÉCAPITULATIF :

"; mail_html += "

Identifiant Suzuki : "; mail_html += identifiant; mail_html += "

Association Suzuki : "; mail_html += infos_adherents[rowToBeUpdate].association_suzuki; mail_html += "

Mode d'hébergement : "; mail_html += infos_adherents[rowToBeUpdate].hebergement; mail_html += "


"; for (let toto = 1; toto<7; toto++) { if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_nom"]) { mail_html += "

Nom : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_nom"]; mail_html += " "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_prenom"]; mail_html += "

Profile âge : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_age"]; mail_html += "

Catégorie : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_categorie"]; if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_profil"]) { mail_html += " "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_profil"]; } mail_html += "

Mode de transport : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_transport_mode"]; mail_html += " "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_transport_arret"]; mail_html += "

"; if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_instrument"]) { mail_html += "

Instrument : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_instrument"]; mail_html += " "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_cahier"]; mail_html += " "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_option_coursindividuel"]; mail_html += "

"; } if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_1"]) { mail_html += "

Activité : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_1"]; mail_html += " "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_2"]; mail_html += "

"; } if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_cout_hebergement"]) { mail_html += "

Coût hébergement : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_cout_hebergement"]; mail_html += "

"; } if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_cout_transport"]) { mail_html += "

Coût transport : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_cout_transport"]; mail_html += "

"; } if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_campado_cout"]) { mail_html += "

Coût camp ado : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_campado_cout"]; mail_html += "

"; } if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_cours_cout"]) { mail_html += "

Coût cours : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_cours_cout"]; mail_html += "

"; } if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_cout"]) { mail_html += "

Coût activité : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_cout"]; mail_html += "

"; } if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_observation_cout"]) { mail_html += "

Coût observation : "; mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_observation_cout"]; mail_html += "

"; } mail_html += "
"; } } mail_html += "
"; mail_html += "

Coût total : "; mail_html += infos_adherents[rowToBeUpdate].cout_total; mail_html += "

Remise : "; mail_html += infos_adherents[rowToBeUpdate].remise; mail_html += "

Frais bancaire de l'acompte : "; mail_html += infos_adherents[rowToBeUpdate].accompte_frais_bancaire; mail_html += "

Montant de l'acompte versé : "; mail_html += infos_adherents[rowToBeUpdate].inscription_accompte_paiement_montant; mail_html += "

"; if (infos_adherents[rowToBeUpdate].cout_total_dalcroze_surplace > 0) { mail_html += "

Coût activité Dalcroze adulte à payer sur place : "; mail_html += infos_adherents[rowToBeUpdate].cout_total_dalcroze_surplace; mail_html += "€

"; } if (infos_adherents[rowToBeUpdate].cout_total_percussion_surplace > 0) { mail_html += "

Coût activité percussions adulte à payer sur place : "; mail_html += infos_adherents[rowToBeUpdate].cout_total_percussion_surplace; mail_html += "€

"; } mail_html += "


Nous vous remercions pour votre intérêt et vous souhaitons une très bon stage !

Association Française pour la pédagogie Suzuki
Anne-Laure SAUVEGRAIN
Pôle organisation du stage

"; var mailOptions = { from: 'afps.inscription@gmail.com', to: customer_email, subject: mail_objet, html: mail_html, }; transporter.sendMail(mailOptions, function(error, info){ if (error) { logger.info("error : " + error, { numsession: req.session.id}); } else { console.log('Email sent: ' + info.response); } }); console.log("MAIL ENVOI APRES"); // REDIRECTION VERS LA PAGE DE CONFIRMATION PAIEMENT CARTE BANCAIRE res.locals.identifiant = infos_adherents[rowToBeUpdate].identifiant; res.locals.association = infos_adherents[rowToBeUpdate].association_suzuki; res.locals.adherent_nom = infos_adherents[rowToBeUpdate].adherent_nom; res.locals.adherent_prenom = infos_adherents[rowToBeUpdate].adherent_prenom; res.locals.adherent_adresse_rue = infos_adherents[rowToBeUpdate].adherent_adresse_rue; res.locals.adherent_adresse_complement = infos_adherents[rowToBeUpdate].adherent_adresse_complement; res.locals.adherent_adresse_codepostal = infos_adherents[rowToBeUpdate].adherent_adresse_codepostal; res.locals.adherent_adresse_ville = infos_adherents[rowToBeUpdate].adherent_adresse_ville; res.locals.adherent_adresse_pays = infos_adherents[rowToBeUpdate].adherent_adresse_pays; res.locals.adherent_telephone_mobile = infos_adherents[rowToBeUpdate].adherent_telephone_mobile; res.locals.adherent_telephone_fixe = infos_adherents[rowToBeUpdate].adherent_telephone_fixe; res.locals.adherent_mail = infos_adherents[rowToBeUpdate].adherent_mail; res.locals.hebergement = infos_adherents[rowToBeUpdate].hebergement; res.locals.commentaire_adherent = infos_adherents[rowToBeUpdate].commentaire_adherent; for (let toto = 1; toto < 7; toto++) { res.locals["personne_"+toto+"_numero"] = toto; res.locals["personne_"+toto+"_nom"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_nom"]; res.locals["personne_"+toto+"_prenom"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_prenom"]; res.locals["personne_"+toto+"_profilage"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_profilage"]; res.locals["personne_"+toto+"_categorie"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_categorie"]; res.locals["personne_"+toto+"_profil"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_profil"]; res.locals["personne_"+toto+"_transport_mode"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_transport_mode"]; res.locals["personne_"+toto+"_transport_arret"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_transport_arret"] res.locals["personne_"+toto+"_instrument"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_instrument"]; res.locals["personne_"+toto+"_cahier"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_cahier"]; res.locals["personne_"+toto+"_option_coursindividuel"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_option_coursindividuel"]; res.locals["personne_"+toto+"_option_concertsolo"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_option_concertsolo"]; res.locals["personne_"+toto+"_activite_1"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_1"]; res.locals["personne_"+toto+"_activite_2"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_2"]; res.locals["personne_"+toto+"_cout_hebergement"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_cout_hebergement"]; res.locals["personne_"+toto+"_cout_transport"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_cout_transport"]; res.locals["personne_"+toto+"_activite_cout"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_cout"]; res.locals["personne_"+toto+"_observation_cout"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_observation_cout"]; res.locals["personne_"+toto+"_cours_cout"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_cours_cout"]; res.locals["personne_"+toto+"_campado_cout"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_campado_cout"]; } res.locals.cout_total = infos_adherents[rowToBeUpdate].cout_total; res.locals.remise = infos_adherents[rowToBeUpdate].remise; res.locals.accompte_frais_bancaire = infos_adherents[rowToBeUpdate].accompte_frais_bancaire; res.locals.montant_accompte = infos_adherents[rowToBeUpdate].inscription_accompte_paiement_montant; if (!infos_adherents[rowToBeUpdate].identifiant) { res.locals.error = "Il y a eu une erreur lors de l'ajout de votre inscription dans la base de données du stage, veuillez contacter l'association Suzuki par mail pour le signaler à l'adresse StgNational@gmail.com"; } res.render('stagenat/page_templates/paiement_reussi.ejs'); } ///////////////////////////////////////////////// // RETOUR PAIEMENT ECHOUE // CLICK SUR BOUTON RECOMMENCER const SN_accompte_annule = async function(req, res) { logger.info("======================================"); logger.info("======== FUNCTION SN_accompte_echoue =========="); logger.info("======================================"); // RETOUR STRIPE var id = req.query.id; logger.info("id : " + id, { numsession: req.session.id }); const session_stripe = await stripe.checkout.sessions.retrieve(id); var customer_email = session_stripe.customer_email; var payment_status = session_stripe.payment_status; var amount_total = session_stripe.amount_total/100; var stripe_customer = session_stripe.customer; var stripe_payment_intent = session_stripe.payment_intent; var payment_method_types = session_stripe.payment_method_types; var stripe_status = session_stripe.status; var identifiant = session_stripe.metadata.identifiant; var CB_retour = "identifiant_adherent:"+identifiant+",payment_status:"+payment_status+",stripe_customer:"+stripe_customer+",stripe_payment_intent:"+stripe_payment_intent+",sessionID:"+session_stripe.id+",payment_method_types:"+payment_method_types+",amount_total:"+amount_total+",stripe_status:"+stripe_status; logger.info("cookiesessionid APRES Stripe :" + session_stripe.metadata.cookiesessionid, { numsession: req.session.id }); var cookiesessionid = session_stripe.metadata.cookiesessionid; logger.info("payment_status : " + payment_status, { numsession: req.session.id }); ////////////////////////////////////////////////////////////////////////////// // RÉCUPÉRATION DES INFOS STAGIAIRES DANS LA GOOGLE SHEET // ANNULATION DE L'INSCRIT DANS LA BASE DE DONNÉES GSHEET // GSHEET "identifiant" = ANNULE / "paye" = echec await GS_stagean.useServiceAccountAuth(GS_creds_stagean); await GS_stagean.loadInfo(); // loads document properties and worksheets console.log("NOM FICHIER SHEET: ",GS_stagean.title); //nom du fichier const GS_SN_sheet = GS_stagean.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_SN_sheet.title, { numsession: req.session.id }); // on récupère le contenu de la GSheet dans un array nommé "infos_adherents" const infos_adherents = await GS_SN_sheet.getRows(); // on récupère quelle ligne contient l'identifiant concerné pour mettre à jour cette ligne let list_identifiants = new Array; let compteur = GS_SN_sheet.rowCount - 1; let rowToBeUpdate; logger.info("identifiant TRANSMIS PAR STRIPE :" + identifiant, { numsession: req.session.id }); for (let i=0; i