}
$page->assign('archive', $archive);
- $page->assign('admin', may_update());
-
$evenements = XDB::iterator(
"SELECT e.*, LEFT(10, e.debut) AS debut_day, LEFT(10, e.fin) AS fin_day,
IF(e.deadline_inscription, e.deadline_inscription >= LEFT(NOW(), 10),
1) AS inscr_open, e.deadline_inscription,
u.nom, u.prenom, u.promo, a.alias,
- MAX(ep.nb) AS inscrit, MAX(ep.paid) AS paid
+ MAX(ep.nb) IS NOT NULL AS inscrit, MAX(ep.paid) AS paid
FROM groupex.evenements AS e
INNER JOIN x4dat.auth_user_md5 AS u ON u.user_id = e.organisateur_uid
INNER JOIN x4dat.aliases AS a ON (a.type = 'a_vie' AND a.id = u.user_id)
while ($e = $evenements->next()) {
$e['show_participants'] = ($e['show_participants'] && (is_member() || may_update()));
$res = XDB::query(
- "SELECT titre, details, montant, ei.item_id, nb
+ "SELECT titre, details, montant, ei.item_id, nb, ep.paid
FROM groupex.evenements_items AS ei
LEFT JOIN groupex.evenements_participants AS ep
ON (ep.eid = ei.eid AND ep.item_id = ei.item_id AND uid = {?})
$e['moments'] = $res->fetchAllAssoc();
$e['topay'] = 0;
+ $e['paid'] = $e['moments'][0]['paid'];
foreach ($e['moments'] as $m) {
$e['topay'] += $m['nb'] * $m['montant'];
}
}
$page->assign('evenements', $evts);
- $page->assign('is_member', is_member());
}
function handler_sub(&$page, $eid = null)
}
// impossible to unsubscribe if you already paid sthing
- if (array_sum($subs) && $evt['paid'] != 0) {
+ if (!array_sum($subs) && $evt['paid'] != 0) {
$page->trig("Impossible de te désinscrire complètement ".
"parce que tu as fait un paiement par ".
"chèque ou par liquide. Contacte un ".
// update actual inscriptions
$updated = false;
+ $total = 0;
foreach ($subs as $j => $nb) {
- if ($nb > 0) {
+ if ($nb >= 0) {
XDB::execute(
"REPLACE INTO groupex.evenements_participants
VALUES ({?}, {?}, {?}, {?}, {?})",
$eid, S::v("uid"), $j);
$updated = $eid;
}
+ $total += $nb;
}
- if ($updated !== false) {
- pl_redirect('events?updated='.$updated);
+ if ($updated !== false) {
+ subscribe_lists_event($total, S::i('uid'), $evt);
}
$page->assign('event', get_event_detail($eid));
}
// if new event, get its id
if (!$eid) {
- $eid = mysql_insert_id();
+ $eid = XDB::insertId();
}
$nb_moments = 0;
if ($nb) {
XDB::execute("REPLACE INTO groupex.evenements_participants
VALUES ({?}, {?}, {?}, {?}, {?})",
- $evt['eid'], $member['uid'], $id, $nb, $paid);
- } else {
- XDB::execute("DELETE FROM groupex.evenements_participants
- WHERE uid = {?} AND eid = {?} AND item_id = {?}",
- $member['uid'], $evt['eid'], $id);
+ $evt['eid'], $member['uid'], $id, $nb, $paid);
}
}
- $res = XDB::query("SELECT uid
+ $res = XDB::query("SELECT COUNT(uid) AS cnt, SUM(nb) AS nb
FROM groupex.evenements_participants
- WHERE uid = {?} AND eid = {?}",
+ WHERE uid = {?} AND eid = {?}
+ GROUP BY uid",
$member['uid'], $evt['eid']);
- $u = $res->fetchOneCell();
+ $u = $res->fetchOneAssoc();
+ $u = $u['cnt'] ? null : $u['nb'];
subscribe_lists_event($u, $member['uid'], $evt);
}
$evt = get_event_detail($eid, $item_id);
}
- $page->assign('admin', may_update());
$page->assign('evt', $evt);
$page->assign('tout', is_null($item_id));