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 .= '