29 protected \ILIAS\BookingManager\InternalDomainService
$domain;
45 bool $a_call_by_reference =
true 49 $this->db = $DIC->database();
53 $this->domain = $DIC->bookingManager()->internal()->domain();
63 "pool_offline" => array(
"integer", $this->
isOffline()),
79 $new_id = parent::create();
82 $fields[
"booking_pool_id"] = array(
"integer", $new_id);
84 $ilDB->insert(
"booking_settings", $fields);
93 if (!parent::update()) {
102 array(
"booking_pool_id" => array(
"integer", $this->
getId()))
116 if ($this->
getId()) {
117 $set =
$ilDB->query(
'SELECT * FROM booking_settings' .
118 ' WHERE booking_pool_id = ' .
$ilDB->quote($this->getId(),
'integer'));
119 $row =
$ilDB->fetchAssoc($set);
129 $this->
setMessages((
bool) ((
int) ($row[
'messages'] ?? 0)));
140 $db = $DIC->database();
143 "SELECT * FROM booking_settings " .
144 " WHERE reminder_status = %s " .
145 " AND reminder_day > %s " .
146 " AND pool_offline = %s ",
147 array(
"integer",
"integer",
"integer"),
165 $db = $DIC->database();
167 "last_remind_ts" => array(
"integer", $a_ts)
169 "booking_pool_id" => array(
"integer", $a_obj_id)
173 public function delete():
bool 179 if ($this->referenced) {
181 $use_repo->deleteEntriesOfBookRefId($this->
getRefId());
185 if (!parent::delete()) {
191 $ilDB->manipulate(
'DELETE FROM booking_settings' .
192 ' WHERE booking_pool_id = ' .
$ilDB->quote(
$id,
'integer'));
194 $ilDB->manipulate(
'DELETE FROM booking_schedule' .
195 ' WHERE pool_id = ' .
$ilDB->quote(
$id,
'integer'));
198 $set =
$ilDB->query(
'SELECT booking_object_id FROM booking_object' .
199 ' WHERE pool_id = ' .
$ilDB->quote(
$id,
'integer'));
200 while ($row =
$ilDB->fetchAssoc($set)) {
201 $objects[] = $row[
'booking_object_id'];
204 if (count($objects)) {
205 $ilDB->manipulate(
'DELETE FROM booking_reservation' .
206 ' WHERE ' .
$ilDB->in(
'object_id', $objects,
'',
'integer'));
209 $ilDB->manipulate(
'DELETE FROM booking_object' .
210 ' WHERE pool_id = ' .
$ilDB->quote(
$id,
'integer'));
217 $new_obj = parent::cloneObject($target_id, $copy_id, $omit_tree);
219 $schedule_manager = $this->domain->schedules($this->
getId());
221 if ($new_obj !== null) {
225 if (!$cp_options->isRootNode($this->getRefId())) {
226 $new_obj->setOffline($this->
isOffline());
241 foreach ($schedule_manager->getScheduleList() as $schedule_id =>
$title) {
243 $smap[$schedule_id] = $schedule->doClone($new_obj->getId());
250 $bobj->doClone($new_obj->getId(), $smap);
263 $this->offline = $a_value;
274 $this->messages = $a_value;
288 $this->public_log = $a_value;
298 $this->schedule_type = $a_value;
308 $this->reminder_status = $a_val;
318 $this->reminder_day = $a_val;
328 $this->preference_nr = $a_val;
341 $this->pref_deadline = $a_val;
356 $ilDB = $DIC->database();
358 $set =
$ilDB->query(
"SELECT pool_offline" .
359 " FROM booking_settings" .
360 " WHERE booking_pool_id = " .
$ilDB->quote($a_obj_id,
"integer"));
361 $row =
$ilDB->fetchAssoc($set);
362 return !$row[
"pool_offline"];
370 $this->overall_limit = $a_value;
384 $this->reservation_period = $a_value;
404 foreach ($recs as $record_obj) {
406 $field_id = $def->getFieldId();
407 $fields[$field_id] = array(
409 "title" => $def->getTitle(),
410 "type" => $def->getType()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupOnline(int $a_obj_id)
getDBFields()
Parse properties for sql statements.
__construct(int $a_id=0, bool $a_call_by_reference=true)
fetchAssoc(ilDBStatement $statement)
setOverallLimit(?int $a_value=null)
Set overall / global booking limit.
update(string $table_name, array $values, array $where)
$where MUST contain existing columns only.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getAdvancedMDFields(int $a_ref_id)
static _getSelectedRecordsByObject(string $a_obj_type, int $a_id, string $a_sub_type="", bool $is_ref_id=true)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstancesByRecordId( $a_record_id, $a_only_searchable=false, string $language='')
Get definitions by record id.
static getPoolsWithReminders()
Get pools with reminders.
setReminderDay(int $a_val)
static writeLastReminderTimestamp(int $a_obj_id, int $a_ts)
setReminderStatus(int $a_val)
setPublicLog(bool $a_value=true)
Toggle public log property.
setMessages(bool $a_value=true)
setPreferenceDeadline(int $a_val)
setScheduleType(int $a_value)
queryF(string $query, array $types, array $values)
getReservationFilterPeriod()
ILIAS BookingManager InternalDomainService $domain
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
static _getInstance(int $a_copy_id)
cloneObject(int $target_id, int $copy_id=0, bool $omit_tree=false)
const TYPE_NO_SCHEDULE_PREFERENCES
setPreferenceNumber(int $a_val)
setReservationFilterPeriod(?int $a_value=null)
Set reservation filter period default.
static getList(int $a_pool_id, string $a_title=null)
Get list of booking objects.
setOffline(bool $a_value=true)