total_1ère
This commit is contained in:
148
controllers/concert_annuel/inscrip_spectateur_tousController.js
Normal file
148
controllers/concert_annuel/inscrip_spectateur_tousController.js
Normal file
@@ -0,0 +1,148 @@
|
||||
/////////////////////////////////////////////////
|
||||
// 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
|
||||
}
|
||||
Reference in New Issue
Block a user