X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fpayment.php;h=e3788e56c41fe51e68e026ae1f0af76035dbbc85;hb=57429ea447195202064ba5a3958e8844939059e9;hp=16132592589f075b74d081d02b73baf0c4f52390;hpb=5f85dbd3801d2f284b2c50f662d7ec6b2e4d7f7b;p=platal.git diff --git a/modules/payment.php b/modules/payment.php index 1613259..e3788e5 100644 --- a/modules/payment.php +++ b/modules/payment.php @@ -20,14 +20,19 @@ ***************************************************************************/ /* sort en affichant une erreur */ -function cb_erreur($text) { +function cb_erreur($text, $conf_title="") { global $globals; - echo "Error.\n"; + echo "Error: ".$text."\n"; $mymail = new PlMailer(); $mymail->addTo($globals->money->email); $mymail->setFrom("webmaster@" . $globals->mail->domain); $mymail->setSubject("erreur lors d'un télépaiement (CyberPaiement)"); - $mymail->setTxtBody("\n\n".var_export($_REQUEST,true)); + $content = "raison de l'erreur : " . $text . "\n"; + if ($conf_title != "") { + $content = $content."paiement : ".$conf_title."\n"; + } + $content = $content . "dump de REQUEST :\n" . var_export($_REQUEST, true); + $mymail->setTxtBody($content); $mymail->send(); echo "Notification sent.\n"; exit; @@ -45,7 +50,10 @@ function paypal_erreur($text, $send=true) $mymail->addTo($globals->money->email); $mymail->setFrom("webmaster@" . $globals->mail->domain); $mymail->setSubject("erreur lors d'un télépaiement (PayPal)"); - $mymail->setTxtBody("\n\n".var_export($_REQUEST,true)); + $mymail->setTxtBody("raison de l'erreur : ".$text."\n". + "paiement : $conf_title \n\n". + "dump de REQUEST :\n". + var_export($_REQUEST,true)); $mymail->send(); Platal::page()->trigError($text); @@ -142,6 +150,9 @@ class PaymentModule extends PLModule $page->kill('La transaction selectionnée est périmée.'); } + if (Env::has('montant')) { + $pay->amount_def = Env::v('montant'); + } $val = (Post::v('amount') != 0) ? Post::v('amount') : $pay->amount_def; if (($error = $pay->check($val)) !== true) { @@ -162,6 +173,7 @@ class PaymentModule extends PLModule } else { $pay->init($val, $meth); $pay->prepareform($user); + $page->assign('full_name', $user->fullName(true)); $page->assign('sex', $user->isFemale()); } } elseif (S::logged()) { @@ -260,7 +272,7 @@ class PaymentModule extends PLModule /* on extrait le code de retour */ if (Env::v('vads_result') != '00') { - cb_erreur('erreur lors du paiement : ?? (' . Env::v('vads_result') . ')'); + cb_erreur('erreur lors du paiement : ?? (' . Env::v('vads_result') . ')', $conf_title); } /* on fait l'insertion en base de donnees */ @@ -277,7 +289,7 @@ class PaymentModule extends PLModule list($eid, $asso_id) = $res->fetchOneRow(); require_once dirname(__FILE__) . '/xnetevents/xnetevents.inc.php'; $evt = get_event_detail($eid, false, $asso_id); - subscribe_lists_event($user->id(), $evt['short_name'], 1, $amount, true); + subscribe_lists_event($user->id(), $evt['short_name'], 1, $montant, true); } /* on genere le mail de confirmation */ @@ -368,12 +380,13 @@ class PaymentModule extends PLModule $no_transaction, $user->id(), $ref, $fullref, $montant, $clef, Env::v('comment'), Get::i('display')); // We check if it is an Xnet payment and then update the related ML. - $res = XDB::query('SELECT eid + $res = XDB::query('SELECT eid, asso_id FROM group_events WHERE paiement_id = {?}', $ref); - if ($eid = $res->fetchOneCell()) { + if ($res->numRows() == 1) { + list($eid, $asso_id) = $res->fetchOneRow(); require_once dirname(__FILE__) . '/xnetevents/xnetevents.inc.php'; - $evt = get_event_detail($eid); + $evt = get_event_detail($eid, false, $asso_id); subscribe_lists_event($user->id(), $evt['short_name'], 1, $montant, true); } @@ -450,7 +463,7 @@ class PaymentModule extends PLModule $trans = array(); $event = array(); if (may_update()) { - static $orders = array('timestamp' => 'p', 'directory_name' => 'a', 'promo' => 'pd', 'comment' => 'p', 'amount' => 'p'); + static $orders = array('ts_confirmed' => 'p', 'directory_name' => 'a', 'promo' => 'pd', 'comment' => 'p', 'amount' => 'p'); if (Get::has('order_id') && Get::has('order') && array_key_exists(Get::v('order'), $orders)) { $order_id = Get::i('order_id'); @@ -543,17 +556,17 @@ class PaymentModule extends PLModule $users = User::getBulkUsersWithUIDs($res, 'uid', 'user'); $sum = 0; - pl_cached_content_headers('text/x-csv', 1); + pl_cached_content_headers('text/x-csv', 'iso-8859-1', 1); $csv = fopen('php://output', 'w'); - fputcsv($csv, array('Date', 'Nom', 'Prénom', 'Sexe', 'Promotion', 'Email', 'Commentaire', 'Montant'), ';'); + fputcsv($csv, array('Date', 'Nom', utf8_decode('Prénom'), 'Sexe', 'Promotion', 'Email', 'Commentaire', 'Montant'), ';'); foreach ($users as $item) { $user = $item['user']; $sum += $item['amount']; - fputcsv($csv, array(format_datetime($item['date'], '%d/%m/%y'), $user->lastName(), $user->firstName(), + fputcsv($csv, array(format_datetime($item['date'], '%d/%m/%y'), utf8_decode($user->lastName()), utf8_decode($user->firstName()), ($user->isFemale()) ? 'F' : 'M', $user->promo(), $user->ForlifeEmail(), - $item['comment'], strtr($item['amount'],'.',',').' €' ), ';'); + utf8_decode($item['comment']), strtr($item['amount'], '.', ',') . ' EUR' ), ';'); } - fputcsv($csv, array(date('d/m/y'), 'Total', '', '', '' , '', '', strtr($sum,'.',',').' €'), ';'); + fputcsv($csv, array(date('d/m/y'), 'Total', '', '', '' , '', '', strtr($sum, '.', ',') . ' EUR'), ';'); fclose($csv); exit; @@ -574,10 +587,13 @@ class PaymentModule extends PLModule $table_editor->describe('amount_max', 'montant maximum', false, true); $table_editor->describe('mail', 'email contact', true); $table_editor->describe('confirmation', 'message confirmation', false, true); - + $table_editor->describe('rib_id', 'RIB', false, true); // adds a column with the start date of the linked event if there is one $table_editor->add_option_table('group_events', 'group_events.paiement_id = t.id'); - $table_editor->add_option_field('group_events.debut', 'related_event', 'évènement', 'timestamp'); + $table_editor->add_option_field('group_events.archive', 'related_event', 'évènement archivé ?', 'tinyint'); + // adds a column with the linked rib if there is one + $table_editor->add_option_table('payment_bankaccounts', 'payment_bankaccounts.id = t.rib_id'); + $table_editor->add_option_field('payment_bankaccounts.owner', 'linked_rib_owner', 'rib associé', 'varchar'); $table_editor->apply($page, $action, $id); } @@ -680,8 +696,9 @@ class PaymentModule extends PLModule $recongp['id']); $recongp['recons'] = $res->fetchAllAssoc(); - $res = XDB::query('SELECT id, payment_id, amount, account_id, message, date - FROM payment_transfers + $res = XDB::query('SELECT t.id, t.payment_id, t.amount, b.owner, t.message, t.date + FROM payment_transfers AS t + LEFT JOIN payment_bankaccounts AS b ON (t.account_id=b.id) WHERE recongroup_id = {?}', $recongp['id']); $recongp['transfers'] = $res->fetchAllAssoc(); @@ -884,7 +901,7 @@ class PaymentModule extends PLModule // create transfers XDB::execute('INSERT INTO payment_transfers - SELECT NULL, {?}, t.ref, SUM(t.amount+t.commission), NULL, p.text, NULL + SELECT NULL, {?}, t.ref, SUM(t.amount+t.commission), p.rib_id, p.text, NULL FROM payment_transactions AS t LEFT JOIN payments AS p ON (t.ref = p.id) LEFT JOIN groups AS g ON (p.asso_id = g.id) @@ -955,7 +972,7 @@ class PaymentLogsImporter extends CSVImporter { static public function compute_systempay_commission($line, $key, $relation) { static $EEE_countries = array( - 'France', 'Allemagne', 'Autriche', 'Belgique', 'Bulgarie', 'Chypre', + 'France', 'Allemagne', 'Autriche', 'Belgique', 'Bulgarie', 'Chypre', 'Suisse', 'Danemark', 'Espagne', 'Estonie', 'Finlande', 'Grèce', 'Hongrie', 'Irlande', 'Islande', 'Italie', 'Lettonie', 'Liechtenstein', 'Lituanie', 'Luxembourg', 'Malte', 'Norvège', 'Pays-Bas', 'Pologne', 'Portugal', 'Roumanie', 'Royaume-Uni', 'Slovaquie', 'Slovénie', 'Suède', 'République Tchèque'