if (!is_null($action)) {
if (!may_update()) {
- return PL_NOT_ALLOWED;
+ return PL_FORBIDDEN;
}
$res = XDB::query("SELECT asso_id, short_name FROM groupex.evenements
$tmp = $res->fetchOneRow();
if (!$tmp) {
- return PL_NOT_ALLOWED;
+ return PL_FORBIDDEN;
}
}
}
$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));
}
require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
$evt = get_event_detail($eid);
if (!$evt) {
- return PL_NOT_FOUND;
+ return PL_FORBIDDEN;
}
$evt['debut'] = preg_replace('/(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/', "\\1\\2\\3T\\4\\5\\6", $evt['debut']);
$evt['fin'] = preg_replace('/(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/', "\\1\\2\\3T\\4\\5\\6", $evt['fin']);
// check the event is in our group
if (!is_null($eid)) {
- $res = XDB::query("SELECT short_name, asso_id
+ $res = XDB::query("SELECT short_name
FROM groupex.evenements
- WHERE eid = {?}", $eid);
- $infos = $res->fetchOneAssoc();
- if ($infos['asso_id'] != $globals->asso('id')) {
- return PL_NOT_ALLOWED;
+ WHERE eid = {?} AND asso_id = {?}",
+ $eid, $globals->asso('id'));
+ if ($res->numRows()) {
+ $infos = $res->fetchOneAssoc();
+ } else {
+ return PL_FORBIDDEN;
}
}
new_groupadmin_page('xnetevents/edit.tpl');
- $moments = range(1, 4);
+ $moments = range(1, 4);
+ $error = false;
$page->assign('moments', $moments);
if (Post::v('intitule')) {
require_once dirname(__FILE__).'/xnetevents/xnetevents.inc.php';
$short_name = event_change_shortname($page, $infos['short_name'],
Env::v('short_name', ''));
-
+ if ($short_name != Env::v('short_name')) {
+ $error = true;
+ }
$evt = array(
'eid' => $eid,
'asso_id' => $globals->asso('id'),
// if new event, get its id
if (!$eid) {
- $eid = mysql_insert_id();
+ $eid = XDB::insertId();
}
$nb_moments = 0;
WHERE eid = {?} AND item_id = {?}", $eid, $i);
}
}
-
// request for a new payment
if (Post::v('paiement_id') == -1 && $money_defaut >= 0) {
require_once 'validations.inc.php';
VALUES ({?}, {?}, '', '', 0)", $eid, 1);
}
- pl_redirect('events');
+ if (!$error) {
+ pl_redirect('events');
+ }
}
// get a list of all the payment for this asso
PayReq::same_event($eid, $globals->asso('id')));
$stamp = $res->fetchOneCell();
if ($stamp) {
- $evt['paiement_id'] = -2;
+ $evt['paiement_id'] = -2;
$evt['paiement_req'] = $stamp;
}
$page->assign('evt', $evt);
foreach ($nbs as $id => $nb) {
$nb = max(intval($nb), 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);
- }
+ XDB::execute("REPLACE INTO groupex.evenements_participants
+ VALUES ({?}, {?}, {?}, {?}, {?})",
+ $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));