X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fpayment.php;h=ff5c432af7e9e082560f75f7638cd11f309a49bb;hb=de61dbcf4475d1182220ae6ac1759d6a5bf7acbd;hp=02933d11628cb96b064f1a21549d2896d1223efd;hpb=a2558f2b2bccc90e7db9946f09817fb252aef3c7;p=platal.git diff --git a/modules/payment.php b/modules/payment.php index 02933d1..ff5c432 100644 --- a/modules/payment.php +++ b/modules/payment.php @@ -77,8 +77,9 @@ class PaymentModule extends PLModule { return array( 'payment' => $this->make_hook('payment', AUTH_MDP), - 'payment/cyber_return' => $this->make_hook('cyber_return', AUTH_PUB), - 'payment/paypal_return' => $this->make_hook('paypal_return', AUTH_PUB), + 'payment/cyber_return' => $this->make_hook('cyber_return', AUTH_PUBLIC), + 'payment/paypal_return' => $this->make_hook('paypal_return', AUTH_PUBLIC), + 'admin/payments' => $this->make_hook('admin', AUTH_MDP, 'admin'), ); } @@ -87,21 +88,21 @@ class PaymentModule extends PLModule global $globals; require_once 'profil.func.inc.php' ; - require_once 'money.inc.php' ; + require_once dirname(__FILE__).'/payment/money.inc.php' ; $page->changeTpl('payment/index.tpl'); $page->assign('xorg_title','Polytechnique.org - Télépaiements'); // initialisation - $op = Env::get('op', 'select'); - $meth = new PayMethod(Env::getInt('methode', -1)); + $op = Env::v('op', 'select'); + $meth = new PayMethod(Env::i('methode', -1)); $pay = new Payment($ref); if($pay->flags->hasflag('old')){ $page->trig("La transaction selectionnée est périmée."); $pay = new Payment(); } - $val = Env::get('montant') != 0 ? Env::get('montant') : $pay->montant_def; + $val = Env::v('montant') != 0 ? Env::v('montant') : $pay->montant_def; if (($e = $pay->check($val)) !== true) { $page->trig($e); @@ -111,11 +112,11 @@ class PaymentModule extends PLModule $pay->init($val, $meth); $pay->prepareform($pay); } else { - $res = $globals->xdb->iterator("SELECT timestamp, montant + $res = XDB::iterator("SELECT timestamp, montant FROM paiement.transactions WHERE uid = {?} AND ref = {?} ORDER BY timestamp DESC", - Session::getInt('uid', -1), $ref); + S::v('uid', -1), $ref); if ($res->total()) $page->assign('transactions', $res); } @@ -127,9 +128,7 @@ class PaymentModule extends PLModule $page->assign('pay', $pay); $page->assign('evtlink', $pay->event()); - $page->assign('prefix',$globals->money->mpay_tprefix); - - return PL_OK; + $page->assign('prefix', $globals->money->mpay_tprefix); } function handler_cyber_return(&$page, $uid = null) @@ -153,7 +152,7 @@ class PaymentModule extends PLModule $montant = "$champ201 $champ202"; /* on extrait les informations sur l'utilisateur */ - $res = $globals->xdb->query(" + $res = XDB::query(" SELECT a.prenom,a.nom,a.promo,l.alias,FIND_IN_SET(a.flags,'femme') FROM auth_user_md5 AS a INNER JOIN aliases AS l ON (a.user_id=l.id AND type!='homonyme') @@ -169,7 +168,7 @@ class PaymentModule extends PLModule } echo ($ref = $matches[1]); - $res = $globals->xdb->query("SELECT mail,text,confirmation + $res = XDB::query("SELECT mail,text,confirmation FROM paiement.paiements WHERE id={?}", $ref); if (!list($conf_mail,$conf_title,$conf_text) = $res->fetchOneRow()) { cb_erreur("référence de commande inconnue"); @@ -177,7 +176,7 @@ class PaymentModule extends PLModule /* on extrait le code de retour */ if ($champ906 != "0000") { - $res = $globals->xdb->query("SELECT rcb.text,c.id,c.text + $res = XDB::query("SELECT rcb.text,c.id,c.text FROM paiement.codeRCB AS rcb LEFT JOIN paiement.codeC AS c ON rcb.codeC=c.id WHERE rcb.id='$champ906'"); @@ -189,7 +188,7 @@ class PaymentModule extends PLModule } /* on fait l'insertion en base de donnees */ - $globals->xdb->execute("INSERT INTO paiement.transactions (id,uid,ref,fullref,montant,cle) + XDB::execute("INSERT INTO paiement.transactions (id,uid,ref,fullref,montant,cle) VALUES ({?},{?},{?},{?},{?},{?})", $champ901, $uid, $ref, $champ200, $montant, $champ905); @@ -228,8 +227,6 @@ class PaymentModule extends PLModule function handler_paypal_return(&$page, $uid = null) { - global $globals; - $page->changeTpl('payment/retour_paypal.tpl'); require_once 'diogenes/diogenes.hermes.inc.php'; @@ -258,7 +255,7 @@ class PaymentModule extends PLModule } /* on extrait les informations sur l'utilisateur */ - $res = $globals->xdb->query(" + $res = XDB::query(" SELECT a.prenom,a.nom,a.promo,l.alias,FIND_IN_SET(a.flags,'femme') FROM auth_user_md5 AS a INNER JOIN aliases AS l ON (a.user_id=l.id AND type!='homonyme') @@ -273,14 +270,14 @@ class PaymentModule extends PLModule } $ref = $matches[1]; - $res = $globals->xdb->query("SELECT mail,text,confirmation + $res = XDB::query("SELECT mail,text,confirmation FROM paiement.paiements WHERE id={?}", $ref); if (!list($conf_mail,$conf_title,$conf_text) = $res->fetchOneRow()) { paypal_erreur("référence de commande inconnue"); } /* on fait l'insertion en base de donnees */ - $globals->xdb->execute("INSERT INTO paiement.transactions (id,uid,ref,fullref,montant,cle) + XDB::execute("INSERT INTO paiement.transactions (id,uid,ref,fullref,montant,cle) VALUES ({?},{?},{?},{?},{?},{?})", $no_transaction, $uid, $ref, $fullref, $montant, $clef); @@ -317,9 +314,24 @@ class PaymentModule extends PLModule $page->assign('texte', $conf_text); $page->assign('erreur', $erreur); - - return PL_OK; } + function handler_admin(&$page, $action = 'list', $id = null) { + $page->assign('xorg_title','Polytechnique.org - Administration - Paiements'); + $page->assign('title', 'Gestion des télépaiements'); + $table_editor = new PLTableEditor('admin/payments','paiement.paiements','id'); + $table_editor->add_join_table('paiement.transactions','ref',true); + $table_editor->add_sort_field('flags'); + $table_editor->add_sort_field('id', true, true); + $table_editor->on_delete("UPDATE paiement.paiements SET flags = 'old' WHERE id = {?}", "Le paiement a été archivé"); + $table_editor->describe('text','intitulé',true); + $table_editor->describe('url','site web',false); + $table_editor->describe('montant_def','montant par défaut',false); + $table_editor->describe('montant_min','montant minimum',false); + $table_editor->describe('montant_max','montant maximum',false); + $table_editor->describe('mail','email contact',true); + $table_editor->describe('confirmation','message confirmation',false); + $table_editor->apply($page, $action, $id); + } } ?>