///////////////////////////////////////////////// // LOGGING ///////////////////////////////////////////////// const logger = require("../../public/js/app/logger_concert"); ///////////////////////////////////////////////// // APPELS DES MODULES ///////////////////////////////////////////////// const path = require("path"); const fs = require("fs"); // CALCUL DE DATE const moment = require('moment'); // ENVOIE MAIL GOOGLE MAIL const nodemailer = require('nodemailer'); // CONNECTION BASE DE DONNÉES const mysql = require('mysql2'); const mysql_promise = require('mysql2/promise'); ///////////////////////////////////////////////// // APPELS DES FONCTIONS ///////////////////////////////////////////////// const sleep = require("./../../modules/sleep"); //////////////////////////////////////////////////// // FILE NAME //////////////////////////////////////////////////// const filename = path.parse(__filename).base; //////////////////////////////////////////////////// // CONNECTION DB //////////////////////////////////////////////////// async function connect_DB_promise() { return db_connection_promise = await mysql_promise.createConnection({ host: process.env.db_connection_host, port: process.env.db_connection_port, user: process.env.db_connection_user, password: process.env.db_connection_password, database: process.env.db_connection_database }); } ///////////////////////////////////////////////// // PAGE 1 // DOMAIN/concert/identifier // AFFICHAGE DE LA PAGE DE SAISIE DE L'IDENTIFIANT // AFFICHAGE DU NOMBRE DE PLACES RESTANTES ///////////////////////////////////////////////// const openidentifiant = async function (req, res) { logger.info("======================================", { label: filename }); logger.info("======== FUNCTION openidentifiant ==========", { label: filename }); logger.info("======================================", { label: filename }); function affiche_page_identifier() { //////////////////////////////////////////////////// // AFFIHER LA PAGE /identifier // AFFICHAGE DES ERREURS // EN CAS DE RETOUR SUR LA PAGE AVEC ERREUR : // - SI IDENTIFIANT NON ADHÉRENT // - SI RIEN SAISIE //////////////////////////////////////////////////// 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; } res.render('concert/page_templates/inscrip_formulaire_identifier'); }; //////////////////////////////////////////////////// // ON RÉCUPÈRE LE NOMBRE DE PLACES DÉJA COMMANDÉES DANS LA BASE DE DONNÉES // !!! ATTENTION IL FAUT QUE LES NOMBRES SOIENT A ZÉRO AU DÉMMARAGE dans la table ca_decompte_place //////////////////////////////////////////////////// async function recup_nb_places () { logger.info("==================================================================", { label: filename }); logger.info("======== ON RÉCUPÈRE LE NOMBRE DE PLACES DÉJA COMMANDÉES DANS LA BASE DE DONNÉES ==========", { label: filename }); // CONNECTION DB PROMISE try { //Connexion let db_connection_promise = await connect_DB_promise(); //Query let sql = 'select spectateur_commandes,encadr_parent_commandes,piano_commandes,alto_commandes,flute_commandes,trompette_commandes,harpe_commandes,violon1_commandes,violon2_commandes,violoncelle1_commandes,violoncelle2_commandes from ca_decompte_place'; const [results, fields] = await db_connection_promise.execute(sql); req.session.spectateur_nb_restantes = process.env.spectateur_nb_places - results[0].spectateur_commandes; req.session.encadr_parent_nb_restantes = process.env.encadr_parent_nb_places - results[0].encadr_parent_commandes; req.session.piano_nb_restantes = process.env.piano_nb_places - results[0].piano_commandes; req.session.alto_nb_restantes = process.env.alto_nb_places - results[0].alto_commandes; req.session.flute_nb_restantes = process.env.flute_nb_places - results[0].flute_commandes; req.session.trompette_nb_restantes = process.env.trompette_nb_places - results[0].trompette_commandes; req.session.harpe_nb_restantes = process.env.harpe_nb_places - results[0].harpe_commandes; req.session.violon1_nb_restantes = process.env.violon1_nb_places - results[0].violon1_commandes; req.session.violon2_nb_restantes = process.env.violon2_nb_places - results[0].violon2_commandes; req.session.violoncelle1_nb_restantes = process.env.violoncelle1_nb_places - results[0].violoncelle1_commandes; req.session.violoncelle2_nb_restantes = process.env.violoncelle2_nb_places - results[0].violoncelle2_commandes; res.locals.spectateur_nb_restantes = req.session.spectateur_nb_restantes; 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.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; affiche_page_identifier(); } catch (error) { // Echec de connection à la BD logger.error("Il y a un problème avec la connection à la base de données! : " + error, { numsession: req.session.id, label: filename }); req.session.err_mail_form_adhesion_1 = "Il y a un problème système connexion base de données, veuillez recommencer."; //await db_connection_promise.end(); affiche_page_identifier(); } } recup_nb_places(); } ///////////////////////////////////////////////// // EXPORT DES MODULES POUR QU'ILS PUISSENT LUS PAR LES AUTRES FICHIERS JS ///////////////////////////////////////////////// module.exports = { openidentifiant }