| 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 | redirect("evenements.php"); |
| 13 | } |
| 14 | |
| 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 | } |
| 20 | |
| 21 | $admin = may_update(); |
| 22 | |
| 23 | // select a member from his mail |
| 24 | if ($admin && Env::get('adm') && Env::get('mail')) { |
| 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) |
| 30 | WHERE a.alias = {?} AND m.asso_id = {?}", |
| 31 | Env::get('mail'), $globals->asso('id')); |
| 32 | } else { |
| 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')); |
| 38 | } |
| 39 | $member = $res->fetchOneCell(); |
| 40 | if (!$member) $page->trig("Membre introuvable"); |
| 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 | } |
| 75 | $evt = get_event_detail(Env::get('eid'), Env::get('item_id')); |
| 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 | |
| 83 | if (count($evt['moments'])) $page->assign('moments', $evt['moments']); |
| 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 | ?> |