if (Request::get('time_range')) { if (Request::get('time_range') == "FALSE") $_SESSION['resources_data']["schedule_time_range"] = ''; else $_SESSION['resources_data']["schedule_time_range"] = Request::int('time_range'); } /***************************************************************************** some other stuff ;-) /*****************************************************************************/ //display perminvalid window if ((in_array("1", $msg->codes)) || (in_array("25", $msg->codes))) { $forbiddenObject = ResourceObject::Factory($_SESSION['resources_data']["actual_object"]); if ($forbiddenObject->isLocked()) { $lock_ts = getLockPeriod("edit"); $msg->addMsg(31, array(date("d.m.Y, G:i", $lock_ts[0]), date("d.m.Y, G:i", $lock_ts[1]))); } $msg->displayAllMsg("window"); die; } //show object, this object will be edited or viewed if (Request::option('show_object')) $_SESSION['resources_data']["actual_object"]=Request::option('show_object'); if (Request::option('show_msg')) { if ($msg_resource_id = Request::option('msg_resource_id')) { $msgResourceObj = ResourceObject::Factory($msg_resource_id); } $msg->addMsg(Request::option('show_msg'), $msg_resource_id ? array(htmlReady($msgResourceObj->getName())) : FALSE);
function checkOverlap($check_locks = TRUE) { global $user; $resObject = ResourceObject::Factory($this->resource_id); //we check overlaps always for a whole day $start = mktime(0, 0, 0, date("n", $this->begin), date("j", $this->begin), date("Y", $this->begin)); if ($this->repeat_end) { $end = mktime(23, 59, 59, date("n", $this->repeat_end), date("j", $this->repeat_end), date("Y", $this->repeat_end)); } else { $end = mktime(23, 59, 59, date("n", $this->end), date("j", $this->end), date("Y", $this->end)); } //load the events of the actual assign... $events = $this->getEvents(); //check, if an assign_lock for one of the events is active (results in an "overlap" so assign cant be saved) if (Config::get()->RESOURCES_ASSIGN_LOCKING_ACTIVE && $resObject->isLockable() && $resObject->isRoom() && getGlobalPerms($user->id) !== 'admin' && $check_locks) { foreach ($events as $obj) { $lock = getLockPeriod('assign', $obj->getBegin(), $obj->getEnd()); if ($lock) { $overlaps[] = array('begin' => $obj->getBegin(), 'end' => $obj->getEnd(), 'lock' => TRUE, 'lock_begin' => $lock[0], 'lock_end' => $lock[1], 'lock_id' => $lock[2]); } } if ($overlaps) { return $overlaps; } } //check for regular overlaps if (!$resObject->getMultipleAssign()) { //when multiple assigns are allowed, we need no check... $multiChecker = new CheckMultipleOverlaps(); $multiChecker->setAutoTimeRange(array($this)); $multiChecker->addResource($this->resource_id); $check_events = array(); foreach ($events as $evtObj) { $check_events[$evtObj->getId()] = $evtObj; } $multiChecker->checkOverlap($check_events, $result); $overlaps = array(); if (is_array($result[$this->resource_id][$this->id])) { foreach ($result[$this->resource_id][$this->id] as $overlapping_event) { $overlaps[$overlapping_event["assign_id"]]["begin"] = $overlapping_event["begin"]; $overlaps[$overlapping_event["assign_id"]]["end"] = $overlapping_event["end"]; } } return $overlaps; } else { return false; } }