public function __construct(IRestServer $server, Schedule $schedule) { $this->daysVisible = $schedule->GetDaysVisible(); $this->id = $schedule->GetId(); $this->isDefault = $schedule->GetIsDefault(); $this->name = $schedule->GetName(); $this->timezone = $schedule->GetTimezone(); $this->weekdayStart = $schedule->GetWeekdayStart(); $this->AddService($server, WebServices::GetSchedule, array(WebServiceParams::ScheduleId => $schedule->GetId())); }
public function testWhenHourlyLimitIsExceededInYear() { $duration = new QuotaDurationYear(); $limit = new QuotaLimitHours(1.5); $startDate = Date::Parse('2011-04-03 0:30', $this->schedule->GetTimezone()); $endDate = Date::Parse('2011-04-03 1:30', $this->schedule->GetTimezone()); $series = $this->GetHourLongReservation($startDate, $endDate); $quota = new Quota(1, $duration, $limit, $series->ResourceId()); $res1 = new ReservationItemView('ref1', $startDate->SetTimeString('00:00'), $endDate->SetTimeString('00:31'), '', $series->ResourceId(), 98712); $res1->ScheduleId = $series->ScheduleId(); $reservations = array($res1); $this->SearchReturns($reservations); $exceeds = $quota->ExceedsQuota($series, $this->user, $this->schedule, $this->reservationViewRepository); $this->assertTrue($exceeds); }
public function __construct(IRestServer $server, Schedule $schedule, IScheduleLayout $layout) { $this->daysVisible = $schedule->GetDaysVisible(); $this->id = $schedule->GetId(); $this->isDefault = $schedule->GetIsDefault(); $this->name = $schedule->GetName(); $this->timezone = $schedule->GetTimezone(); $this->weekdayStart = $schedule->GetWeekdayStart(); if ($schedule->GetIsCalendarSubscriptionAllowed()) { $url = new CalendarSubscriptionUrl(null, $schedule->GetPublicId(), null); $this->icsUrl = $url->__toString(); } $layoutDate = Date::Now()->ToTimezone($server->GetSession()->Timezone); for ($day = 0; $day < 7; $day++) { $periods = $layout->GetLayout($layoutDate); foreach ($periods as $period) { $this->periods[$layoutDate->Weekday()][] = new SchedulePeriodResponse($period); } $layoutDate = $layoutDate->AddDays(1); } }
public function GetDisplayTimezone(UserSession $user, Schedule $schedule) { return $schedule->GetTimezone(); }
/** * @param ReservationSeries $reservationSeries * @param User $user * @param Schedule $schedule * @param IReservationViewRepository $reservationViewRepository * @return bool */ public function ExceedsQuota($reservationSeries, $user, $schedule, IReservationViewRepository $reservationViewRepository) { $timezone = $schedule->GetTimezone(); if (!is_null($this->resourceId)) { $appliesToResource = false; foreach ($reservationSeries->AllResourceIds() as $resourceId) { if (!$appliesToResource && $this->AppliesToResource($resourceId)) { $appliesToResource = true; } } if (!$appliesToResource) { return false; } } if (!is_null($this->groupId)) { $appliesToGroup = false; foreach ($user->Groups() as $group) { if (!$appliesToGroup && $this->AppliesToGroup($group->GroupId)) { $appliesToGroup = true; } } if (!$appliesToGroup) { return false; } } if (!$this->AppliesToSchedule($reservationSeries->ScheduleId())) { return false; } if (count($reservationSeries->Instances()) == 0) { return false; } $dates = $this->duration->GetSearchDates($reservationSeries, $timezone); $reservationsWithinRange = $reservationViewRepository->GetReservationList($dates->Start(), $dates->End(), $reservationSeries->UserId(), ReservationUserLevel::OWNER); try { $this->CheckAll($reservationsWithinRange, $reservationSeries, $timezone); } catch (QuotaExceededException $ex) { return true; } return false; }
/** * @param Schedule $schedule * @return IScheduleLayout */ public function GetLayout($schedule) { return $this->scheduleRepository->GetLayout($schedule->GetId(), new ScheduleLayoutFactory($schedule->GetTimezone())); }