total_1ère

This commit is contained in:
2026-07-20 16:33:04 +02:00
parent dd49ba357b
commit d49cf88d99
275 changed files with 63607 additions and 5599 deletions

View File

@@ -6,15 +6,17 @@
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger");
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename);
const logger = require("../public/js/app/logger_adhesion");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
// CALCUL DE DATE
const moment = require('moment');
moment.locale('fr');
let now = moment().format("YYYY-MM-DD HH:mm:ss");
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
@@ -29,20 +31,38 @@ const {
get_res_bank,
get_res_bank_annul,
post_cartemanuelle_verifmail_envoicarte,
post_cartes_manuelles_envoi
post_cartes_manuelles_envoi,
maj_googlesheet,
maj_googlesheet_auto,
maj_statut_paiement_manuel,
suppr_adherent,
import_ass_loacles
} = require("../controllers/adhesionController");
const {
import_ass_locales_v2
} = require("../controllers/adhesion_imp_ass_locController");
const {
adhesion_envoi_carte
} = require("../controllers/adhesion_envoi_carteController.js");
const {
generer_codes
} = require("../controllers/codesController");
const { runSync_prof_strapi } = require("../controllers/sync_prof_strapiController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
// Saisie de l'identifiant
router.get('/adhesion', function(req, res) {
logger.info("ON EST DANS adhesionrouter.js - router.get('/adhesion',");
router.get('/', function(req, res) {
logger.info("on est dans la page web /adhesion (adhesionrouter.js)", { numsession: req.session.id });
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
if (req.session.err_mail_form_adhesion_1) {
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
@@ -63,8 +83,18 @@ router.get('/adhesion', function(req, res) {
}
res.locals.dirname = __dirname;
// affichage du template ejs /views/page_templates/formulaire_adhesion_mail.ejs
res.render('adhesion/page_templates/formulaire_adhesion_mail');
// DATE LIMITE D'INSCRIPTION POUR LA SAISON
// SI DATE DÉPASSÉE on affiche une page de fin
if (now > (process.env.ad_date_limite + 1)) {
// DATE DÉPASSÉE, on affiche la page de fin
logger.info(`La date limmite d'inscription ${process.env.ad_date_limite} est dépassée`, { numsession: req.session.id });
res.render('adhesion/page_templates/inscription_terminee');
} else {
// DATE NON DÉPASSÉE, on affiche la page d'inscription
logger.info(`La date limmite d'inscription ${process.env.ad_date_limite} n'est pas encore dépassée`, { numsession: req.session.id });
res.render('adhesion/page_templates/formulaire_adhesion_mail');
}
});
@@ -72,24 +102,47 @@ router.get('/adhesion', function(req, res) {
// VERIFICATION DU MAILcheckMail
// METHODE HTTP POST
/////////////////////////////////////////////////
router.post('/adhesion', checkMail);
router.post('/', checkMail);
/////////////////////////////////////////////////
// OUVRIR LA PAGE DE SAISIE DES INFORMATIONS
// APRÈS VALIDATION DU MAIL
/////////////////////////////////////////////////
router.get('/adhesion_famille', function(req, res) {
logger.info("req.session.identifiant DANS router.get '/adhesion_famille', = " + req.session.identifiant, { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.adherent_nom = req.session.adherent_nom;
res.locals.famille = "Responsable de la famille :";
req.session.adherent_type = "famille";
if (now > (process.env.ad_date_limite + 1)) {
res.render('adhesion/page_templates/inscription_terminee');
} else {
res.render('adhesion/page_templates/formulaire_adhesion_famille');
}
});
router.get('/adhesion_prof', function(req, res) {
res.locals.identifiant = req.session.identifiant;
res.locals.adherent_nom = req.session.adherent_nom;
req.session.adherent_type = "";
res.render('adhesion/page_templates/formulaire_adhesion_prof');
if (now > (process.env.ad_date_limite + 1)) {
res.render('adhesion/page_templates/inscription_terminee');
} else {
res.render('adhesion/page_templates/formulaire_adhesion_prof');
}
});
router.get('/adhesion_choix', function(req, res) {
res.locals.identifiant = req.session.identifiant;
res.locals.adherent_nom = req.session.adherent_nom;
req.session.adherent_type = "";
res.render('adhesion/page_templates/formulaire_adhesion_choix');
if (now > (process.env.ad_date_limite + 1)) {
res.render('adhesion/page_templates/inscription_terminee');
} else {
res.render('adhesion/page_templates/formulaire_adhesion_choix');
}
});
router.get('/adhesion_observateur', function(req, res) {
@@ -97,20 +150,18 @@ router.get('/adhesion_observateur', function(req, res) {
res.locals.adherent_nom = req.session.adherent_nom;
res.locals.famille = "Inscription observateur :";
req.session.adherent_type = "observateur";
res.render('adhesion/page_templates/formulaire_adhesion_observateur');
if (now > (process.env.ad_date_limite + 1)) {
res.render('adhesion/page_templates/inscription_terminee');
} else {
res.render('adhesion/page_templates/formulaire_adhesion_observateur');
}
});
router.get('/adhesion_famille', function(req, res) {
logger.info("req.session.identifiant DANS router.get('/adhesion_famille', = " + req.session.identifiant, { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.adherent_nom = req.session.adherent_nom;
res.locals.famille = "Responsable de la famille :";
req.session.adherent_type = "famille";
res.render('adhesion/page_templates/formulaire_adhesion_famille');
});
/////////////////////////////////////////////////
// POST ENREGISTRER INFOS DANS GOOGLE SHEET
// POST ENREGISTRER INFOS DANS BD
/////////////////////////////////////////////////
router.post('/adhesion_prof', post_form_adhesion);
router.post('/adhesion_observateur', post_form_adhesion);
@@ -184,7 +235,7 @@ router.get('/adhesion_paiement/annule', get_res_bank_annul);
// GET URL https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion/carte_manuelle
/////////////////////////////////////////////////
router.get('/adhesion/carte_manuelle', function(req, res) {
router.get('/carte_manuelle', function(req, res) {
logger.info("ON EST DANS ROUTE carte_manuelle", { numsession: req.session.id });
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
// LE CONTENU DE CES VARIABLES ERREURS EST MIS DANS LE PROGRAMME ET AFFICHÉ AU RECHARGEMENT DE LA PAGE
@@ -210,7 +261,7 @@ router.get('/adhesion/carte_manuelle', function(req, res) {
// CLIC SUR LE BOUTON ENVOYER CARTE ADHÉRENT DU FORMULAIRE
// form action="cartemanuelle_verifmail_envoicarte"
// DU FICHIER /views/page_templates/formulaire_cartemanuelle_mail.ejs
router.post('/adhesion/cartemanuelle_verifmail_envoicarte', post_cartemanuelle_verifmail_envoicarte);
router.post('/cartemanuelle_verifmail_envoicarte', post_cartemanuelle_verifmail_envoicarte);
/////////////////////////////////////////////////
// ENVOI MANUEL CARTE ADHÉSION ET JUSTIFICATIF DE DON (SI DON)
@@ -218,7 +269,7 @@ router.post('/adhesion/cartemanuelle_verifmail_envoicarte', post_cartemanuelle_v
// GET URL https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion/carte_manuelle
/////////////////////////////////////////////////
router.get('/adhesion/cartes_manuelles', function(req, res) {
router.get('/cartes_manuelles', function(req, res) {
logger.info("ON EST DANS ROUTE cartes_manuelles", { numsession: req.session.id });
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
// LE CONTENU DE CES VARIABLES ERREURS EST MIS DANS LE PROGRAMME ET AFFICHÉ AU RECHARGEMENT DE LA PAGE
@@ -247,11 +298,132 @@ router.get('/adhesion/cartes_manuelles', function(req, res) {
// CLIC SUR LE BOUTON ENVOYER CARTES ADHÉRENTS
// form action="cartes_manuelles_envoi"
// DU FICHIER /views/page_templates/adhesion_cartes_manuelles.ejs
router.post('/adhesion/cartes_manuelles_envoi', post_cartes_manuelles_envoi);
router.post('/cartes_manuelles_envoi', post_cartes_manuelles_envoi);
/////////////////////////////////////////////////
// GOOGLE SHEET
// DÉCHARGEMENT DES DONNÉES DANS GOOGLE SHEET
// AUTO LA NUIT AVEC WEB HOOK
/////////////////////////////////////////////////
router.get('/maj_googlesheet_auto', async function(req, res) {
logger.info("on est dans la page web maj_googlesheet_auto (adhesionRouter.js)", { numsession: req.session.id });
try {
// Appelle la fonction maj_googlesheet_auto du contrôleur
const result = await maj_googlesheet_auto(req, res);
res.status(200).json({
success: true,
message: "router - Mise à jour Google Sheet réussie maj_googlesheet_auto",
nb_onglet_adherent: result.nb_onglet_adherent,
nb_onglet_prof: result.nb_onglet_prof,
nb_onglet_stagiaires: result.nb_onglet_stagiaires,
nb_onglet_eleves: result.nb_onglet_eleves,
nb_onglet_adh_att: result.nb_onglet_adh_att,
nb_onglet_finance: result.nb_onglet_finance,
data: result,
});
} catch (error) {
res.status(500).json({
success: false,
message: "router - Mise à jour Google Sheet ECHEC maj_googlesheet_auto",
data: result,
});
}
});
/////////////////////////////////////////////////
// GOOGLE SHEET
// DÉCHARGEMENT DES DONNÉES DANS GOOGLE SHEET
// ‼️‼️‼️ N'est plus utilisé
/////////////////////////////////////////////////
router.get('/maj_googlesheet', function(req, res) {
logger.info("on est dans la page web maj_googlesheet (adhesionRouter.js)", { numsession: req.session.id });
// Pour afficher le résultats des requêtes de récupérations
res.locals.message = req.session.message;
res.locals.message2 = req.session.message2;
res.locals.message3 = req.session.message3;
res.locals.message4 = req.session.message4;
res.locals.message5 = req.session.message5;
res.locals.nb_adherent_maj = req.session.nb_adherent_maj;
res.locals.nb_prof_maj = req.session.nb_prof_maj;
res.locals.nb_prof_form_maj = req.session.nb_prof_form_maj;
res.locals.nb_eleve_maj = req.session.nb_eleve_maj;
res.locals.nb_finance_maj = req.session.nb_finance_maj;
res.locals.nb_adherent_en_attente_maj = req.session.nb_adherent_en_attente_maj;
// il faut initialiser les variables après les avoir copiées dans la variable d'affichage pour ne pas laisser un chiffre
req.session.message = undefined;
req.session.message2 = undefined;
req.session.message3 = undefined;
req.session.message4 = undefined;
req.session.message5 = undefined;
req.session.nb_adherent_maj = undefined;
req.session.nb_prof_maj = undefined;
req.session.nb_prof_form_maj = undefined;
req.session.nb_eleve_maj = undefined;
req.session.nb_finance_maj = undefined;
req.session.nb_adherent_en_attente_maj = undefined;
res.render('adhesion/page_templates/maj_googlesheet.ejs');
});
// CLIC SUR LE BOUTON "Mettre à jour GSheet"
router.post('/form_maj_googlesheet', maj_googlesheet);
/////////////////////////////////////////////////
// METTRE À JOUR LE STATUS DE PAIEMENT
// MANUELLEMENT
// DANS LA BD
/////////////////////////////////////////////////
// CLIC SUR LE BOUTON "Valider" de la page /maj_googlesheet
router.post('/form_maj_statut_paiement_manuel', maj_statut_paiement_manuel);
/////////////////////////////////////////////////
// SUPPRIMER UN ADHERENT
// METTRE "supprime" à la place de son identifiant
/////////////////////////////////////////////////
// CLIC SUR LE BOUTON "Valider" de la page /maj_googlesheet
router.post('/form_maj_suppr_adherent', suppr_adherent);
/////////////////////////////////////////////////
// ASSOCIATIONS LOCACLES
// IMPORTS ADHÉRENTS DANS DB
// CLIC SUR LE BOUTON "Valider" de la page /maj_googlesheet
/////////////////////////////////////////////////
//router.post('/form_import_ass_locales', import_ass_loacles);
router.post('/form_import_ass_locales', import_ass_locales_v2);
/////////////////////////////////////////////////
// ENVOI DE CARTE ADHERENT
/////////////////////////////////////////////////
router.get('/adhesion_envoi_carte/:identifiant_afps', adhesion_envoi_carte);
/////////////////////////////////////////////////
// GÉNÉRATION DE CODE
// CLIC SUR LE BOUTON "Générer" de la page /maj_googlesheet
/////////////////////////////////////////////////
router.post('/form_generation_codes', generer_codes);
/////////////////////////////////////////////////
// EXPORT DES PROFESSEURS POUR STRAPI ET ANNUAIRE SITE AFPS
/////////////////////////////////////////////////
// déclenche manuellement la synchro en visitant /admin/sync
router.get("/sync_prof_strapi", async (req, res, next) => {
try {
const result = await runSync_prof_strapi(req, res);
//res.json({ ok: true, ...result });
} catch (e) {
next(e);
}
});
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS

View File

@@ -1,16 +1,23 @@
/////////////////////////////////////////////////
// ACCUEIL DU SITE OU DE L'APPLICATION
// [DOMAIN]/
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger");
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename);
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express();
//const router = express.Router();
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
wh_stripe,
} = require("../controllers/whstripeController");
/////////////////////////////////////////////////
// ROUTES
@@ -19,11 +26,16 @@ logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename);
// si l'URL est appelé on lui envoie la page html inscription_accueil.ejs (c'est un template)
router.get('/', function(req,res) {
logger.info("on est dans la page web d'accueil ADUZUKI", { numsession: req.session.id });
logger.info("on est dans la page web racine ADUZUKI (appRouter.js)", { numsession: req.session.id });
res.render('app/page_templates/inscription_accueil');
});
// STRIPE WEBHOOK
router.post('/wh_stripe', express.raw({ type: 'application/json' }), wh_stripe);
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////

151
routes/concertRouter.js Normal file
View File

@@ -0,0 +1,151 @@
/////////////////////////////////////////////////
// CONCERT ANNUEL
// VENTE UNIQUEMENT DES PLACES SPECTATEUR
// [DOMAIN]/concert
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_concert");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
const path = require("path");
////////////////////////////////////////////////////
// FILE NAME
////////////////////////////////////////////////////
const filename = path.parse(__filename).base;
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const affiche_identifier_controller = require("../controllers/concert_annuel/affiche_identiferController");
const identifier_controller = require("../controllers/concert_annuel/identiferController");
const inscription_familleController = require("../controllers/concert_annuel/inscription_familleController");
const inscription_spectateurController = require("../controllers/concert_annuel/inscription_spectateurController");
const inscription_listeattente = require("../controllers/concert_annuel/inscription_listeattenteController");
const payerController = require("../controllers/concert_annuel/payerController");
const retourStripeController = require("../controllers/concert_annuel/retourStripeController");
const recup_gs_controller = require("../controllers/concert_annuel/maj_gs_concertController");
const weez_controller = require("../controllers/concert_annuel/weez_concertController");
const admin_controller = require("../controllers/concert_annuel/adminController");
const ajout_controller = require("../controllers/concert_annuel/ajout_concertController");
const ajout_familleController = require("../controllers/concert_annuel/ajout_familleController");
const ajout_payerController = require("../controllers/concert_annuel/ajout_payerController");
const inscription_spectateur_tous = require("../controllers/concert_annuel/inscrip_spectateur_tousController");
const inscription_spectateur_tous_recap = require("../controllers/concert_annuel/inscription_spectateur_tous_recapController");
//const weez_controller = require("../controllers/concert_annuel/weeztoken_concertController");
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// 1 - AFFICHER PAGE CHECK IDENTIFIANT
/////////////////////////////////////////////////
router.get('/', function(req, res) {
logger.info("on est dans la page web CONCERT (concertRouter.js)", { numsession: req.session.id });
// rediriger vers la page de saisie de l'identifiant
res.render('concert/page_templates/inscrip_termine');
});
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// ADMIN
/////////////////////////////////////////////////
router.get('/admin', admin_controller.adminController);
// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/admin', ajout_controller.checkidentifiant);
router.get('/admin/inscription_famille', function(req, res) {
logger.info("on est dans la page web CONCERT AJOUT inscription famille (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
console.log("res.locals.spectateur_nb_restantes = ", res.locals.spectateur_nb_restantes)
res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
res.locals.tout_instrument_nb_restantes = req.session.tout_instrument_nb_restantes;
res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;
res.locals.deja_inscrit_concert = req.session.deja_inscrit_concert;
res.locals.quota_spectateur = req.session.quota_spectateur;
res.locals.quota_concertiste = req.session.quota_concertiste;
res.locals.quota_spectateur = req.session.quota_spectateur;
res.locals.quota_total_spectateur = req.session.quota_total_spectateur;
res.render('concert/page_templates/ajout_formulaire_famille');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/admin/inscription_famille', ajout_familleController.inscription_famille);
router.get('/admin/inscription_recap', function(req, res) {
logger.info("on est dans la page web CONCERT Récapitulatif inscription (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.hebergement_ville = req.session.hebergement_ville;
res.locals.hebergement_nb = req.session.hebergement_nb;
res.locals.spectateur_nb_place = req.session.spectateur_nb_place;
res.locals.cout_concertiste = req.session.cout_concertiste;
res.locals.cout_spectateur = req.session.cout_spectateur;
res.locals.montant_total = req.session.montant_total;
res.locals.don = req.session.don;
for (let toto = 1; toto < 5; toto++) {
if (req.session["eleve_"+toto+"_nom"]){
res.locals["eleve_"+toto+"_numero"] = toto;
res.locals["eleve_"+toto+"_nom"] = req.session["eleve_"+toto+"_nom"];
res.locals["eleve_"+toto+"_prenom"] = req.session["eleve_"+toto+"_prenom"];
res.locals["eleve_"+toto+"_age"] = req.session["eleve_"+toto+"_age"];
res.locals["eleve_"+toto+"_instrument"] = req.session["eleve_"+toto+"_instrument"];
res.locals["eleve_"+toto+"_cahier"] = req.session["eleve_"+toto+"_cahier"];
res.locals["eleve_"+toto+"_piece"] = req.session["eleve_"+toto+"_piece"];
res.locals["eleve_"+toto+"_prof_nom"] = req.session["eleve_"+toto+"_prof_nom"];
res.locals["eleve_"+toto+"_prof_mail"] = req.session["eleve_"+toto+"_prof_mail"];
}
}
for (let toto = 1; toto < 5; toto++) {
if (req.session["encadrant_"+toto+"_nom"]){
res.locals["encadrant_"+toto+"_numero"] = toto;
res.locals["encadrant_"+toto+"_type"] = req.session["encadrant_"+toto+"_type"];
res.locals["encadrant_"+toto+"_nom"] = req.session["encadrant_"+toto+"_nom"];
res.locals["encadrant_"+toto+"_prenom"] = req.session["encadrant_"+toto+"_prenom"];
res.locals["encadrant_"+toto+"_telephone_mobile"] = req.session["encadrant_"+toto+"_telephone_mobile"];
res.locals["encadrant_"+toto+"_mail"] = req.session["encadrant_"+toto+"_mail"];
res.locals["encadrant_"+toto+"_prof_instrument"] = req.session["encadrant_"+toto+"_prof_instrument"];
}
}
console.log("req.session.montant_total = ", req.session.montant_total);
res.render('concert/page_templates/inscrip_recap_famille_sanspaiement.ejs');
});
// CLIC sur VALIDER pour inscription sans paiement
router.post('/admin/post_valid_recap', ajout_payerController.payer);
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

View File

@@ -0,0 +1,273 @@
/////////////////////////////////////////////////
// STAGE NATIONAL
// [DOMAIN]/concert
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_concert");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const affiche_identifier_controller = require("../controllers/concert_annuel/affiche_identiferController");
const identifier_controller = require("../controllers/concert_annuel/identiferController");
const inscription_familleController = require("../controllers/concert_annuel/inscription_familleController");
const inscription_listeattente = require("../controllers/concert_annuel/inscription_listeattenteController");
const payerController = require("../controllers/concert_annuel/payerController");
const retourStripeController = require("../controllers/concert_annuel/retourStripeController");
const recup_gs_controller = require("../controllers/concert_annuel/maj_gs_concertController");
const weez_controller = require("../controllers/concert_annuel/weez_concertController");
const ajout_controller = require("../controllers/concert_annuel/ajout_concertController");
//const weez_controller = require("../controllers/concert_annuel/weeztoken_concertController");
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// 1 - AFFICHER PAGE CHECK IDENTIFIANT
/////////////////////////////////////////////////
router.get('/', function(req, res) {
logger.info("on est dans la page web CONCERT (concertRouter.js)", { numsession: req.session.id });
// rediriger vers la page de saisie de l'identifiant
res.redirect('/concert/identifier');
});
/////////////////////////////////////////////////
// 1. QUAND ON ARRIVE SUR LA PAGE CHECK IDENTIFIANT :
// AFFICHAGE DU NOMBRE DE PLACES RESTANTES
/////////////////////////////////////////////////
router.get('/identifier', affiche_identifier_controller.openidentifiant);
/////////////////////////////////////////////////
// 2. SAISIE DU L'IDENTIFIANT
// VÉRIFICATION SI L'IDENTIFIANT EST ADHÉRENT
/////////////////////////////////////////////////
// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/identifier', identifier_controller.checkidentifiant);
/////////////////////////////////////////////////
// 3 - PAGE INSCRIPTION FAMILLE
/////////////////////////////////////////////////
router.get('/inscription_famille', function(req, res) {
logger.info("on est dans la page web CONCERT inscription famille (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
console.log("res.locals.spectateur_nb_restantes = ", res.locals.spectateur_nb_restantes)
res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
res.locals.tout_instrument_nb_restantes = req.session.tout_instrument_nb_restantes;
res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;
res.locals.deja_inscrit_concert = req.session.deja_inscrit_concert;
res.locals.quota_spectateur = req.session.quota_spectateur;
res.locals.quota_concertiste = req.session.quota_concertiste;
res.render('concert/page_templates/inscrip_formulaire_famille');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/inscription_famille', inscription_familleController.inscription_famille);
/////////////////////////////////////////////////
// !!!! NON UTILISÉ
//
// 3 bis - PAGE AJOUT BILLET POUR FAMILLE DÉJA INSCRITE
/////////////////////////////////////////////////
router.get('/ajout_billet', function(req, res) {
logger.info("on est dans la page web CONCERT ajout billet (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
res.render('concert/page_templates/ajout_billet');
});
/////////////////////////////////////////////////
// 3 ter - PAGE LISTE ATTENTE
/////////////////////////////////////////////////
router.get('/listeattente', function(req, res) {
logger.info("on est dans la page web CONCERT listeattente (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;
res.render('concert/page_templates/inscrip_liste_attente');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE LISTE D'ATTENTE
router.post('/listeattente', inscription_listeattente.inscription_listeattente);
/////////////////////////////////////////////////
// 4 - PAGE RECAP
// enregistrement dans la BD des participants
// Envoie vers Stripe
/////////////////////////////////////////////////
router.get('/inscription_recap', function(req, res) {
logger.info("on est dans la page web CONCERT Récapitulatif inscription (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.hebergement_ville = req.session.hebergement_ville;
res.locals.hebergement_nb = req.session.hebergement_nb;
res.locals.spectateur_nb_place = req.session.spectateur_nb_place;
res.locals.cout_concertiste = req.session.cout_concertiste;
res.locals.cout_spectateur = req.session.cout_spectateur;
res.locals.montant_total = req.session.montant_total;
res.locals.don = req.session.don;
for (let toto = 1; toto < 5; toto++) {
if (req.session["eleve_"+toto+"_nom"]){
res.locals["eleve_"+toto+"_numero"] = toto;
res.locals["eleve_"+toto+"_nom"] = req.session["eleve_"+toto+"_nom"];
res.locals["eleve_"+toto+"_prenom"] = req.session["eleve_"+toto+"_prenom"];
res.locals["eleve_"+toto+"_age"] = req.session["eleve_"+toto+"_age"];
res.locals["eleve_"+toto+"_instrument"] = req.session["eleve_"+toto+"_instrument"];
res.locals["eleve_"+toto+"_cahier"] = req.session["eleve_"+toto+"_cahier"];
res.locals["eleve_"+toto+"_piece"] = req.session["eleve_"+toto+"_piece"];
res.locals["eleve_"+toto+"_prof_nom"] = req.session["eleve_"+toto+"_prof_nom"];
res.locals["eleve_"+toto+"_prof_mail"] = req.session["eleve_"+toto+"_prof_mail"];
}
}
for (let toto = 1; toto < 5; toto++) {
if (req.session["encadrant_"+toto+"_nom"]){
res.locals["encadrant_"+toto+"_numero"] = toto;
res.locals["encadrant_"+toto+"_type"] = req.session["encadrant_"+toto+"_type"];
res.locals["encadrant_"+toto+"_nom"] = req.session["encadrant_"+toto+"_nom"];
res.locals["encadrant_"+toto+"_prenom"] = req.session["encadrant_"+toto+"_prenom"];
res.locals["encadrant_"+toto+"_telephone_mobile"] = req.session["encadrant_"+toto+"_telephone_mobile"];
res.locals["encadrant_"+toto+"_mail"] = req.session["encadrant_"+toto+"_mail"];
res.locals["encadrant_"+toto+"_prof_instrument"] = req.session["encadrant_"+toto+"_prof_instrument"];
}
}
console.log("req.session.montant_total = ", req.session.montant_total);
if (req.session.montant_total > 0){
res.render('concert/page_templates/inscrip_recap_famille.ejs');
} else {
res.render('concert/page_templates/inscrip_recap_famille_sanspaiement.ejs');
}
});
// CLIC sur PAYER
router.post('/post_payer', payerController.payer);
// CLIC sur VALIDER pour inscription sans paiement
router.post('/post_valid_recap', payerController.payer);
/////////////////////////////////////////////////
// 5 - RETOUR STRIPE
// enregistrement dans la BD des participants
/////////////////////////////////////////////////
router.get('/concert_paiement/reussi', retourStripeController.retour_bank);
router.get('/concert_paiement/annule', retourStripeController.retour_bank);
/////////////////////////////////////////////////
// GOOGLE SHEET
// DÉCHARGEMENT DES DONNÉES DANS GOOGLE SHEET
/////////////////////////////////////////////////
router.get('/maj_googlesheet', function(req, res) {
logger.info("on est dans la page web maj_googlesheet (concertRouter.js)", { numsession: req.session.id });
// Pour afficher le résultats des requêtes de récupérations
res.locals.message = req.session.message;
res.locals.message2 = req.session.message2;
// il faut initialiser les variables après les avoir copiées dans la variable d'affichage pour ne pas laisser un chiffre
req.session.message = undefined;
req.session.message2 = undefined;
res.render('concert/page_templates/maj_googlesheet.ejs');
});
/////////////////////////////////////////////////
// ADMIN
router.get('/admin', function(req, res) {
if (req.session.err_mail_form_adhesion_1) {
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
// on supprime le contenu après affichage
req.session.err_mail_form_adhesion_1 = undefined;
req.session.err_mail_form_adhesion_2 = undefined;
req.session.err_mail_form_adhesion_3 = undefined;
}
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('concert/page_templates/admin');
});
// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/ajout', ajout_controller.checkidentifiant);
router.get('/admin/inscription_famille', function(req, res) {
logger.info("on est dans la page web CONCERT AJOUT inscription famille (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
console.log("res.locals.spectateur_nb_restantes = ", res.locals.spectateur_nb_restantes)
res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
res.locals.tout_instrument_nb_restantes = req.session.tout_instrument_nb_restantes;
res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;
res.locals.deja_inscrit_concert = req.session.deja_inscrit_concert;
res.locals.quota_spectateur = req.session.quota_spectateur;
res.locals.quota_concertiste = req.session.quota_concertiste;
res.render('concert/page_templates/ajout_formulaire_famille');
});
/////////////////////////////////////////////////
// TEST
/////////////////////////////////////////////////
// CLIC SUR LE BOUTON "Mettre à jour GSheet"
router.post('/onglet_adherent', recup_gs_controller.recup_gs);
// CLIC SUR LE BOUTON "Envoyer" à Weezevent
router.post('/envoie_weezevent', weez_controller.weez_envoie);
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

View File

@@ -0,0 +1,260 @@
/////////////////////////////////////////////////
// CONCERT ANNUEL
// VENTE UNIQUEMENT DES PLACES SPECTATEUR
// [DOMAIN]/concert
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_concert");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
const path = require("path");
////////////////////////////////////////////////////
// FILE NAME
////////////////////////////////////////////////////
const filename = path.parse(__filename).base;
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const affiche_identifier_controller = require("../controllers/concert_annuel/affiche_identiferController");
const identifier_controller = require("../controllers/concert_annuel/identiferController");
const inscription_familleController = require("../controllers/concert_annuel/inscription_familleController");
const inscription_spectateurController = require("../controllers/concert_annuel/inscription_spectateurController");
const inscription_listeattente = require("../controllers/concert_annuel/inscription_listeattenteController");
const payerController = require("../controllers/concert_annuel/payerController");
const retourStripeController = require("../controllers/concert_annuel/retourStripeController");
const recup_gs_controller = require("../controllers/concert_annuel/maj_gs_concertController");
const weez_controller = require("../controllers/concert_annuel/weez_concertController");
const admin_controller = require("../controllers/concert_annuel/adminController");
const ajout_controller = require("../controllers/concert_annuel/ajout_concertController");
const ajout_familleController = require("../controllers/concert_annuel/ajout_familleController");
const ajout_payerController = require("../controllers/concert_annuel/ajout_payerController");
const inscription_spectateur_tous = require("../controllers/concert_annuel/inscrip_spectateur_tousController");
const inscription_spectateur_tous_recap = require("../controllers/concert_annuel/inscription_spectateur_tous_recapController");
//const weez_controller = require("../controllers/concert_annuel/weeztoken_concertController");
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// 1 - AFFICHER PAGE CHECK IDENTIFIANT
/////////////////////////////////////////////////
router.get('/', function(req, res) {
logger.info("on est dans la page web CONCERT (concertRouter.js)", { numsession: req.session.id });
// rediriger vers la page de saisie de l'identifiant
res.redirect('/concert/identifier');
});
/////////////////////////////////////////////////
// 1. QUAND ON ARRIVE SUR LA PAGE CHECK IDENTIFIANT :
// AFFICHAGE DU NOMBRE DE PLACES RESTANTES
/////////////////////////////////////////////////
router.get('/identifier', affiche_identifier_controller.openidentifiant);
// VENTE DES PLACES RESTANTES VIA WEEZEVENT
// router.get('/identifier', function(req, res) {
// logger.info("on affiche la page web CONCERT inscription spectateur (concertRouter.js)", { numsession: req.session.id });
// res.render('concert/page_templates/achat_spectateur_tous');
// });
/////////////////////////////////////////////////
// 2. SAISIE DU L'IDENTIFIANT
// VÉRIFICATION SI L'IDENTIFIANT EST ADHÉRENT
/////////////////////////////////////////////////
// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/identifier', identifier_controller.checkidentifiant_spectateur);
/////////////////////////////////////////////////
// 3 - PAGE ACHAT PLACES SPECTATEUR
/////////////////////////////////////////////////
router.get('/inscription_spectateur', function(req, res) {
logger.info("on affiche la page web CONCERT inscription spectateur (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
res.locals.quota_spectateur = req.session.quota_spectateur;
res.locals.quota_total_spectateur = req.session.quota_total_spectateur;
res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
logger.info("res.locals.encadr_parent_nb_restantes : " + res.locals.encadr_parent_nb_restantes, { numsession: req.session.id, label: filename });
res.render('concert/page_templates/achat_spectateur');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/inscription_spectateur', inscription_spectateurController.inscription_spectateur);
/////////////////////////////////////////////////
// 3 bis - PAGE ACHAT PLACES SPECTATEUR TOUT PUBLIC
/////////////////////////////////////////////////
//router.get('/inscription_spectateur_tous', inscription_spectateur_tous.inscription_spectateur_tous);
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/inscription_spectateur_tous', inscription_spectateur_tous_recap.inscription_spectateur_tous_recap);
/////////////////////////////////////////////////
// 4 - PAGE RECAP
// enregistrement dans la BD des participants
// Envoie vers Stripe
/////////////////////////////////////////////////
router.get('/inscription_recap', function(req, res) {
logger.info("on est dans la page web CONCERT Récapitulatif inscription (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.hebergement_ville = req.session.hebergement_ville;
res.locals.hebergement_nb = req.session.hebergement_nb;
res.locals.spectateur_nb_place = req.session.spectateur_nb_place;
res.locals.cout_concertiste = req.session.cout_concertiste;
res.locals.cout_spectateur = req.session.cout_spectateur;
res.locals.montant_total = req.session.montant_total;
res.locals.don = req.session.don;
for (let toto = 1; toto < 5; toto++) {
if (req.session["eleve_"+toto+"_nom"]){
res.locals["eleve_"+toto+"_numero"] = toto;
res.locals["eleve_"+toto+"_nom"] = req.session["eleve_"+toto+"_nom"];
res.locals["eleve_"+toto+"_prenom"] = req.session["eleve_"+toto+"_prenom"];
res.locals["eleve_"+toto+"_age"] = req.session["eleve_"+toto+"_age"];
res.locals["eleve_"+toto+"_instrument"] = req.session["eleve_"+toto+"_instrument"];
res.locals["eleve_"+toto+"_cahier"] = req.session["eleve_"+toto+"_cahier"];
res.locals["eleve_"+toto+"_piece"] = req.session["eleve_"+toto+"_piece"];
res.locals["eleve_"+toto+"_prof_nom"] = req.session["eleve_"+toto+"_prof_nom"];
res.locals["eleve_"+toto+"_prof_mail"] = req.session["eleve_"+toto+"_prof_mail"];
}
}
for (let toto = 1; toto < 5; toto++) {
if (req.session["encadrant_"+toto+"_nom"]){
res.locals["encadrant_"+toto+"_numero"] = toto;
res.locals["encadrant_"+toto+"_type"] = req.session["encadrant_"+toto+"_type"];
res.locals["encadrant_"+toto+"_nom"] = req.session["encadrant_"+toto+"_nom"];
res.locals["encadrant_"+toto+"_prenom"] = req.session["encadrant_"+toto+"_prenom"];
res.locals["encadrant_"+toto+"_telephone_mobile"] = req.session["encadrant_"+toto+"_telephone_mobile"];
res.locals["encadrant_"+toto+"_mail"] = req.session["encadrant_"+toto+"_mail"];
res.locals["encadrant_"+toto+"_prof_instrument"] = req.session["encadrant_"+toto+"_prof_instrument"];
}
}
console.log("req.session.montant_total = ", req.session.montant_total);
if (req.session.montant_total > 0){
res.render('concert/page_templates/inscrip_recap_famille.ejs');
} else {
res.render('concert/page_templates/inscrip_recap_famille_sanspaiement.ejs');
}
});
// CLIC sur PAYER
router.post('/inscription_recap', payerController.payer);
// CLIC sur VALIDER pour inscription sans paiement
router.post('/post_valid_recap', payerController.payer);
/////////////////////////////////////////////////
// 5 - RETOUR STRIPE
// enregistrement dans la BD des participants
/////////////////////////////////////////////////
router.get('/concert_paiement/reussi', retourStripeController.retour_bank);
router.get('/concert_paiement/annule', retourStripeController.retour_bank);
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// ADMIN
/////////////////////////////////////////////////
router.get('/admin', admin_controller.adminController);
// CLIC "S'INSCRIRE" => VÉRIFICATION IDENTIFIANT
router.post('/admin', ajout_controller.checkidentifiant);
router.get('/admin/inscription_famille', function(req, res) {
logger.info("on est dans la page web CONCERT AJOUT inscription famille (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes;
console.log("res.locals.spectateur_nb_restantes = ", res.locals.spectateur_nb_restantes)
res.locals.encadr_parent_nb_restantes = req.session.encadr_parent_nb_restantes;
res.locals.tout_instrument_nb_restantes = req.session.tout_instrument_nb_restantes;
res.locals.piano_nb_restantes = req.session.piano_nb_restantes;
res.locals.alto_nb_restantes = req.session.alto_nb_restantes;
res.locals.flute_nb_restantes = req.session.flute_nb_restantes;
res.locals.trompette_nb_restantes = req.session.trompette_nb_restantes;
res.locals.harpe_nb_restantes = req.session.harpe_nb_restantes;
res.locals.violon1_nb_restantes = req.session.violon1_nb_restantes;
res.locals.violon2_nb_restantes = req.session.violon2_nb_restantes;
res.locals.violoncelle1_nb_restantes = req.session.violoncelle1_nb_restantes;
res.locals.violoncelle2_nb_restantes = req.session.violoncelle2_nb_restantes;
res.locals.deja_inscrit_concert = req.session.deja_inscrit_concert;
res.locals.quota_spectateur = req.session.quota_spectateur;
res.locals.quota_concertiste = req.session.quota_concertiste;
res.locals.quota_spectateur = req.session.quota_spectateur;
res.locals.quota_total_spectateur = req.session.quota_total_spectateur;
res.render('concert/page_templates/ajout_formulaire_famille');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/admin/inscription_famille', ajout_familleController.inscription_famille);
router.get('/admin/inscription_recap', function(req, res) {
logger.info("on est dans la page web CONCERT Récapitulatif inscription (concertRouter.js)", { numsession: req.session.id });
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.hebergement_ville = req.session.hebergement_ville;
res.locals.hebergement_nb = req.session.hebergement_nb;
res.locals.spectateur_nb_place = req.session.spectateur_nb_place;
res.locals.cout_concertiste = req.session.cout_concertiste;
res.locals.cout_spectateur = req.session.cout_spectateur;
res.locals.montant_total = req.session.montant_total;
res.locals.don = req.session.don;
for (let toto = 1; toto < 5; toto++) {
if (req.session["eleve_"+toto+"_nom"]){
res.locals["eleve_"+toto+"_numero"] = toto;
res.locals["eleve_"+toto+"_nom"] = req.session["eleve_"+toto+"_nom"];
res.locals["eleve_"+toto+"_prenom"] = req.session["eleve_"+toto+"_prenom"];
res.locals["eleve_"+toto+"_age"] = req.session["eleve_"+toto+"_age"];
res.locals["eleve_"+toto+"_instrument"] = req.session["eleve_"+toto+"_instrument"];
res.locals["eleve_"+toto+"_cahier"] = req.session["eleve_"+toto+"_cahier"];
res.locals["eleve_"+toto+"_piece"] = req.session["eleve_"+toto+"_piece"];
res.locals["eleve_"+toto+"_prof_nom"] = req.session["eleve_"+toto+"_prof_nom"];
res.locals["eleve_"+toto+"_prof_mail"] = req.session["eleve_"+toto+"_prof_mail"];
}
}
for (let toto = 1; toto < 5; toto++) {
if (req.session["encadrant_"+toto+"_nom"]){
res.locals["encadrant_"+toto+"_numero"] = toto;
res.locals["encadrant_"+toto+"_type"] = req.session["encadrant_"+toto+"_type"];
res.locals["encadrant_"+toto+"_nom"] = req.session["encadrant_"+toto+"_nom"];
res.locals["encadrant_"+toto+"_prenom"] = req.session["encadrant_"+toto+"_prenom"];
res.locals["encadrant_"+toto+"_telephone_mobile"] = req.session["encadrant_"+toto+"_telephone_mobile"];
res.locals["encadrant_"+toto+"_mail"] = req.session["encadrant_"+toto+"_mail"];
res.locals["encadrant_"+toto+"_prof_instrument"] = req.session["encadrant_"+toto+"_prof_instrument"];
}
}
console.log("req.session.montant_total = ", req.session.montant_total);
res.render('concert/page_templates/inscrip_recap_famille_sanspaiement.ejs');
});
// CLIC sur VALIDER pour inscription sans paiement
router.post('/admin/post_valid_recap', ajout_payerController.payer);
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

69
routes/donRouter.js Normal file
View File

@@ -0,0 +1,69 @@
/////////////////////////////////////////////////
// ADHÉSION
// [DOMAIN]/inscription
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_wuzuki");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
const moment = require('moment');
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
post_form_don,
don_accompte_reussi,
don_accompte_annule,
test_weasyprint
} = require("../controllers/donController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
// 1 - Saisie des informations
router.get('/', function(req, res) {
logger.info("on est dans la page web /don (donrouter.js)", { numsession: req.session.id });
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
if (req.session.affiche_err_1) {
res.locals.affiche_err_1 = req.session.affiche_err_1;
// on supprime le contenu après affichage
req.session.affiche_err_1 = undefined;
}
res.locals.dirname = __dirname;
// affichage du template ejs /views/page_templates/formulaire_adhesion_mail.ejs
res.render('don/page_templates/formulaire_don');
});
// 2 - Récupérer et traiter les informations
router.post('/', post_form_don);
// 3 - RETOUR STRIPE
router.get('/paiement_reussi', don_accompte_reussi);
router.get('/paiement_annule', don_accompte_annule);
// TEST WEASYPRINT
router.get('/test', test_weasyprint);
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

View File

@@ -1,23 +1,23 @@
/////////////////////////////////////////////////
// RASSEMBLEMENT IDF
// [DOMAIN]/stagenational
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger");
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename, { label: __filename });
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
const path = require("path");
////////////////////////////////////////////////////
// FILE NAME
////////////////////////////////////////////////////
const filename = path.parse(__filename).base;
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
@@ -28,7 +28,8 @@ const {
post_recap_modifier,
post_payer_ri,
RI_accompte_reussi,
RI_accompte_annule
RI_accompte_annule,
RI_post_valid_ss_paiement
} = require("../controllers/rassemblementController");
/////////////////////////////////////////////////
@@ -44,7 +45,14 @@ const {
// derrière on dirige vers la page d'identification
router.get('/', function(req, res) {
// rediriger vers la page de saisie de l'identifiant
res.redirect('/rassemblementidf/identifier');
// 🔚 FIN DES INSCRIPTIONS ON MET EN COMMENTAIRE LA LIGNE CI DESSOUS
// res.redirect('/rassemblementidf/identifier');
// 🔚 FIN DES INSCRIPTIONS
// ON DIRIGE VERS LA PAGE "INSCRIPTION TERMINÉE"
res.render('rassemblementidf/page_templates/fermeture');
});
router.get('/identifier', function(req, res) {
if (req.session.err_mail_form_adhesion_1) {
@@ -58,6 +66,7 @@ router.get('/identifier', function(req, res) {
}
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('rassemblementidf/page_templates/inscrip_formulaire_identifier');
//res.render('rassemblementidf/page_templates/panne');
});
// SCRIPT SUR CLIC "S'INSCRIRE" POUR CHECKER IDENTIFIANT
@@ -68,13 +77,8 @@ router.post('/identifier', RI_checkidentifiant);
// 2 - SAISIE DU FORMULAIRE D'INSCRIPTION AU STAGE
router.get('/formulaire', function(req, res) {
res.locals.err_nbr_eleve = req.session.err_nbr_eleve;
// on supprime le contenu après affichage
res.locals.err_nbr_eleve = undefined;
res.locals.identifiant = req.session.identifiant;
res.locals.association = req.session.association;
res.locals.association_suzuki = req.session.association_suzuki;
res.locals.adherent_nom = req.session.adherent_nom;
res.locals.adherent_prenom = req.session.adherent_prenom;
@@ -86,6 +90,7 @@ router.get('/formulaire', function(req, res) {
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.bus_nb = req.session.bus_nb;
res.locals.accompagnant_nom = req.session.accompagnant_nom;
res.locals.accompagnant_prenom = req.session.accompagnant_prenom;
@@ -102,7 +107,7 @@ router.post('/formulaire', RI_checkinfos);
router.get('/recap', function(req, res) {
res.locals.identifiant = req.session.identifiant;
res.locals.association = req.session.association;
res.locals.association_suzuki = req.session.association_suzuki;
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;
@@ -113,21 +118,27 @@ router.get('/recap', function(req, res) {
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.accompagnant_prenom = req.session.accompagnant_prenom;
res.locals.accompagnant_nom = req.session.accompagnant_nom;
res.locals.bus_nb = req.session.bus_nb;
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+"_datenaissance"] = req.session["personne_"+toto+"_datenaissance"];
res.locals["personne_"+toto+"_age"] = req.session["personne_"+toto+"_age"];
res.locals["personne_"+toto+"_role"] = req.session["personne_"+toto+"_role"];
if (req.session["personne_"+toto+"_role"] === "instrumentiste") {
res.locals["infoaccompagnant"] = "oui";
logger.info("infoaccompagnant : " + res.locals["infoaccompagnant"], { numsession: req.session.id, label: filename});
}
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
res.locals["personne_"+toto+"_piece"] = req.session["personne_"+toto+"_piece"];
res.locals["personne_"+toto+"_prof"] = req.session["personne_"+toto+"_prof"];
res.locals["personne_"+toto+"_repas"] = req.session["personne_"+toto+"_repas"];
}
res.locals.cout_rassemblement = req.session.cout_rassemblement;
res.locals.cout_repas = req.session.cout_repas;
res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire;
res.locals.cout_total = req.session.cout_total;
@@ -142,69 +153,19 @@ router.get('/recap', function(req, res) {
// vir l'URL du POST dans l'onglet network de Chrome (type = document)
router.post('/post_recap_modifier', post_recap_modifier);
// PAGE RÉCAP - CLICK SUR LE BOUTON PAYER ACCOMPTE
// PAGE RÉCAP - CLICK SUR LE BOUTON PAYER
router.post('/post_payer_ri', post_payer_ri);
// PAGE RÉCAP - CLICK SUR LE BOUTON VALIDER (pas de paiement)
router.post('/post_recap_valid_ss_paiement', RI_post_valid_ss_paiement);
/////////////////////////////////////////////////
// 4 - PAIEMENT DE L'ACOMPTE
router.get('/paiement_reussi', RI_accompte_reussi);
router.get('/paiement_annule', RI_accompte_annule);
/////////////////////////////////////////////////
// 4 - SANS ACOMPTE INSCRIPTION RÉUSSIE
router.get('/inscription_reussi', function(req, res) {
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.montant_accompte;
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('stagenat/page_templates/inscription_reussi');
});
/////////////////////////////////////////////////

View File

@@ -0,0 +1,181 @@
/////////////////////////////////////////////////
// RASSEMBLEMENT Rhone Alpes
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
const path = require("path");
// CALCUL DE DATE
const moment = require('moment');
////////////////////////////////////////////////////
// FILE NAME
////////////////////////////////////////////////////
const filename = path.parse(__filename).base;
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
checkidentifiant,
RA_checkinfos,
post_recap_modifier,
post_payer_ra,
RA_accompte_reussi,
RA_accompte_annule,
RA_post_valid_ss_paiement
} = require("../controllers/rassemblementraController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// 1 - PAGE CHECK IDENTIFIANT
// AFFICHAGE DE LA PAGE
// URL du stage donné au public /rassemblementra pour une url facile à mémoriser
// derrière on dirige vers la page d'identification
router.get('/', function(req, res) {
// rediriger vers la page de saisie de l'identifiant
// 🔚 FIN DES INSCRIPTIONS ON MET EN COMMENTAIRE LA LIGNE CI DESSOUS
// res.redirect('/rassemblementra/identifier');
// 🔚 FIN DES INSCRIPTIONS
// ON DIRIGE VERS LA PAGE "INSCRIPTION TERMINÉE"
res.render('rassemblementra/page_templates/fermeture');
});
router.get('/identifier', function(req, res) {
if (req.session.err_mail_form_adhesion_1) {
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
// on supprime le contenu après affichage
req.session.err_mail_form_adhesion_1 = undefined;
req.session.err_mail_form_adhesion_2 = undefined;
req.session.err_mail_form_adhesion_3 = undefined;
}
// 🔚 FIN DES INSCRIPTIONS
// ON DIRIGE VERS LA PAGE "INSCRIPTION TERMINÉE"
res.render('rassemblementra/page_templates/fermeture');
// 🔚 FIN DES INSCRIPTIONS ON MET EN COMMENTAIRE LA LIGNE CI DESSOUS
// res.render('rassemblementra/page_templates/inscrip_formulaire_identifier');
//res.render('rassemblementra/page_templates/panne');
});
// SCRIPT SUR CLIC "S'INSCRIRE" POUR CHECKER IDENTIFIANT
router.post('/identifier', checkidentifiant);
/////////////////////////////////////////////////
// 2 - SAISIE DU FORMULAIRE D'INSCRIPTION AU STAGE
router.get('/formulaire', function(req, res) {
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
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.accompagnant_nom = req.session.accompagnant_nom;
res.locals.accompagnant_prenom = req.session.accompagnant_prenom;
// 🔚 FIN DES INSCRIPTIONS
// ON DIRIGE VERS LA PAGE "INSCRIPTION TERMINÉE"
res.render('rassemblementra/page_templates/fermeture');
// 🔚 FIN DES INSCRIPTIONS ON MET EN COMMENTAIRE LA LIGNE CI DESSOUS
//res.render('rassemblementra/page_templates/inscrip_formulaire');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/formulaire', RA_checkinfos);
/////////////////////////////////////////////////
// 3 - AFFICHER PAGE RÉCAP
router.get('/recap', function(req, res) {
res.locals.identifiant = req.session.identifiant;
res.locals.association_suzuki = req.session.association_suzuki;
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;
for (let toto = 1; toto < 5; 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+"_datenaissance"] = req.session["personne_"+toto+"_datenaissance"];
res.locals["personne_"+toto+"_age"] = req.session["personne_"+toto+"_age"];
res.locals["personne_"+toto+"_role"] = req.session["personne_"+toto+"_role"];
if (req.session["personne_"+toto+"_role"] === "instrumentiste") {
res.locals["infoaccompagnant"] = "oui";
logger.info("infoaccompagnant : " + res.locals["infoaccompagnant"], { numsession: req.session.id, label: filename});
}
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
res.locals["personne_"+toto+"_piece"] = req.session["personne_"+toto+"_piece"];
res.locals["personne_"+toto+"_prof"] = req.session["personne_"+toto+"_prof"];
}
res.locals.cout_rassemblement = req.session.cout_rassemblement;
res.locals.cout_total = req.session.cout_total;
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('rassemblementra/page_templates/recap');
});
// PAGE RÉCAP - CLICK SUR LE BOUTON MODIFIER
// EN CAS DE LIEN avec plusieurs / comme /stagenational/recap, il faut rappeler le premier (ici /stagenational)
// vir l'URL du POST dans l'onglet network de Chrome (type = document)
router.post('/post_recap_modifier', post_recap_modifier);
// PAGE RÉCAP - CLICK SUR LE BOUTON PAYER
router.post('/post_payer_ra', post_payer_ra);
// PAGE RÉCAP - CLICK SUR LE BOUTON VALIDER (pas de paiement)
router.post('/post_recap_valid_ss_paiement', RA_post_valid_ss_paiement);
/////////////////////////////////////////////////
// 4 - PAIEMENT DE L'ACOMPTE
router.get('/paiement_reussi', RA_accompte_reussi);
router.get('/paiement_annule', RA_accompte_annule);
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

View File

@@ -6,34 +6,32 @@
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger");
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename);
const logger = require("../public/js/app/logger_stagenat");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const path = require("path");
const express = require('express');
const router = express.Router();
// CALCUL DE DATE
const moment = require('moment');
moment.locale('fr');
let now = moment().format("YYYY-MM-DD HH:mm:ss");
////////////////////////////////////////////////////
// FILE NAME
////////////////////////////////////////////////////
const filename = path.parse(__filename).base;
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
SN_checkidentifiant,
SN_checkinfos,
post_recap_modifier,
post_payer_accompte,
post_enregistrer_inscrip_ssacompte,
SN_accompte_reussi,
SN_accompte_annule
} = require("../controllers/stagenatController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
const SN_checkidentifiant = require("../controllers/stage_national/stn_identifierController");
const SN_checkinfos = require("../controllers/stage_national/stn_formulaireController");
const post_payer_accompte = require("../controllers/stage_national/stn_payeracompteController");
const SN_retour_stripe = require("../controllers/stage_national/stn_retourstripeController");
/////////////////////////////////////////////////
// 1 - PAGE CHECK IDENTIFIANT
@@ -46,7 +44,7 @@ router.get('/', function(req, res) {
res.redirect('/stagenational/identifier');
});
router.get('/identifier', function(req, res) {
if (req.session.err_mail_form_adhesion_1) {
//if (req.session.err_mail_form_adhesion_1) {
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
@@ -54,182 +52,273 @@ router.get('/identifier', function(req, res) {
req.session.err_mail_form_adhesion_1 = undefined;
req.session.err_mail_form_adhesion_2 = undefined;
req.session.err_mail_form_adhesion_3 = undefined;
//}
// DATE LIMITE D'INSCRIPTION
// Date de process.env.sn_date_limite non incluse dans la période d'inscription
if (now > process.env.sn_date_limite) {
logger.info("DATE LIMITE DEPASSÉE", { numsession: req.session.id, label: filename});
req.session.datelimitedepass = "oui";
res.locals.datelimitedepass = "oui";
} else {
logger.info("DATE LIMITE NON DEPASSÉE", { numsession: req.session.id, label: filename});
req.session.datelimitedepass = "non";
res.locals.datelimitedepass = "non";
}
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('stagenat/page_templates/inscrip_formulaire_identifier');
});
// SCRIPT SUR CLIC "S'INSCRIRE" POUR CHECKER IDENTIFIANT
router.post('/identifier', SN_checkidentifiant);
router.post('/identifier', SN_checkidentifiant.SN_checkidentifiant);
/////////////////////////////////////////////////
// 2 - SAISIE DU FORMULAIRE D'INSCRIPTION AU STAGE
router.get('/formulaire', function(req, res) {
if (req.session.err_mineur == "oui") {
res.locals.err_mineur = 'Vous ne pouvez pas inscrire un enfant de moins de 14 ans (âge au premier jour du stage) sans adulte pour l\'accompagner.';
req.session.err_mineur = "non";
}
if (req.session.err_campado_capa == "oui") {
res.locals.err_campado_capa = "Il n'y a plus de place disponible pour inscrire une personne en Camp Ado";
req.session.err_campado_capa = "non";
}
res.locals.err_mineur = req.session.err_mineur;
// on supprime le contenu après affichage
res.locals.err_mineur = undefined;
logger.info("res.locals.err_campado_capa : " + res.locals.err_mineur, { numsession: req.session.id, label: filename});
logger.info("req.session.err_campado_capa : " + req.session.err_campado_capa, { numsession: req.session.id, label: filename});
res.locals.identifiant = req.session.identifiant;
res.locals.association = req.session.association;
logger.info("req.session.association_suzuki : " + req.session.association_suzuki);
res.locals.association_suzuki = req.session.association_suzuki;
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;
// INITIALISÉ LES VARIABLES DE SESSION AVANT DE REMPLIR LE FORMULAIRE
req.session.adherent_nom = "";
req.session.adherent_prenom = "";
req.session.adherent_adresse_rue = "";
req.session.adherent_adresse_complement = "";
req.session.adherent_adresse_codepostal = "";
req.session.adherent_adresse_ville = "";
req.session.adherent_adresse_pays = "";
req.session.adherent_telephone_mobile = "";
req.session.adherent_telephone_fixe = "";
req.session.adherent_mail = "";
req.session.hebergement = "";
req.session.commentaire_adherent = "";
req.body.adherent_nom = "";
req.body.adherent_prenom = "";
req.body.adherent_adresse_rue = "";
req.body.adherent_adresse_complement = "";
req.body.adherent_adresse_codepostal = "";
req.body.adherent_adresse_ville = "";
req.body.adherent_adresse_pays = "";
req.body.adherent_telephone = "";
req.body.adherent_mail = "";
req.body.hebergement = "";
req.body.commentaire_adherent = "";
for (let toto = 1; toto < 7; toto++) {
req.session[`personne_${toto}_nom`] = "";
req.session[`personne_${toto}_prenom`] = "";
req.session[`personne_${toto}_prise_charge_nom`] = "";
req.session[`personne_${toto}_datenaissance`] = "";
req.session[`personne_${toto}_transport_mode`] = "";
req.session[`personne_${toto}_transport_arret`] = "";
req.session[`personne_${toto}_role`] = "";
req.session[`personne_${toto}_profil`] = "";
req.session[`personne_${toto}_instrument`] = "";
req.session[`personne_${toto}_instrument_ensemble`] = "";
req.session[`personne_${toto}_instrument_collectif`] = "";
req.session[`personne_${toto}_cahier`] = "";
req.session[`personne_${toto}_piece`] = "";
req.session[`personne_${toto}_prof`] = "";
req.session[`personne_${toto}_mail_prof`] = "";
req.session[`personne_${toto}_option_coursindividuel`] = "";
req.session[`personne_${toto}_option_decouvrealto`] = "";
req.session[`personne_${toto}_option_concertsolo_cahier`] = "";
req.session[`personne_${toto}_option_concertsolo_piece`] = "";
req.session[`personne_${toto}_activite_1`] = "";
req.session[`personne_${toto}_activite_2`] = "";
req.session[`personne_${toto}_age`] = undefined;
req.session[`personne_${toto}_opt_chantchoral`] = "";
req.session[`personne_${toto}_opt_dalcroze`] = "";
req.session[`personne_${toto}_opt_eveil`] = "";
req.session[`personne_${toto}_opt_collectif`] = "";
req.session[`personne_${toto}_opt_ensemble`] = "";
req.session[`personne_${toto}_opt_particulier`] = "";
for (let i = 1; i <= 5; i++) {
req.session[`personne_${toto}_activite_${i}`] = "";
req.body[`personne_${toto}_activite_${i}`] = "";
}
req.body[`personne_${toto}_nom`] = "";
req.body[`personne_${toto}_prenom`] = "";
req.body[`personne_${toto}_prise_charge_nom`] = "";
req.body[`personne_${toto}_datenaissance`] = "";
req.body[`personne_${toto}_transport_mode`] = "";
req.body[`personne_${toto}_transport_arret`] = "";
req.body[`personne_${toto}_role`] = "";
req.body[`personne_${toto}_profil`] = "";
req.body[`personne_${toto}_instrument`] = "";
req.body[`personne_${toto}_instrument_ensemble`] = "";
req.body[`personne_${toto}_instrument_collectif`] = "";
req.body[`personne_${toto}_cahier`] = "";
req.body[`personne_${toto}_piece`] = "";
req.body[`personne_${toto}_prof`] = "";
req.body[`personne_${toto}_mail_prof`] = "";
req.body[`personne_${toto}_option_coursindividuel`] = "";
req.body[`personne_${toto}_option_decouvrealto`] = "";
req.body[`personne_${toto}_option_concertsolo_cahier`] = "";
req.body[`personne_${toto}_option_concertsolo_piece`] = "";
req.body[`personne_${toto}_activite_1`] = "";
req.body[`personne_${toto}_activite_2`] = "";
}
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('stagenat/page_templates/inscrip_formulaire');
});
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
router.post('/formulaire', SN_checkinfos);
router.post('/formulaire', SN_checkinfos.SN_checkinfos);
/////////////////////////////////////////////////
// 3 - AFFICHER PAGE RÉCAP
router.get('/recap', function(req, res) {
req.session.onpeutcontinuer = "non";
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;
res.locals.association_suzuki = req.session.association_suzuki;
if (req.session.hebergement == 'flocons verts partagé') {
res.locals.hebergement = "Centre les Flocons Verts - hébergement partagé";
}
if (req.session.hebergement == 'flocons verts non partagé') {
res.locals.hebergement = "Centre les Flocons Verts - hébergement non partagé";
}
if (req.session.hebergement == 'independant') {
res.locals.hebergement = "indépendant";
}
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"];
if (req.session["personne_"+toto+"_nom"]) {
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+"_prise_charge_nom"] = req.session["personne_"+toto+"_prise_charge_nom"];
res.locals["personne_"+toto+"_profilage"] = req.session["personne_"+toto+"_profilage"];
// AFFICHER ACTIVITÉ
if (req.session["personne_"+toto+"_role"] === 'accompagnant_activite_adulte') {
res.locals["personne_"+toto+"_role"] = "accompagnant adulte avec activité";
res.locals["personne_"+toto+"_categorie"] = "accompagnant adulte avec activité";
} else if (req.session["personne_"+toto+"_role"] === 'accompagnant') {
res.locals["personne_"+toto+"_role"] = "accompagnant sans activité";
res.locals["personne_"+toto+"_categorie"] = "accompagnant sans activité";
} else if (req.session["personne_"+toto+"_role"] === 'accompagnant_activite_enfant') {
res.locals["personne_"+toto+"_role"] = "Accompagnant enfant avec activité";
res.locals["personne_"+toto+"_categorie"] = "Accompagnant enfant avec activité";
} else if (req.session["personne_"+toto+"_role"] === 'instrumentiste_camp') {
res.locals["personne_"+toto+"_role"] = "instrumentiste";
res.locals["personne_"+toto+"_categorie"] = "instrumentiste";
} else if (req.session["personne_"+toto+"_role"] === 'prof_invite') {
res.locals["personne_"+toto+"_role"] = "Professeur invité";
res.locals["personne_"+toto+"_categorie"] = "Professeur invité";
} else {
res.locals["personne_"+toto+"_role"] = req.session["personne_"+toto+"_role"];
res.locals["personne_"+toto+"_categorie"] = req.session["personne_"+toto+"_role"];
}
if (req.session["personne_"+toto+"_profil"] == 'professeur') {
res.locals["personne_"+toto+"_profil"] = "professeur";
}
if (req.session["personne_"+toto+"_profil"] == 'non_professeur') {
res.locals["personne_"+toto+"_profil"] = "externe";
}
if (req.session["personne_"+toto+"_profil"] == 'Camp ado') {
res.locals["personne_"+toto+"_profil"] = "Camp ado";
}
// AFFICHER MODE DE TRANSPORT
res.locals["personne_"+toto+"_transport_mode"] = req.session["personne_"+toto+"_transport_mode"];
if (req.session["personne_"+toto+"_transport_arret"] == 'arret_7_quai_lassagne_lyon') {
res.locals["personne_"+toto+"_transport_arret"] = "7 quai Lassagne Lyon";
}
if (req.session["personne_"+toto+"_transport_arret"] == 'arret_partdieu_lyon') {
res.locals["personne_"+toto+"_transport_arret"] = "Gare Part Dieu Lyon";
}
// AFFICHER INSTRUMENT
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
res.locals["personne_"+toto+"_instrument_ensemble"] = req.session["personne_"+toto+"_instrument_ensemble"];
res.locals["personne_"+toto+"_instrument_collectif"] = req.session["personne_"+toto+"_instrument_collectif"];
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
res.locals["personne_"+toto+"_option_concertsolo_cahier"] = req.session["personne_"+toto+"_option_concertsolo_cahier"];
res.locals["personne_"+toto+"_option_concertsolo_piece"] = req.session["personne_"+toto+"_option_concertsolo_piece"];
res.locals["personne_"+toto+"_option_decouvrealto"] = req.session["personne_"+toto+"_option_decouvrealto"];
// AFFICHER COUT
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+"_eveil_cout"] = req.session["personne_"+toto+"_eveil_cout"];
res.locals["personne_"+toto+"_dalcroze_cout"] = req.session["personne_"+toto+"_dalcroze_cout"];
res.locals["personne_"+toto+"_chant_cout"] = req.session["personne_"+toto+"_chant_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+"_coursindividuel_cout"] = req.session["personne_"+toto+"_coursindividuel_cout"];
res.locals["personne_"+toto+"_option_decouvrealto_cout"] = req.session["personne_"+toto+"_option_decouvrealto_cout"];
res.locals["personne_"+toto+"_collectif_cout"] = req.session["personne_"+toto+"_collectif_cout"];
res.locals["personne_"+toto+"_ensemble_cout"] = req.session["personne_"+toto+"_ensemble_cout"];
res.locals["personne_"+toto+"_particulier_cout"] = req.session["personne_"+toto+"_particulier_cout"];
}
}
res.locals.frais_dossier = req.session.frais_dossier
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.montant_accompte;
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('stagenat/page_templates/recap');
});
/////////////////////////////////////////////////
// 3 - AFFICHER PAGE RÉCAP SANS ACCOMPTE
router.get('/recapssacompte', function(req, res) {
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_supplement_hebergement = req.session.cout_supplement_hebergement;
if (req.session.montant_accompte > 1) {
res.render('stagenat/page_templates/recap');
}
if (req.session.montant_accompte < 1) {
res.render('stagenat/page_templates/recapssacompte');
}
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.montant_accompte;
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
res.render('stagenat/page_templates/recapssacompte');
});
// PAGE RÉCAP - CLICK SUR LE BOUTON MODIFIER
// EN CAS DE LIEN avec plusieurs / comme /stagenational/recap, il faut rappeler le premier (ici /stagenational)
// vir l'URL du POST dans l'onglet network de Chrome (type = document)
router.post('/post_recap_modifier', post_recap_modifier);
// voir l'URL du POST dans l'onglet network de Chrome (type = document)
router.post('/post_recap_modifier', function(req, res){
res.redirect('/stagenational/identifier');
});
// PAGE RÉCAP - CLICK SUR LE BOUTON PAYER ACCOMPTE
router.post('/post_payer_accompte', post_payer_accompte);
router.post('/post_payer_accompte', post_payer_accompte.post_payer_accompte);
// PAGE RÉCAP - CLICK SUR LE BOUTON ENREGISTRER
router.post('/post_enregistrer_inscrip_ssacompte', post_enregistrer_inscrip_ssacompte);
//router.post('/post_enregistrer_inscrip_ssacompte', post_enregistrer_inscrip_ssacompte);
router.post('/post_enregistrer_inscrip_ssacompte', post_payer_accompte.post_payer_accompte);
/////////////////////////////////////////////////
// 4 - PAIEMENT DE L'ACOMPTE
router.get('/paiement_reussi', SN_accompte_reussi);
router.get('/paiement_annule', SN_accompte_annule);
router.get('/paiement_reussi', SN_retour_stripe.SN_accompte_reussi);
router.get('/paiement_annule', SN_retour_stripe.SN_accompte_annule);
/////////////////////////////////////////////////
// 4 - SANS ACOMPTE INSCRIPTION RÉUSSIE
router.get('/inscription_reussi', function(req, res) {
res.locals.identifiant = req.session.identifiant;
res.locals.association = req.session.association;
logger.info("req.session.association_suzuki : " + req.session.association_suzuki);
res.locals.association_suzuki = req.session.association_suzuki;
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;
@@ -244,16 +333,20 @@ router.get('/inscription_reussi', function(req, res) {
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+"_prise_charge_nom"] = req.session["personne_"+toto+"_prise_charge_nom"];
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+"_instrument_ensemble"] = req.session["personne_"+toto+"_instrument_ensemble"];
res.locals["personne_"+toto+"_instrument_collectif"] = req.session["personne_"+toto+"_instrument_collectif"];
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"];
@@ -264,14 +357,13 @@ router.get('/inscription_reussi', function(req, res) {
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.frais_dossier = req.session.frais_dossier;
res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire;
res.locals.montant_accompte = req.session.montant_accompte;
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
@@ -280,6 +372,7 @@ router.get('/inscription_reussi', function(req, res) {
});
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////

View File

@@ -0,0 +1,168 @@
/////////////////////////////////////////////////
// ADHÉSION
// [DOMAIN]/inscription
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_lienventetemp");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
// CALCUL DE DATE
const moment = require('moment');
moment.locale('fr');
let now = moment().format("YYYY-MM-DD HH:mm:ss");
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
generate_link,
download_file
} = require("../controllers/vente_video/generate_linkController");
const {
post_req_stripe,
ventevideo_accompte_reussi,
ventevideo_accompte_annule
} = require("../controllers/vente_video/vente_videoController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// VIDÉO UNESCO
/////////////////////////////////////////////////
// ECRAN 1 : ACCUEIL DE LA VENTE DE LA VIDEO
router.get('/videos', function(req, res) {
logger.info("on est dans la page web /videos (ventevideoRouter.js)", { numsession: req.session.id });
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
if (req.session.affiche_err_1) {
res.locals.affiche_err_1 = req.session.affiche_err_1;
// on supprime le contenu après affichage
req.session.affiche_err_1 = undefined;
}
res.render('ventevideo/page_templates/ventelien_boutonacheter');
});
// ECRAN 2 : PAIEMENT AVEC STRIPE
router.post('/videos', post_req_stripe);
// ECRAN 3 - RETOUR STRIPE
router.get('/videos/paiement_reussi', ventevideo_accompte_reussi);
router.get('/videos/paiement_annule', ventevideo_accompte_annule);
/////////////////////////////////////////////////
// Générer le lien temporaire
/////////////////////////////////////////////////
// ROUTE DE TEST
router.get('/unesco/lien', async function(req, res) {
logger.info("on est dans la route vente video lien (ventevideoRouter.js)", { numsession: req.session.id });
try {
// APPEL DU CONTROLLER QUI GÉNÉRE LE LIEN
const result = await generate_link(req, res);
logger.info("on est dans la route vente video lien try", { numsession: req.session.id });
logger.info("result : " + result, { numsession: req.session.id });
// envoie de la réponse HTTP "200 : ok" avec les données
res.status(200).json({
success: true,
message: "Génération du lien réussi",
data: result
});
} catch (error) {
logger.info("on est dans la route vente video lien catch", { numsession: req.session.id });
// envoie de la réponse HTTP "500 : erreur server" avec les données
res.status(500).json({
success: false,
message: "Génération du lien échec"
});
}
});
// ROUTE POUR LA BOUTIQUE VIDEOS
router.get('/videos/whstripe', async function(req, res) {
logger.info("on est dans la route vente video lien (ventevideoRouter.js)", { numsession: req.session.id });
try {
// APPEL DU CONTROLLER QUI GÉNÉRE LE LIEN
const result = await generate_link(req, res);
logger.info("on est dans la route vente video lien try", { numsession: req.session.id });
logger.info("result : " + result, { numsession: req.session.id });
// envoie de la réponse HTTP "200 : ok" avec les données
res.status(200).json({
success: true,
message: "Génération du lien réussi",
data: result
});
} catch (error) {
logger.info("on est dans la route vente video lien catch", { numsession: req.session.id });
// envoie de la réponse HTTP "500 : erreur server" avec les données
res.status(500).json({
success: false,
message: "Génération du lien échec"
});
}
});
/////////////////////////////////////////////////
// Endpoint pour télécharger le fichier depuis le lien généré
/////////////////////////////////////////////////
router.get('/unesco/download/:id', async function(req, res) {
logger.info("on est dans la route vente video download (ventevideoRouter.js)", { numsession: req.session.id });
logger.info("lien de téléchargement appelé : " + req.originalUrl, { numsession: req.session.id });
try {
// APPEL DU CONTROLLER QUI contrôle le lien et download le fichier
const result = await download_file(req, res);
logger.info("on est dans la route vente video download try", { numsession: req.session.id });
logger.info("result : " + result, { numsession: req.session.id });
// AFFICHAGE DU RÉSULTAT en fonction de l'expiration ou non du lien
if (result === "Lien expiré") {
// envoie de la réponse HTTP "403 : forbidden" avec les données
return res.status(403).send('Link has expired');
} else if (result === "Lien non trouvé") {
return res.status(404).send('Link does not exist');
} else {
// méthode download() d'Express.js
// Cette méthode est utilisée pour envoyer un fichier au client et déclencher un téléchargement dans le navigateur. Lorsque cette méthode est appelée, le navigateur du client affichera une boîte de dialogue pour télécharger le fichier spécifié.
return res.render('ventevideo/page_templates/ventelien_telechargement_encours', {
message : "Votre téléchargement a commencé automatiquement.",
filename: result
}, () => {
res.download(result, (err) => {
if (err) {
// envoie de la réponse HTTP "404 : ressource non trouvée" avec les données
return res.status(404).send('File not found');
}
});
});
}
} catch (error) {
logger.info("on est dans la route vente video download catch", { numsession: req.session.id });
return res.status(500).json({
success: false,
message: "download échec"
});
}
});
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

View File

@@ -0,0 +1,84 @@
/////////////////////////////////////////////////
// ADHÉSION
// [DOMAIN]/inscription
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_lienventetemp");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
// CALCUL DE DATE
const moment = require('moment');
moment.locale('fr');
let now = moment().format("YYYY-MM-DD HH:mm:ss");
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
generate_link,
download_file
} = require("../controllers/vente_video/generate_linkController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// VIDÉO UNESCO
/////////////////////////////////////////////////
// Générer le lien temporaire
router.get('/unesco/lien', async function(req, res) {
logger.info("on est dans la route vente video lien (ventevideoRouter.js)", { numsession: req.session.id });
try {
// APPEL DU CONTROLLER QUI GÉNÉRE LE LIEN
const result = await generate_link(req, res);
logger.info("on est dans la route vente video lien try", { numsession: req.session.id });
logger.info("result : " + result, { numsession: req.session.id });
// envoie de la réponse HTTP "200 : ok" avec les données
res.status(200).json({
success: true,
message: "Génération du lien réussi",
data: result
});
} catch (error) {
logger.info("on est dans la route vente video lien catch", { numsession: req.session.id });
// envoie de la réponse HTTP "500 : erreur server" avec les données
res.status(500).json({
success: false,
message: "Génération du lien échec"
});
}
});
// Endpoint pour télécharger le fichier depuis le lien généré
router.get('/unesco/download/:id', (req, res) => {
logger.info("on est dans la route vente video download (ventevideoRouter.js)", { numsession: req.session.id });
try {
// Appelle la fonction maj_googlesheet_auto du contrôleur
const result = download_file(req, res);
logger.info("on est dans la route vente video download try", { numsession: req.session.id });
console.log ("result : ", result);
//console.log ("res : ", res);
} catch (error) {
logger.info("on est dans la route vente video download catch", { numsession: req.session.id });
res.status(500).json({
success: false,
message: "download échec"
});
}
});
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

211
routes/ventevideoRouter.js Normal file
View File

@@ -0,0 +1,211 @@
/////////////////////////////////////////////////
// ADHÉSION
// [DOMAIN]/inscription
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_lienventetemp");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
// CALCUL DE DATE
const moment = require('moment');
moment.locale('fr');
let now = moment().format("YYYY-MM-DD HH:mm:ss");
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
generate_link,
download_file
} = require("../controllers/vente_video/generate_linkController");
const {
post_req_stripe,
ventevideo_accompte_reussi,
ventevideo_accompte_annule
} = require("../controllers/vente_video/vente_videoController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// VIDÉO UNESCO
/////////////////////////////////////////////////
// ECRAN 1 : ACCUEIL DE LA VENTE DE LA VIDEO
router.get('/videos', function(req, res) {
logger.info("on est dans la page web /videos (ventevideoRouter.js)", { numsession: req.session.id });
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
if (req.session.affiche_err_1) {
res.locals.affiche_err_1 = req.session.affiche_err_1;
// on supprime le contenu après affichage
req.session.affiche_err_1 = undefined;
}
res.render('ventevideo/page_templates/ventelien_boutonacheter');
});
// ECRAN 2 : PAIEMENT AVEC STRIPE
router.post('/videos', post_req_stripe);
// ECRAN 3 - RETOUR STRIPE
router.get('/videos/paiement_reussi', ventevideo_accompte_reussi);
router.get('/videos/paiement_annule', ventevideo_accompte_annule);
/////////////////////////////////////////////////
// Générer le lien temporaire
/////////////////////////////////////////////////
// ROUTE DE TEST
router.get('/unesco/lien', async function(req, res) {
logger.info("on est dans la route vente video lien (ventevideoRouter.js)", { numsession: req.session.id });
try {
// APPEL DU CONTROLLER QUI GÉNÉRE LE LIEN
const result = await generate_link(req, res);
logger.info("on est dans la route vente video lien try", { numsession: req.session.id });
logger.info("result : " + result, { numsession: req.session.id });
// envoie de la réponse HTTP "200 : ok" avec les données
res.status(200).json({
success: true,
message: "Génération du lien réussi",
data: result
});
} catch (error) {
logger.info("on est dans la route vente video lien catch", { numsession: req.session.id });
// envoie de la réponse HTTP "500 : erreur server" avec les données
res.status(500).json({
success: false,
message: "Génération du lien échec"
});
}
});
// ROUTE POUR LA BOUTIQUE VIDEOS
router.get('/videos/whstripe', async function(req, res) {
logger.info("on est dans la route vente video lien (ventevideoRouter.js)", { numsession: req.session.id });
try {
// APPEL DU CONTROLLER QUI GÉNÉRE LE LIEN
const result = await generate_link(req, res);
logger.info("on est dans la route vente video lien try", { numsession: req.session.id });
logger.info("result : " + result, { numsession: req.session.id });
// envoie de la réponse HTTP "200 : ok" avec les données
res.status(200).json({
success: true,
message: "Génération du lien réussi",
data: result
});
} catch (error) {
logger.info("on est dans la route vente video lien catch", { numsession: req.session.id });
// envoie de la réponse HTTP "500 : erreur server" avec les données
res.status(500).json({
success: false,
message: "Génération du lien échec"
});
}
});
/////////////////////////////////////////////////
// Endpoint pour télécharger le fichier depuis le lien généré
/////////////////////////////////////////////////
// Route pour afficher le template avant téléchargement
router.get('/unesco/download/:id', async function(req, res) {
logger.info("on est dans la route vente video download affichage du lien (ventevideoRouter.js)", { numsession: req.session.id });
logger.info("lien de téléchargement appelé : " + req.originalUrl, { numsession: req.session.id });
try {
// APPEL DU CONTROLLER QUI contrôle le lien et récupère le chemin du fichier
const result = await download_file(req, res);
logger.info("on est dans la route vente video download try", { numsession: req.session.id });
logger.info("result : " + result, { numsession: req.session.id });
// Vérification du résultat avant d'afficher la page
if (result === "Lien expiré") {
return res.status(403).render('ventevideo/page_templates/ventelien_telechargement_encours', {
message: "Le lien de téléchargement a expiré.",
downloadUrl: ``,
message_color: "rouge"
});
} else if (result === "Lien non trouvé") {
return res.status(404).render('ventevideo/page_templates/ventelien_telechargement_encours', {
message: "Le lien de téléchargement est introuvable.",
downloadUrl: ``,
message_color: "rouge"
});
} else {
// Rendu du template avec script pour télécharger automatiquement
return res.render('ventevideo/page_templates/ventelien_telechargement_encours', {
message: "Cliquez sur ce lien pour démarrer le téléchargement du film : ",
downloadUrl: `/boutique/unesco/download_file/${req.params.id}`, // URL pour le téléchargement
message_color: ""
});
}
} catch (error) {
logger.error("Erreur dans la route de téléchargement", { error, numsession: req.session.id });
return res.status(500).render('ventevideo/page_templates/ventelien_telechargement_encours', {
message: "Une erreur est survenue pendant le téléchargement.",
downloadUrl: ``,
message_color: "rouge"
});
}
});
router.get('/unesco/download_file/:id', async function(req, res) {
logger.info("on est dans la route vente video download (ventevideoRouter.js)", { numsession: req.session.id });
logger.info("lien de téléchargement appelé : " + req.originalUrl, { numsession: req.session.id });
logger.info("req.session.originPath = " + req.session.originPath, { numsession: req.session.id });
logger.info("lien de téléchargement appelé : " + req.originalUrl, { numsession: req.session.id });
const expiresAtDate = new Date(req.session.expiresAt);
try {
console.log("expiresAtDate.getTime() = ", expiresAtDate.getTime());
if (Date.now() < expiresAtDate.getTime()) {
return res.download(req.session.originPath, (err) => {
if (err) {
logger.error("Erreur de téléchargement / Fichier non trouvé.", { error: err });
return res.status(404).render('ventevideo/page_templates/ventelien_telechargement_encours', {
message: "Fichier non trouvé.",
downloadUrl: ``,
message_color: "rouge"
});
}
});
} else {
logger.error("Lien expiré");
return res.status(404).render('ventevideo/page_templates/ventelien_telechargement_encours', {
message: "Lien expiré.",
downloadUrl: ``,
message_color: "rouge"
});
}
} catch (error) {
logger.error("Erreur lors de la tentative de téléchargement", { error });
return res.status(500).render('ventevideo/page_templates/ventelien_telechargement_encours', {
message: "Téléchargement en échec.",
downloadUrl: ``,
message_color: "rouge"
});
}
});
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;

63
routes/wuzukiRouter.js Normal file
View File

@@ -0,0 +1,63 @@
/////////////////////////////////////////////////
// ADHÉSION
// [DOMAIN]/inscription
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../public/js/app/logger_wuzuki");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const express = require('express');
const router = express.Router();
const moment = require('moment');
/////////////////////////////////////////////////
// APPELS DES FONCTIONS
/////////////////////////////////////////////////
const {
post_form_envoie_message
} = require("../controllers/wuzukiController");
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
// Racine wuzuki
router.get('/', function(req, res) {
logger.info("on est dans la page web racine wuzuki (wuzukiRouter.js)", { numsession: req.session.id });
res.render('app/page_templates/inscription_accueil');
});
// WUZUKI DEMANDE DE CONTACT
router.get('/envoie_message', function(req, res) {
logger.info("on est dans la page web /envoie_message (appRouter.js)", { numsession: req.session.id });
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
logger.info("req.session.affiche_err_1 = " + req.session.affiche_err_1, { numsession: req.session.id });
if (req.session.affiche_err_1) {
res.locals.affiche_err_1 = req.session.affiche_err_1;
// on supprime le contenu après affichage
req.session.affiche_err_1 = undefined;
}
res.locals.dirname = __dirname;
// affichage du template ejs /views/page_templates/formulaire_adhesion_mail.ejs
res.render('wuzuki/page_templates/formulaire_envoie_message');
});
// 2 - Récupérer et traiter les informations
router.post('/envoie_message', post_form_envoie_message);
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
module.exports = router;