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