341 lines
17 KiB
PHP
341 lines
17 KiB
PHP
<?php
|
|
// fonction qui récupère les demandes transferts envoyées
|
|
// param : id de l'epreuve commandee, no transfert
|
|
function fxGetTransferts($pec_id = 0, $strNoTransfert = '') {
|
|
global $objDatabase;
|
|
|
|
if ($pec_id != 0) {
|
|
$strWhere = " AND t.pec_id = " . intval($pec_id);
|
|
} else {
|
|
$strWhere = " AND t.no_transfert = '" . $strNoTransfert ."'";
|
|
}
|
|
|
|
$sqlTransferts = "SELECT t.*, s.ts_nom_fr, s.ts_nom_en FROM inscriptions_transferts t, inscriptions_transferts_statuts s WHERE t.ts_id = s.ts_id" . $strWhere . " ORDER BY t.tra_nom, t.tra_prenom";
|
|
$arrTransferts = $objDatabase->fxGetResults($sqlTransferts);
|
|
|
|
return $arrTransferts;
|
|
}
|
|
|
|
// fonction pour modifier les demandes de transferts envoyées pour une épreuve
|
|
// param : action, données post, langue d'affichage
|
|
function fxSetTransfert($strAction, $arrData, $strLangue) {
|
|
global $objDatabase;
|
|
$arrRetour = array('a' => $strAction);
|
|
|
|
switch ($strAction) {
|
|
case 'invite':
|
|
case 'inviter':
|
|
$sqlFrom = "SELECT * FROM inscriptions_comptes WHERE com_id = " . intval($arrData['com_id']);
|
|
$arrFrom = $objDatabase->fxGetRow($sqlFrom);
|
|
|
|
if ($arrFrom != null) {
|
|
if (isset($arrData['tra_nom_' . $arrData['pec_id']]) && trim($arrData['tra_nom_' . $arrData['pec_id']]) != '' && isset($arrData['tra_prenom_' . $arrData['pec_id']]) && trim($arrData['tra_prenom_' . $arrData['pec_id']]) != '' && isset($arrData['tra_courriel_' . $arrData['pec_id']]) && trim($arrData['tra_courriel_' . $arrData['pec_id']]) != '') {
|
|
// Trouver les infos de la course
|
|
$sqlEpreuve = "SELECT * FROM resultats_epreuves_commandees ec, inscriptions_epreuves e WHERE ec.epr_id = e.epr_id AND ec.pec_id_original = " . intval($arrData['pec_id']);
|
|
$arrEpreuve = $objDatabase->fxGetRow($sqlEpreuve);
|
|
|
|
if ($arrEpreuve != null) {
|
|
$arrInfos = array(
|
|
'prenom' => fxUnescape(utf8_decode($arrData['tra_prenom_' . $arrData['pec_id']])),
|
|
'nom' => fxUnescape(utf8_decode($arrData['tra_nom_' . $arrData['pec_id']])),
|
|
'courriel' => fxUnescape($arrData['tra_courriel_' . $arrData['pec_id']])
|
|
);
|
|
$arrMail = array(
|
|
'to_name' => $arrInfos['prenom'] . ' ' . $arrInfos['nom'],
|
|
'to_mail' => $arrInfos['courriel'],
|
|
'from_name' => fxUnescape($arrFrom['com_prenom']) . ' ' . fxUnescape($arrFrom['com_nom']),
|
|
'from_mail' => fxUnescape($arrFrom['com_courriel'])
|
|
);
|
|
|
|
$blnEnvoi = fxSendTransfert($arrEpreuve, $arrMail, $arrInfos, '', $strLangue);
|
|
|
|
if ($blnEnvoi) {
|
|
$arrTransferts = fxGetTransferts($arrData['pec_id']);
|
|
$arrRetour['state'] = 'success';
|
|
$arrRetour['message'] = fxMessage('p204', '', $strLangue);
|
|
$_SESSION['msg'] = 'p204';
|
|
$arrRetour['liste'] = fxShowTransferts($arrTransferts, $strLangue);
|
|
$arrRetour['reset'] = true;
|
|
$arrRetour['redirect'] = '';
|
|
} else {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e203', '', $strLangue);
|
|
$_SESSION['msg'] = 'e203';
|
|
}
|
|
} else {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e202', '', $strLangue);
|
|
$_SESSION['msg'] = 'e202';
|
|
}
|
|
} else {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e200', '', $strLangue);
|
|
$_SESSION['msg'] = 'e200';
|
|
}
|
|
} else {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e201', '', $strLangue);
|
|
$_SESSION['msg'] = 'e201';
|
|
}
|
|
break;
|
|
case 'cancel':
|
|
$sqlInfos = "SELECT * FROM inscriptions_transferts WHERE no_transfert = '" . $objDatabase->fxEscape($arrData['id']) . "'";
|
|
$arrInfos = $objDatabase->fxGetRow($sqlInfos);
|
|
|
|
if ($arrInfos != null) {
|
|
$sqlUpdate = "UPDATE inscriptions_transferts SET ts_id = 4 WHERE no_transfert = '" . $objDatabase->fxEscape($arrData['id']) . "'";
|
|
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
|
|
|
|
if (!$qryUpdate) {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e0', 'Transfert NON annulé!');
|
|
|
|
fxcreer_log("Erreur lors de l'annulation du transfert:\n" . $sqlUpdate);
|
|
} else {
|
|
$arrRetour['state'] = 'success';
|
|
$arrRetour['message'] = fxMessage('p205', '', $strLangue);
|
|
$_SESSION['msg'] = 'p205';
|
|
}
|
|
|
|
$arrTransferts = fxGetTransferts($arrInfos['pec_id']);
|
|
$arrRetour['liste'] = fxShowTransferts($arrTransferts, $strLangue);
|
|
}
|
|
break;
|
|
case 'resend': // ENVOYER DE NOUVEAU LE TRANSFERT
|
|
$sqlInfos = "SELECT t.pec_id, t.no_transfert, t.tra_prenom, t.tra_nom, t.tra_courriel, c.com_prenom, c.com_nom, c.com_courriel FROM inscriptions_transferts t, inscriptions_comptes c WHERE t.com_id = c.com_id AND t.no_transfert = '" . $objDatabase->fxEscape($arrData['id']) . "'";
|
|
$arrInfos = $objDatabase->fxGetRow($sqlInfos);
|
|
|
|
if ($arrInfos != null) {
|
|
// Trouver les infos de la course
|
|
$sqlEpreuve = "SELECT * FROM resultats_epreuves_commandees ec, inscriptions_epreuves e WHERE ec.epr_id = e.epr_id AND ec.pec_id_original = " . intval($arrInfos['pec_id']);
|
|
$arrEpreuve = $objDatabase->fxGetRow($sqlEpreuve);
|
|
|
|
if ($arrEpreuve != null) {
|
|
$arrInfos2 = array(
|
|
'prenom' => fxUnescape(utf8_decode($arrInfos['tra_prenom'])),
|
|
'nom' => fxUnescape(utf8_decode($arrInfos['tra_nom'])),
|
|
'courriel' => fxUnescape($arrInfos['tra_courriel'])
|
|
);
|
|
$arrMail = array(
|
|
'to_name' => $arrInfos2['prenom'] . ' ' . $arrInfos2['nom'],
|
|
'to_mail' => $arrInfos2['courriel'],
|
|
'from_name' => fxUnescape($arrInfos['com_prenom']) . ' ' . fxUnescape($arrInfos['com_nom']),
|
|
'from_mail' => fxUnescape($arrInfos['com_courriel'])
|
|
);
|
|
|
|
$blnEnvoi = fxSendTransfert($arrEpreuve, $arrMail, $arrInfos2, $arrInfos['no_transfert'], $strLangue);
|
|
|
|
if ($blnEnvoi) {
|
|
$sqlUpdate = "UPDATE inscriptions_transferts SET ts_id = 5, tra_envoi = '" . fxGetDateTime() . "' WHERE no_transfert = '" . $objDatabase->fxEscape($arrData['id']) . "'";
|
|
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
|
|
|
|
if (!$qryUpdate) {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e0', 'Transfert NON ré-envoyé!');
|
|
|
|
fxcreer_log("Erreur lors de l'envoi de nouveau du transfert:\n" . $sqlUpdate);
|
|
} else {
|
|
$arrRetour['state'] = 'success';
|
|
$arrRetour['message'] = fxMessage('p206', '', $strLangue);
|
|
$_SESSION['msg'] = 'p206';
|
|
}
|
|
|
|
$arrTransferts = fxGetTransferts($arrInfos['pec_id']);
|
|
$arrRetour['liste'] = fxShowTransferts($arrTransferts, $strLangue);
|
|
} else {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e203', '', $strLangue);
|
|
$_SESSION['msg'] = 'e203';
|
|
}
|
|
} else {
|
|
$arrRetour['state'] = 'error';
|
|
$arrRetour['message'] = fxMessage('e202', '', $strLangue);
|
|
$_SESSION['msg'] = 'e202';
|
|
}
|
|
}
|
|
}
|
|
|
|
return $arrRetour;
|
|
}
|
|
|
|
// fonction qui envoie les transferts par courriel
|
|
// param : infos de l'épreuve, infos du courriel, numéro de transfert, langue d'affichage
|
|
function fxSendTransfert($arrEpreuve, $arrMail, $arrInfos, $strNoTransfert = '', $strLangue = 'fr') {
|
|
global $objDatabase, $vDomaine;
|
|
|
|
$strUrl = fxGetEvenementsUrl($arrEpreuve['eve_id']);
|
|
$strEpreuve = fxUnescape($arrEpreuve['epr_type_' . $strLangue]) . ' ' . fxUnescape($arrEpreuve['epr_nom_' . $strLangue]);
|
|
|
|
$sqlEvenement = "SELECT * FROM inscriptions_evenements e LEFT JOIN inscriptions_series s ON s.ser_id = e.ser_id, inscriptions_types_evenements t WHERE t.te_id = e.te_id AND e.eve_actif = 1 AND e.eve_date_fin >= '" . fxGetDate() . "' AND e.eve_label_url = '" . $objDatabase->fxEscape($strUrl) . "'";
|
|
$recEvenement = $objDatabase->fxGetRow($sqlEvenement);
|
|
|
|
if ($recEvenement != null) {
|
|
if ($strNoTransfert == '') {
|
|
$strNoTransfert = uniqid('TRA');
|
|
|
|
$sqlTransfert = "INSERT INTO inscriptions_transferts SET ts_id = 1, no_transfert = '" . $objDatabase->fxEscape($strNoTransfert) . "', tra_prenom = '" . $objDatabase->fxEscape($arrInfos['prenom']) . "', tra_nom = '" . $objDatabase->fxEscape($arrInfos['nom']) . "', tra_courriel = '" . $objDatabase->fxEscape($arrInfos['courriel']) . "', pec_id = " . intval($arrEpreuve['pec_id_original']) . ", com_id = " . intval($_SESSION['com_info']['com_id']) . ", tra_creation = '" . fxGetDateTime() . "', tra_envoi = '" . fxGetDateTime() . "'";
|
|
$qryTransfert = $objDatabase->fxQuery($sqlTransfert);
|
|
|
|
if (!$qryTransfert) {
|
|
fxcreer_log("Erreur lors de l'ajout du transfert:\n" . $sqlTransfert);
|
|
}
|
|
}
|
|
|
|
// former le tableau html contenant les infos de l'événement et l'épreuve
|
|
if ($strLangue == 'fr') {
|
|
$strEvent = 'Événement';
|
|
$strRace = 'Épreuve';
|
|
$strClosing = 'Date limite pour réserver';
|
|
} else {
|
|
$strEvent = 'Event';
|
|
$strRace = 'Race';
|
|
$strClosing = 'Deadline to book';
|
|
}
|
|
|
|
$strDetails = '
|
|
<table border="0" cellpadding="5" width="100%">
|
|
<tr>
|
|
<td align="right" width="40%">
|
|
<strong>' . $strEvent . ':</strong>
|
|
</td>
|
|
<td align="left" width="60%">
|
|
' . $recEvenement['eve_nom_' . $strLangue] . '
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right" width="40%">
|
|
<strong>' . $strRace . ':</strong>
|
|
</td>
|
|
<td align="left" width="60%">
|
|
' . $strEpreuve . '
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right" width="40%">
|
|
<strong>' . $strClosing . ':</strong>
|
|
</td>
|
|
<td align="left" width="60%">
|
|
' . fxShowDate($arrEpreuve['epr_date_limite'], $strLangue) . ' @ ' . $arrEpreuve['epr_heure_limite'] . '
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
';
|
|
|
|
if ($strLangue == 'fr') {
|
|
$strSujet = "Transfert de l'épreuve " . $strEpreuve;
|
|
$strMessage = $arrMail['from_name'] . " vous transfert son inscription.<br /><br />" . $strDetails . "<br /><br />Veuillez cliquer le lien suivant pour vous inscrire:<br /><br /><a href=\"" . $vDomaine . "/" . $strUrl . "/" . $strLangue . "/transfert/?t=" . $strNoTransfert . "\" target=\"_blank\">" . $vDomaine . "/" . $strUrl . "/" . $strLangue . "/transfert/?t=" . $strNoTransfert . "</a><br /><br />Si vous ne pouvez cliquer le lien, copiez-le et collez-le dans votre navigateur.<br /><br />Ce message a été envoyé via le ste web de ms1inscription.com.";
|
|
} else {
|
|
$strSujet = "Transfert of the race " . $strEpreuve;
|
|
$strMessage = $arrMail['from_name'] . " is transferring his/her race to you.<br /><br />" . $strDetails . "<br /><br />Please click the link below to register:<br /><br /><a href=\"" . $vDomaine . "/" . $strUrl . "/" . $strLangue . "/transfer/?t=" . $strNoTransfert . "\" target=\"_blank\">" . $vDomaine . "/" . $strUrl . "/" . $strLangue . "/transfer/?t=" . $strNoTransfert . "</a><br /><br />If you can't click the link, copy and paste it to your browser.<br /><br />This message was sent from the website ms1inscription.com.";
|
|
}
|
|
|
|
return fxSendMail($strSujet, $strMessage, $arrMail['to_mail'], $arrMail['to_name'], $arrMail['from_mail'], $arrMail['from_name'], 0, 1, $strLangue);
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
function fxShowTransferts($arrTransferts, $strLangue) {
|
|
$strRetour = '
|
|
<div class="table-responsive">
|
|
<table class="table table-striped">
|
|
';
|
|
|
|
if ($arrTransferts != null) {
|
|
$strRetour .= '
|
|
<thead>
|
|
<tr>
|
|
<th class="text-center"> </th>
|
|
<th class="text-left" style="width: 35%;">' . afficheTexte('title_nom-prenom', 0) . '</th>
|
|
<th class="text-left" style="width: 30%;">' . afficheTexte('label_email', 0) . '</th>
|
|
<th class="text-left">' . afficheTexte('title_status', 0) . '</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
';
|
|
|
|
for ($intCtr = 1; $intCtr <= count($arrTransferts); $intCtr++) {
|
|
switch (intval($arrTransferts[$intCtr]['ts_id'])) {
|
|
case 2:
|
|
$strClass = 'success';
|
|
break;
|
|
case 3:
|
|
case 4:
|
|
case 6:
|
|
case 7:
|
|
case 8:
|
|
$strClass = 'danger';
|
|
break;
|
|
case 5:
|
|
$strClass = 'warning';
|
|
break;
|
|
default:
|
|
$strClass = 'secondary';
|
|
}
|
|
|
|
$strRetour .= '
|
|
<tr>
|
|
<td class="text-center">
|
|
';
|
|
|
|
if ($arrTransferts[$intCtr]['ts_id'] != 2) {
|
|
if ($arrTransferts[$intCtr]['ts_id'] != 3 && $arrTransferts[$intCtr]['ts_id'] != 4) {
|
|
$strRetour .= '
|
|
<button class="btn btn-sm btn-danger btn_cancel_transfert rounded-0" data-no_transfert="' . $arrTransferts[$intCtr]['no_transfert'] . '" data-toggle="tooltip" title="' . afficheTexte('tooltip_cancel_transfert', 0, 0) . '" type="button"><i class="fa fa-times"></i></button>
|
|
';
|
|
}
|
|
|
|
$strRetour .= '
|
|
<button class="btn btn-sm btn-secondary btn_resend_transfert rounded-0" data-no_transfert="' . $arrTransferts[$intCtr]['no_transfert'] . '" data-toggle="tooltip" title="' . afficheTexte('tooltip_resend_transfert', 0, 0) . '" type="button"><i class="fa fa-refresh"></i></button>
|
|
';
|
|
}
|
|
else {
|
|
$strRetour .= '
|
|
|
|
';
|
|
}
|
|
|
|
$strRetour .= '
|
|
</td>
|
|
<td class="text-left">' . fxUnescape($arrTransferts[$intCtr]['tra_nom']) . ', ' . fxUnescape($arrTransferts[$intCtr]['tra_prenom']) . '</td>
|
|
<td class="text-left">' . $arrTransferts[$intCtr]['tra_courriel'] . '</td>
|
|
<td class="text-left"><span class="badge badge-' . $strClass . '">' . fxUnescape($arrTransferts[$intCtr]['ts_nom_' . $strLangue]) . '</span></td>
|
|
</tr>
|
|
';
|
|
}
|
|
|
|
$strRetour .= '
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<th class="text-center" colspan="4">' . count($arrTransferts) . '
|
|
';
|
|
|
|
if (count($arrTransferts) > 1)
|
|
$strRetour .= strtolower(afficheTexte('title_transfert_pluriel', 0, 0));
|
|
else
|
|
$strRetour .= strtolower(afficheTexte('title_transfert', 0, 0));
|
|
|
|
$strRetour .= '</th>
|
|
</tr>
|
|
</tfoot>
|
|
';
|
|
} else {
|
|
$strRetour .= '
|
|
<tr>
|
|
<td class="text-center">
|
|
<p><span></span></p>
|
|
' . afficheTexte('msg_no_transfert', 0, 0) . '
|
|
<p><span></span></p>
|
|
</td>
|
|
</tr>
|
|
';
|
|
}
|
|
|
|
$strRetour .= '
|
|
</table>
|
|
</div>
|
|
';
|
|
|
|
return $strRetour;
|
|
} |