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 = '
' . $strEvent . ': ' . $recEvenement['eve_nom_' . $strLangue] . '
' . $strRace . ': ' . $strEpreuve . '
' . $strClosing . ': ' . fxShowDate($arrEpreuve['epr_date_limite'], $strLangue) . ' @ ' . $arrEpreuve['epr_heure_limite'] . '
'; if ($strLangue == 'fr') { $strSujet = "Transfert de l'épreuve " . $strEpreuve; $strMessage = $arrMail['from_name'] . " vous transfert son inscription.

" . $strDetails . "

Veuillez cliquer le lien suivant pour vous inscrire:

" . $vDomaine . "/" . $strUrl . "/" . $strLangue . "/transfert/?t=" . $strNoTransfert . "

Si vous ne pouvez cliquer le lien, copiez-le et collez-le dans votre navigateur.

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.

" . $strDetails . "

Please click the link below to register:

" . $vDomaine . "/" . $strUrl . "/" . $strLangue . "/transfer/?t=" . $strNoTransfert . "

If you can't click the link, copy and paste it to your browser.

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 = '
'; if ($arrTransferts != null) { $strRetour .= ' '; 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 .= ' '; } $strRetour .= ' '; } else { $strRetour .= ' '; } $strRetour .= '
  ' . afficheTexte('title_nom-prenom', 0) . ' ' . afficheTexte('label_email', 0) . ' ' . afficheTexte('title_status', 0) . '
'; if ($arrTransferts[$intCtr]['ts_id'] != 2) { if ($arrTransferts[$intCtr]['ts_id'] != 3 && $arrTransferts[$intCtr]['ts_id'] != 4) { $strRetour .= ' '; } $strRetour .= ' '; } else { $strRetour .= '   '; } $strRetour .= ' ' . fxUnescape($arrTransferts[$intCtr]['tra_nom']) . ', ' . fxUnescape($arrTransferts[$intCtr]['tra_prenom']) . ' ' . $arrTransferts[$intCtr]['tra_courriel'] . ' ' . fxUnescape($arrTransferts[$intCtr]['ts_nom_' . $strLangue]) . '
' . count($arrTransferts) . '  '; if (count($arrTransferts) > 1) $strRetour .= strtolower(afficheTexte('title_transfert_pluriel', 0, 0)); else $strRetour .= strtolower(afficheTexte('title_transfert', 0, 0)); $strRetour .= '

' . afficheTexte('msg_no_transfert', 0, 0) . '

'; return $strRetour; }