0337d704 |
1 | <?php |
2 | require 'xnet.inc.php'; |
3 | |
4 | define('NB_PER_PAGE', 25); |
5 | |
6 | require_once('xnet/evenements.php'); |
7 | |
8 | $evt = get_event_detail(Env::get('eid'), Env::get('item_id')); |
9 | |
10 | // the event doesn't exist or doesn't belong to this assoif (!$evt) |
11 | if (!$evt) |
12 | header("Location: evenements.php"); |
13 | |
14 | if ($evt['show_participants']) |
15 | new_group_page('xnet/groupe/evt-admin.tpl'); |
16 | else |
17 | new_groupadmin_page('xnet/groupe/evt-admin.tpl'); |
18 | |
19 | $admin = may_update(); |
20 | |
21 | // select a member from his mail |
22 | if ($admin && Env::get('adm') && Env::get('mail')) { |
23 | if (strpos(Env::get('mail'), '@') === false) |
24 | $res = $globals->xdb->query( |
25 | "SELECT m.uid |
26 | FROM groupex.membres AS m |
27 | INNER JOIN aliases AS a ON (a.id = m.uid) |
28 | WHERE a.alias = {?}", |
29 | Env::get('mail')); |
30 | else |
31 | $res = $globals->xdb->query( |
32 | "SELECT m.uid |
33 | FROM groupex.membres AS m |
34 | WHERE m.email = {?} AND m.asso_id = {?}", |
35 | Env::get('mail'), $globals->asso('id')); |
36 | $member = $res->fetchOneCell(); |
37 | if (!$member) $page->trig("Membre introuvable"); |
38 | } |
39 | |
40 | // change the price paid by a participant |
41 | if ($admin && Env::get('adm') == 'prix' && $member) { |
42 | $globals->xdb->execute("UPDATE groupex.evenements_participants SET paid = IF(paid + {?} > 0, paid + {?}, 0) WHERE uid = {?} AND eid = {?}", |
43 | strtr(Env::get('montant'), ',', '.'), |
44 | strtr(Env::get('montant'), ',', '.'), |
45 | $member, Env::get('eid')); |
46 | } |
47 | |
48 | // change the number of personns coming with a participant |
49 | if ($admin && Env::get('adm') == 'nbs' && $member) { |
50 | $res = $globals->xdb->query("SELECT paid FROM groupex.evenements_participants WHERE uid = {?} AND eid = {?}", $member, Env::get('eid')); |
51 | $paid = $res->fetchOneCell(); |
52 | $participate = false; |
53 | foreach ($evt['moments'] as $m) if (Env::has('nb'.$m['item_id'])) { |
54 | $nb = Env::getInt('nb'.$m['item_id'], 0); |
55 | if ($nb < 0) $nb = 0; |
56 | if ($nb) { |
57 | $participate = true; |
58 | if (!$paid) $paid = 0; |
59 | $globals->xdb->execute("REPLACE INTO groupex.evenements_participants VALUES ({?}, {?}, {?}, {?}, {?})", |
60 | Env::get('eid'), $member, $m['item_id'], $nb, $paid); |
61 | } |
62 | else |
63 | $globals->xdb->execute("DELETE FROM groupex.evenements_participants WHERE uid = {?} AND eid = {?} AND item_id = {?}", $member, Env::get('eid'), $m['item_id']); |
64 | } |
65 | if ($participate) |
66 | subscribe_lists_event(true, $member, $evt['participant_list'], $evt['absent_list']); |
67 | else { |
68 | $res = $globals->xdb->query("SELECT uid FROM groupex.evenements_participants WHERE uid = {?} AND eid = {?}", $member, Env::get('eid')); |
69 | $u = $res->fetchOneCell(); |
70 | subscribe_lists_event($u, $member, $evt['participant_list'], $evt['absent_list']); |
71 | } |
b479e26b |
72 | $evt = get_event_detail(Env::get('eid'), Env::get('item_id')); |
0337d704 |
73 | } |
74 | |
75 | $page->assign('admin', $admin); |
76 | $page->assign('evt', $evt); |
77 | $page->assign('url_page', Env::get('PHP_SELF')."?eid=".Env::get('eid').(Env::has('item_id')?("&item_id=".Env::getInt('item_id')):'')); |
78 | $page->assign('tout', !Env::has('item_id')); |
79 | |
80 | if (count($evt['moments']) > 1) $page->assign('moments', $evt['moments']); |
81 | $page->assign('money', $evt['money']); |
82 | |
83 | $tri = (Env::get('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo'); |
84 | $whereitemid = Env::has('item_id')?('AND ep.item_id = '.Env::getInt('item_id', 1)):''; |
85 | $res = $globals->xdb->iterRow( |
86 | 'SELECT UPPER(SUBSTRING(IF(u.nom IS NULL,m.nom,IF(u.nom_usage<>"", u.nom_usage, u.nom)), 1, 1)), COUNT(DISTINCT ep.uid) |
87 | FROM groupex.evenements_participants AS ep |
88 | INNER JOIN groupex.evenements AS e ON (ep.eid = e.eid) |
89 | LEFT JOIN groupex.membres AS m ON ( ep.uid = m.uid AND e.asso_id = m.asso_id) |
90 | LEFT JOIN auth_user_md5 AS u ON ( u.user_id = ep.uid ) |
91 | WHERE ep.eid = {?} '.$whereitemid.' |
92 | GROUP BY UPPER(SUBSTRING(IF(u.nom IS NULL,m.nom,u.nom), 1, 1))', Env::get('eid')); |
93 | |
94 | $alphabet = array(); |
95 | $nb_tot = 0; |
96 | while (list($char, $nb) = $res->next()) { |
97 | $alphabet[ord($char)] = $char; |
98 | $nb_tot += $nb; |
99 | if (Env::has('initiale') && $char == strtoupper(Env::get('initiale'))) { |
100 | $tot = $nb; |
101 | } |
102 | } |
103 | ksort($alphabet); |
104 | $page->assign('alphabet', $alphabet); |
105 | |
106 | $ofs = Env::getInt('offset'); |
107 | $tot = Env::get('initiale') ? $tot : $nb_tot; |
108 | $nbp = intval(($tot-1)/NB_PER_PAGE); |
109 | $links = array(); |
110 | if ($ofs) { |
111 | $links['précédent'] = $ofs-1; |
112 | } |
113 | for ($i = 0; $i <= $nbp; $i++) { |
114 | $links[(string)($i+1)] = $i; |
115 | } |
116 | if ($ofs < $nbp) { |
117 | $links['suivant'] = $ofs+1; |
118 | } |
119 | if (count($links)>1) { |
120 | $page->assign('links', $links); |
121 | } |
122 | |
123 | $ini = Env::has('initiale') ? 'AND IF(u.nom IS NULL,m.nom,IF(u.nom_usage<>"", u.nom_usage, u.nom)) LIKE "'.addslashes(Env::get('initiale')).'%"' : ''; |
124 | |
125 | $participants = get_event_participants(Env::get('eid'), Env::get('item_id'), $ini, $tri, "LIMIT ".($ofs*NB_PER_PAGE).", ".NB_PER_PAGE, $evt['money'] && $admin, $evt['paiement_id']); |
126 | |
127 | if ($evt['paiement_id']) { |
128 | $res = $globals->xdb->iterator( |
129 | "SELECT IF(u.nom_usage<>'', u.nom_usage, u.nom) AS nom, u.prenom, |
130 | u.promo, a.alias AS email, t.montant |
131 | FROM {$globals->money->mpay_tprefix}transactions AS t |
132 | INNER JOIN auth_user_md5 AS u ON(t.uid = u.user_id) |
133 | INNER JOIN aliases AS a ON (a.id = t.uid AND a.type='a_vie' ) |
134 | LEFT JOIN groupex.evenements_participants AS ep ON(ep.uid = t.uid AND ep.eid = {?}) |
135 | WHERE t.ref = {?} AND ep.uid IS NULL", |
136 | $evt['eid'], $evt['paiement_id']); |
137 | $page->assign('oublis', $res->total()); |
138 | $page->assign('oubliinscription', $res); |
139 | } |
140 | |
141 | |
142 | $page->assign('participants', $participants); |
143 | |
144 | $page->run(); |
145 | |
146 | ?> |