ILIAS  Release_4_1_x_branch Revision 61804
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilBookingObject.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
13 {
14  protected $id; // int
15  protected $title; // string
16  protected $type_id; // int
17  protected $schedule_id; // int
18 
26  function __construct($a_id = NULL)
27  {
28  $this->id = (int)$a_id;
29  $this->read();
30  }
31 
36  function setTitle($a_title)
37  {
38  $this->title = $a_title;
39  }
40 
45  function getTitle()
46  {
47  return $this->title;
48  }
49 
54  function setTypeId($a_type_id)
55  {
56  $this->type_id = (int)$a_type_id;
57  }
58 
63  function getTypeId()
64  {
65  return $this->type_id;
66  }
67 
72  function setScheduleId($a_schedule_id)
73  {
74  $this->schedule_id = (int)$a_schedule_id;
75  }
76 
81  function getScheduleId()
82  {
83  return $this->schedule_id;
84  }
85 
89  protected function read()
90  {
91  global $ilDB;
92 
93  if($this->id)
94  {
95  $set = $ilDB->query('SELECT title,type_id,schedule_id'.
96  ' FROM booking_object'.
97  ' WHERE booking_object_id = '.$ilDB->quote($this->id, 'integer'));
98  $row = $ilDB->fetchAssoc($set);
99  $this->setTitle($row['title']);
100  $this->setTypeId($row['type_id']);
101  $this->setScheduleId($row['schedule_id']);
102  }
103  }
104 
109  function save()
110  {
111  global $ilDB;
112 
113  if($this->id)
114  {
115  return false;
116  }
117 
118  $id = $ilDB->nextId('booking_object');
119 
120  return $ilDB->manipulate('INSERT INTO booking_object'.
121  ' (booking_object_id,title,type_id,schedule_id)'.
122  ' VALUES ('.$ilDB->quote($id, 'integer').','.$ilDB->quote($this->getTitle(), 'text').
123  ','.$ilDB->quote($this->getTypeId(), 'integer').','.$ilDB->quote($this->getScheduleId(), 'integer').')');
124  }
125 
130  function update()
131  {
132  global $ilDB;
133 
134  if(!$this->id)
135  {
136  return false;
137  }
138 
139  return $ilDB->manipulate('UPDATE booking_object'.
140  ' SET title = '.$ilDB->quote($this->getTitle(), 'text').
141  ', type_id = '.$ilDB->quote($this->getTypeId(), 'integer').
142  ', schedule_id = '.$ilDB->quote($this->getScheduleId(), 'integer').
143  ' WHERE booking_object_id = '.$ilDB->quote($this->id, 'integer'));
144  }
145 
151  static function getList($a_type_id)
152  {
153  global $ilDB;
154 
155  $set = $ilDB->query('SELECT booking_object_id,title,schedule_id'.
156  ' FROM booking_object'.
157  ' WHERE type_id = '.$ilDB->quote($a_type_id, 'integer').
158  ' ORDER BY title');
159  $res = array();
160  while($row = $ilDB->fetchAssoc($set))
161  {
162  $res[] = $row;
163  }
164  return $res;
165  }
166 
172  static function updateSchedule($a_type_id, $a_schedule_id = 0)
173  {
174  global $ilDB;
175 
176  return $ilDB->manipulate('UPDATE booking_object'.
177  ' SET schedule_id = '.$ilDB->quote($a_schedule_id, 'integer').
178  ' WHERE type_id = '.$ilDB->quote($a_type_id, 'integer').
179  ' ORDER BY title');
180  }
181 
186  function delete()
187  {
188  global $ilDB;
189 
190  if($this->id)
191  {
192  return $ilDB->manipulate('DELETE FROM booking_object'.
193  ' WHERE booking_object_id = '.$ilDB->quote($this->id, 'integer'));
194  }
195  }
196 
197 
203  function getByPoolId($a_pool_id)
204  {
205  global $ilDB;
206 
207  $set = $ilDB->query('SELECT booking_object_id'.
208  ' FROM booking_object o'.
209  ' JOIN booking_type t ON (o.type_id = t.booking_type_id)'.
210  ' WHERE t.pool_id = '.$ilDB->quote($a_pool_id, 'integer'));
211  $ids = array();
212  while($row = $ilDB->fetchAssoc($set))
213  {
214  $ids[] = $row['booking_object_id'];
215  }
216 
217  return $ids;
218  }
219 }
220 
221 ?>