- // change the number of personns coming with a participant
- if ($admin && Env::get('adm') == 'nbs' && $member) {
- $res = $globals->xdb->query("SELECT paid FROM groupex.evenements_participants WHERE uid = {?} AND eid = {?}", $member, Env::get('eid'));
- $paid = $res->fetchOneCell();
- $participate = false;
- foreach ($evt['moments'] as $m) if (Env::has('nb'.$m['item_id'])) {
- $nb = Env::getInt('nb'.$m['item_id'], 0);
- if ($nb < 0) $nb = 0;
- if ($nb) {
- $participate = true;
- if (!$paid) $paid = 0;
- $globals->xdb->execute("REPLACE INTO groupex.evenements_participants VALUES ({?}, {?}, {?}, {?}, {?})",
- Env::get('eid'), $member, $m['item_id'], $nb, $paid);
+ // change the number of personns coming with a participant
+ if (Env::v('adm') == 'nbs' && $member) {
+ $res = XDB::query("SELECT paid
+ FROM group_event_participants
+ WHERE uid = {?} AND eid = {?}",
+ $member->uid, $evt['eid']);
+
+ $paid = intval($res->fetchOneCell());
+ $nbs = Post::v('nb', array());
+
+ foreach ($nbs as $id => $nb) {
+ $nb = max(intval($nb), 0);
+ XDB::execute('REPLACE INTO group_event_participants
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?})',
+ $evt['eid'], $member->uid, $id, $nb, '', $id == 1 ? $paid : 0);
+ }
+
+ $res = XDB::query('SELECT COUNT(uid) AS cnt, SUM(nb) AS nb
+ FROM group_event_participants
+ WHERE uid = {?} AND eid = {?}
+ GROUP BY uid',
+ $member->uid, $evt['eid']);
+ $u = $res->fetchOneAssoc();
+ if ($u['cnt'] == 1 && $paid == 0 && Post::v('cancel')) {
+ XDB::execute("DELETE FROM group_event_participants
+ WHERE uid = {?} AND eid = {?}",
+ $member->uid, $evt['eid']);
+ $u = 0;
+ subscribe_lists_event($member->uid, $evt, -1, $paid);