ILIAS  Release_4_1_x_branch Revision 61804
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilConsultationHourAppointments.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once './Services/Calendar/classes/class.ilCalendarEntry.php';
5 
16 {
17 
26  public static function getAppointmentIds($a_user_id, $a_context_id = NULL, $a_start = NULL, $a_type = NULL)
27  {
28  global $ilDB;
29 
30  if(!$a_type)
31  {
32  include_once './Services/Calendar/classes/class.ilCalendarCategory.php';
34  }
35 
36  $query = "SELECT ce.cal_id FROM cal_entries ce".
37  " JOIN cal_cat_assignments cca ON ce.cal_id = cca.cal_id".
38  " JOIN cal_categories cc ON cca.cat_id = cc.cat_id".
39  " JOIN booking_entry be ON ce.context_id = be.booking_id".
40  " WHERE cc.obj_id = ".$ilDB->quote($a_user_id,'integer').
41  " AND be.obj_id = ".$ilDB->quote($a_user_id,'integer').
42  " AND cc.type = ".$ilDB->quote($a_type,'integer');
43 
44  if($a_context_id)
45  {
46  $query .= " AND ce.context_id = ".$ilDB->quote($a_context_id, 'integer');
47  }
48  if($a_start)
49  {
50  $query .= " AND ce.starta = ".$ilDB->quote($a_start->get(IL_CAL_DATETIME, '', 'UTC'), 'text');
51  }
52 
53  $res = $ilDB->query($query);
54  $entries = array();
55  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
56  {
57  $entries[] = $row->cal_id;
58  }
59  return $entries;
60  }
61 
66  public static function getAppointments($a_user_id)
67  {
68  $entries = array();
69  foreach(self::getAppointmentIds($a_user_id) as $app_id)
70  {
71  $entries[] = new ilCalendarEntry($app_id);
72  }
73  return $entries;
74  }
75 
81  public static function getManager($a_as_name = false)
82  {
83  global $ilDB, $ilUser;
84 
85  $set = $ilDB->query('SELECT admin_id FROM cal_ch_settings'.
86  ' WHERE user_id = '.$ilDB->quote($ilUser->getId(), 'integer'));
87  $row = $ilDB->fetchAssoc($set);
88  if($row && $row['admin_id'])
89  {
90  if($a_as_name)
91  {
92  return ilObjUser::_lookupLogin($row['admin_id']);
93  }
94  return (int)$row['admin_id'];
95  }
96  }
97 
103  public static function setManager($a_user_name)
104  {
105  global $ilDB, $ilUser;
106 
107  $user_id = false;
108  if($a_user_name)
109  {
110  $user_id = ilObjUser::_loginExists($a_user_name);
111  if(!$user_id)
112  {
113  return false;
114  }
115  }
116 
117  $ilDB->manipulate('DELETE FROM cal_ch_settings'.
118  ' WHERE user_id = '.$ilDB->quote($ilUser->getId(), 'integer'));
119 
120  if($user_id && $user_id != $ilUser->getId())
121  {
122  $ilDB->manipulate('INSERT INTO cal_ch_settings (user_id, admin_id)'.
123  ' VALUES ('.$ilDB->quote($ilUser->getId(), 'integer').','.
124  $ilDB->quote($user_id, 'integer').')');
125  }
126 
127  return true;
128  }
129 
134  public static function getManagedUsers()
135  {
136  global $ilDB, $ilUser;
137 
138  $all = array();
139  $set = $ilDB->query('SELECT user_id FROM cal_ch_settings'.
140  ' WHERE admin_id = '.$ilDB->quote($ilUser->getId(), 'integer'));
141  while($row = $ilDB->fetchAssoc($set))
142  {
143  $all[$row['user_id']] = ilObjUser::_lookupLogin($row['user_id']);
144  }
145  return $all;
146  }
147 }
148 ?>