///////////////////////////////////////////////// // 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 }); } ///////////////////////////////////////////////// // // !!!! ACHAT UNIQUEMENT DE SPECTATEUR // // PAGE 1 // DOMAIN/concert/identifier // 2. SAISIE DU L'IDENTIFIANT // VÉRIFICATION SI L'IDENTIFIANT EST ADHÉRENT ///////////////////////////////////////////////// const inscription_spectateur_tous = async function (req, res) { ///////////////////////////////////////////////// // RECHERCHE DANS DB // - SI IDENTIFIANT SAISIE EST DÉJÀ INSCRIT AU CONCERT logger.info("======================================", { label: filename }); logger.info("======== FUNCTION inscription_spectateur_tous ==========", { 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/achat_spectateur_tous'); }; // VARIABLES req.session.quota_spectateur = "nondepasse"; // CONNECTION DB PROMISE try { //Connexion let db_connection_promise = await connect_DB_promise(); // QUOTA GÉNÉRAL DE PLACES TOTALES let sql_ca_decompte_place = 'select spectateur_commandes from ca_decompte_place'; const [results_ca_decompte_place, fields_ca_decompte_place] = await db_connection_promise.execute(sql_ca_decompte_place); logger.info("SQL nombre de places spectateurs déjà commandées : " + results_ca_decompte_place[0].spectateur_commandes, { numsession: req.session.id, label: filename}); // QUOTA GÉNÉRAL ATTEINT if (results_ca_decompte_place[0].spectateur_commandes >= process.env.spectateur_nb_places){ // QUOTA DÉPASSÉ req.session.quota_spectateur = "depasse"; logger.info("Quota spectateur TOTAL dépassé : " + results_ca_decompte_place[0].spectateur_commandes, { numsession: req.session.id, label: filename}); req.session.err_mail_form_adhesion_1 = "Le nombre total de spectateurs a été atteint."; req.session.err_mail_form_adhesion_2 = "Vous ne pouvez plus commander de places"; affiche_page_identifier(); } // NOMBRE DE PLACES TOTALES RESTANTES req.session.quota_total_spectateur = process.env.spectateur_nb_places - results_ca_decompte_place[0].spectateur_commandes; logger.info("NOMBRE DE PLACES TOTALES RESTANTES : " + req.session.quota_total_spectateur, { numsession: req.session.id, label: filename}); // ON AFFICHE LA PAGE D'ACHAT DES PLACES SPECTATEURS res.locals.quota_spectateur = req.session.quota_spectateur; res.locals.quota_total_spectateur = req.session.quota_total_spectateur; res.render('concert/page_templates/achat_spectateur_tous'); } 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 }); 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(); } } ///////////////////////////////////////////////// // EXPORT DES MODULES POUR QU'ILS PUISSENT LUS PAR LES AUTRES FICHIERS JS ///////////////////////////////////////////////// module.exports = { inscription_spectateur_tous }