431 lines
18 KiB
JavaScript
431 lines
18 KiB
JavaScript
/////////////////////////////////////////////////
|
|
// ADHÉSION
|
|
// [DOMAIN]/inscription
|
|
/////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////
|
|
// LOGGING
|
|
/////////////////////////////////////////////////
|
|
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
|
|
/////////////////////////////////////////////////
|
|
const {
|
|
checkMail,
|
|
post_form_adhesion,
|
|
post_form_montant_total,
|
|
post_paiement_cheque_save,
|
|
post_paiement_virement_save,
|
|
post_req_bank,
|
|
get_res_bank,
|
|
get_res_bank_annul,
|
|
post_cartemanuelle_verifmail_envoicarte,
|
|
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('/', 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;
|
|
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
|
|
res.locals.err_mail_form_adhesion_4 = req.session.err_mail_form_adhesion_4;
|
|
// on supprime le contenu après affichage
|
|
req.session.err_mail_form_adhesion = undefined;
|
|
req.session.err_mail_form_adhesion_1 = undefined;
|
|
req.session.err_mail_form_adhesion_2 = undefined;
|
|
req.session.err_mail_form_adhesion_3 = undefined;
|
|
req.session.err_mail_form_adhesion_4 = undefined;
|
|
}
|
|
|
|
// AFFICHER LE MAIL IDENTIFIANT SI DÉJA SAISIE ET GARDÉ EN VARIABLE DE SESSION
|
|
// EN CAS DE RECHARGEMENT DE LA PAGE
|
|
if (req.session.identifiant) {
|
|
res.locals.identifiant = req.session.identifiant;
|
|
}
|
|
res.locals.dirname = __dirname;
|
|
|
|
// 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');
|
|
}
|
|
|
|
});
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
// VERIFICATION DU MAILcheckMail
|
|
// METHODE HTTP POST
|
|
/////////////////////////////////////////////////
|
|
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 = "";
|
|
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 = "";
|
|
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) {
|
|
res.locals.identifiant = req.session.identifiant;
|
|
res.locals.adherent_nom = req.session.adherent_nom;
|
|
res.locals.famille = "Inscription observateur :";
|
|
req.session.adherent_type = "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');
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
// POST ENREGISTRER INFOS DANS BD
|
|
/////////////////////////////////////////////////
|
|
router.post('/adhesion_prof', post_form_adhesion);
|
|
router.post('/adhesion_observateur', post_form_adhesion);
|
|
router.post('/adhesion_famille', post_form_adhesion);
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
// PAGE DE PAIEMENT
|
|
/////////////////////////////////////////////////
|
|
router.get('/adhesion_paiement_total', function(req, res) {
|
|
logger.info("on est dans la ROUTE /adhesion page_templates/adhesion_paiement_total.ejs", { numsession: req.session.id });
|
|
res.locals.identifiant = req.session.identifiant;
|
|
res.locals.adherent_paiement_montant_adhesion = req.session.adherent_paiement_montant_adhesion;
|
|
|
|
res.render('adhesion/page_templates/adhesion_paiement_total.ejs');
|
|
});
|
|
router.post('/calcul_total', post_form_montant_total);
|
|
|
|
router.get('/adhesion_paiement_mode_paiement', function(req, res) {
|
|
logger.info("on est dans la ROUTE /adhesion page_templates/adhesion_paiement/mode_paiement.ejs", { numsession: req.session.id });
|
|
res.locals.identifiant = req.session.identifiant;
|
|
res.locals.adherent_paiement_montant_adhesion = req.session.adherent_paiement_montant_adhesion;
|
|
res.locals.montant_apayer = req.session.montant_apayer;
|
|
res.locals.montant_apayer_cent = req.session.montant_apayer_cent;
|
|
res.locals.adherent_paiement_montant_don = req.session.adherent_paiement_montant_don;
|
|
logger.info("ROUTER req.session.montant_apayer: " + req.session.montant_apayer, { numsession: req.session.id });
|
|
res.render('adhesion/page_templates/adhesion_paiement_mode_paiement.ejs');
|
|
});
|
|
|
|
router.post('/goto_bank', post_req_bank);
|
|
// CLIC SUR LE BOUTON VALIDER DU FORMULAIRE
|
|
// form action="paiement_cheque_save"
|
|
// DU FICHIER views/page_templates/adhesion_paiement_mode_paiement.ejs
|
|
router.post('/paiement_cheque_save', post_paiement_cheque_save);
|
|
router.post('/paiement_virement_save', post_paiement_virement_save);
|
|
|
|
|
|
|
|
router.get('/adhesion_paiement/attente', function(req, res) {
|
|
logger.info("on est dans la ROUTE /adhesion_paiement/attente", { numsession: req.session.id });
|
|
moment().format();
|
|
moment.locale('fr');
|
|
var date_formattee = moment().format('L');
|
|
res.locals.today = date_formattee;
|
|
res.locals.identifiant = req.session.identifiant;
|
|
res.locals.profil1 = req.session.profil1;
|
|
logger.info("req.session.profil1; : " + req.session.profil1, { numsession: req.session.id });
|
|
res.locals.profil2 = req.session.profil2;
|
|
res.locals.profil3 = req.session.profil3;
|
|
res.locals.adherent_paiement_mode = req.session.adherent_paiement_mode;
|
|
res.locals.adherent_paiement_montant_adhesion = req.session.adherent_paiement_montant_adhesion;
|
|
res.locals.adherent_paiement_montant_don = req.session.adherent_paiement_montant_don;
|
|
res.locals.adherent_paiement_montant_total = req.session.montant_apayer;
|
|
res.render('adhesion/page_templates/adhesion_paiement_attente.ejs');
|
|
logger.info("res.sendFile", { numsession: req.session.id });
|
|
});
|
|
|
|
router.get('/adhesion_paiement/reussi', get_res_bank);
|
|
router.get('/adhesion_paiement/annule', get_res_bank_annul);
|
|
|
|
/////////////////////////////////////////////////
|
|
// B) GÉNÉRER CARTE D'ADHÉRENT
|
|
// et justificatif de don
|
|
/////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
// ENVOI MANUEL CARTE ADHÉSION ET JUSTIFICATIF DE DON (SI DON)
|
|
// en saisissant l'identifiant dans un formulaire (1 identifiant à la fois)
|
|
// GET URL https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion/carte_manuelle
|
|
/////////////////////////////////////////////////
|
|
|
|
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
|
|
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;
|
|
res.locals.err_mail_form_adhesion_4 = req.session.err_mail_form_adhesion_4;
|
|
// on supprime le contenu après affichage
|
|
req.session.err_mail_form_adhesion = undefined;
|
|
}
|
|
|
|
// AFFICHER LE MAIL IDENTIIFANT SI DÉJ0 SAISIE ET GARDÉ EN VARIABLE DE SESSION
|
|
// EN CAS DE RECHARGEMENT DE LA PAGE
|
|
if (req.session.identifiant) {
|
|
res.locals.identifiant = req.session.identifiant;
|
|
}
|
|
res.locals.dirname = __dirname;
|
|
|
|
res.render('adhesion/page_templates/formulaire_cartemanuelle_mail');
|
|
});
|
|
|
|
// 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('/cartemanuelle_verifmail_envoicarte', post_cartemanuelle_verifmail_envoicarte);
|
|
|
|
/////////////////////////////////////////////////
|
|
// ENVOI MANUEL CARTE ADHÉSION ET JUSTIFICATIF DE DON (SI DON)
|
|
// Si "x" dans la colonne "filtre" de la Google Sheet
|
|
// GET URL https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion/carte_manuelle
|
|
/////////////////////////////////////////////////
|
|
|
|
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
|
|
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;
|
|
res.locals.err_mail_form_adhesion_4 = req.session.err_mail_form_adhesion_4;
|
|
// 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;
|
|
req.session.err_mail_form_adhesion_4 = undefined;
|
|
}
|
|
|
|
// AFFICHER LE MAIL IDENTIIFANT SI DÉJ0 SAISIE ET GARDÉ EN VARIABLE DE SESSION
|
|
// EN CAS DE RECHARGEMENT DE LA PAGE
|
|
if (req.session.identifiant) {
|
|
res.locals.identifiant = req.session.identifiant;
|
|
}
|
|
res.locals.dirname = __dirname;
|
|
|
|
res.render('adhesion/page_templates/adhesion_cartes_manuelles');
|
|
});
|
|
|
|
// CLIC SUR LE BOUTON ENVOYER CARTES ADHÉRENTS
|
|
// form action="cartes_manuelles_envoi"
|
|
// DU FICHIER /views/page_templates/adhesion_cartes_manuelles.ejs
|
|
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
|
|
/////////////////////////////////////////////////
|
|
module.exports = router; |