Files
ms1inscription-v5/paiement_redirect_check.php
2026-05-13 09:43:32 -04:00

470 lines
29 KiB
PHP

<?php
global $vPaypal_devise, $objDatabase, $vPage, $vDomaine, $vblnEnvironementDev;
require_once($_SERVER['DOCUMENT_ROOT'] . '/php/inc_start_time.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/php/inc_fonctions.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/php/inc_fx_panier.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/php/inc_fx_messages.php');
$blnDons = false;
$vPaypal_devise = 'CAD';
$strLangue = $_SESSION['lang'];
$strLangue = "fr";
$vtexte_page = obtenirTextepage($vPage, $strLangue, 2);
if ($strLangue == 'fr') {
$strPage = 'panier';
$strRestant = 'Quantité restante';
} else {
$strPage = 'cart';
$strRestant = 'Quantity left';
}
$no_panier = $_SESSION['no_panier'];
// $no_panier ="pan_68adbf63eefe5";
//$ObjCaptcha = new \clsRecaptcha\clsRecaptcha();
//Retorno = $ObjCaptcha->fxGetCaptcha($_POST['g-recaptcha-response']);
//if ($Retorno->success) {
if (1 == 1) {
// CODE EXTRA POUR DONS ICI #dons2017 #MSIN-1987
if (isset($_POST['eve_id_don'])) {
$blnDons = true;
// récupérer le no_panier
//unset($_SESSION['no_panier']);
$no_panier = fxNumPanier($_POST['eve_id_don'], $strLangue);
// Ajouter l'événement DON au panier
$intEvenementPanier = fxCheckEvenement($no_panier, $_POST['eve_id_don']);
// vérifier si champs existant
$arrData = array();
if (isset($_POST['par_prenom_1']))
$arrData['com_prenom'] = $_POST['par_prenom_1'];
if (isset($_POST['par_nom_1']))
$arrData['com_nom'] = $_POST['par_nom_1'];
if (isset($_POST['par_codepostal_1']))
$arrData['com_codepostal'] = $_POST['par_codepostal_1'];
if (isset($_POST['pro_id_1']))
$arrData['pro_id'] = $_POST['pro_id_1'];
if (isset($_POST['pay_id_1']))
$arrData['pay_id'] = $_POST['pay_id_1'];
if (isset($_POST['par_adresse_1']))
$arrData['com_adresse'] = $_POST['par_adresse_1'];
if (isset($_POST['par_ville_1']))
$arrData['com_ville'] = $_POST['par_ville_1'];
if (isset($_POST['par_telephone1_1']))
$arrData['com_telephone1'] = $_POST['par_telephone1_1'];
if (isset($_POST['par_telephone2_1']))
$arrData['com_telephone2'] = $_POST['par_telephone2_1'];
if (isset($_POST['par_courriel_1']))
$arrData['com_courriel'] = $_POST['par_courriel_1'];
$tabFieldsValues = fxListFieldsValues($arrData, '', 'inscriptions_comptes', $GLOBALS['arrConDatabaseMain']['db']);
$sqlUpdate = "UPDATE inscriptions_panier_acheteurs " . $tabFieldsValues['set'] . ", ach_maj = '" . fxGetDateTime() . "' WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
// requête SQL pour ajouter le montant du don dans la table panier_dons
if ($_POST['sel_don'] == 'other') {
$fltMontant = str_replace(',', '.', $_POST['txt_don']);
} else {
$fltMontant = $_POST['sel_don'];
}
// recherche si pan existe $no_panier
$sql = "select * from inscriptions_panier_dons where no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$tab = $objDatabase->fxGetRow($sql);
if ($tab == null) {
// stephan recherche le dernier numero pour cette evenement don MSIN-2007
$sqldons = "select pd_recu_numero from inscriptions_panier_dons where pd_recu_numero>0 and eve_id_don = " . intval($_POST['eve_id_don']) . " order by pd_recu_numero desc limit 1";
$tabdons = $objDatabase->fxGetRow($sqldons);
if ($tabdons == null)
$mem_no_recu = 1;
else
$mem_no_recu = $tabdons['pd_recu_numero'] + 1;
$sqlInsert = "INSERT INTO inscriptions_panier_dons SET pd_recu_numero=" . $mem_no_recu . ",eve_id = " . intval($_POST['eve_id']) . ", eve_id_don = " . intval($_POST['eve_id_don']) . ", epr_id = " . intval($_POST['epr_id']) . ", pec_id = " . intval($_POST['pec_id']) . ", par_id = " . intval($_POST['par_id']) . ", no_panier = '" . $objDatabase->fxEscape($no_panier) . "', pd_montant = " . floatval($fltMontant) . ", pd_recu = " . intval($_POST['sel_recu']) . ", pd_anonyme = " . intval($_POST['sel_anonyme']) . ", eve_prefixe = '" . $objDatabase->fxEscape($_POST['eve_prefixe']) . "'";
$qryInsert = $objDatabase->fxQuery($sqlInsert);
} else {
$sqlInsert = "INSERT update inscriptions_panier_dons SET pd_montant = " . floatval($fltMontant) . ", pd_recu = " . intval($_POST['sel_recu']) . ", pd_anonyme = " . intval($_POST['sel_anonyme']) . " '";
$qryInsert = $objDatabase->fxQuery($sqlInsert);
}
// Ajouter les questions MSIN-2280
// sortir les questions de l'épreuve
$tabQuestions = fxGetQuestions('par', $_POST['eve_id_don'], $_POST['epr_id'], 'mod'); // récupérer les questions à demander pour l'épreuve
$tabData = $_POST;
// insérer les réponses des questions
for ($intCtr2 = 1; $intCtr2 <= count($tabQuestions); $intCtr2++) {
if (array_key_exists('que_' . $tabQuestions[$intCtr2]['que_id'] . '_1', $tabData)) {
if ($tabQuestions[$intCtr2]['que_liste'] == 1) {
$intIndex = $tabData['que_' . $tabQuestions[$intCtr2]['que_id'] . '_1'];
$tabChoixFr = explode(',', $tabQuestions[$intCtr2]['que_choix_fr']);
$tabChoixEn = explode(',', $tabQuestions[$intCtr2]['que_choix_en']);
$strChoixFr = $tabChoixFr[$tabData['que_' . $tabQuestions[$intCtr2]['que_id'] . '_1'] - 1];
$strChoixEn = $tabChoixEn[$tabData['que_' . $tabQuestions[$intCtr2]['que_id'] . '_1'] - 1];
$intProduit = 0;
} else {
$intIndex = 0;
$intProduit = 0;
$strChoixFr = $strChoixEn = $tabData['que_' . $tabQuestions[$intCtr2]['que_id'] . '_1'];
}
$sqlInsert = "INSERT INTO inscriptions_panier_questions SET no_panier = '" . $objDatabase->fxEscape($no_panier) . "', par_id = 0, pec_id = 0, que_id = " . intval($tabQuestions[$intCtr2]['que_id']) . ", que_question_fr = '" . $objDatabase->fxEscape($tabQuestions[$intCtr2]['que_question_fr']) . "', que_question_en = '" . $objDatabase->fxEscape($tabQuestions[$intCtr2]['que_question_en']) . "', que_choix_fr = '" . $objDatabase->fxEscape($strChoixFr) . "', que_choix_en = '" . $objDatabase->fxEscape($strChoixEn) . "', que_index = " . intval($intIndex) . ", pro_id = " . intval($intProduit) . ", que_validation = '" . $objDatabase->fxEscape($tabQuestions[$intCtr2]['que_validation']) . "', que_cart_show = " . intval($tabQuestions[$intCtr2]['que_cart_show']) . ", que_cart_label_fr = '" . $objDatabase->fxEscape($tabQuestions[$intCtr2]['que_cart_label_fr']) . "', que_cart_label_en = '" . $objDatabase->fxEscape($tabQuestions[$intCtr2]['que_cart_label_en']) . "', que_modifiable = " . intval($tabQuestions[$intCtr2]['que_modifiable']);
$qryInsert = $objDatabase->fxQuery($sqlInsert);
$intPanierQuestion = $objDatabase->fxGetLastId();
$sqlInsert = "INSERT INTO resultats_questions(par_id, pec_id, que_id, que_question_fr, que_question_en, que_choix_fr, pqu_note, que_choix_en, pqu_maj, no_panier, pqu_id_original, que_modifiable, que_validation) SELECT par_id, pec_id, que_id, que_question_fr, que_question_en, que_choix_fr, '', que_choix_en, '" . fxGetDateTime() . "', no_panier, pqu_id, que_modifiable, que_validation FROM inscriptions_panier_questions WHERE pqu_id = " . intval($intPanierQuestion);
$qryInsert = $objDatabase->fxQuery($sqlInsert);
}
}
}
// MSIN-1815 --> exclure les épreuves transférées de la vérification fdes stocks
$sqlEprId = "select * from inscriptions_panier_rabais where rab_code = 'CATEGORY CHANGE' AND rab_description_" . $strLangue . " like '%(free)%' and pra_id = (select pra_id from inscriptions_panier_rabais_acheteurs where no_panier = '" . $objDatabase->fxEscape($no_panier) . "' limit 1)";
$tabEprUpgrade = $objDatabase->fxGetRow($sqlEprId);
if ($tabEprUpgrade == null) {
$tab_manqueqte = fxValideStockEpreuves($no_panier);
$_SESSION['msg_erreur'] = "";
// a faire corriger si pas de quantiter
if ($tab_manqueqte != null) {
// $_SESSION['msg_erreur'] = afficheTexte('max_epreuve_depase');
$_SESSION['msg_erreur'] = '';
for ($intCtr = 1; $intCtr <= count($tab_manqueqte); $intCtr++) {
$_SESSION['msg_erreur'] .= $tab_manqueqte[$intCtr]['epr_categorie_' . $strLangue] . " " . $tab_manqueqte[$intCtr]['epr_type_' . $strLangue] . " " . $tab_manqueqte[$intCtr]['epr_nom_' . $strLangue] . " " . $tab_manqueqte[$intCtr]['epr_date'] . " " . $strRestant . " = " . $tab_manqueqte[$intCtr]['epr_qte'] . "<br>" . $no_panier;
}
http_response_code(409);
echo json_encode([
'status'=>0,
'detail'=> $_SESSION['msg_erreur'],
'type' => 'OUT',
'msg' => 'max_epreuve_depase'
], JSON_UNESCAPED_UNICODE);
exit; // ⬅️ on QUITTE proprement ici si inventaire insuffisant
exit;
header("Location: " . $vDomaine . '/' . $strPage . '/checkout/' . $_SESSION['eve_label_url']);
exit;
}
}
// MSIN-747
// valide les quantités de produits
$tab_manqueqte = fxValideStockProduits($no_panier);
$_SESSION['msg_erreur'] = "";
if ($tab_manqueqte != null) {
// $_SESSION['msg_erreur'] = afficheTexte('max_produit_depasse');
for ($intCtr = 1; $intCtr <= count($tab_manqueqte); $intCtr++) {
$_SESSION['msg_erreur'] .= $tab_manqueqte[$intCtr]['pro_nom_' . $strLangue] . " " . $tab_manqueqte[$intCtr]['pro_taille_' . $strLangue] . " " . " " . $strRestant . " = " . $tab_manqueqte[$intCtr]['qte_restant'] . "<br>";
}
http_response_code(409);
echo json_encode([
'status'=>0,
'detail'=> $_SESSION['msg_erreur'],
'type' => 'OUT',
'msg' => 'OUT_OF_STOCK'
], JSON_UNESCAPED_UNICODE);
exit; // ⬅️ on QUITTE proprement ici si inventaire insuffisant
exit;
header("Location: " . $vDomaine . '/' . $strPage . '/checkout/' . $_SESSION['eve_label_url']);
exit;
}
// enregister les termes eZyuyt conditions et le mode de paiement
// MSIN-896
$tabEvenement = fxGetEvenements($_SESSION['eve_label_url'], $strLangue);
$arrTermesFr = fxGetTermes($tabEvenement['general']['eve_id'], $no_panier, false, 'fr');
$arrTermesMemFr = ''/*fxGetTermes($tabEvenement['general']['eve_id'], $no_panier, true, 'fr')*/
;
$arrTermesEn = fxGetTermes($tabEvenement['general']['eve_id'], $no_panier, false, 'en');
$arrTermesMemEn = ''/*fxGetTermes($tabEvenement['general']['eve_id'], $no_panier, true, 'en')*/
;
//$termes_fr = $arrTermesFr['text'] . $arrTermesMemFr['text'];
//$termes_en = $arrTermesEn['text'] . $arrTermesMemEn['text'];
$texte1 = is_array($arrTermesFr) ? ($arrTermesFr['text'] ?? '') : $arrTermesFr;
$texte2 = is_array($arrTermesMemFr) ? ($arrTermesMemFr['text'] ?? '') : $arrTermesMemFr;
$termes_fr = $texte1 . $texte2;
$texte1_en = is_array($arrTermesEn) ? ($arrTermesEn['text'] ?? '') : $arrTermesEn;
$texte2_en = is_array($arrTermesMemEn) ? ($arrTermesMemEn['text'] ?? '') : $arrTermesMemEn;
$termes_en = $texte1_en . $texte2_en;
$tabTotal = fxTotalPanier($no_panier, 'fr');
$sqlUpdate = "UPDATE inscriptions_panier_acheteurs SET ach_termes_fr = '" . $objDatabase->fxEscape($termes_fr) . "', ach_termes_en = '" . $objDatabase->fxEscape($termes_en) . "', fra_avant_tx = " . floatval($tabTotal['fra_avant_tx']) . ", fra_total = " . floatval($tabTotal['fra_total']) . ", fra_pourcent = " . floatval($tabTotal['fra_pourcent']) . ", fra_taxe1 = " . floatval($tabTotal['taxes_frais'][1]['montant']) . ", fra_taxe2 = " . floatval($tabTotal['taxes_frais'][2]['montant']) . ", fra_taxe3 = " . floatval($tabTotal['taxes_frais'][3]['montant']) . ", fra_taxe1_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes_frais'][1]['label_fr'] . " " . $tabTotal['taxes_frais'][1]['numero']) . "', fra_taxe1_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes_frais'][1]['label_en'] . " " . $tabTotal['taxes_frais'][1]['numero']) . "', fra_taxe2_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes_frais'][2]['label_fr'] . " " . $tabTotal['taxes_frais'][2]['numero']) . "', fra_taxe2_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes_frais'][2]['label_en'] . " " . $tabTotal['taxes_frais'][2]['numero']) . "', fra_taxe3_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes_frais'][3]['label_fr'] . " " . $tabTotal['taxes_frais'][3]['numero']) . "', fra_taxe3_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes_frais'][3]['label_en'] . " " . $tabTotal['taxes_frais'][3]['numero']) . "', fra_taxe1_taux = " . floatval($tabTotal['taxes_frais'][1]['taux']) . ", fra_taxe2_taux = " . floatval($tabTotal['taxes_frais'][2]['taux']) . ", fra_taxe3_taux = " . floatval($tabTotal['taxes_frais'][3]['taux']) . ", ach_taxe1 = " . floatval($tabTotal['taxes'][1]['montant']) . ", ach_taxe2 = " . floatval($tabTotal['taxes'][2]['montant']) . ", ach_taxe3 = " . floatval($tabTotal['taxes'][3]['montant']) . ", ach_taxe1_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes'][1]['label_fr'] . " " . $tabTotal['taxes'][1]['numero']) . "', ach_taxe1_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes'][1]['label_en'] . " " . $tabTotal['taxes'][1]['numero']) . "', ach_taxe2_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes'][2]['label_fr'] . " " . $tabTotal['taxes'][2]['numero']) . "', ach_taxe2_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes'][2]['label_en'] . " " . $tabTotal['taxes'][2]['numero']) . "', ach_taxe3_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes'][3]['label_fr'] . " " . $tabTotal['taxes'][3]['numero']) . "', ach_taxe3_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes'][3]['label_en'] . " " . $tabTotal['taxes'][3]['numero']) . "', ach_taxe1_taux = " . floatval($tabTotal['taxes'][1]['taux']) . ", ach_taxe2_taux = " . floatval($tabTotal['taxes'][2]['taux']) . ", ach_taxe3_taux = " . floatval($tabTotal['taxes'][3]['taux']) . ", depot_total = " . floatval($tabTotal['depot_total']) . ", rabais_total = " . floatval($tabTotal['rabais_total']) . " WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
// MSIN-910: Mettre les frais dans la bdd pour les événements qui ont les frais inclus dans le prix
if (!($tabTotal['fra_total'] > 0) && $tabTotal['fra_total2'] > 0) {
$sqlUpdate = "UPDATE inscriptions_panier_acheteurs SET fra_avant_tx = " . floatval($tabTotal['fra_avant_tx2']) . ", fra_total = " . floatval($tabTotal['fra_total2']) . ", fra_taxe1 = " . floatval($tabTotal['taxes_frais2'][1]['montant']) . ", fra_taxe2 = " . floatval($tabTotal['taxes_frais2'][2]['montant']) . ", fra_taxe3 = " . floatval($tabTotal['taxes_frais2'][3]['montant']) . ", fra_taxe1_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes_frais2'][1]['label_fr'] . " " . $tabTotal['taxes_frais2'][1]['numero']) . "', fra_taxe1_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes_frais2'][1]['label_en'] . " " . $tabTotal['taxes_frais2'][1]['numero']) . "', fra_taxe2_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes_frais2'][2]['label_fr'] . " " . $tabTotal['taxes_frais2'][2]['numero']) . "', fra_taxe2_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes_frais2'][2]['label_en'] . " " . $tabTotal['taxes_frais2'][2]['numero']) . "', fra_taxe3_label_fr = '" . $objDatabase->fxEscape($tabTotal['taxes_frais2'][3]['label_fr'] . " " . $tabTotal['taxes_frais2'][3]['numero']) . "', fra_taxe3_label_en = '" . $objDatabase->fxEscape($tabTotal['taxes_frais2'][3]['label_en'] . " " . $tabTotal['taxes_frais2'][3]['numero']) . "', fra_taxe1_taux = " . floatval($tabTotal['taxes_frais2'][1]['taux']) . ", fra_taxe2_taux = " . floatval($tabTotal['taxes_frais2'][2]['taux']) . ", fra_taxe3_taux = " . floatval($tabTotal['taxes_frais2'][3]['taux']) . " WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
}
// Boucler parmi les rabais
$sqlRabais = "SELECT a.no_panier, r.pra_id, a.prac_id, r.rab_montant, r.rab_pourcent, r.rab_epreuves, r.rab_produits FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE a.pra_id = r.pra_id AND r.pra_depot = 0 AND a.no_panier = '" . $objDatabase->fxEscape($no_panier) . "' ORDER BY a.no_panier, r.rab_priorite, r.rab_code, r.pra_maj";
$tabRabais = $objDatabase->fxGetResults($sqlRabais);
$fltRabais = 0;
$no_panier_prec = '';
if ($tabRabais != null) {
foreach ($tabRabais as $tab) {
$no_panier = $tab['no_panier'];
if (1 == 1/*$no_panier != $no_panier_prec*/) {
$fltRabais = 0;
}
if ($tab['rab_montant'] > 0) { // $$$
// Calculer le rabais
if ($tab['rab_epreuves'] != '' || $tab['rab_produits'] != '') {
$sqlMontant = "
SELECT
(SELECT COALESCE(SUM(rab_montant), 0) FROM inscriptions_panier_epreuves_commandees WHERE pra_id = " . intval($tab['pra_id']) . " AND no_panier = '" . $objDatabase->fxEscape($tab['no_panier']) . "') +
(SELECT COALESCE(SUM(rab_montant), 0) FROM inscriptions_panier_produits_new WHERE pra_id = " . intval($tab['pra_id']) . " AND no_panier = '" . $objDatabase->fxEscape($tab['no_panier']) . "') AS rabais
FROM DUAL
";
$fltRabais += $objDatabase->fxGetVar($sqlMontant);
} else {
$fltRabais += $tab['rab_montant'];
}
} else { // %%%
if ($tab['rab_epreuves'] != '' || $tab['rab_produits'] != '') {
// Calculer le rabais
$sqlMontant = "
SELECT
(SELECT COALESCE(SUM(rab_montant), 0) FROM inscriptions_panier_epreuves_commandees WHERE pra_id = " . intval($tab['pra_id']) . " AND no_panier = '" . $objDatabase->fxEscape($tab['no_panier']) . "') +
(SELECT COALESCE(SUM(rab_montant), 0) FROM inscriptions_panier_produits_new WHERE pra_id = " . intval($tab['pra_id']) . " AND no_panier = '" . $objDatabase->fxEscape($tab['no_panier']) . "') AS rabais
FROM DUAL
";
$fltRabais += $objDatabase->fxGetVar($sqlMontant);
} else {
// Calculer le rabais
$sqlPourcent = "
SELECT
(
(
(SELECT COALESCE(SUM(pec_prix), 0) FROM inscriptions_panier_epreuves_commandees WHERE no_panier = '" . $objDatabase->fxEscape($tab['no_panier']) . "') +
(SELECT COALESCE(SUM(pro_prix), 0) FROM inscriptions_panier_produits_new WHERE no_panier = '" . $objDatabase->fxEscape($tab['no_panier']) . "') +
(SELECT COALESCE(SUM(md_montant), 0) FROM inscriptions_panier_montants_dus WHERE no_panier = '" . $objDatabase->fxEscape($tab['no_panier']) . "')
) -
(
(SELECT COALESCE(SUM(e.rab_montant), 0) 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($tab['no_panier']) . "') +
(SELECT COALESCE(SUM(p.rab_montant), 0) 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($tab['no_panier']) . "') +
(SELECT COALESCE(SUM(r.rab_montant), 0) 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($tab['no_panier']) . "' AND r.rab_pourcent = 0 AND r.rab_epreuves = '' AND r.rab_produits = '')
)
) *
((SELECT COALESCE(SUM(rab_pourcent), 0) FROM inscriptions_panier_rabais WHERE pra_id = " . intval($tab['pra_id']) . ") / 100)
FROM DUAL
";
$fltRabais += $objDatabase->fxGetVar($sqlPourcent);
}
}
// update
$sqlUpdate = "UPDATE inscriptions_panier_rabais_acheteurs SET rab_montant = " . floatval($fltRabais) . " WHERE prac_id = " . intval($tab['prac_id']);
$qryUpadte = $objDatabase->fxQuery($sqlUpdate);
$no_panier_prec = $no_panier;
// nettre les épreuves et produits à 0 si PNQ et rabais 100% (MSIN-2119)
if ($tabEvenement['general']['eve_rapport_finances_capitaines'] == 1) {
$sqlRabaisPourcent = "SELECT COALESCE(SUM(r.rab_pourcent), 0) FROM inscriptions_panier_rabais r, inscriptions_panier_rabais_acheteurs a WHERE r.pra_id = a.pra_id AND a.no_panier = '" . $no_panier . "'";
$intRabaisPourcent = $objDatabase->fxGetVar($sqlRabaisPourcent);
if ($intRabaisPourcent != null) {
if ($intRabaisPourcent == 100) {
// mettre à 0 le prix des épreuves
$sqlUpdateEpreuves = "UPDATE inscriptions_panier_epreuves_commandees SET pec_prix = 0 WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdateEpreuves = $objDatabase->fxQuery($sqlUpdateEpreuves);
// mettre à 0 le prix des produits
$sqlUpdateProduits = "UPDATE inscriptions_panier_produits_new SET pro_prix = 0 WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdateProduits = $objDatabase->fxQuery($sqlUpdateProduits);
}
}
}
}
}
$tabTotal = fxTotalPanier($no_panier, 'fr');
if ($tabTotal['total'] > 0) {
$sqlDecision = "SELECT ach_ack, TransactionID FROM inscriptions_panier_acheteurs WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$tabDecision = $objDatabase->fxGetRow($sqlDecision);
//if ($tabDecision['ach_ack'] != 'Success' && $tabDecision['ach_ack'] != 'SuccessWithWarning') {
$strTransaction = uniqid('trx_'); // créer un numéro de transaction
$intPaiement = 2;
fxSetPanierPaiement($no_panier, $intPaiement);
switch ($intPaiement) {
case 2: // Carte de crédit (Paypal legacy API)
// paiement direct paypal
// Sortir les infos de l'acheteur
$tabPanier = fxlistPanier($_SESSION['no_panier']);
$tabAcheteur = $tabPanier[0];
$tabEvenement = $tabPanier[1];
$mem_province = fxGetProvinces($tabAcheteur['pro_id'], $strLangue);
$mem_province = fxUnescape($mem_province['pro_paypal']);
$mem_pays = fxGetPays($tabAcheteur['pay_id'], $strLangue);
$mem_pays = fxreplace_accents_string(fxUnescape($mem_pays['pay_nom_' . $strLangue]));
// Set l'adresse de l'acheteur
$firstName = fxreplace_accents_string(fxUnescape($tabAcheteur['com_prenom']));
$lastName = fxreplace_accents_string(fxUnescape($tabAcheteur['com_nom']));
$courriel = fxreplace_accents_string(fxUnescape($tabAcheteur['com_courriel']));
// print "<pre>";
// print_r($tabPanier);
// print "</pre>";
$mem_var_paypal['CountryCode'] = 'CA';
$eve = fxRemoveHtml(fxUnescape($tabEvenement['eve_nom_' . $strLangue]));
$paypal_items = array(array(
"name" => $eve,
"quantity" => 1,
"unit_amount" => array("value" => round($tabTotal['total'], 2),
"currency_code" => $vPaypal_devise),
"sku" => $_SESSION['no_panier']
));
$paypal_purchase_units = array(
array(
"invoice_id" => $_SESSION['no_panier'],
"custom_id" => $_SESSION['no_panier'],
"description" => $eve,
"amount" => array(
"currency_code" => $vPaypal_devise,
"value" => round($tabTotal['total'], 2),
"breakdown" => array(
"item_total" => array(
"currency_code" => $vPaypal_devise,
"value" => round($tabTotal['total'], 2)
)
)
)
,
"items" => $paypal_items
,
"shipping" => array(
"name" => array(
"full_name" => "$firstName $lastName"),
"address" => array(
"address_line_1" => fxreplace_accents_string(fxUnescape($tabAcheteur['com_adresse'])),
"admin_area_2" => fxreplace_accents_string(fxUnescape($tabAcheteur['com_ville'])),
"admin_area_1" => $mem_province,
"postal_code" => strtoupper(fxUnescape($tabAcheteur['com_codepostal'])),
"country_code" => $mem_var_paypal['CountryCode']
)
)
)
);
// print "<pre>";
// print_r($paypal_purchase_units);
// print "</pre>";
// MSIN-3853
break;
case 6:
if ($strLangue == 'fr') {
$strResultat = 'APPROUVEE - MERCI';
$strPage = 'panier';
} else {
$strResultat = 'APPROVED - THANK YOU';
$strPage = 'cart';
}
// créer un numéro de transaction
$strTransaction = uniqid('chk_');
$sqlUpdate = "UPDATE inscriptions_panier_acheteurs SET receipt_text = '" . $strResultat . "', TransactionID = '" . $strTransaction . "', pai_id = " . intval($intPaiement) . ", ach_lang = '" . $objDatabase->fxEscape($strLangue) . "' WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
$strNoCommande = fxMajCommande($no_panier, $strLangue);
header('Location: ' . $vDomaine . '/' . $strPage . '/resultat/' . $_SESSION['eve_label_url'] . '?p=success&ResponseFile=' . $strTransaction);
exit;
break;
default:
// sauvegarder les infos dans la bdd
if ($strLangue == 'fr')
$strResultat = 'ERREUR';
else
$strResultat = 'ERROR';
$strErrorLog = 'NO chk_paiement';
$sqlUpdate = "UPDATE inscriptions_panier_acheteurs SET receipt_text = '" . $strResultat . "', TransactionID = '" . $strTransaction . "', ach_error_log = '" . $objDatabase->fxEscape($strErrorLog) . "', ach_lang = '" . $objDatabase->fxEscape($strLangue) . "' WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
header('Location: ' . $vDomaine . '/' . $strPage . '/resultat/' . $_SESSION['eve_label_url'] . '?p=error&ResponseFile=' . $strTransaction);
exit;
}
} else {
// créer un numéro de transaction
$strTransaction = uniqid('trx_');
// sauvegarder les infos dans la bdd
if ($strLangue == 'fr') {
$strResultat = 'APPROUVEE - MERCI';
$strPage = 'panier';
} else {
$strResultat = 'APPROVED - THANK YOU';
$strPage = 'cart';
}
$sqlUpdate = "UPDATE inscriptions_panier_acheteurs SET receipt_text = '" . $strResultat . "', TransactionID = '" . $strTransaction . "', pai_id = 4, ach_lang = '" . $objDatabase->fxEscape($strLangue) . "' WHERE no_panier = '" . $objDatabase->fxEscape($no_panier) . "'";
$qryUpdate = $objDatabase->fxQuery($sqlUpdate);
fxMajCommande($no_panier, $strLangue);
header('Location: ' . $vDomaine . '/' . $strPage . '/resultat/' . $_SESSION['eve_label_url'] . '?p=success&ResponseFile=' . $strTransaction);
exit;
}
} else {
?>
<h1>POSSIBLE ROBOT!</h1>
<?php
}