Files
ms1inscription-v5/superadm/index.php
2026-05-20 15:42:01 -04:00

452 lines
20 KiB
PHP

<?php
global $db, $objDatabase, $vblnEnvironementDev, $vDomaine, $objDatabasePreProd, $objDatabaseProd;
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ALL);
// vérifier les paramètres
if (!empty($_GET['t']))
$intMenu = $_GET['t'];
else
$intMenu = 0;
if (!empty($_GET['a'])) {
$strAction = $_GET['a'];
if (!empty($_GET['batch']))
$strAction .= '_batch';
} else
$strAction = '';
$strPage = 'index.php';
$strLangue = 'fr';
if (isset($_GET['lng'])) {
if ($_GET['lng'] != '')
$strLangue = $_GET['lng'];
}
require_once('php/inc_functions.php');
if (isset($_GET['action']) && $_GET['action'] == 'doubler' && isset($_GET['eve_id'])) {
$new_id = fxcopieevenement($_GET['eve_id']);
if ($new_id) {
// Rediriger vers le nouvel événement copié
header('Location: index.php?t=' . urlencode($_GET['t']) . '&a=mod&id='.$new_id);
exit;
} else {
echo "<div style='color:red;'>Erreur lors de la duplication.</div>";
}
}
if ($_GET['action'] == 'deletepromoteur') {
fxDeleteEvenementFromPromoteur($_GET['id'], $_GET['promoteur_id']);
header('Location: index.php?t=' . urlencode($_GET['t']) . '&a=mod&id='.$_GET['id']);
exit;
}
if ($_GET['action'] == 'deletepromoteurcompte') {
fxDeleteEvenementFromPromoteur($_GET['eve_id'], $_GET['promoteur_id']);
header('Location: index.php?t=' . urlencode($_GET['t']) . '&a=mod&id='.$_GET['id']);
exit;
}
if ($_GET['action'] == 'addpromoteur') {
fxAddEvenementToPromoteur($_GET['id'], $_GET['promoteur_id']);
header('Location: index.php?t=' . urlencode($_GET['t']) . '&a=mod&id='.$_GET['id']);
exit;
}
if ($_GET['action'] == 'addpromoteurToGroupe') {
fxAddEvenementToGroupe($_GET['id'], $_GET['groupe']);
header('Location: index.php?t=' . urlencode($_GET['t']) . '&a=mod&id='.$_GET['id']);
exit;
}
if ($_GET['action'] == 'addevenement') {
fxAddEvenementToPromoteur($_GET['evenement_id'], $_GET['id']);
header('Location: index.php?t=' . urlencode($_GET['t']) . '&a=mod&id='.$_GET['id']);
exit;
}
if ($strAction != 'report') {
require_once('php/inc_start_time.php');
$blnLogged = true;
} else {
session_start();
$blnLogged = false;
$intMenu2 = base64_decode(urldecode($intMenu));
if (isset($_SESSION['com_info']['com_id'])) {
$qry = 'select men_ref from adm_menus where men_id = ' . intval($intMenu2);
$recRapport = $objDatabase->fxGetRow($qry);
$qry = 'select com_eve_promoteur, com_rapports, com_eve_modifiable from inscriptions_comptes where com_id = ' . intval($_SESSION['com_info']['com_id']);
$recPromoteur = $objDatabase->fxGetRow($qry);
if ($recPromoteur != null && $recRapport != null) {
if ((trim($recRapport['men_ref']) != 0 && in_array($recRapport['men_ref'], explode(',', $recPromoteur['com_eve_promoteur']))) || (in_array($intMenu2, explode(',', $recPromoteur['com_rapports'])))) {
$blnLogged = true;
}
}
}
if (isset($_SESSION['usa_id'])) {
$blnLogged = true;
}
}
if($strAction=='importquestiongo'){
// print_r($_POST['choix_produits'] ); echo('<br>');
foreach ( $_POST['choix'] as $intValue) {
// echo($intValue);echo('<br>');
if (in_array($intValue, $_POST['choix_produits'])) {
// copier les produits
$sqlQuestion = "SELECT que_choix_produit FROM inscriptions_questions WHERE que_id = " . $intValue;
$choix_produit = $objDatabase->fxGetVar($sqlQuestion );
// echo($choix_produit.'<br>');
$tableau = explode(",", $choix_produit);
$new='';
foreach ($tableau as $valeur) {
$mempro_id=$valeur;
if ($valeur!=0){
// echo "Valeur : $valeur<br>";
$updates2 = [
'eve_id' => $_POST['hidden_pec_id'],
'prod_update_qui' => '',
'prod_update_date' => '',
];
$mempro_id=fxDuplicateRow('inscriptions_produits_new', $valeur, 'pro_id',$updates2 );
}
$new=$new.$mempro_id.",";
}
$new = rtrim($new, ',');
// echo( $new.'<br>');
$updates = [
'eve_id' => $_POST['hidden_pec_id'],
'que_banque_actif' => 0,
'que_banque_label' => '',
'prod_update_qui' => '',
'prod_update_date' => '',
'que_choix_produit' => $new,
'que_epreuves_incluses' => ''
];
} else {
$updates = [
'eve_id' => $_POST['hidden_pec_id'],
'que_banque_actif' => 0,
'que_banque_label' => '',
'prod_update_qui' => '',
'prod_update_date' => '',
'que_epreuves_incluses' => ''
];
}
fxDuplicateRow('inscriptions_questions', $intValue, 'que_id',$updates ) ;
}
$strLink = '/superadm/index.php?t=' . urlencode(base64_encode(fxUnescape(4))) . '&a=mod&id=' . $_POST['hidden_pec_id'];
header("Location: ". $strLink );
exit;
}
require_once('php/inc_fx_messages.php');
require_once('php/inc_fx_excell.php');
if (isset($_POST['avant_com_preprod'])){
// ajouster com_preprod en prod
if($_POST['avant_com_preprod']!=$_POST['com_preprod']){
$sqlInsert = "update inscriptions_comptes SET com_preprod = " . $_POST['com_preprod'] . " WHERE com_courriel = '" . $_POST['com_courriel'] . "'";
// $qryInsert = $GLOBALS['db']->fxQuery($sqlInsert);
$qryInsert = $objDatabasePreProd->fxQuery($sqlInsert);
}
}
if (isset($_POST['btn_copie_compte'])){
fxcopiecompte($_POST['com_courriel']);
}
if (isset($_POST['btn_syncro_compte'])){
// fxcopiecompte($_POST['com_courriel']);
}
// si on clique le bouton ajouter
if (isset($_POST['form_action'])){
fxSetForm($_POST['form_action'], $intMenu, $_POST, $_FILES);
}
// si on clique excel
if (isset($_POST['download']) && $_POST['download'] == 'excel') {
if (isset($_POST['strwhere']))
$strwhere = $_POST['strwhere'];
else
$strorder = "";
if (isset($_POST['strorder']))
$strorder = $_POST['strorder'];
else
$strorder = "";
$_GET["t"] = "";
fxrapportexcell($intMenu, $strLangue, $strorder, $strwhere);
}
// si on clique le bouton supprimer
foreach (array_keys($_POST) as $strValue) {
if (strstr($strValue, 'btn_delete_file_')) {
fxDeleteFile($intMenu, $_POST, substr($strValue, strrpos($strValue, '_') + 1));
} elseif (strstr($strValue, 'btn_delete_')) {
if ($strAction == 'list') {
fxSetForm('del', $intMenu, $_POST, '');
} else {
$tabSubtablesDel = fxGetMenussuperadm('', base64_decode(urldecode($intMenu)));
for ($intCtr = 1; $intCtr <= count($tabSubtablesDel); $intCtr++) {
if (isset($_POST['chk_' . $tabSubtablesDel[$intCtr]['men_id']]))
fxSetForm('del', urlencode(base64_encode(fxUnescape($tabSubtablesDel[$intCtr]['men_id']))), $_POST, '');
}
}
} elseif (strstr($strValue, 'btn_duplicate_')) {
fxSetForm('copy', $intMenu, $_POST, '');
}
}
require_once('inc_header.php');
?>
<div class="container-fluid" id="main">
<div class="row">
<div class="<?php if ($strAction == "report") { ?>col-12<?php } else { ?>col-md-9 col-lg-10 order-first order-md-last<?php } ?> py-3">
<?php
if ($blnLogged) {
switch ($strAction) {
case 'importquestion':
$intMenu = urlencode(base64_encode(fxUnescape(30)));
$tabResults = fxGetListData($intMenu, '', '', '', 1, $strLangue, $_GET['id']);
//MSIN-3872
//affiche le id de la section
//echo($tabSubTables[$intCtr]['men_id']);
?>
<form action="index.php?a=importquestiongo" method="post" id="frm_question_copy">
<input type="hidden" id="hidden_id" name="hidden_pec_id" value="<?php echo $_GET['id'] ?>">
<?php
$strLink = 'index.php?t=' . urlencode(base64_encode(fxUnescape(4))) . '&a=mod&id=' .$_GET['id'];
?>
<button class="btn_import_question btn btn-sm btn-secondary rounded-0 mb-2" data-id="<?php echo $tabResults['data'][$intCtr][$tabResults['key']]; ?>" data-key="<?php echo $tabResults['key']; ?>" data-table="<?php echo $tabResults['menu']['men_table']; ?>" type="button" data-toggle="tooltip" title="Importer les questions">
<i class="fa fa-upload" aria-hidden="true"> Importer les questions</i>
</button>
<a class="btn btn-danger rounded-0" href="<?php echo $strLink ?>">
<i class="fa fa-times" aria-hidden="true"></i>&nbsp;Annuler</a>
<?php
fxShowList($tabResults, $intMenu, '', '', '', 1, $strLangue);
?>
</form>
<?php
break;
case 'add':
case 'add_batch':
case 'mod':
fxShowForm($strAction, $intMenu, $strLangue);
break;
case 'list':
case 'report':
// récupérer les données pour créer la liste
if (isset($_GET['pg']))
$intPage = $_GET['pg'];
else
$intPage = 1;
$strOrder = $strWhere = $strGroup = '';
// vérifier la clause WHERE
if (isset($_GET['btn_search'])) {
$tabWhere = $tabGroup = array();
$tabFields = fxGetFormFields2('search', $intMenu);
for ($intCtr = 1; $intCtr <= count($tabFields); $intCtr++) { // former le WHERE si la valeur n'est pas vide
if ($tabFields[$intCtr]['date'] == 1 || $tabFields[$intCtr]['datetime'] == 1) {
if (isset($_GET[$tabFields[$intCtr]['name'] . '_from']) && trim($_GET[$tabFields[$intCtr]['name'] . '_from']) != '' && isset($_GET[$tabFields[$intCtr]['name'] . '_to']) && trim($_GET[$tabFields[$intCtr]['name'] . '_to']) != '')
$tabWhere[] = "(" . fxUnescape($tabFields[$intCtr]['name']) . " >= '" . $_GET[fxUnescape($tabFields[$intCtr]['name']) . '_from'] . "' AND " . fxUnescape($tabFields[$intCtr]['name']) . " <= '" . $_GET[fxUnescape($tabFields[$intCtr]['name']) . '_to'] . "')";
$tabGroup[] = $tabFields[$intCtr]['name'];
} else {
if (isset($_GET[$tabFields[$intCtr]['name']]) && trim($_GET[$tabFields[$intCtr]['name']]) != '')
$tabWhere[] = fxUnescape($tabFields[$intCtr]['alias']).fxUnescape($tabFields[$intCtr]['name']) . " LIKE '%" . $objDatabase->fxEscape(trim($_GET[$tabFields[$intCtr]['name']])) . "%'";
}
}
// pousser le WHERE dans une variable
if (count($tabWhere) > 0)
$strWhere = implode(',', $tabWhere);
if (count($tabGroup) > 0)
$strGroup = implode(',', $tabGroup);
}
// vérifier la clause ORDER BY
if (isset($_GET['o'])) {
$strOrder = $objDatabase->fxEscape(trim($_GET['o']));
$tabFields = fxGetFormFields2('sort', $intMenu, $strOrder);
$strOrder = $tabFields[1]['alias'] . $tabFields[1]['name'];
}
$tabResults = fxGetListData($intMenu, $strOrder, $strWhere, $strGroup, $intPage, $strLangue);
fxShowList($tabResults, $intMenu, $strOrder, $strWhere, $strGroup, $intPage, $strLangue);
break;
default:
?>
<h4><?php echo fxJournee(fxGetDate(), $strLangue); ?> le <?php echo fxShowDate(fxGetDate(), $strLangue); ?></h4>
<p>Bonjour <?php if (isset($_SESSION['usa_info']['com_prenom'])) { echo fxUnescape($_SESSION['usa_info']['com_prenom']); } ?> !</p>
<div class="row">
<div class="col-sm-6">
<h1>Outils</h1>
<ul class="links">
<li role="presentation" style="font-size: 20px;"><a href="<?php echo $vDomaine; ?>/superadm/commandes.php"><i class="fa fa-credit-card" aria-hidden="true"></i>&nbsp;Liste des commandes</a></li>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/email_logs.php"><i class="fa fa-envelope" aria-hidden="true"></i>&nbsp;Liste des logs de courriel</a></li>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/check_qte_produits.php"><i class="fa fa-archive" aria-hidden="true"></i>&nbsp;Vérification de l'inventaire des produits&nbsp;<i class="fa fa-star text-warning" aria-hidden="true"></i></a></li>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/compte_resend.php" target="_blank"><i class="fa fa-envelope" aria-hidden="true"></i>&nbsp;Renvoyer les courriels de création de compte</a></li>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/maj_age.php?p=<?php echo fxUnescape($_SESSION['usa_info']['com_login']); ?>" target="_blank"><i class="fa fa-birthday-cake" aria-hidden="true"></i>&nbsp;Mettre à jour l'âge des participants</a></li>
</ul>
<h2>Archives PDF</h2>
<ul>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/canmore2015_pdfs.php" target="_blank"><i class="fa fa-bar-chart" aria-hidden="true"></i>&nbsp;13.6 (labels - individual)</a></li>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/canmore2015_pdfs.php?id=13_7" target="_blank"><i class="fa fa-bar-chart" aria-hidden="true"></i>&nbsp;13.7 (labels - teams)</a></li>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/canmore2015_pdfs.php?id=13_3" target="_blank"><i class="fa fa-bar-chart" aria-hidden="true"></i>&nbsp;13.3 (teams pdf)</a></li>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/canmore2015_pdfs.php?id=13_3b" target="_blank"><i class="fa fa-bar-chart" aria-hidden="true"></i>&nbsp;13.3 - updated (teams pdf)</a></li>
</ul>
<h3>Rapports archives</h3>
<ul>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/late_fees.php">Page des frais de retard/suivi dashboard équipe</a></li>
<?php
$arrCanmore = fxGetMenussuperadm(0, 0, 1, 0, 1);
for ($intCtr = 1; $intCtr <= count($arrCanmore); $intCtr++) {
?>
<li role="presentation"><a href="<?php echo $vDomaine; ?>/superadm/index.php?t=<?php echo urlencode(base64_encode(fxUnescape($arrCanmore[$intCtr]['men_id']))); ?>&amp;a=report" target="_blank"><i class="fa fa-bar-chart" aria-hidden="true"></i>&nbsp;<?php echo fxUnescape($arrCanmore[$intCtr]['men_nom']); ?></a></li>
<?php
}
?>
</ul>
</div>
<div class="col-sm-6">
<?php
if ($vblnEnvironementDev) {
?>
<h1>Boutons Mise en PROD</h1>
<h4>Événements</h4>
<ul>
<li>Épreuves <sup>*</sup></li>
<li>Prix des épreuves <sup>*</sup></li>
<li>Infos participants <sup>*</sup></li>
<li>Produits <sup>*</sup></li>
<li>Questions <sup>*</sup></li>
<li>Questions pour les logs <sup>*</sup></li>
<li>Rabais <sup>*</sup></li>
<li>Événements</li>
<li>CSS</li>
<li>PDF</li>
<li>Taxes <sup>*</sup></li>
<li>Frais <sup>*</sup></li>
<li>Inscriptions confirmées</li>
<li>Rapports</li>
</ul>
<p><sup>*</sup> EXCLUT: paiements</p>
<h4>Épreuves</h4>
<ul>
<li>Épreuves <sup>*</sup></li>
<li>Prix des épreuves <sup>*</sup></li>
</ul>
<br>
<h4>Type de taxes</h4>
<ul>
<li>Type de taxes <sup>*</sup></li>
<li>Liste des taux <sup>*</sup></li>
</ul>
<br>
<div class="text-muted">
<p><sup>*</sup> Peut être mis en PROD séparément</p>
<p>NOTE: Pour un élément déjà en PROD qui doit être modifié, il doit être modifié en DEV et en PROD (ex. changer le texte d'une question), ne pas réutiliser "mettre en PROD"</p>
</div>
<?php
}
?>
</div>
</div>
<?php
}
} else {
if ($strLangue == 'fr') {
?>
<h1>Accès refusé!</h1>
<?php
} else {
?>
<h1>Access denied!</h1>
<?php
}
}
?>
<p>&nbsp;</p>
</div>
<?php
if ($strAction != "report")
require_once('inc_droite.php');
?>
</div>
</div>
<?php require_once('inc_footer.php');