commit to avoid « bouffonneries » of inatentive administrators
[platal.git] / htdocs.net / groupe / evt-detail.php
1 <?php
2
3 require_once 'xnet.inc.php';
4
5 new_group_page('xnet/groupe/evt-detail.tpl');
6
7 if (!Env::get("eid"))
8 header("Location: evenements.php");
9
10 $may_participate = !$members_only || is_member() || may_update();
11 $page->assign('may_participate', $may_participate);
12
13 if (Env::get('ins')) {
14 $total = 0;
15 for ($i=1; Env::has('item_id'.$i); $i++)
16 $total += (Env::get('item_'.Env::get('item_id'.$i)) > 0)?Env::get('item_'.Env::get('item_id'.$i)):0;
17
18 $participate = $total > 0;
19 $res = $globals->xdb->query("SELECT paid FROM groupex.evenements_participants WHERE eid = {?} AND uid = {?}", Env::get("eid"), Session::get("uid"));
20 $paid = $res->fetchOneCell();
21 if (!$paid) $paid = 0;
22
23 // prevent desinscription if there is a manual paiement
24 if (!$participate && $paid) {
25 $page->trig("Impossible de te désinscrire complètement parce que tu as fait un paiement par chèque ou par liquide. Contacte un administrateur du groupe si tu es sûr de ne pas venir");
26 $participate = true;
27 $page->assign('no_ins', true);
28 } else
29 for ($i=1; Env::has('item_id'.$i); $i++)
30 {
31 $j = Env::get('item_id'.$i);
32 $nb = Env::get('item_'.$j);
33 if ($nb == '+') $nb = Env::get('itemnb_'.$j)+1;
34 if ($nb > 0) {
35 $globals->xdb->execute(
36 "REPLACE INTO groupex.evenements_participants
37 VALUES ({?}, {?}, {?}, {?}, {?})",
38 Env::get("eid"), Session::get("uid"), $j, $nb, $paid);
39 } else {
40 $globals->xdb->execute(
41 "DELETE FROM groupex.evenements_participants
42 WHERE eid = {?} AND uid = {?} AND item_id = {?}",
43 Env::get("eid"), Session::get("uid"), $j);
44 }
45 }
46 }
47
48 require_once('xnet/evenements.php');
49 $evt = get_event_detail(Env::get('eid'));
50
51 if (!$evt)
52 header("Location: evenements.php");
53
54 if (Env::has('ins')) {
55 subscribe_lists_event($participate, Session::get("uid"), $evt['participant_list'], $evt['absent_list']);
56 header("Location: evenements.php?backfrom=".Env::get('eid'));
57 }
58
59 $page->assign('participate', $participate);
60 $page->assign('evt', $evt);
61
62 $moments = $globals->xdb->iterator(
63 "SELECT titre, i.item_id, details, montant, nb
64 FROM groupex.evenements_items AS i
65 LEFT JOIN groupex.evenements_participants AS p
66 ON(i.eid = p.eid AND i.item_id = p.item_id AND uid = {?})
67 WHERE i.eid = {?}",
68 Session::get('uid'), Env::get('eid'));
69
70 $page->assign('moments', $moments);
71
72 if (!$paid) {
73 $res = $globals->xdb->query("SELECT paid FROM groupex.evenements_participants WHERE eid = {?} AND uid = {?}", Env::get("eid"), Session::get("uid"));
74 $paid = $res->fetchOneCell();
75 $page->assign('paid_manual', $paid);
76 }
77 if ($evt['paiement_id']) {
78 $res = $globals->xdb->query(
79 "SELECT montant
80 FROM {$globals->money->mpay_tprefix}transactions AS t
81 WHERE ref = {?} AND uid = {?}",
82 $evt['paiement_id'], Session::getInt('uid', -1));
83 $montants = $res->fetchColumn();
84 foreach ($montants as $m) {
85 $p = strtr(substr($m, 0, strpos($m, "EUR")), ",", ".");
86 $paid += trim($p);
87 }
88 }
89 $page->assign('paid', $paid);
90
91 $page->run();
92
93 ?>