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'; ?> $arrAbon2) { $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'; ?>
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) { ?>
$arrAbon) { $strClasse = ($intCtr & 1) ? '' : 'table-secondary'; if (strtotime(date('Y-m-d')) < strtotime($arrAbon['dateech'])) { } else { $strClasse = "color-yellow"; } ?>
>
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 . '

' . afficheTexte('adhesions_titre_card', 0) . ' - ' . fxUnescape($arrAbonnement[1]['mt_nom_' . $strLangue]) . '

' . afficheTexte('adhesions_titre_quuestions', 0) . '

' . afficheTexte('adhesions_description_numero', 0) . '
#' . fxUnescape($arrAbonnement[1]['mem_numero']) . '
' . afficheTexte('adhesions_description_dates_valides', 0) . '
' . fxShowDate($arrAbonnement[1]['mem_date_debut'], $strLangue) . ' ' . afficheTexte('interval_dates_au', 0, 1, 1) . ' ' . fxShowDate($arrAbonnement[1]['mem_date_fin'], $strLangue) . '
' . afficheTexte('adhesions_description_quuestions', 0) . '

'; for ($intCtr = 1; $intCtr <= count($arrQuestions); $intCtr++) { $strAsterix = $strValidation = $strInput = $strDataTarget = $strInputGroupIconBefore = $strInputGroupIconAfter = $strInputGroupId = $strValue = $strChecked0 = $strChecked1 = ''; $tabParam = array(); $blnInputGroup = false; if ($arrReponses != null && isset($arrReponses[$arrQuestions[$intCtr]['mq_id']])) { if ($arrReturn != null && in_array($arrQuestions[$intCtr]['mq_id'], $arrReturn['questions'])) { $strValue = ''; } else { $strValue = trim($arrReponses[$arrQuestions[$intCtr]['mq_id']]['mr_reponse']); } } if (intval($arrQuestions[$intCtr]['mq_required']) == 1) { $strValidation = ' required'; $strAsterix = ' * '; } if (in_array(trim($arrQuestions[$intCtr]['mq_validation']), array('date', 'datef', 'datep', 'datep2'))) { $blnInputGroup = true; $strInputGroupIconAfter = ''; $strValidation .= ' data-rule-dateCA="true"'; $tabParam['dateFormat'] = "'Y-m-d'"; $tabParam['onChange'] = " function() { validator_" . $strNumeroMembership . ".element('#que_" . $arrQuestions[$intCtr]['mq_id'] . "_" . $strNumeroMembership . "'); } "; switch (trim($arrQuestions[$intCtr]['mq_validation'])) { case 'datef': $tabParam['minDate'] = "'" . date('Y-m-d', strtotime('+1 day')) . "'"; break; case 'datep': $tabParam['maxDate'] = "'" . date('Y-m-d', strtotime('-1 day')) . "'"; break; case 'datep2': $tabParam['minDate'] = "'" . date('Y-m-d', strtotime('-2 year')) . "'"; $tabParam['maxDate'] = "'" . date('Y-m-d', strtotime('-1 day')) . "'"; break; } $strInputGroupId = 'cal_que_' . $arrQuestions[$intCtr]['mq_id'] . '_' . $strNumeroMembership; $arrCalMembership[] = array($strInputGroupId, $tabParam); if ($arrReturn != null && in_array($arrQuestions[$intCtr]['mq_id'], $arrReturn['questions'])) { // si date invalide, vider case $strValidationMembership .= ' $("#' . $strInputGroupId . '").datetimepicker("clear"); '; } $strInputGroupId = ' id="' . $strInputGroupId . '"'; } if (trim($arrQuestions[$intCtr]['mq_validation']) == 'facebook') { $blnInputGroup = true; $strInputGroupIconBefore = 'https://facebook.com/'; } if (trim($arrQuestions[$intCtr]['mq_validation']) == 'instagram') { $blnInputGroup = true; $strInputGroupIconBefore = 'https://instagram.com/'; } if (trim($arrQuestions[$intCtr]['mq_validation']) == 'telephone') { $strValidation .= ' data-rule-phoneUS="true"'; $arrTelMembership[] = 'que_' . $arrQuestions[$intCtr]['mq_id'] . '_' . $strNumeroMembership; } switch (trim($arrQuestions[$intCtr]['mq_type'])) { case 'file': if (trim($strValue) != '') { $strInput .= ' ' . $strValue . '
'; } else { $strInput .= '
'; } break; case 'textarea': $strInput .= ' '; break; case 'radio': if (intval($strValue) == 1) { $strChecked1 = ' checked'; } elseif (intval($strValue) == 0) { $strChecked0 = ' checked'; } $strInput .= '
'; break; default: if (trim($arrQuestions[$intCtr]['mq_validation']) == 'coach') { $arrPlaceholder = explode(',', trim($arrQuestions[$intCtr]['mq_placeholder_' . $strLangue])); if (trim($strValue) != '') { $arrValue = explode(';', $strValue); } else { $arrValue = array(0 => '', 1 => ''); } $strInput .= '
'; } else { if ($blnInputGroup) { $strInput .= '
'; if ($strInputGroupIconBefore != '') { $strInput .= '
' . $strInputGroupIconBefore . '
'; } } $strInput .= ' '; if ($blnInputGroup) { if ($strInputGroupIconAfter != '') { $strInput .= '
' . $strInputGroupIconAfter . '
'; } $strInput .= '
'; } } } $strOutput .= '
' . $strInput . '
' . $strAsterix . '
'; } if (trim($strValidationMembership) != '') { $strValidationMembership .= ' $("#frm_membership_' . $strNumeroMembership . '").valid(); '; } $strOutput .= '
' . afficheTexte('alert-mandatory-field', 0, 1, 1) . '
' . afficheTexte('adhesions_link_retour_texte', 0) . '
'; } 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 = ' '; 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{ }; }