false);
switch (intval($intSousType)) {
case 1: // Nouveau Membre
// patch pour mettre sont numero
if ($numero_manuele != 0) {
//trouver le dernier numéro utilisé ainsi que le préfixe
$sqlNumeroMembership = "SELECT mt_prefixe, mt_last_number FROM memberships_types WHERE mt_id = " . intval($intType);
$arrNumeroMembership = $objDatabase->fxGetRow($sqlNumeroMembership);
$intNouveauNumero = $numero_manuele;
$strNouveauNumero = $arrNumeroMembership['mt_prefixe'] . $intNouveauNumero;
// ajouter le nouveau membership
$sqlInsertNumeroMembership = "INSERT INTO memberships SET mem_club_question = '" . $objDatabase->fxEscape($nom_club) . "',pec_id = " . intval($intpec_id) . ", mst_id = " . intval($intSousType) . ", epr_id = " . intval($intepr_id) . ", com_id = " . intval($intCompte) . ", mt_id = " . intval($intType) . ", mem_numero = '" . $strNouveauNumero . "', mem_date_debut = '" . $strDateDebut . "', mem_date_fin = '" . $strDateFin . "', mem_actif = 1, no_panier = '" . $strNoPanier . "', no_commande = '" . $no_commande . "'";
$arrInsertNumeroMembership = $objDatabase->fxQuery($sqlInsertNumeroMembership);
fxcreer_log('Nouveau membre avec num manuel' . $strNouveauNumero, 10, 0, 0, 0, 0, $strNoPanier);
} else {
//trouver le dernier numéro utilisé ainsi que le préfixe
$sqlNumeroMembership = "SELECT mt_prefixe, mt_last_number FROM memberships_types WHERE mt_id = " . intval($intType);
$arrNumeroMembership = $objDatabase->fxGetRow($sqlNumeroMembership);
$intNouveauNumero = intval($arrNumeroMembership['mt_last_number']) + 1;
$strNouveauNumero = $arrNumeroMembership['mt_prefixe'] . $intNouveauNumero;
// ajouter le nouveau membership
$sqlInsertNumeroMembership = "INSERT INTO memberships SET mem_club_question = '" . $objDatabase->fxEscape($nom_club) . "',pec_id = " . $intpec_id . ", mst_id = " . intval($intSousType) . ", epr_id = " . intval($intepr_id) . ", com_id = " . intval($intCompte) . ", mt_id = " . intval($intType) . ", mem_numero = '" . $strNouveauNumero . "', mem_date_debut = '" . $strDateDebut . "', mem_date_fin = '" . $strDateFin . "', mem_actif = 1, no_panier = '" . $strNoPanier . "', no_commande = '" . $no_commande . "'";
$arrInsertNumeroMembership = $objDatabase->fxQuery($sqlInsertNumeroMembership);
fxcreer_log('Nouveau membre ' . $strNouveauNumero, 10, 0, 0, 0, 0, $strNoPanier);
if ($arrInsertNumeroMembership) { // si bien enregistré
$intMembership = $objDatabase->fxGetLastId();
// mettre à jour le dernier nouveau membership
$sqlUpdateNumeroMembership = "UPDATE memberships_types SET mt_last_number = " . intval($intNouveauNumero) . " WHERE mt_id = " . intval($intType);
$arrUpdateNumeroMembership = $objDatabase->fxQuery($sqlUpdateNumeroMembership);
$arrOutput['state'] = true;
$arrOutput['numero'] = $strNouveauNumero;
$arrOutput['mem_id'] = $intMembership;
}
}
break;
case 2: // Renouvellement
//trouver le d numéro de membre
$sqlMembership = "SELECT * FROM memberships WHERE com_id = " . intval($intCompte) . " AND mt_id = " . intval($intType) . " ORDER BY mem_id DESC LIMIT 1";
$arrMembership = $objDatabase->fxGetRow($sqlMembership);
$strNumero = $arrMembership['mem_numero'];
//MSIN-4205
// if ($arrMembership['mem_date_fin'] >= fxGetDate()) {
// $strDateDebut = $arrMembership['mem_date_debut'];
// }
$today = fxGetDate();
// Priorité à la nouvelle date
if ($strDateDebut > $today) {
// Elle ne couvre pas aujourd’hui → on cherche une date antérieure valide
if ($arrMembership['mem_date_debut'] <= $today) {
$strDateDebut = $arrMembership['mem_date_debut'];
}
}
// Date de fin : la plus récente (max)
if ($arrMembership['mem_date_fin'] > $strDateFin) {
$strDateFin = $arrMembership['mem_date_fin'];
}
// desactiver les autre abonnement
// mettre à jour le dernier nouveau membership
$sqlUpdateNumeroMembership = "UPDATE memberships SET mem_actif = 0 WHERE com_id = " . intval($intCompte) . " AND mt_id = " . intval($intType);
$arrUpdateNumeroMembership = $objDatabase->fxQuery($sqlUpdateNumeroMembership);
// ajouter le nouveau membership
$sqlInsertNumeroMembership = "INSERT INTO memberships SET mem_club_question = '" . $objDatabase->fxEscape($nom_club) . "',pec_id = " . intval($intpec_id) . ", mst_id = " . intval($intSousType) . ", epr_id = " . intval($intepr_id) . ", com_id = " . intval($intCompte) . ", mt_id = " . intval($intType) . ", mem_numero = '" . $strNumero . "', mem_date_debut = '" . $strDateDebut . "', mem_date_fin = '" . $strDateFin . "', mem_actif = 1, no_panier = '" . $strNoPanier . "', no_commande = '" . $no_commande . "'";
$arrInsertNumeroMembership = $objDatabase->fxQuery($sqlInsertNumeroMembership);
fxcreer_log('renouvellemnt membre ' . $strNumero, 10, 0, 0, 0, 0, $strNoPanier);
break;
}
return $arrOutput;
}
//MSIN-3918
function fxGetMembresClub($club, $excel = 0)
{ // trouver les commandes
global $objDatabase;
$arrRetour = null;
$mem_select = "m.mem_club_question,pe.*,mem_date_debut,mem_date_fin,ic.com_prenom,ic.com_nom, mem_numero,IF(ic.com_affilie is null ,'','oui') as affilie, IF(ic.com_affilie is null , ic.com_courriel, c.com_courriel) AS courriel
";
if ($excel == 1) {
$mem_select = "ic.com_prenom,ic.com_nom,IF(ic.com_affilie is null , ic.com_courriel, c.com_courriel) AS courriel, mem_numero,DATE(mem_date_debut) AS date_debut,DATE(mem_date_fin) AS date_fin,IF(ic.com_affilie is null ,'','oui') as affilie
";
}
$sqlAbonnements = "
SELECT " . $mem_select . "
FROM memberships m
JOIN memberships_types mt ON m.mt_id = mt.mt_id
JOIN inscriptions_comptes ic ON ic.com_id = m.com_id
JOIN inscriptions_panier_epreuves pe ON m.epr_id = pe.epr_id
left JOIN inscriptions_comptes c ON ic.com_affilie = c.com_id
WHERE mem_actif = 1 and m.mem_club_question LIKE '%" . $club . "%'
";
$arrAbonnements = $objDatabase->fxGetResults($sqlAbonnements);
return $arrAbonnements;
}
function fxGetAbonnements($CompteClient = 0, $tep_id = 0, $strLangue = 'fr', $strNumeroMembership = '', $type_adhesion = 0)
{ // trouver les commandes
global $objDatabase;
$arrRetour = null;
$strWhere = '1=1';
if (trim($strNumeroMembership) != '') {
$strWhere = "m.mem_numero = '" . $objDatabase->fxEscape($strNumeroMembership) . "' AND (ic.com_id = " . intval($_SESSION['com_info']['com_id']) . " OR ic.com_affilie = " . intval($_SESSION['com_info']['com_id']) . ")";
} else {
if ($CompteClient != 0) {
$strWhere = "m.com_id = " . intval($CompteClient);
}
}
// MSIN-3918
if ($type_adhesion != 0) {
$strWhere .= " and m.mt_id =" . $type_adhesion;
}
$sqlAbonnements = "
SELECT *
FROM memberships m
JOIN memberships_types mt ON m.mt_id = mt.mt_id
JOIN inscriptions_comptes ic ON ic.com_id = m.com_id
JOIN inscriptions_panier_epreuves pe ON m.epr_id = pe.epr_id
WHERE mem_actif = 1 AND $strWhere
";
$arrAbonnements = $objDatabase->fxGetResults($sqlAbonnements);
return $arrAbonnements;
}
function fxGetAbonnement($mem_id, $intMembershipType, $mem_com_id = 0, $intEpreuve = 0, $mem_pec_id = 0, $que_id = 3702)
{ // trouver labonnement
global $objDatabase;
$arrRetour = null;
if ($mem_pec_id != 0) {
$sqlAbonnements = "
SELECT *
FROM memberships m
JOIN memberships_types mt ON m.mt_id=mt.mt_id
JOIN inscriptions_comptes ic ON ic.com_id=m.com_id
WHERE m.pec_id = " . intval($mem_pec_id) . ' AND m.mem_actif = 1
';
$arrAbonnements = $objDatabase->fxGetRow($sqlAbonnements);
} elseif ($mem_id != 0) {
$sqlAbonnements = "
SELECT * FROM memberships m
JOIN memberships_types mt ON m.mt_id=mt.mt_id
JOIN inscriptions_comptes ic ON ic.com_id=m.com_id
WHERE m.mem_id = " . intval($mem_id) . ' AND m.mem_actif = 1
';
$arrAbonnements = $objDatabase->fxGetRow($sqlAbonnements);
} else {
if (intval($intEpreuve) == 0) {
$sqlAbonnements = "
SELECT *
FROM memberships m
JOIN memberships_types mt ON m.mt_id = mt.mt_id
JOIN inscriptions_comptes ic ON ic.com_id = m.com_id
WHERE m.mt_id = " . intval($intMembershipType) . " AND m.com_id = " . intval($mem_com_id) . " AND m.mem_actif = 1
ORDER BY mem_actif desc limit 1";
} else {
$sqlAbonnements = "
SELECT *
FROM memberships m
JOIN memberships_types mt ON m.mt_id = mt.mt_id
JOIN inscriptions_comptes ic ON ic.com_id = m.com_id
WHERE m.epr_id = " . intval($intEpreuve) . " AND m.mt_id = " . intval($intMembershipType) . " AND m.com_id = " . intval($mem_com_id) . " AND m.mem_actif = 1
ORDER BY mem_actif desc limit 1";
}
$arrAbonnements = $objDatabase->fxGetRow($sqlAbonnements);
}
return $arrAbonnements;
}
function fxGetAbonnementactive($mem_com_id, $mem_date, $intMembershipType = 1)
{ // trouver labonnement et valider si valide
global $objDatabase;
$sqlAbonnements = "SELECT mem_date_debut,mem_date_fin,mem_numero FROM memberships m JOIN memberships_types mt ON m.mt_id=mt.mt_id JOIN inscriptions_comptes ic ON ic.com_id=m.com_id JOIN inscriptions_panier_epreuves_commandees ipec ON m.pec_id=ipec.pec_id WHERE m.mt_id=" . intval($intMembershipType) . " and m.com_id=" . intval($mem_com_id) . " ORDER BY mem_actif desc limit 1";
$arrAbonnements = $objDatabase->fxGetRow($sqlAbonnements);
if ($arrAbonnements == null) {
$arrAbonnements['statut'] = 'pas_membre';
} else {
if ($mem_date >= $arrAbonnements['mem_date_debut'] && $mem_date <= $arrAbonnements['mem_date_fin']) {
$arrAbonnements['statut'] = 'ok_membre';
} else {
$arrAbonnements['statut'] = 'abbonement_nonvalide';
}
}
$arrAbonnements['date_epr'] = $mem_date;
return $arrAbonnements;
}
// MSIN-3918
function fxGetAbonnementsaffilie($CompteClient = 0, $tep_id = 0, $strLangue = 'fr', $type_adhesion = 0)
{ // trouver les commandes
global $objDatabase;
$arrAbonnements = array();
require_once('inc_fx_affilies.php');
$arrAffilie = fxGetInfosAffilies($CompteClient);
$mem_list = "";
if ($arrAffilie != null) {
foreach ($arrAffilie as $intCtr => $arrAff) {
$mem_list = $mem_list . $arrAff['com_id'] . ",";
}
}
$mem_list = substr($mem_list, 0, -1);
// MSIN-3918
$strWhere = "";
if ($type_adhesion != 0) {
$strWhere = " and m.mt_id =" . $type_adhesion;
}
if ($mem_list != "") {
$arrRetour = null;
//$sqlAbonnements = "SELECT * FROM memberships m JOIN memberships_types mt ON m.mt_id=mt.mt_id JOIN inscriptions_comptes ic ON ic.com_id=m.com_id JOIN inscriptions_panier_epreuves_commandees ipec ON m.pec_id=ipec.pec_id WHERE m.com_id in(" .$mem_list . ") and mem_actif=1";
$sqlAbonnements = "
SELECT *
FROM memberships m
JOIN memberships_types mt ON m.mt_id = mt.mt_id
JOIN inscriptions_comptes ic ON ic.com_id = m.com_id
JOIN inscriptions_panier_epreuves pe ON m.epr_id = pe.epr_id
WHERE m.com_id IN(" . $mem_list . ") AND mem_actif = 1" . $strWhere . "
";
$arrAbonnements = $objDatabase->fxGetResults($sqlAbonnements);
}
return $arrAbonnements;
}
function fxShowAbonnements($arrAbonnements, $arrCompteClient, $tep_id, $strLangue, $type)
{ // afficher les commandes
global $objDatabase, $strEveModifiable, $vDomaine, $arrFormsTransfert, $arrFormsObjectifsDons, $arrFormsLogSettings, $arrFormsAddLogs, $vblnEnvironementDev, $strPage;
$strCode = (!empty($_GET['code'])) ? trim($_GET['code']) : '';
$strRetour = '';
if ($arrAbonnements != null) {
?>
|
|
|
|
|
|
|
$arrAbon) {
$strClasse = ($intCtr & 1) ? '' : 'table-secondary';
?>
|
|
|
|
|
|
|
carte
|
' . afficheTexte('btn_modifier_adhesion', 0) . '
';
if (!fxCheckMembershipComplete(array(0 => $arrAbon))) {
// afficher une note pour compléter l'adhésion
$strText = afficheTexte('texte_compléter_adhésion2', 0);
echo fxShowMembershipWarning($strText, '', $strLangue);
} else {
$arrReturn = fxCheckMembershipValidDate(array(0 => $arrAbon));
if (!($arrReturn['valid'])) {
// afficher une note pour compléter l'adhésion
$strText = afficheTexte('texte_adhésion_date_question2', 0, 1, 1);
echo fxShowMembershipWarning($strText, $arrReturn, $strLangue);
}
}
echo '
|
';
}
}
?>
|
|
|
|
|
|
|
$arrAbon) {
$strClasse = ($intCtr & 1) ? '' : 'table-secondary';
?>
|
|
|
|
|
|
|
carte
|
|
|
|
|
|
|
|
|
|
|
|
$arrAbon2) {
$strClasse = ($intCtr & 1) ? '' : 'table-secondary';
?>
|
|
|
|
|
|
|
|
|
' . afficheTexte('btn_modifier_adhesion', 0) . '
';
if (!fxCheckMembershipComplete(array(0 => $arrAbon))) {
// afficher une note pour compléter l'adhésion
$strText = afficheTexte('texte_compléter_adhésion2', 0);
echo fxShowMembershipWarning($strText, '', $strLangue);
} else {
$arrReturn = fxCheckMembershipValidDate(array(0 => $arrAbon));
if (!($arrReturn['valid'])) {
// afficher une note pour compléter l'adhésion
$strText = afficheTexte('texte_adhésion_date_question2', 0, 1, 1);
echo fxShowMembershipWarning($strText, $arrReturn, $strLangue);
}
}
echo '
|
';
}
}
?>
|
|
|
|
|
|
|
$arrAbon) {
$strClasse = ($intCtr & 1) ? '' : 'table-secondary';
?>
|
|
|
|
|
|
|
|
now() and r.mr_reponse fxGetResults($sqlQuestions);
return $mem_sqlQuestions;
}
function fxShowQuestionsmail($arrAbonnements, $strLangue, $intEveId, $sort = "asc")
{ // afficher les commandes
global $objDatabase, $strEveModifiable, $vDomaine, $arrFormsTransfert, $arrFormsObjectifsDons, $arrFormsLogSettings, $arrFormsAddLogs, $vblnEnvironementDev, $strPage;
$strCode = (!empty($_GET['code'])) ? trim($_GET['code']) : '';
$strRetour = '';
$mem_sort = "";
if ($arrAbonnements != null) {
?>
AddPage();
$pdf->setSourceFile($_SERVER['DOCUMENT_ROOT'] . $vRepertoireFichiers . '/pdf/template_carte/carte_' . $eve_id . '_' . $mt_id . '.pdf');
$tplIdx = $pdf->importPage(1);
// use the imported page and place it at point 10,10 with a width of 100 mm
$pdf->useTemplate($tplIdx, 0, 0);
// now write some text above the imported page
$pdf->SetFont('Arial', 'B', 12);
$pdf->SetXY(73.5 + $offsetx, 46.5 + $offsety);
$pdf->Cell(40, 5.05, utf8_decode($arrAbonnements['type']), 0, 1, "R");
$pdf->SetFont('Arial', 'B', 12);
$pdf->SetXY(42 + $offsetx, 51.5 + $offsety);
$pdf->MultiCell(75, 4, utf8_decode($arrAbonnements['nom']), 0, "L");
$pdf->SetFont('Arial', 'B', 12);
$pdf->SetXY(42 + $offsetx, 60 + $offsety);
$pdf->SetTextColor(136, 136, 136);
$pdf->Cell(20, 5.05, utf8_decode($arrAbonnements['numero']), 0, 1, "L");
$pdf->SetXY(75 + $offsetx, 60 + $offsety);
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(40, 5.05, utf8_decode($arrAbonnements['expiration']), 0, 1, "R");
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('Arial', 'B', 10);
$pdf->SetXY(42 + $offsetx, 65 + $offsety);
$pdf->Cell(60, 5.05, utf8_decode($arrAbonnements['cat']), 0, 1, "L");
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('Arial', '', 8);
$pdf->SetXY(42 + $offsetx, 70 + $offsety);
$pdf->Cell(60, 5.05, utf8_decode("Pour connaître tous vos avantages :"), 0, 1, "L");
$pdf->SetFont('Arial', 'B', 8);
$pdf->SetTextColor(0, 93, 168);
$pdf->SetXY(88 + $offsetx, 70 + $offsety);
$pdf->Cell(50, 5.05, utf8_decode("triathlonquebec.org"), 0, 1, "L");
$pdf->Output('carte.pdf', 'I');
// $data=$pdf->Output("carte.pdf", "S");
// echo "";
// enregister le pdf
// if ($eve_id!=0)
// $pdf->Output($_SERVER['DOCUMENT_ROOT'] . $vRepertoireFichiers . '/pdf/cartes/' . $strNomFichier, 'F');
}
function fxtypemembership($intMembershipType)
{
global $objDatabase;
$sqltypemembership = "SELECT * FROM memberships_types WHERE mt_id = " . intval($intMembershipType);
$arrtypemembership = $objDatabase->fxGetRow($sqltypemembership);
return $arrtypemembership;
}
function fxIfMembership($intMembershipType, $mem_numero)
{
global $objDatabase;
$sqltypemembership = "SELECT COUNT(mem_numero) FROM memberships WHERE mem_actif = 1 AND mem_numero = '" . $mem_numero . "' AND mt_id = " . intval($intMembershipType);
$arrtypemembership = $objDatabase->fxGetVar($sqltypemembership);
return $arrtypemembership;
}
function fxIfMembershipDate($intMembershipType, $mem_numero, $strNaissance, $strDateEpreuve)
{
global $objDatabase;
$sqltypemembership = "
SELECT COUNT(mem_numero)
FROM memberships m
JOIN inscriptions_comptes c ON m.com_id = c.com_id
WHERE m.mem_actif = 1 AND m.mem_numero = '" . $objDatabase->fxEscape($mem_numero) . "' AND c.com_naissance= '" . $objDatabase->fxEscape($strNaissance) . "' AND m.mt_id = " . intval($intMembershipType) . " AND DATE(m.mem_date_debut) <= '" . $objDatabase->fxEscape($strDateEpreuve) . "' AND DATE(m.mem_date_fin) >= '" . $objDatabase->fxEscape($strDateEpreuve) . "'
";
$arrtypemembership = $objDatabase->fxGetVar($sqltypemembership);
return $arrtypemembership;
}
function fxIfRenouvellementMembership($intMembershipType, $intCompte)
{
global $objDatabase;
$sqlNbMembership = "SELECT COUNT(mem_id) FROM memberships WHERE mem_actif = 1 AND com_id = " . intval($intCompte) . " AND mt_id = " . intval($intMembershipType);
$intNbMembership = $objDatabase->fxGetVar($sqlNbMembership);
return $intNbMembership;
}
function fxGetQuestionsMembership($intTypeMembership, $blnMandatory = false)
{
global $objDatabase;
$strWhere = '';
if ($blnMandatory) {
$strWhere = " AND mq_required = 1";
}
// Récupérsr les questions à poer pour ce type de membership
$sqlQuestions = "
SELECT
mq_id, mq_type, mq_question_fr, mq_question_en, mq_placeholder_fr, mq_placeholder_en, mq_validation, mq_validate_message_fr, mq_validate_message_en, mq_id_validate, mq_required
FROM memberships_questions
WHERE mt_id = " . intval($intTypeMembership) . " AND mq_actif = 1 $strWhere
ORDER BY mq_ordre, mq_id
";
$arrQuestions = $objDatabase->fxGetResults($sqlQuestions);
return $arrQuestions;
}
function fxGetReponsesMembership($strNumeroMembership, $blnMandatory = false)
{
global $objDatabase;
$strWhere = '';
if ($blnMandatory) {
$strWhere = " AND mq_id IN(SELECT mq_id FROM memberships_questions WHERE mt_id = " . intval(fxGetTypxeMembership($strNumeroMembership)) . " AND mq_actif = 1 AND mq_required = 1)";
}
// Récupérer les réponses pour ce membership
$sqlReponses = "
SELECT r.mq_id, r.mr_id, r.mr_reponse
FROM memberships_reponses r
JOIN memberships m ON m.mem_numero = r.mem_numero
WHERE r.mem_numero = '" . $objDatabase->fxEscape($strNumeroMembership) . "' AND r.mr_actif = 1 AND m.mem_actif = 1 $strWhere
";
$arrReponses = $objDatabase->fxGetResultsKey($sqlReponses);
return $arrReponses;
}
function fxGetTypxeMembership($strNumeroMembership)
{
global $objDatabase;
// Récupérer les réponses pour ce membership
$sqlTypeMembership = "SELECT mt_id FROM memberships WHERE mem_numero = '" . $objDatabase->fxEscape($strNumeroMembership) . "' AND mem_actif = 1";
$intTypeMembership = $objDatabase->fxGetVar($sqlTypeMembership);
return $intTypeMembership;
}
function fxShowQuestionsAdhesion($strNumeroMembership, $strLangue)
{
global $objDatabase, $vDomaine, $arrCalMembership, $arrFormsMembership, $arrTelMembership, $strValidationMembership;
$strOutput = $strMesage = '';
$arrReturn = null;
$arrAbonnement = fxGetAbonnements(0, 0, $strLangue, $strNumeroMembership);
$intTypeMembership = fxGetTypxeMembership($strNumeroMembership); // Récupérer les questions à poer pour ce type de membership
$arrQuestions = fxGetQuestionsMembership($intTypeMembership); // Récupérer les questions à poer pour ce type de membership
$arrReponses = fxGetReponsesMembership($strNumeroMembership); // Récupérer les réponses pour ce membership
if ($arrReponses != null) {
$arrReturn = fxCheckMembershipValidDate($arrAbonnement);
}
if ($arrQuestions != null) {
$arrFormsMembership[] = $strNumeroMembership;
if (isset($_SESSION['msg']))
$strMesage = fxMessage($_SESSION['msg']);
$strOutput .= '
' . $strMesage . '
';
}
return $strOutput;
}
function fxSetReponsesMembership($arrData, $arrFichiers, $strLangue)
{
global $objDatabase, $arrConFTP;
$blnUpdate = $blnInsert = false;
$intUpdte = $intInsert = 0;
$arrOutput = array(
'state' => 'error',
'message' => '0'
);
if (!empty($arrData)) { // vérifier s'il y a des données
$intTypeMembership = $arrData['mt_id'];
$strNumeroMembership = $arrData['mem_numero'];
$arrQuestions = fxGetQuestionsMembership($intTypeMembership); // Récupérer les questions à poer pour ce type de membership
$arrReponses = fxGetReponsesMembership($strNumeroMembership); // Récupérer les réponses pour ce membership
if ($arrQuestions != null) {
for ($intCtr = 1; $intCtr <= count($arrQuestions); $intCtr++) { // boucle parmi les questions
$strReponse = $strFileName = $strFileTmp = '';
$blnUpload = false;
$intQuestionMembership = $arrQuestions[$intCtr]['mq_id'];
if (trim($arrQuestions[$intCtr]['mq_validation']) == 'coach') {
if (isset($arrData['que_' . $arrQuestions[$intCtr]['mq_id'] . '_0']) && isset($arrData['que_' . $arrQuestions[$intCtr]['mq_id'] . '_1'])) { // vérifier si on a la réponse à la question
if (trim($arrData['que_' . $arrQuestions[$intCtr]['mq_id'] . '_0']) != '' && trim($arrData['que_' . $arrQuestions[$intCtr]['mq_id'] . '_1']) != '') { // vérifier si on a la réponse à la question
$strReponse = trim($arrData['que_' . $arrQuestions[$intCtr]['mq_id'] . '_0']) . ';' . trim($arrData['que_' . $arrQuestions[$intCtr]['mq_id'] . '_1']);
}
}
} elseif (trim($arrQuestions[$intCtr]['mq_type']) == 'file') {
if (!empty($arrFichiers['que_' . $arrQuestions[$intCtr]['mq_id']]['name'])) { // vérifier si on a le fichier
// UPLOAD ICI
$strFileName = trim($arrFichiers['que_' . $arrQuestions[$intCtr]['mq_id']]['name']);
$strFileTmp = trim($arrFichiers['que_' . $arrQuestions[$intCtr]['mq_id']]['tmp_name']);
$strPath = $arrConFTP['path_prod'] . '/membership/' . $objDatabase->fxEscape($strNumeroMembership);
if (!file_exists($strPath)) {
mkdir($strPath, 0777, true);
}
$strPath .= '/';
$strExtension = pathinfo($strPath . $strFileName, PATHINFO_EXTENSION);
$strExtension = strtolower($strExtension);
if (trim($arrQuestions[$intCtr]['mq_validation']) == 'image') {
$tabParam1 = explode(',', '800,800,0,100');
$arrValidExtensions = array("jpg", "jpeg", "png"); /* Valid extensions */
if (in_array(strtolower($strExtension), $arrValidExtensions)) { /* Check file extension */
$strImageOriginale = fxUploadFilesl($strFileName, $strFileTmp, $strPath);
$strReponse = fxResizeImage($strImageOriginale, $strPath, $tabParam1[0], $tabParam1[1], $tabParam1[2], $tabParam1[3], '');
// effacer l'image originale
// if ($strImageOriginale != $strFileName && file_exists($strPath . $strImageOriginale))
// unlink($strPath . $strImageOriginale);
}
} else {
$strReponse = fxUploadFilesl($strFileName, $strFileTmp, $strPath); // UPLOAD
if ($strReponse === false) {
$strReponse = '';
}
}
}
} else {
if (isset($arrData['que_' . $arrQuestions[$intCtr]['mq_id']])) { // vérifier si on a la réponse à la question
$strReponse = trim($arrData['que_' . $arrQuestions[$intCtr]['mq_id']]);
}
}
if (trim($strReponse) != '') { // vérifier si on a la réponse à la question
if (isset($arrReponses[$arrQuestions[$intCtr]['mq_id']])) { // vérifier si on doit faire INSERT ou UPDATE
// UPDATE
$sqlUpdate = "UPDATE memberships_reponses SET mr_reponse = '" . $objDatabase->fxEscape($strReponse) . "', mr_timestamp = '" . fxGetDateTime() . "' WHERE mem_numero = '" . $objDatabase->fxEscape($strNumeroMembership) . "' AND mq_id = " . intval($intQuestionMembership);
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
if ($qryUpdate != false) {
$blnUpdate = true;
}
} else { // INSERT
$sqlInsert = "INSERT INTO memberships_reponses SET mq_id = " . intval($intQuestionMembership) . ", mr_reponse = '" . $objDatabase->fxEscape($strReponse) . "', mem_numero = '" . $objDatabase->fxEscape($strNumeroMembership) . "', mr_timestamp = '" . fxGetDateTime() . "'";
$qryInsert = $objDatabase->fxQuery($sqlInsert);
if ($qryInsert != false) {
$blnInsert = true;
}
}
if ($blnUpdate) {
$intUpdte++;
}
if ($blnInsert) {
$intInsert++;
}
}
$arrOutput['state'] = 'success';
$arrOutput['message'] = fxMessage('p', 'UPDATE: ' . $intUpdte . ' - INSERT: ' . $intInsert);
$_SESSION['msg'] = 'p231';
}
} else {
$arrOutput['message'] = 'Aucune question trouvée';
$_SESSION['msg'] = 'e230';
}
} else {
$arrOutut['message'] = 'Aucune question trouvée';
$_SESSION['msg'] = 'e230';
}
return $arrOutput;
}
function fxSetFileMembership($strNumero, $intQuestion, $intReponse, $strLangue)
{
global $objDatabase, $arrConFTP;
$arrOutput = array(
'state' => 'error',
'message' => '0'
);
// UPDATE
$sqlUpdate = "UPDATE memberships_reponses SET mr_actif = 0, mr_timestamp = '" . fxGetDateTime() . "' WHERE mem_numero = '" . $objDatabase->fxEscape($strNumero) . "' AND mq_id = " . intval($intQuestion) . " AND mr_id = " . intval($intReponse);
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
if ($qryUpdate !== false) {
$arrOutput['state'] = 'success';
$arrOutput['message'] = $sqlUpdate;
$_SESSION['msg'] = 'p233';
} else {
$arrOutput['message'] = fxMessage('e232', '', $strLangue);
$_SESSION['msg'] = 'e232';
}
return $arrOutput;
}
function fxCheckMembershipComplete($arrMemberhips)
{
$blnValid = true;
if ($arrMemberhips != null) {
foreach ($arrMemberhips as $intCtr => $arrAbon) {
$arrQuestions = fxGetQuestionsMembership($arrAbon['mt_id'], true);
$intNbQuestions = count((array)$arrQuestions);
if ($intNbQuestions > 0) {
$blnValid = false;
$arrReponses = fxGetReponsesMembership($arrAbon['mem_numero'], true);
$intNbReponses = count((array)$arrReponses);
if ($intNbQuestions == $intNbReponses) {
$blnValid = true;
}
}
}
}
return $blnValid;
}
function fxCheckMembershipValidDate($arrMemberhips)
{
$arrReturn = $arrRaisons = $arrQuestionsErreur = array();
$blnValid = true;
if ($arrMemberhips != null) {
foreach ($arrMemberhips as $intCtr => $arrAbon) {
$arrQuestions = fxGetQuestionsMembership($arrAbon['mt_id'], true);
if ($arrQuestions != null) {
$arrReponses = fxGetReponsesMembership($arrAbon['mem_numero'], true);
if ($arrReponses != null) {
foreach ($arrQuestions as $intCtrQ => $arrQ) {
if ($arrQ['mq_validation'] == 'datef' && isset($arrReponses[$arrQ['mq_id']]['mr_reponse'])) { // date future
if (trim($arrReponses[$arrQ['mq_id']]['mr_reponse']) <= fxGetDate()) {
$blnValid = false;
$arrRaisons[] = array(
'fr' => $arrQ['mq_validate_message_fr'],
'en' => $arrQ['mq_validate_message_en']
);
array_push($arrQuestionsErreur, $arrQ['mq_id']);
}
}
if ($arrQ['mq_validation'] == 'datep2' && isset($arrReponses[$arrQ['mq_id']]['mr_reponse'])) { // date passée 2 ans max
if ((trim($arrReponses[$arrQ['mq_id']]['mr_reponse']) >= fxGetDate()) || (trim($arrReponses[$arrQ['mq_id']]['mr_reponse']) <= date('Y-m-d', strtotime('-2 year')))) {
$blnValid = false;
$arrRaisons[] = array(
'fr' => $arrQ['mq_validate_message_fr'],
'en' => $arrQ['mq_validate_message_en']
);
array_push($arrQuestionsErreur, $arrQ['mq_id']);
}
}
}
}
}
}
}
$arrReturn = array(
'valid' => $blnValid,
'raisons' => $arrRaisons,
'questions' => $arrQuestionsErreur
);
return $arrReturn;
}
function fxShowMembershipWarning($strText, $arrReturn, $strLangue)
{
$strOutput = '
' . $strText . '
';
if (isset($arrReturn) && isset($arrReturn['raisons']) && count($arrReturn['raisons']) > 0) {
$strOutput .= '
';
foreach ($arrReturn['raisons'] as $raison) {
$strOutput .= '
-
' . $raison[$strLangue] . '
';
}
$strOutput .= '
';
}
$strOutput .= '
';
return $strOutput;
}
function fxSendQuestionpasserdate($tabCompte, $strmr_id){
global $objDatabase,$vDomaine;
// envoyer un courriel de confirmation
// FRAN�AIS
$strCourriel=$tabCompte['com_courriel'];
//$strCourriel="stephan@va-voir.com";
$mem_info = fxGetPage("mail_echue_tq");
if ($tabCompte['com_langue'] == 'fr'){
//if (1==1){
$subject = $mem_info["pag_titre_fr"];
$ms1 = 'Connexion';
$body = $mem_info["pag_texte_fr"];
$body = str_replace('%linkcompte%', $ms1, $body);
}
// ANGLAIS
else {
$subject = $mem_info["pag_titre_en"];
$ms1 = 'Connexion';
$body = $mem_info["pag_texte_en"];
$body = str_replace('%linkcompte%', $ms1, $body);
}
if( fxSendMail($subject, $body, $strCourriel, $tabCompte['com_prenom'] . ' ' . $tabCompte['com_nom'], $GLOBALS['vEmail'], $GLOBALS['vClient'], 1, 0)){
$sqlUpdatequestion= "UPDATE memberships_reponses SET mr_date_last_email = now() WHERE mr_id = " . intval($strmr_id);
$arrUpdateNumeroMembership = $objDatabase->fxQuery($sqlUpdatequestion);
}else{
};
}