Can archive the events (useful to clean %grp/events without deleting the events)
[platal.git] / modules / xnetevents.php
CommitLineData
4f10a058 1<?php
2/***************************************************************************
3 * Copyright (C) 2003-2006 Polytechnique.org *
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
ed21e24a 22define('NB_PER_PAGE', 25);
23
4f10a058 24class XnetEventsModule extends PLModule
25{
26 function handlers()
27 {
28 return array(
d1ebc57a 29 '%grp/events' => $this->make_hook('events', AUTH_MDP),
30 '%grp/events/sub' => $this->make_hook('sub', AUTH_MDP),
31 '%grp/events/csv' => $this->make_hook('csv', AUTH_MDP),
32 '%grp/events/edit' => $this->make_hook('edit', AUTH_MDP),
33 '%grp/events/admin' => $this->make_hook('admin', AUTH_MDP),
4f10a058 34 );
35 }
36
f02eefd4 37 function handler_events(&$page, $archive = null)
4f10a058 38 {
39 global $globals;
40
f02eefd4 41 if ($archive == 'archive') {
42 $archive = true;
43 new_groupadmin_page('xnetevents/index.tpl');
44 } else {
45 $archive = false;
46 new_group_open_page('xnetevents/index.tpl');
47 }
4f10a058 48
f02eefd4 49 $action = null;
2b9e5fd3 50 if (Post::has('del')) {
f02eefd4 51 $action = 'del';
52 $eid = Post::v('del');
53 } elseif (Post::has('archive')) {
54 $action = 'archive';
55 $eid = Post::v('archive');
56 } elseif (Post::has('unarchive')) {
57 $action = 'unarchive';
58 $eid = Post::v('unarchive');
59 }
60
61 if (!is_null($action)) {
2b9e5fd3 62 if (!may_update()) {
63 return PL_NOT_ALLOWED;
64 }
65
08cce2ff 66 $res = XDB::query("SELECT asso_id, short_name FROM groupex.evenements
3cabafae 67 WHERE eid = {?} AND asso_id = {?}",
68 $eid, $globals->asso('id'));
2b9e5fd3 69
70 $tmp = $res->fetchOneRow();
71 if (!$tmp) {
72 return PL_NOT_ALLOWED;
73 }
f02eefd4 74 }
2b9e5fd3 75
f02eefd4 76 if ($action == 'del') {
2b9e5fd3 77 // deletes the event mailing aliases
78 if ($tmp[1]) {
08cce2ff 79 XDB::execute(
5070a22d 80 "DELETE FROM virtual WHERE type = 'evt' AND alias LIKE {?}",
81 $tmp[1].'-absents@%');
08cce2ff 82 XDB::execute(
5070a22d 83 "DELETE FROM virtual WHERE type = 'evt' AND alias LIKE {?}",
84 $tmp[1].'-participants@%');
2b9e5fd3 85 }
86
87 // deletes the event items
08cce2ff 88 XDB::execute("DELETE FROM groupex.evenements_items WHERE eid = {?}", $eid);
2b9e5fd3 89
90 // deletes the event participants
08cce2ff 91 XDB::execute("DELETE FROM groupex.evenements_participants
2b9e5fd3 92 WHERE eid = {?}", $eid);
93
94 // deletes the event
08cce2ff 95 XDB::execute("DELETE FROM groupex.evenements
2b9e5fd3 96 WHERE eid = {?} AND asso_id = {?}",
97 $eid, $globals->asso('id'));
98
99 // delete the requests for payments
100 require_once 'validations.inc.php';
08cce2ff 101 XDB::execute("DELETE FROM requests
2b9e5fd3 102 WHERE type = 'paiements' AND data LIKE {?}",
103 PayReq::same_event($eid, $globals->asso('id')));
104 }
105
f02eefd4 106 if ($action == 'archive') {
107 XDB::execute("UPDATE groupex.evenements
108 SET archive = 1
109 WHERE eid = {?} AND asso_id = {?}",
110 $eid, $globals->asso('id'));
111 }
112
113 if ($action == 'unarchive') {
114 XDB::execute("UPDATE groupex.evenements
115 SET archive = 0
116 WHERE eid = {?} AND asso_id = {?}",
117 $eid, $globals->asso('id'));
118 }
119
120 $page->assign('archive', $archive);
4f10a058 121 $page->assign('admin', may_update());
122
08cce2ff 123 $evenements = XDB::iterator(
d6d580ec 124 "SELECT e.*, LEFT(10, e.debut) AS debut_day, LEFT(10, e.fin) AS fin_day,
bd46a8e4 125 IF(e.deadline_inscription, e.deadline_inscription >= LEFT(NOW(), 10),
d6d580ec 126 1) AS inscr_open, e.deadline_inscription,
127 u.nom, u.prenom, u.promo, a.alias,
128 MAX(ep.nb) AS inscrit, MAX(ep.paid) AS paid
129 FROM groupex.evenements AS e
4f10a058 130 INNER JOIN x4dat.auth_user_md5 AS u ON u.user_id = e.organisateur_uid
d6d580ec 131 INNER JOIN x4dat.aliases AS a ON (a.type = 'a_vie' AND a.id = u.user_id)
4f10a058 132 LEFT JOIN groupex.evenements_participants AS ep ON (ep.eid = e.eid AND ep.uid = {?})
f02eefd4 133 WHERE asso_id = {?}
134 AND archive = " . ($archive ? "1 " : "0 ")
3cabafae 135 . (is_member() || may_update() ? "" : " AND accept_nonmembre != 0 ")
136 . "GROUP BY e.eid
cb24457f 137 ORDER BY inscr_open DESC, debut DESC", S::v('uid'), $globals->asso('id'));
4f10a058 138
139 $evts = array();
d6d580ec 140
4f10a058 141 while ($e = $evenements->next()) {
3cabafae 142 $e['show_participants'] = ($e['show_participants'] && (is_member() || may_update()));
08cce2ff 143 $res = XDB::query(
4f10a058 144 "SELECT titre, details, montant, ei.item_id, nb
145 FROM groupex.evenements_items AS ei
146 LEFT JOIN groupex.evenements_participants AS ep
147 ON (ep.eid = ei.eid AND ep.item_id = ei.item_id AND uid = {?})
148 WHERE ei.eid = {?}",
cab08090 149 S::v('uid'), $e['eid']);
d6d580ec 150 $e['moments'] = $res->fetchAllAssoc();
151
152 $e['topay'] = 0;
153 foreach ($e['moments'] as $m) {
154 $e['topay'] += $m['nb'] * $m['montant'];
155 }
156
08cce2ff 157 $query = XDB::query(
4f10a058 158 "SELECT montant
159 FROM {$globals->money->mpay_tprefix}transactions AS t
cab08090 160 WHERE ref = {?} AND uid = {?}", $e['paiement_id'], S::v('uid'));
4f10a058 161 $montants = $query->fetchColumn();
d6d580ec 162
4f10a058 163 foreach ($montants as $m) {
d6d580ec 164 $p = strtr(substr($m, 0, strpos($m, 'EUR')), ',', '.');
4f10a058 165 $e['paid'] += trim($p);
166 }
d6d580ec 167
4f10a058 168 $evts[] = $e;
169 }
170
171 $page->assign('evenements', $evts);
172 $page->assign('is_member', is_member());
173 }
174
d6d580ec 175 function handler_sub(&$page, $eid = null)
176 {
352fb101 177 require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
d6d580ec 178
3cabafae 179 new_group_open_page('xnetevents/subscribe.tpl');
d6d580ec 180
181 $evt = get_event_detail($eid);
182 if (!$evt) {
183 return PL_NOT_FOUND;
184 }
185
186 if (!$evt['inscr_open']) {
187 $page->kill('Les inscriptions pour cet événement sont closes');
188 }
3cabafae 189 if (!$evt['accept_nonmembre'] && !is_member() && !may_update()) {
190 $page->kill('Cet événement est fermé aux non-membres du groupe');
191 }
d6d580ec 192
193 $page->assign('event', $evt);
194
195 if (!Post::has('submit')) {
196 return;
197 }
198
5e2307dc 199 $moments = Post::v('moment', array());
200 $pers = Post::v('personnes', array());
d6d580ec 201 $subs = array();
202
203 foreach ($moments as $j => $v) {
204 $subs[$j] = intval($v);
205
206 // retreive ohter field when more than one person
207 if ($subs[$j] == 2) {
208 if (!isset($pers[$j]) || !is_numeric($pers[$j])
209 || $pers[$j] < 0)
210 {
211 $page->trig('Tu dois choisir un nombre d\'invités correct !');
212 return;
213 }
214 $subs[$j] = 1 + $pers[$j];
215 }
216 }
217
218 // impossible to unsubscribe if you already paid sthing
219 if (array_sum($subs) && $evt['paid'] != 0) {
220 $page->trig("Impossible de te désinscrire complčtement ".
221 "parce que tu as fait un paiement par ".
222 "chčque ou par liquide. Contacte un ".
223 "administrateur du groupe si tu es sűr de ".
224 "ne pas venir");
225 return;
226 }
227
228 // update actual inscriptions
229 foreach ($subs as $j => $nb) {
230 if ($nb > 0) {
08cce2ff 231 XDB::execute(
d6d580ec 232 "REPLACE INTO groupex.evenements_participants
233 VALUES ({?}, {?}, {?}, {?}, {?})",
cab08090 234 $eid, S::v('uid'), $j, $nb, $evt['paid']);
5070a22d 235 $page->assign('updated', true);
d6d580ec 236 } else {
08cce2ff 237 XDB::execute(
d6d580ec 238 "DELETE FROM groupex.evenements_participants
239 WHERE eid = {?} AND uid = {?} AND item_id = {?}",
cab08090 240 $eid, S::v("uid"), $j);
5070a22d 241 $page->assign('updated', true);
d6d580ec 242 }
243 }
244
245 $page->assign('event', get_event_detail($eid));
246 }
247
4f10a058 248 function handler_csv(&$page, $eid = null, $item_id = null)
249 {
352fb101 250 require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
4f10a058 251
bd46a8e4 252 if (!is_numeric($item_id)) {
253 $item_id = null;
254 }
255
4f10a058 256 $evt = get_event_detail($eid, $item_id);
257 if (!$evt) {
258 return PL_NOT_FOUND;
259 }
260
dba106f6 261 header('Content-type: text/x-csv; encoding=iso-8859-1');
4f10a058 262 header('Pragma: ');
263 header('Cache-Control: ');
264
801fcad8 265 $page->changeTpl('xnetevents/csv.tpl', NO_SKIN);
4f10a058 266
267 $admin = may_update();
268
5e2307dc 269 $tri = (Env::v('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo');
4f10a058 270
ed21e24a 271 $page->assign('participants',
272 get_event_participants($evt, $item_id, $tri));
4f10a058 273
4f10a058 274 $page->assign('admin', $admin);
275 $page->assign('moments', $evt['moments']);
276 $page->assign('money', $evt['money']);
5e2307dc 277 $page->assign('tout', !Env::v('item_id', false));
4f10a058 278 }
bd46a8e4 279
280 function handler_edit(&$page, $eid = null)
281 {
282 global $globals;
283
5070a22d 284 // check the event is in our group
bd46a8e4 285 if (!is_null($eid)) {
08cce2ff 286 $res = XDB::query("SELECT short_name, asso_id
bd46a8e4 287 FROM groupex.evenements
288 WHERE eid = {?}", $eid);
289 $infos = $res->fetchOneAssoc();
290 if ($infos['asso_id'] != $globals->asso('id')) {
291 return PL_NOT_ALLOWED;
292 }
293 }
294
5070a22d 295 new_groupadmin_page('xnetevents/edit.tpl');
bd46a8e4 296
5070a22d 297 $moments = range(1, 4);
298 $page->assign('moments', $moments);
bd46a8e4 299
5e2307dc 300 if (Post::v('intitule')) {
5070a22d 301 require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
302 $short_name = event_change_shortname($page, $infos['short_name'],
5e2307dc 303 Env::v('short_name', ''));
5070a22d 304
305 $evt = array(
306 'eid' => $eid,
307 'asso_id' => $globals->asso('id'),
cab08090 308 'organisateur_uid' => S::v('uid'),
5e2307dc 309 'paiement_id' => Post::v('paiement_id') > 0 ? Post::v('paiement_id') : null,
310 'debut' => Post::v('deb_Year').'-'.Post::v('deb_Month')
311 .'-'.Post::v('deb_Day').' '.Post::v('deb_Hour')
312 .':'.Post::v('deb_Minute').':00',
313 'fin' => Post::v('fin_Year').'-'.Post::v('fin_Month')
314 .'-'.Post::v('fin_Day').' '.Post::v('fin_Hour')
315 .':'.Post::v('fin_Minute').':00',
5070a22d 316 'short_name' => $short_name,
317 );
318
319 $trivial = array('intitule', 'descriptif', 'noinvite',
3cabafae 320 'show_participants', 'accept_nonmembre');
5070a22d 321 foreach ($trivial as $k) {
5e2307dc 322 $evt[$k] = Post::v($k);
bd46a8e4 323 }
324
5e2307dc 325 if (Post::v('deadline')) {
326 $evt['deadline_inscription'] = Post::v('inscr_Year').'-'
327 . Post::v('inscr_Month').'-'
328 . Post::v('inscr_Day');
5070a22d 329 } else {
330 $evt['deadline_inscription'] = null;
9ece1588 331 }
bd46a8e4 332
333 // Store the modifications in the database
08cce2ff 334 XDB::execute('REPLACE INTO groupex.evenements
bd46a8e4 335 SET eid={?}, asso_id={?}, organisateur_uid={?}, intitule={?},
5070a22d 336 paiement_id = {?}, descriptif = {?}, debut = {?},
337 fin = {?}, show_participants = {?}, short_name = {?},
3cabafae 338 deadline_inscription = {?}, noinvite = {?},
339 accept_nonmembre = {?}',
5070a22d 340 $evt['eid'], $evt['asso_id'], $evt['organisateur_uid'],
341 $evt['intitule'], $evt['paiement_id'], $evt['descriptif'],
342 $evt['debut'], $evt['fin'], $evt['show_participants'],
343 $evt['short_name'], $evt['deadline_inscription'],
3cabafae 344 $evt['noinvite'], $evt['accept_nonmembre']);
bd46a8e4 345
346 // if new event, get its id
347 if (!$eid) {
5070a22d 348 $eid = mysql_insert_id();
bd46a8e4 349 }
350
5070a22d 351 $nb_moments = 0;
bd46a8e4 352 $money_defaut = 0;
353
354 foreach ($moments as $i) {
5e2307dc 355 if (Post::v('titre'.$i)) {
bd46a8e4 356 $nb_moments++;
5070a22d 357
5e2307dc 358 $montant = strtr(Post::v('montant'.$i), ',', '.');
5070a22d 359 $money_defaut += (float)$montant;
08cce2ff 360 XDB::execute("
bd46a8e4 361 REPLACE INTO groupex.evenements_items
362 VALUES ({?}, {?}, {?}, {?}, {?})",
5e2307dc 363 $eid, $i, Post::v('titre'.$i),
364 Post::v('details'.$i), $montant);
bd46a8e4 365 } else {
08cce2ff 366 XDB::execute("DELETE FROM groupex.evenements_items
bd46a8e4 367 WHERE eid = {?} AND item_id = {?}", $eid, $i);
368 }
369 }
370
371 // request for a new payment
5e2307dc 372 if (Post::v('paiement_id') == -1 && $money_defaut >= 0) {
bd46a8e4 373 require_once 'validations.inc.php';
cab08090 374 $p = new PayReq(S::v('uid'),
5e2307dc 375 Post::v('intitule')." - ".$globals->asso('nom'),
376 Post::v('site'), $money_defaut,
377 Post::v('confirmation'), 0, 999,
bd46a8e4 378 $globals->asso('id'), $eid);
379 $p->submit();
380 }
381
382 // events with no sub-event: add a sub-event with no name
383 if ($nb_moments == 0) {
08cce2ff 384 XDB::execute("INSERT INTO groupex.evenements_items
bd46a8e4 385 VALUES ({?}, {?}, '', '', 0)", $eid, 1);
386 }
bd46a8e4 387
5070a22d 388 if (is_null($evt['eid'])) {
47e64118 389 pl_redirect('events/'.$eid);
5070a22d 390 }
bd46a8e4 391 }
392
393 // get a list of all the payment for this asso
08cce2ff 394 $res = XDB::iterator("SELECT id, text
bd46a8e4 395 FROM {$globals->money->mpay_tprefix}paiements
396 WHERE asso_id = {?}", $globals->asso('id'));
397 $paiements = array();
398 while ($a = $res->next()) $paiements[$a['id']] = $a['text']; {
399 $page->assign('paiements', $paiements);
400 }
401
402 // when modifying an old event retreive the old datas
403 if ($eid) {
08cce2ff 404 $res = XDB::query(
bd46a8e4 405 "SELECT eid, intitule, descriptif, debut, fin,
9ece1588 406 show_participants, paiement_id, short_name,
3cabafae 407 deadline_inscription, noinvite, accept_nonmembre
bd46a8e4 408 FROM groupex.evenements
409 WHERE eid = {?}", $eid);
410 $evt = $res->fetchOneAssoc();
411 // find out if there is already a request for a payment for this event
412 require_once 'validations.inc.php';
08cce2ff 413 $res = XDB::query("SELECT stamp FROM requests
bd46a8e4 414 WHERE type = 'paiements' AND data LIKE {?}",
415 PayReq::same_event($eid, $globals->asso('id')));
416 $stamp = $res->fetchOneCell();
417 if ($stamp) {
418 $evt['paiement_id'] = -2;
419 $evt['paiement_req'] = $stamp;
420 }
421 $page->assign('evt', $evt);
422 // get all the different moments infos
08cce2ff 423 $res = XDB::iterator(
bd46a8e4 424 "SELECT item_id, titre, details, montant
425 FROM groupex.evenements_items AS ei
426 INNER JOIN groupex.evenements AS e ON(e.eid = ei.eid)
427 WHERE e.eid = {?}
428 ORDER BY item_id", $eid);
429 $items = array();
430 while ($item = $res->next()) {
431 $items[$item['item_id']] = $item;
432 }
433 $page->assign('items', $items);
434 }
435 }
436
437 function handler_admin(&$page, $eid = null, $item_id = null)
438 {
439 global $globals;
440
352fb101 441 require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
bd46a8e4 442
443 $evt = get_event_detail($eid, $item_id);
bd46a8e4 444 if (!$evt) {
445 return PL_NOT_FOUND;
446 }
447
448 if ($evt['show_participants']) {
ed21e24a 449 new_group_page('xnetevents/admin.tpl');
bd46a8e4 450 } else {
ed21e24a 451 new_groupadmin_page('xnetevents/admin.tpl');
bd46a8e4 452 }
453
5e2307dc 454 if (may_update() && Post::v('adm')) {
455 $member = get_infos(Post::v('mail'));
ed21e24a 456 if (!$member) {
457 $page->trig("Membre introuvable");
bd46a8e4 458 }
bd46a8e4 459
ed21e24a 460 // change the price paid by a participant
5e2307dc 461 if (Env::v('adm') == 'prix' && $member) {
08cce2ff 462 XDB::execute("UPDATE groupex.evenements_participants
ed21e24a 463 SET paid = IF(paid + {?} > 0, paid + {?}, 0)
464 WHERE uid = {?} AND eid = {?}",
5e2307dc 465 strtr(Env::v('montant'), ',', '.'),
466 strtr(Env::v('montant'), ',', '.'),
ed21e24a 467 $member['uid'], $eid);
468 }
bd46a8e4 469
ed21e24a 470 // change the number of personns coming with a participant
5e2307dc 471 if (Env::v('adm') == 'nbs' && $member) {
08cce2ff 472 $res = XDB::query("SELECT paid
ed21e24a 473 FROM groupex.evenements_participants
474 WHERE uid = {?} AND eid = {?}",
475 $member['uid'], $eid);
476
477 $paid = intval($res->fetchOneCell());
5e2307dc 478 $nbs = Post::v('nb', array());
ed21e24a 479
480 foreach ($nbs as $id => $nb) {
5070a22d 481 $nb = max(intval($nb), 0);
ed21e24a 482
483 if ($nb) {
08cce2ff 484 XDB::execute("REPLACE INTO groupex.evenements_participants
ed21e24a 485 VALUES ({?}, {?}, {?}, {?}, {?})",
486 $eid, $member['uid'], $id, $nb, $paid);
487 } else {
08cce2ff 488 XDB::execute("DELETE FROM groupex.evenements_participants
ed21e24a 489 WHERE uid = {?} AND eid = {?} AND item_id = {?}",
490 $member['uid'], $eid, $id);
491 }
bd46a8e4 492 }
ed21e24a 493
08cce2ff 494 $res = XDB::query("SELECT uid FROM groupex.evenements_participants
ed21e24a 495 WHERE uid = {?} AND eid = {?}",
496 $member['uid'], $eid);
bd46a8e4 497 $u = $res->fetchOneCell();
ed21e24a 498 subscribe_lists_event($u, $member['uid'], $evt);
bd46a8e4 499 }
ed21e24a 500
bd46a8e4 501 $evt = get_event_detail($eid, $item_id);
502 }
503
ed21e24a 504 $page->assign('admin', may_update());
bd46a8e4 505 $page->assign('evt', $evt);
1f3362a3 506 $page->assign('tout', is_null($item_id));
bd46a8e4 507
ed21e24a 508 if (count($evt['moments'])) {
509 $page->assign('moments', $evt['moments']);
510 }
bd46a8e4 511
5e2307dc 512 $tri = (Env::v('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo');
1f3362a3 513 $whereitemid = is_null($item_id) ? '' : "AND ep.item_id = $item_id";
08cce2ff 514 $res = XDB::iterRow(
ed21e24a 515 'SELECT UPPER(SUBSTRING(IF(u.nom IS NULL, m.nom,
516 IF(u.nom_usage<>"", u.nom_usage, u.nom)), 1, 1)),
517 COUNT(DISTINCT ep.uid)
bd46a8e4 518 FROM groupex.evenements_participants AS ep
519 INNER JOIN groupex.evenements AS e ON (ep.eid = e.eid)
520 LEFT JOIN groupex.membres AS m ON ( ep.uid = m.uid AND e.asso_id = m.asso_id)
521 LEFT JOIN auth_user_md5 AS u ON ( u.user_id = ep.uid )
522 WHERE ep.eid = {?} '.$whereitemid.'
ed21e24a 523 GROUP BY UPPER(SUBSTRING(IF(u.nom IS NULL,m.nom,u.nom), 1, 1))', $eid);
bd46a8e4 524
525 $alphabet = array();
526 $nb_tot = 0;
527 while (list($char, $nb) = $res->next()) {
528 $alphabet[ord($char)] = $char;
529 $nb_tot += $nb;
5e2307dc 530 if (Env::has('initiale') && $char == strtoupper(Env::v('initiale'))) {
bd46a8e4 531 $tot = $nb;
532 }
533 }
534 ksort($alphabet);
535 $page->assign('alphabet', $alphabet);
536
5e2307dc 537 $ofs = Env::i('offset');
538 $tot = Env::v('initiale') ? $tot : $nb_tot;
bd46a8e4 539 $nbp = intval(($tot-1)/NB_PER_PAGE);
540 $links = array();
541 if ($ofs) {
542 $links['précédent'] = $ofs-1;
543 }
544 for ($i = 0; $i <= $nbp; $i++) {
545 $links[(string)($i+1)] = $i;
546 }
547 if ($ofs < $nbp) {
548 $links['suivant'] = $ofs+1;
549 }
550 if (count($links)>1) {
551 $page->assign('links', $links);
552 }
553
bd46a8e4 554 if ($evt['paiement_id']) {
08cce2ff 555 $res = XDB::iterator(
bd46a8e4 556 "SELECT IF(u.nom_usage<>'', u.nom_usage, u.nom) AS nom, u.prenom,
557 u.promo, a.alias AS email, t.montant
558 FROM {$globals->money->mpay_tprefix}transactions AS t
559 INNER JOIN auth_user_md5 AS u ON(t.uid = u.user_id)
560 INNER JOIN aliases AS a ON (a.id = t.uid AND a.type='a_vie' )
561 LEFT JOIN groupex.evenements_participants AS ep ON(ep.uid = t.uid AND ep.eid = {?})
562 WHERE t.ref = {?} AND ep.uid IS NULL",
563 $evt['eid'], $evt['paiement_id']);
ed21e24a 564 $page->assign('oublis', $res->total());
565 $page->assign('oubliinscription', $res);
bd46a8e4 566 }
567
ed21e24a 568 $page->assign('participants',
569 get_event_participants($evt, $item_id, $tri,
570 "LIMIT ".($ofs*NB_PER_PAGE).", ".NB_PER_PAGE));
bd46a8e4 571 }
4f10a058 572}
573
574?>