/* get the events of the given group ordered by the standard order for the group
* @param $asso_id: group's id
* @param $order: order to paste the events (asc or desc)
+ * @param $archive: whether to get the archived events (1) or the actuals (0)
*/
-function get_events($asso_id, $order)
+function get_events($asso_id, $order, $archive)
{
if ($order != 'asc' && $order != 'desc') {
$order = 'desc';
}
- $evts = XDB::fetchAllAssoc('eid', "SELECT ge.eid, ge.uid, ge.intitule, ge.debut, ge.fin, ge.show_participants, ge.deadline_inscription, ge.accept_nonmembre
+ $evts = XDB::fetchAllAssoc('eid', "SELECT ge.eid, ge.uid, ge.intitule, ge.debut, ge.fin, ge.show_participants, ge.deadline_inscription, ge.accept_nonmembre, ge.paiement_id
FROM group_events as ge
- WHERE asso_id = {?}
+ WHERE asso_id = {?} and archive = {?}
ORDER BY ge.debut $order",
- $asso_id);
+ $asso_id, $archive);
return $evts;
}
// }}}
/* get event details
* @param $eid: event's id
*/
-function get_event($eid)
+function get_event(&$eid)
{
- $evt = XDB::fetchOneAssoc('SELECT ge.uid, ge.intitule, ge.descriptif, ge.debut, ge.fin, ge.deadline_inscription, ge.accept_nonmembre
+ if (!is_numeric($eid)) {
+ $id = XDB::fetchOneCell("SELECT eid
+ FROM group_events
+ WHERE short_name = {?}",
+ $eid);
+ $eid = $id;
+ }
+ $evt = XDB::fetchOneAssoc('SELECT ge.uid, ge.intitule, ge.descriptif, ge.debut, ge.fin, ge.deadline_inscription, ge.accept_nonmembre, ge.noinvite, ge.paiement_id
FROM group_events as ge
WHERE eid = {?}',
$eid);
- if (!is_null($evt['deadline_inscription']) && strtotime($evt['deadline_inscription']) < time()) {
+ if (!is_null($evt['deadline_inscription']) && strtotime($evt['deadline_inscription']) <= time()) {
$evt['inscr_open'] = false;
} else {
$evt['inscr_open'] = true;
}
- $evt['organizer'] = User::getSilent($evt['uid'])->profile();
+ $evt['organizer'] = User::getSilent($evt['uid']);
$evt['date'] = make_event_date($evt['debut'], $evt['fin']);
return $evt;
$telepaid = XDB::fetchOneCell('SELECT SUM(pt.amount)
FROM payment_transactions AS pt
LEFT JOIN group_events as ge ON (ge.paiement_id = pt.ref)
- WHERE ge.eid = {?} AND pt.uid = {?}',
+ WHERE pt.status = "confirmed" AND ge.eid = {?} AND pt.uid = {?}',
$eid, $uid);
return $telepaid;
}
$montant = XDB::fetchOneCell('SELECT SUM(amount) AS sum_amount
FROM payment_transactions AS t
- WHERE ref = {?} AND uid = {?}',
+ WHERE status = "confirmed" AND ref = {?} AND uid = {?}',
$evt['paiement_id'], S::v('uid'));
$evt['telepaid'] = $montant;
$evt['paid'] += $montant;
$evt['organizer'] = User::getSilent($evt['uid']);
- $evt['date'] = make_event_date($evt);
+ $evt['date'] = make_event_date($evt['debut'], $evt['fin']);
$evt['show_participants'] = ($evt['show_participants'] && $GLOBALS['IS_XNET_SITE'] && (is_member() || may_update()));
if ($money && $pay_id) {
$montant = XDB::fetchOneCell('SELECT SUM(amount)
FROM payment_transactions AS t
- WHERE ref = {?} AND uid = {?}',
+ WHERE status = "confirmed" AND ref = {?} AND uid = {?}',
$pay_id, $uid);
$u['paid'] += $montant;
}
$old_subs = get_event_subscription($eid, $uid);
$participate = false;
$updated = false;
+ // TODO : change the way to deal with manual payment
+ $paid = 0;
+ foreach ($old_subs as $item_id => $s) {
+ $paid += $s['paid'];
+ }
+ $paid_updated = false;
// for each item of the event
foreach ($items as $item_id => $details) {
// check if there is an old subscription
if (array_key_exists($item_id, $old_subs)) {
- echo 'prev exists ';
// compares new and old subscription
if ($old_subs[$item_id]['nb'] != $subs[$item_id]) {
- echo 'different ';
if ($subs[$item_id] != 0) {
- echo "je m'inscris ";
XDB::execute('INSERT INTO group_event_participants (eid, uid, item_id, nb, flags, paid)
VALUES ({?}, {?}, {?}, {?}, {?}, {?})
ON DUPLICATE KEY UPDATE nb = VALUES(nb), flags = VALUES(flags), paid = VALUES(paid)',
- $eid, $uid, $item_id, $subs[$item_id],(Env::has('notify_payment') ? 'notify_payment' : ''), 0);
- $participate = true;
+ $eid, $uid, $item_id, $subs[$item_id],(Env::has('notify_payment') ? 'notify_payment' : 0), (!$paid_updated ? $paid : 0));
+ $participate = true;
+ $paid_updated = true;
} else { // we do not store non-subscription to event items
- echo "je me desinscris ";
XDB::execute('DELETE FROM group_event_participants
WHERE eid = {?} AND uid = {?} AND item_id = {?}',
$eid, $uid, $item_id);
$updated = true;
}
} else { // if no old subscription
- echo 'no prev ';
if ($subs[$item_id] != 0) {
- echo 'subscribe ';
XDB::execute('INSERT INTO group_event_participants (eid, uid, item_id, nb, flags, paid)
VALUES ({?}, {?}, {?}, {?}, {?}, {?})',
$eid, $uid, $item_id, $subs[$item_id], '', 0);
}
}
// item 0 stores whether the user participates globally or not, if he has to be notified when payment is created and his manual payment
+ /*
if (array_key_exists(0, $old_subs)) {
XDB::execute('UPDATE group_event_participants
SET nb = {?}
VALUES ({?}, {?}, {?}, {?}, {?}, {?})',
$eid, $uid, 0, ($participate ? 1 : 0), (Env::has('notify_payment') ? 'notify_payment' : ''), 0);
}
+ */
// if subscription is updated, we have to update the event aliases
if ($updated) {
- echo "inscription mise a jour ";
$short_name = get_event_detail($eid)['short_name'];
subscribe_lists_event($uid, $short_name, ($participate ? 1 : -1), 0);
}
}
// }}}
-// {{{ function add_manual_payment()
-// deal with manual payments : add them on item_id = 0 (so that it's not dependant on what items the user registers)
-/*
- *
- */
-function add_manual_payment($newly_paid)
-{
- $old_subs = get_event_subscription($eid, $uid);
- if ($newly_paid != 0) {
- if (array_key_exists(0, $old_subs)) {
- echo "update paiement liquide ";
- XDB::execute('UPDATE group_event_participants
- SET paid = {?}
- WHERE eid = {?}, uid = {?}, item_id = 0',
- $old_subs[0]['paid'] + $newly_paid, $eid, $uid);
- } else {
- echo "on ne devrait pas passer ici car on a deja un moment 0 des qu'on est ajoute comme participant ";
- XDB::execute('INSERT INTO group_event_participants (eid, uid, item_id, nb, flags, paid)
- VALUES ({?}, {?}, 0, 0, "", {?})',
- $eid, $uid, $newly_paid);
- }
- }
-}
-// }}}
// TODO : correct this function to be compatible with subscribe() (use $eid, remove useless argument)
// TODO : correct other calls
-
// {{{ function subscribe_lists_event()
/** Subscribes user to various event related mailing lists.
*