fxGetResults($sql ); if (!empty($arr)) { foreach ($arr as $row) { if (isset($row['eve_id'])) { fxUpdateFinancesMembership( $row['eve_id']); } } } } function fxUpdateFinancesMembership($intEvenement, $pan = "") { global $objDatabase; $strOutput = ''; // SQL $sqlTypeEvenement = " SELECT te_id FROM inscriptions_evenements WHERE eve_id = " . intval($intEvenement) . " "; $intTypeEvenement = $objDatabase->fxGetVar($sqlTypeEvenement); // MSIN-4228 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 { // avant MSIN-4298 $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 ) "; $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 ) AND NOT EXISTS ( SELECT 1 FROM rapport_finances_membership r WHERE r.no_panier = a.no_panier ); "; } $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'], $pan); // 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); // echosl($sqlInsert); // Valeurs sûres (si une taxe manque dans l’array) // echosl($acheteur['no_panier']); // print_rsl($arrTotalsMembership); $tax1 = isset($arrTotalsMembership['taxes'][1]['montant']) ? (float)$arrTotalsMembership['taxes'][1]['montant'] : 0.0; $tax2 = isset($arrTotalsMembership['taxes'][2]['montant']) ? (float)$arrTotalsMembership['taxes'][2]['montant'] : 0.0; $tax3 = isset($arrTotalsMembership['taxes'][3]['montant']) ? (float)$arrTotalsMembership['taxes'][3]['montant'] : 0.0; $sqlUpsert = " INSERT INTO rapport_finances_membership SET no_commande = '" . $objDatabase->fxEscape($acheteur['no_commande']) . "', no_panier = '" . $objDatabase->fxEscape($acheteur['no_panier']) . "', eve_id = " . (int)$acheteur['eve_id'] . ", eve_id_membership = " . (int)$acheteur['eve_id_membership'] . ", ach_total = " . (float)$arrTotalsMembership['total'] . ", ach_taxe1 = " . $tax1 . ", ach_taxe2 = " . $tax2 . ", ach_taxe3 = " . $tax3 . ", rabais_total = " . (float)$arrTotalsMembership['rabais_total'] . ", updated_at = NOW() ON DUPLICATE KEY UPDATE eve_id = VALUES(eve_id), eve_id_membership = VALUES(eve_id_membership), ach_total = VALUES(ach_total), ach_taxe1 = VALUES(ach_taxe1), ach_taxe2 = VALUES(ach_taxe2), ach_taxe3 = VALUES(ach_taxe3), rabais_total = VALUES(rabais_total), updated_at = NOW() "; $strOutput = $objDatabase->fxQuery($sqlUpsert); ; // 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 ; } function fxTotalPanierMembership($intEvenement, $intEvenementMembership, $strNoPanier, $pan = "") {//echosl($intEvenement); //echosl($intEvenementMembership); if ($strNoPanier == $pan){ echosl($strNoPanier); error_reporting(E_ALL); ini_set("display_errors", 1);} global $objDatabase; $fltTotalTaxes = $fltTotalTaxesFrais = $fltMontantTaxable = $fltSousTotal = $fltSousTotal2 = $fltTotal = 0; //echosl($intEvenementMembership); // info événements $sqlEvenements = "SELECT * FROM inscriptions_panier_evenements WHERE eve_id = " . intval($intEvenement); $tabEvenements = $objDatabase->fxGetRow($sqlEvenements); //echosl($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($intEvenement) . ") AS prix_epreuves, (SELECT SUM(pec_prix) FROM inscriptions_panier_epreuves_commandees WHERE eve_id !='" . intval($intEvenement). "' and no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_epreuves_autre_eve, (SELECT SUM(c.pec_prix - c.rab_montant) FROM inscriptions_panier_epreuves_commandees c, inscriptions_panier_epreuves e WHERE eve_id !='" . intval($intEvenement) . "' AND c.epr_id = e.epr_id AND e.epr_taxes_incluses = 0 AND c.no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_epreuves_taxable_autre_eve, (SELECT SUM(pro_prix) FROM inscriptions_panier_produits_new WHERE eve_id !='" . intval($intEvenement). "' AND no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_produits_autre_eve, (SELECT SUM(pro_prix) FROM inscriptions_panier_produits_new WHERE eve_id !='" . intval($intEvenement) . "' AND no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_produits_taxable_autre_eve, (SELECT SUM(r.rab_montant) FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE (r.rab_description_fr LIKE '%tq%' OR r.rab_produits LIKE '%1426%' OR r.rab_produits LIKE '%1427%' OR r.rab_produits LIKE '%1561%' OR r.rab_produits LIKE '%1959%') and r.pra_id = a.pra_id AND r.rab_taxes=1 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_taxable, (SELECT SUM(e.rab_montant) FROM inscriptions_panier_epreuves_commandees e, inscriptions_panier_rabais r WHERE (r.rab_description_fr LIKE '%tq%' OR r.rab_produits LIKE '%1426%' OR r.rab_produits LIKE '%1427%' OR r.rab_produits LIKE '%1561%' OR r.rab_produits LIKE '%1959%') and 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.rab_description_fr LIKE '%tq%' OR r.rab_produits LIKE '%1426%' OR r.rab_produits LIKE '%1427%' OR r.rab_produits LIKE '%1561%' OR r.rab_produits LIKE '%1959%') and 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) FROM inscriptions_panier_produits_new WHERE eve_id = " . intval($intEvenementMembership) . " and pro_taxable = 1 AND no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_produits_taxable, (SELECT SUM(r.rab_montant) FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE (r.rab_description_fr LIKE '%tq%' OR r.rab_produits LIKE '%1426%' OR r.rab_produits LIKE '%1427%' OR r.rab_produits LIKE '%1561%' OR r.rab_produits LIKE '%1959%') and r.pra_id = a.pra_id AND r.rab_taxes=0 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.rab_description_fr LIKE '%tq%' OR r.rab_produits LIKE '%1426%' OR r.rab_produits LIKE '%1427%' OR r.rab_produits LIKE '%1561%' OR r.rab_produits LIKE '%1959%') and 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); if ($strNoPanier == $pan) { echosl($sqlTotal); print_rsl($tabTotal); } // $fltRegistrationTotal = $tabTotal['prix_epreuves'] + $tabTotal['prix_produits']; $fltRegistrationTotal = $tabTotal['prix_epreuves_autre_eve'] + $tabTotal['prix_produits_taxable_autre_eve']; // calculer les rabais //$fltRabaisMontant = $tabTotal['rabais_panier_montant'] + $tabTotal['rabais_epreuves'] + $tabTotal['rabais_produits']; //$intRabaisPourcent = $tabTotal['rabais_panier_pourcent']; // calculer les rabais v2 $fltRabaisMontant = $tabTotal['rabais_panier_montant_taxable'] + $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); $fltRabaisPourcenttx = ( $fltRabaisMontant - $tabTotal['prix_epreuves_taxable_autre_eve'] - $tabTotal['prix_produits_taxable_autre_eve']) * ($intRabaisPourcent / 100); $fltRabaisPourcentpastx = ( $fltRabaisMontant ) * ($intRabaisPourcent / 100); $fltRabaisPourcent = $fltRabaisPourcentpastx + $fltRabaisPourcenttx; // 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']); $fltMontantTaxable = ($tabTotal['prix_epreuves_taxable'] + $tabTotal['prix_produits_taxable'] ) - ($fltRabaisPourcent + $tabTotal['rabais_panier_montant_taxable']+$tabTotal['rabais_produits']); 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; if ($strNoPanier == $pan) { echo("fltRabaisTotal "); echosl($fltRabaisTotal); echo("fltMontantTaxable "); echosl($fltMontantTaxable); echo("fltRabaisPourcentpastx "); echosl($fltRabaisPourcentpastx); echo("fltRabaisPourcenttx "); echosl($fltRabaisPourcenttx); } // 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; if ($strNoPanier == $pan) { print_rsl($tabRetour); } return $tabRetour; } // MSIN-4228 nouvelle function avant old function fxTotalPanierMembershipavectq($intEvenement, $intEvenementMembership, $strNoPanier, $pan = "") {//echosl($intEvenement); //echosl($intEvenementMembership); if ($strNoPanier == $pan){ echosl($strNoPanier); error_reporting(E_ALL); ini_set("display_errors", 1);} global $objDatabase; $fltTotalTaxes = $fltTotalTaxesFrais = $fltMontantTaxable = $fltSousTotal = $fltSousTotal2 = $fltTotal = 0; //echosl($intEvenementMembership); // info événements $sqlEvenements = "SELECT * FROM inscriptions_panier_evenements WHERE eve_id = " . intval($intEvenement); $tabEvenements = $objDatabase->fxGetRow($sqlEvenements); //echosl($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($intEvenement) . ") AS prix_epreuves, (SELECT SUM(pec_prix) FROM inscriptions_panier_epreuves_commandees WHERE eve_id !='" . intval($intEvenement). "' and no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_epreuves_autre_eve, (SELECT SUM(c.pec_prix - c.rab_montant) FROM inscriptions_panier_epreuves_commandees c, inscriptions_panier_epreuves e WHERE eve_id !='" . intval($intEvenement) . "' AND c.epr_id = e.epr_id AND e.epr_taxes_incluses = 0 AND c.no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_epreuves_taxable_autre_eve, (SELECT SUM(pro_prix) FROM inscriptions_panier_produits_new WHERE eve_id !='" . intval($intEvenement). "' AND no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_produits_autre_eve, (SELECT SUM(pro_prix) FROM inscriptions_panier_produits_new WHERE eve_id !='" . intval($intEvenement) . "' AND no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_produits_taxable_autre_eve, (SELECT SUM(r.rab_montant) FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE r.rab_description_fr LIKE '%tq%' and r.pra_id = a.pra_id AND r.rab_taxes=1 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_taxable, (SELECT SUM(e.rab_montant) FROM inscriptions_panier_epreuves_commandees e, inscriptions_panier_rabais r WHERE r.rab_description_fr LIKE '%tq%' and 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.rab_description_fr LIKE '%tq%' and 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) FROM inscriptions_panier_produits_new WHERE eve_id = " . intval($intEvenementMembership) . " and pro_taxable = 1 AND no_panier = '" . $objDatabase->fxEscape($strNoPanier) . "') AS prix_produits_taxable, (SELECT SUM(r.rab_montant) FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE r.rab_description_fr LIKE '%tq%' and r.pra_id = a.pra_id AND r.rab_taxes=0 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.rab_description_fr LIKE '%tq%' and 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); if ($strNoPanier == $pan) { echosl($sqlTotal); print_rsl($tabTotal); } // $fltRegistrationTotal = $tabTotal['prix_epreuves'] + $tabTotal['prix_produits']; $fltRegistrationTotal = $tabTotal['prix_epreuves_autre_eve'] + $tabTotal['prix_produits_taxable_autre_eve']; // calculer les rabais //$fltRabaisMontant = $tabTotal['rabais_panier_montant'] + $tabTotal['rabais_epreuves'] + $tabTotal['rabais_produits']; //$intRabaisPourcent = $tabTotal['rabais_panier_pourcent']; // calculer les rabais v2 $fltRabaisMontant = $tabTotal['rabais_panier_montant_taxable'] + $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); $fltRabaisPourcenttx = ( $fltRabaisMontant - $tabTotal['prix_epreuves_taxable_autre_eve'] - $tabTotal['prix_produits_taxable_autre_eve']) * ($intRabaisPourcent / 100); $fltRabaisPourcentpastx = ( $fltRabaisMontant ) * ($intRabaisPourcent / 100); $fltRabaisPourcent = $fltRabaisPourcentpastx + $fltRabaisPourcenttx; // 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']); $fltMontantTaxable = ($tabTotal['prix_epreuves_taxable'] + $tabTotal['prix_produits_taxable'] ) - ($fltRabaisPourcent + $tabTotal['rabais_panier_montant_taxable']+$tabTotal['rabais_produits']); 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; if ($strNoPanier == $pan) { echo("fltRabaisTotal "); echosl($fltRabaisTotal); echo("fltMontantTaxable "); echosl($fltMontantTaxable); echo("fltRabaisPourcentpastx "); echosl($fltRabaisPourcentpastx); echo("fltRabaisPourcenttx "); echosl($fltRabaisPourcenttx); } // 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; if ($strNoPanier == $pan) { print_rsl($tabRetour); } 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) { $intComId = fxPaiementSessionComId(); if ($intComId > 0) { $blnIsPromoteur = fxPaiementCanUseModesPromoteur($intComId, $tabEvenement['general']['eve_id']); } $blnAdmin = fxPaiementCanUseModesAdmin(); $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 fxShowBlocPaiementpaypaladvance($tabEvenement, $fltMontant, $strLangue) { global $vPaypal_devise,$vDomaine, $vblnEnvironementDev,$currency,$vPaypaladv_SANDBOX; $strCCNumber = ($vPaypaladv_SANDBOX) ? '4032038429294006' : ''; $strCVV = ($vPaypaladv_SANDBOX) ? '272' : ''; $strCCDate = ($vPaypaladv_SANDBOX) ? '09/2027' : ''; $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 // afficher si sanxbox $sandbox=""; if ($vPaypaladv_SANDBOX==true){ $sandbox='

' . afficheTexte(' cartes de crédit de test', 0) . '

'; $sandbox.='
no carte: ' .$strCCNumber.' / date: '.$strCCDate.' / cvv: '.$strCVV; } $strOutput .= '

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

' .$sandbox. '
'; if (floatval($fltMontant) > 0) { $intComId = fxPaiementSessionComId(); if ($intComId > 0) { $blnIsPromoteur = fxPaiementCanUseModesPromoteur($intComId, $tabEvenement['general']['eve_id']); } $blnAdmin = fxPaiementCanUseModesAdmin(); $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; }