Fixes deprecated features in PHP 5.3.x.
[platal.git] / modules / payment / money.inc.php
CommitLineData
0337d704 1<?php
2/***************************************************************************
12262f13 3 * Copyright (C) 2003-2011 Polytechnique.org *
0337d704 4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
0337d704 22class Payment
23{
24 // {{{ properties
25
26 var $id;
27 var $text;
28 var $url;
29 var $flags;
30 var $mail;
a690a74c
DB
31 var $amount_min;
32 var $amount_max;
33 var $amount_def;
3b3e9d15 34 var $asso_id;
0337d704 35
36 var $api = null;
37
38 // }}}
39 // {{{ constructor
eaf30d86 40
0337d704 41 function Payment($ref=-1)
42 {
43 global $globals;
44 $r = $ref==-1 ? $globals->money->mpay_def_id : $ref;
a690a74c
DB
45 $res = XDB::query("SELECT id, text, url, flags, mail, amount_min, amount_max, amount_def, asso_id
46 FROM payments WHERE id={?}", $r);
0337d704 47 list($this->id, $this->text, $this->url, $flags, $this->mail,
a690a74c 48 $this->amount_min, $this->amount_max, $this->amount_def, $this->asso_id) = $res->fetchOneRow();
eaf30d86 49
a690a74c
DB
50 $this->amount_min = (float)$this->amount_min;
51 $this->amount_max = (float)$this->amount_max;
113f6de8 52 $this->flags = new PlFlagSet($flags);
0337d704 53 }
54
55 // }}}
56 // {{{ function check()
eaf30d86 57
0337d704 58 function check($value)
59 {
60 $v = (float)strtr($value, ',', '.');
a690a74c
DB
61 if ($this->amount_min > $v) {
62 return "Montant inférieur au minimum autorisé ({$this->amount_min}).";
63 } elseif ($v > $this->amount_max) {
64 return "Montant supérieur au maximum autorisé ({$this->amount_max}).";
0337d704 65 } else {
66 return true;
67 }
68 }
69
70 // }}}
71 // {{{ function init()
72
26ba053e 73 function init($val, $meth)
0337d704 74 {
50bda57a 75 require_once dirname(__FILE__).'/money/'.$meth->inc;
0337d704 76 $this->api = new $api($val);
77 }
78
79 // }}}
80 // {{{ function prepareform()
81
82 function prepareform()
83 {
84 return $this->api->prepareform($this);
85 }
3b3e9d15 86
87 function event()
88 {
a3a049fc 89 if ($this->asso_id) {
614199d8 90 $res = XDB::query("SELECT e.eid, a.diminutif
eb41eda9
FB
91 FROM group_events AS e
92 INNER JOIN groups AS a ON (e.asso_id = a.id)
93 LEFT JOIN group_event_participants AS p ON (p.eid = e.eid AND p.uid = {?})
614199d8
FB
94 WHERE e.paiement_id = {?} AND p.uid IS NULL", S::i('uid'), $this->id);
95 if ($res->numRows()) {
96 return $res->fetchOneAssoc();
97 }
3b3e9d15 98 }
99 return null;
100 }
089a5801 101 // }}}
0337d704 102}
103
0337d704 104// {{{ class PayMethod
105
106class PayMethod
107{
108 // {{{ properties
109
110 var $id;
111 var $text;
112 var $inc;
113
114 // }}}
115 // {{{ constructor
116
117 function PayMethod($id=-1)
118 {
119 global $globals;
120 $i = $id==-1 ? $globals->money->mpay_def_meth : $id;
a690a74c 121 $res = XDB::query("SELECT id,text,include FROM payment_methods WHERE id={?}", $i);
0337d704 122 list($this->id, $this->text, $this->inc) = $res->fetchOneRow();
eaf30d86 123 }
0337d704 124
125 // }}}
126}
127
128// }}}
129
a7de4ef7 130// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
0337d704 131?>