fxGetVar($sqlTypeEvenement); if (intval($intTypeEvenement) != 0) { if (intval($intTypeEvenement) == 13) { $sqlAcheteurs = " SELECT a.*, " . intval($intEvenement) . " AS eve_id_membership FROM inscriptions_panier_acheteurs a WHERE a.sta_id = 3 AND a.eve_id <> " . intval($intEvenement) . " AND a.no_panier IN( SELECT no_panier FROM inscriptions_panier_produits_new p WHERE p.eve_id = " . intval($intEvenement) . " UNION SELECT no_panier FROM inscriptions_panier_epreuves_commandees ec WHERE ec.eve_id = " . intval($intEvenement) . " ) AND a.no_panier NOT IN( SELECT no_panier FROM rapport_finances_membership ) "; } else { $sqlAcheteurs = " SELECT * FROM inscriptions_panier_acheteurs a JOIN inscriptions_evenements e ON e.eve_id = a.eve_id WHERE a.sta_id = 3 AND a.eve_id = " . intval($intEvenement) . " AND a.no_panier IN( SELECT no_panier FROM inscriptions_panier_produits_new p WHERE p.eve_id = e.eve_id_membership UNION SELECT no_panier FROM inscriptions_panier_epreuves_commandees ec WHERE ec.eve_id = e.eve_id_membership ) "; } $tabAcheteurs = $objDatabase->fxGetResults($sqlAcheteurs); if ($tabAcheteurs != null) { foreach ($tabAcheteurs as $acheteur) { //$strOutput .= '

no_commande: ' . $acheteur['no_commande'] . '

'; $arrTotalsMembership = fxTotalPanierMembership($acheteur['eve_id'], $acheteur['eve_id_membership'], $acheteur['no_panier']); //$strOutput .= '
' . print_r($arrTotals, true) . '
'; // insérer les totaux dans la table de jonction (NOTE: no_commande et no_panier onnt des INDEX UNIQUE donc, aucune chance de doublons) $sqlInsert = "INSERT INTO rapport_finances_membership SET no_commande = '" . $objDatabase->fxEscape($acheteur['no_commande']) . "', no_panier = '" . $objDatabase->fxEscape($acheteur['no_panier']) . "', eve_id = " . intval($acheteur['eve_id']) . ", eve_id_membership = " . intval($acheteur['eve_id_membership']) . ", ach_total = " . floatval($arrTotalsMembership['total']) . ", ach_taxe1 = " . floatval($arrTotalsMembership['taxes'][1]['montant']) . ", ach_taxe2 = " . floatval($arrTotalsMembership['taxes'][2]['montant']) . ", ach_taxe3 = " . floatval($arrTotalsMembership['taxes'][3]['montant']) . ", rabais_total = " . floatval($arrTotalsMembership['rabais_total']); $strOutput = $objDatabase->fxQuery($sqlInsert); // mettre à jour les totaux de la facture originale $arrTotalsOriginal = fxTotalPanier($acheteur['no_panier'], 'fr'); $sqlUpdate = "UPDATE inscriptions_panier_acheteurs SET ach_total = " . floatval(floatval($arrTotalsOriginal['total']) - floatval($arrTotalsMembership['total'])) . ", ach_taxe1 = " . floatval(floatval($arrTotalsOriginal['taxes'][1]['montant']) - floatval($arrTotalsMembership['taxes'][1]['montant'])) . ", ach_taxe2 = " . floatval(floatval($arrTotalsOriginal['taxes'][2]['montant']) - floatval($arrTotalsMembership['taxes'][2]['montant'])) . ", ach_taxe3 = " . floatval(floatval($arrTotalsOriginal['taxes'][3]['montant']) - floatval($arrTotalsMembership['taxes'][3]['montant'])) . ", rabais_total = " . floatval(floatval($arrTotalsOriginal['rabais_total']) - floatval($arrTotalsMembership['rabais_total'])) . " WHERE no_panier = '" . $objDatabase->fxEscape($acheteur['no_panier']) . "'"; //$strOutput .= $objDatabase->fxQuery($sqlUpdate); } } } return $strOutput; } function fxTotalPanierMembership($intEvenement, $intEvenementMembership, $strNoPanier) { global $objDatabase; $fltTotalTaxes = $fltTotalTaxesFrais = $fltMontantTaxable = $fltSousTotal = $fltSousTotal2 = $fltTotal = 0; // info événements $sqlEvenements = "SELECT * FROM inscriptions_panier_evenements WHERE eve_id = " . intval($intEvenement); $tabEvenements = $objDatabase->fxGetRow($sqlEvenements); // info épreuves $sqlEpreuves = "SELECT pec_id FROM inscriptions_panier_epreuves_commandees WHERE no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND eve_id = " . intval($intEvenementMembership) . " ORDER BY pec_id"; $tabEpreuves = $objDatabase->fxGetResults($sqlEpreuves); // Calculer le sous-total $sqlTotal = " SELECT (SELECT SUM(pec_prix) FROM inscriptions_panier_epreuves_commandees WHERE no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND eve_id = " . intval($intEvenementMembership) . ") AS prix_epreuves, (SELECT SUM(e.rab_montant) FROM inscriptions_panier_epreuves_commandees e, inscriptions_panier_rabais r WHERE r.pra_id = e.pra_id AND r.pra_depot = 0 AND e.no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND eve_id = " . intval($intEvenementMembership) . ") AS rabais_epreuves, (SELECT SUM(c.pec_prix - c.rab_montant) FROM inscriptions_panier_epreuves_commandees c, inscriptions_panier_epreuves e WHERE c.epr_id = e.epr_id AND e.epr_taxes_incluses = 0 AND c.no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND eve_id = " . intval($intEvenementMembership) . ") AS prix_epreuves_taxable, (SELECT SUM(pro_prix) FROM inscriptions_panier_produits_new WHERE no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND eve_id = " . intval($intEvenementMembership) . ") AS prix_produits, (SELECT SUM(p.rab_montant) FROM inscriptions_panier_produits_new p, inscriptions_panier_rabais r WHERE r.pra_id = p.pra_id AND r.pra_depot = 0 AND p.no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND eve_id = " . intval($intEvenementMembership) . ") AS rabais_produits, (SELECT SUM(pro_prix - rab_montant) FROM inscriptions_panier_produits_new WHERE pro_taxable = 1 AND no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND eve_id = " . intval($intEvenementMembership) . ") AS prix_produits_taxable, (SELECT SUM(r.rab_montant) FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE r.pra_id = a.pra_id AND r.pra_depot = 0 AND a.no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND r.rab_pourcent = 0 AND r.rab_epreuves = '' AND r.rab_produits = '') AS rabais_panier_montant, (SELECT SUM(r.rab_pourcent) FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE r.pra_id = a.pra_id AND r.pra_depot = 0 AND a.no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "' AND r.rab_montant = 0 AND r.rab_epreuves = '' AND r.rab_produits = '') AS rabais_panier_pourcent FROM DUAL "; $tabTotal = $objDatabase->fxGetRow($sqlTotal); $fltRegistrationTotal = $tabTotal['prix_epreuves'] + $tabTotal['prix_produits']; // calculer les rabais $fltRabaisMontant = $tabTotal['rabais_panier_montant'] + $tabTotal['rabais_epreuves'] + $tabTotal['rabais_produits']; $intRabaisPourcent = $tabTotal['rabais_panier_pourcent']; if ($intRabaisPourcent > 100) $intRabaisPourcent = 100; // calculer le rabais % $fltRabaisPourcent = ($fltRegistrationTotal - $fltRabaisMontant) * ($intRabaisPourcent / 100); // calculer le total après rabais pourcent $fltRabaisTotal = $fltRabaisMontant + $fltRabaisPourcent; $fltRegistrationTotal -= ($fltRabaisTotal); if ($fltRegistrationTotal < 0) $fltRegistrationTotal = 0; $fltMontantTaxable = ($tabTotal['prix_epreuves_taxable'] + $tabTotal['prix_produits_taxable']) - ($fltRabaisPourcent + $tabTotal['rabais_panier_montant']); if ($fltMontantTaxable < 0) $fltMontantTaxable = 0; // calculer le sous total (registration + option) $fltSousTotal = $fltRegistrationTotal; // calculer les taxes $tabTaxes[1] = $tabTaxes[2] = $tabTaxes[3] = array('label_fr' => '', 'label_en' => '', 'montant' => 0, 'taux' => 0, 'numero' => ''); // récupérer les infos des taxes if ($tabEvenements['tt_id'] > 1) { $sqlTaux = "SELECT t.tau_nom_fr, t.tau_nom_en, t.tau_taux, t.tau_numero_client, t.tau_numero_ms1 FROM inscriptions_taux t, inscriptions_taux_types_taux ttt WHERE t.tau_id = ttt.tau_id AND ttt.tt_id = " . intval($tabEvenements['tt_id']) . " ORDER BY ttt.ttt_tri"; $tabTaux = $objDatabase->fxGetResults($sqlTaux); if ($tabTaux != null) { for ($intCtr = 1; $intCtr <= count($tabTaux); $intCtr++) { $fltMontantTaxes = round($fltMontantTaxable * ($tabTaux[$intCtr]['tau_taux'] / 100), 2); $tabTaxes[$intCtr] = array('label_fr' => $tabTaux[$intCtr]['tau_nom_fr'] . ' (' . $tabTaux[$intCtr]['tau_taux'] . '%)', 'label_en' => $tabTaux[$intCtr]['tau_nom_en'] . ' (' . $tabTaux[$intCtr]['tau_taux'] . '%)', 'montant' => $fltMontantTaxes, 'taux' => $tabTaux[$intCtr]['tau_taux'], 'numero' => $tabTaux[$intCtr]['tau_numero_client']); $fltTotalTaxes += $fltMontantTaxes; } } else { fxcreer_log("Il y a eu une erreur lors de la récupération des taxes:\n" . $sqlTaux); } } // calculer le total après taxes $fltSousTotal2 = $fltSousTotal + $fltTotalTaxes; // calculer le total avec frais d'administration $fltTotal = $fltSousTotal2; // affiche le sous-total, les taxes, rabais et le total complet $tabRetour['taxes'] = $tabTaxes; $tabRetour['total_taxes'] = $fltTotalTaxes; $tabRetour['total'] = abs($fltTotal); $tabRetour['stotal'] = $fltSousTotal; $tabRetour['stotal2'] = $fltSousTotal2; $tabRetour['rabais_total'] = $fltRabaisTotal; if ($tabEpreuves != null) $tabRetour['pec_id'] = implode(',', array_map(function($tab) { return $tab['pec_id']; }, $tabEpreuves)); else $tabRetour['pec_id'] = 0; $tabRetour['eve_id'] = $tabEvenements['eve_id']; $tabRetour['eve_id_membership'] = $intEvenementMembership; return $tabRetour; } function fxGetTermes($intEvenement, $strNoPanier, $blnMembership, $strLangue) { $strSuffixe = $strTermesText = $strTermesHTML = $strTermesModal = ''; $arrRetour = $arrTermesModalButtons = $arr_epreuves_id = array(); // faire un tableau avec tout les epr_id (sl) $epreuves = fxListPanier($strNoPanier); foreach ($epreuves[3] as $key => $value) { $arr_epreuves_id[$key]= $value['epr_id'] ; } $tabEvenement = fxGetEvenements(fxGetEvenementsUrl($intEvenement), $strLangue); if ($blnMembership) { $strSuffixe = '_mem'; $tabEvenement = fxGetEvenements(fxGetEvenementsUrl($tabEvenement['general']['eve_id_membership']), $strLangue); } if ($tabEvenement['general']['eve_waiver_' . $strLangue] != '') { $strTermesText .= '

' . afficheTexte('terme_waiver', 0, 1, 1) . ' :

'; $strTermesText .= $tabEvenement['general']['eve_waiver_' . $strLangue] . '
'; $strTermesHTML = '
' . afficheTexte('terme_jaccepte', 0, 1, 1) . ' ' . afficheTexte('terme_waiver', 0, 1, 1) .'.
'; $strTermesModal .= ' '; $arrTermesModalButtons[] = 'btn_accept_waiver' . $strSuffixe; } if ($tabEvenement['general']['eve_policy_' . $strLangue] != '') { $strTermesText .= '

' . afficheTexte('terme_politique_achat', 0, 1, 1) . ' :

'; $strTermesText .= $tabEvenement['general']['eve_policy_' . $strLangue] . '
'; $strTermesHTML .= '
' . afficheTexte('terme_jaccepte', 0, 1, 1) . ' ' . afficheTexte('terme_politique_achat', 0, 1, 1) . '.
'; $strTermesModal .= ' '; $arrTermesModalButtons[] = 'btn_accept_policy' . $strSuffixe; } if ($tabEvenement['general']['eve_policy2_' . $strLangue] != '') { $strTermesText .= '

' . afficheTexte('terme_location_politique_achat', 0, 1, 1) . ' :

'; $strTermesText .= $tabEvenement['general']['eve_policy2_' . $strLangue] . '
'; $strTermesHTML .= '
' . afficheTexte('terme_jaccepte', 0, 1, 1) . ' ' . afficheTexte('terme_location_politique_achat', 0, 1, 1) . '.
'; $strTermesModal .= ' '; $arrTermesModalButtons[] = 'btn_accept_location_policy' . $strSuffixe; } // valide les waiver de 0 a 6 (sl) for ($x = 0; $x <= 6; $x++) { $mem_waive="eve_waiver".$x; $array_list = explode(',',$tabEvenement['general'][$mem_waive.'_list_epreuves' ]); $result = array_intersect($array_list, $arr_epreuves_id); if (count($result) > 0) { $strTermesText .= '

' . $tabEvenement['general'][$mem_waive.'_titre_' . $strLangue] . ' :

'; $strTermesText .= $tabEvenement['general'][$mem_waive . '_' . $strLangue] . '
'; $strTermesHTML .= '
' . afficheTexte('terme_jaccepte', 0, 1, 1) . ' ' . $tabEvenement['general'][$mem_waive.'_titre_' . $strLangue] . '.
'; $strTermesModal .= ' '; $arrTermesModalButtons[] = 'btn_accept_' . $mem_waive . $strSuffixe; } } $arrRetour['html'] = $strTermesHTML; $arrRetour['modal'] = $strTermesModal; $arrRetour['text'] = $strTermesText; $arrRetour['buttons'] = $arrTermesModalButtons; return $arrRetour; } function fxShowBlocPaiement($tabEvenement, $fltMontant, $strLangue) { global $vDomaine, $vblnEnvironementDev; $strCCNumber = ($vblnEnvironementDev) ? ' value="4528038032834793"' : ''; $strCVV = ($vblnEnvironementDev) ? ' value="123"' : ''; $blnIsPromoteur = $blnAdmin = false; $strOutput = ''; if (isset($tabEvenement) && intval($tabEvenement['general']['eve_gratuit']) != 1) { // si l'événement n'est pas gratuite, afficher le bloc de paiement $strOutput .= '

' . afficheTexte('mode_paiement', 0) . '

'; if (floatval($fltMontant) > 0) { if (isset($_SESSION['com_info']) && $_SESSION['com_info'] != '') { $blnIsPromoteur = fxIsPromoteur($_SESSION['com_info']['com_id'], $tabEvenement['general']['eve_id']); } // si en mode admin, récupérer les mode de paiement réservés aux admin if (isset($_SESSION['usa_id'])) { $blnAdmin = true; } $tabPaiements = fxGetPaiements($blnAdmin, $blnIsPromoteur, $strLangue); if ($tabPaiements != false) { // afficher le formulaire de la carte de crédit for ($intCtr = 1; $intCtr <= count($tabPaiements); $intCtr++) { if ($tabPaiements[$intCtr]['pai_id'] == 2 || $tabPaiements[$intCtr]['pai_id'] == 6) { $strDetailsPaiement = $strChecked = ''; if ($tabPaiements[$intCtr]['pai_id'] == 2) { $strChecked = ' checked'; } if ($tabPaiements[$intCtr]['pai_id'] == 6) { //$strDetailsPaiement = ' ' . afficheTexte('paiement_cheque', 0) . ''; } $strOutput .= '
'; } } } else { $strOutput .= '
'; } } else { $strOutput .= '
'; } if (floatval($fltMontant) > 0) { $strMonth = ($strLangue == 'fr') ? '-- Mois --' : '-- Month --'; $strYear = ($strLangue == 'fr') ? '-- Année --' :'-- Year --'; $strOutput .= '
MasterCard Visa

*
*
*
*
'; } else { $strOutput .= ' '; } } else { // si événement gratuit $strOutput .= ' '; } return $strOutput; } function fxShowTermesAcceptes($strNoPanier, $strLangue) { $strRetour = ''; $tabPanier = fxListPanier($strNoPanier); $tabAcheteur = $tabPanier[0]; $strRetour .= '
' . ($tabAcheteur['ach_termes_' . $strLangue]) . '
'; return $strRetour;}