Ejemplo n.º 1
0
 /**
  * @return array|Schedule[]
  */
 public function GetAll()
 {
     if (is_null($this->_all)) {
         $this->_all = $this->scheduleRepository->GetAll();
     }
     return $this->_all;
 }
Ejemplo n.º 2
0
 public function PageLoad()
 {
     $this->page->BindResources($this->resourceRepo->GetResourceList());
     $this->page->BindAccessories($this->resourceRepo->GetAccessoryList());
     $this->page->BindSchedules($this->scheduleRepo->GetAll());
     $this->page->BindGroups($this->groupRepo->GetList()->Results());
 }
Ejemplo n.º 3
0
 public function PageLoad($userSession, $timezone)
 {
     $type = $this->page->GetCalendarType();
     $year = $this->page->GetYear();
     $month = $this->page->GetMonth();
     $day = $this->page->GetDay();
     $defaultDate = Date::Now()->ToTimezone($timezone);
     if (empty($year)) {
         $year = $defaultDate->Year();
     }
     if (empty($month)) {
         $month = $defaultDate->Month();
     }
     if (empty($day)) {
         $day = $defaultDate->Day();
     }
     $schedules = $this->scheduleRepository->GetAll();
     $showInaccessible = Configuration::Instance()->GetSectionKey(ConfigSection::SCHEDULE, ConfigKeys::SCHEDULE_SHOW_INACCESSIBLE_RESOURCES, new BooleanConverter());
     $resources = $this->resourceService->GetAllResources($showInaccessible, $userSession);
     $selectedScheduleId = $this->page->GetScheduleId();
     $selectedSchedule = $this->GetDefaultSchedule($schedules);
     $selectedResourceId = $this->page->GetResourceId();
     $selectedGroupId = $this->page->GetGroupId();
     $resourceGroups = $this->resourceService->GetResourceGroups($selectedScheduleId, $userSession);
     if (!empty($selectedGroupId)) {
         $tempResources = array();
         $resourceIds = $resourceGroups->GetResourceIds($selectedGroupId);
         $selectedGroup = $resourceGroups->GetGroup($selectedGroupId);
         $this->page->BindSelectedGroup($selectedGroup);
         foreach ($resources as $resource) {
             if (in_array($resource->GetId(), $resourceIds)) {
                 $tempResources[] = $resource;
             }
         }
         $resources = $tempResources;
     }
     if (!empty($selectedResourceId)) {
         $subscriptionDetails = $this->subscriptionService->ForResource($selectedResourceId);
     } else {
         $subscriptionDetails = $this->subscriptionService->ForSchedule($selectedSchedule->GetId());
     }
     $calendar = $this->calendarFactory->Create($type, $year, $month, $day, $timezone, $selectedSchedule->GetWeekdayStart());
     $reservations = $this->reservationRepository->GetReservationList($calendar->FirstDay(), $calendar->LastDay()->AddDays(1), null, null, $selectedScheduleId, $selectedResourceId);
     $calendar->AddReservations(CalendarReservation::FromScheduleReservationList($reservations, $resources, $userSession, true));
     $this->page->BindCalendar($calendar);
     $this->page->BindFilters(new CalendarFilters($schedules, $resources, $selectedScheduleId, $selectedResourceId, $resourceGroups));
     $this->page->SetDisplayDate($calendar->FirstDay());
     $this->page->SetScheduleId($selectedScheduleId);
     $this->page->SetResourceId($selectedResourceId);
     $this->page->SetFirstDay($selectedSchedule->GetWeekdayStart());
     $this->page->BindSubscription($subscriptionDetails);
 }
Ejemplo n.º 4
0
 /**
  * @param UserSession $userSession
  * @param string $timezone
  */
 public function PageLoad($userSession, $timezone)
 {
     $type = $this->page->GetCalendarType();
     $year = $this->page->GetYear();
     $month = $this->page->GetMonth();
     $day = $this->page->GetDay();
     $defaultDate = Date::Now()->ToTimezone($timezone);
     if (empty($year)) {
         $year = $defaultDate->Year();
     }
     if (empty($month)) {
         $month = $defaultDate->Month();
     }
     if (empty($day)) {
         $day = $defaultDate->Day();
     }
     $schedules = $this->scheduleRepository->GetAll();
     $showInaccessible = Configuration::Instance()->GetSectionKey(ConfigSection::SCHEDULE, ConfigKeys::SCHEDULE_SHOW_INACCESSIBLE_RESOURCES, new BooleanConverter());
     $resources = $this->resourceService->GetAllResources($showInaccessible, $userSession);
     $selectedScheduleId = $this->page->GetScheduleId();
     $selectedSchedule = $this->GetDefaultSchedule($schedules);
     $selectedResourceId = $this->page->GetResourceId();
     $calendar = $this->calendarFactory->Create($type, $year, $month, $day, $timezone, $selectedSchedule->GetWeekdayStart());
     $reservations = $this->reservationRepository->GetReservationList($calendar->FirstDay(), $calendar->LastDay()->AddDays(1), $userSession->UserId, ReservationUserLevel::ALL, $selectedScheduleId, $selectedResourceId);
     $calendar->AddReservations(CalendarReservation::FromViewList($reservations, $timezone));
     $this->page->BindCalendar($calendar);
     $this->page->SetDisplayDate($calendar->FirstDay());
     $this->page->BindFilters(new CalendarFilters($schedules, $resources, $selectedScheduleId, $selectedResourceId));
     $this->page->SetScheduleId($selectedScheduleId);
     $this->page->SetResourceId($selectedResourceId);
     $this->page->SetFirstDay($selectedSchedule->GetWeekdayStart());
     $details = $this->subscriptionService->ForUser($userSession->UserId);
     $this->page->BindSubscription($details);
 }
Ejemplo n.º 5
0
 public function GetScheduleId()
 {
     if (!empty($this->scheduleId)) {
         return $this->scheduleId;
     }
     $this->scheduleId = $this->page->GetRequestedScheduleId();
     if (empty($this->scheduleId)) {
         $schedules = $this->scheduleRepository->GetAll();
         foreach ($schedules as $s) {
             if ($s->GetIsDefault()) {
                 $this->scheduleId = $s->GetId();
                 break;
             }
         }
     }
     return $this->scheduleId;
 }
Ejemplo n.º 6
0
 public function GetAll($includeInaccessible = true, UserSession $session = null)
 {
     $schedules = $this->scheduleRepository->GetAll();
     if ($includeInaccessible == false) {
         $resources = $this->resourceService->GetAllResources($includeInaccessible, $session);
         $availableSchedules = array();
         if (count($resources) > 0) {
             foreach ($schedules as $schedule) {
                 foreach ($resources as $resource) {
                     if ($resource->ScheduleId == $schedule->GetId()) {
                         $availableSchedules[] = $schedule;
                         break;
                     }
                 }
             }
         }
         return $availableSchedules;
     } else {
         return $schedules;
     }
 }
Ejemplo n.º 7
0
 public function PageLoad($userTimezone)
 {
     $session = ServiceLocator::GetServer()->GetUserSession();
     $this->page->BindSchedules($this->scheduleRepository->GetAll());
     $this->page->BindResources($this->resourceRepository->GetResourceList());
     $startDateString = $this->page->GetStartDate();
     $endDateString = $this->page->GetEndDate();
     $startDate = $this->GetDate($startDateString, $userTimezone, -7);
     $endDate = $this->GetDate($endDateString, $userTimezone, 7);
     $scheduleId = $this->page->GetScheduleId();
     $resourceId = $this->page->GetResourceId();
     $this->page->SetStartDate($startDate);
     $this->page->SetEndDate($endDate);
     $this->page->SetScheduleId($scheduleId);
     $this->page->SetResourceId($resourceId);
     $filter = new BlackoutFilter($startDate, $endDate, $scheduleId, $resourceId);
     $blackouts = $this->manageBlackoutsService->LoadFiltered($this->page->GetPageNumber(), $this->page->GetPageSize(), $filter, $session);
     $this->page->BindBlackouts($blackouts->Results());
     $this->page->BindPageInfo($blackouts->PageInfo());
     $this->page->ShowPage();
 }
 public function GetScheduleId()
 {
     if (!empty($this->scheduleId)) {
         return $this->scheduleId;
     }
     $this->scheduleId = $this->page->GetRequestedScheduleId();
     if (empty($this->scheduleId)) {
         $requestedResourceId = $this->page->GetRequestedResourceId();
         if (!empty($requestedResourceId)) {
             $resource = $this->resourceRepository->LoadById($requestedResourceId);
             $this->scheduleId = $resource->GetScheduleId();
         } else {
             $schedules = $this->scheduleRepository->GetAll();
             foreach ($schedules as $s) {
                 if ($s->GetIsDefault()) {
                     $this->scheduleId = $s->GetId();
                     break;
                 }
             }
         }
     }
     return $this->scheduleId;
 }
Ejemplo n.º 9
0
 public function PageLoad()
 {
     $resourceAttributes = $this->attributeService->GetByCategory(CustomAttributeCategory::RESOURCE);
     $filterValues = $this->page->GetFilterValues();
     $results = $this->resourceRepository->GetList($this->page->GetPageNumber(), $this->page->GetPageSize(), null, null, $filterValues->AsFilter($resourceAttributes));
     $resources = $results->Results();
     $this->page->BindResources($resources);
     $this->page->BindPageInfo($results->PageInfo());
     $schedules = $this->scheduleRepository->GetAll();
     $scheduleList = array();
     /* @var $schedule Schedule */
     foreach ($schedules as $schedule) {
         $scheduleList[$schedule->GetId()] = $schedule->GetName();
     }
     $this->page->BindSchedules($scheduleList);
     $this->page->AllSchedules($schedules);
     $resourceTypes = $this->resourceRepository->GetResourceTypes();
     $resourceTypeList = array();
     /* @var $resourceType ResourceType */
     foreach ($resourceTypes as $resourceType) {
         $resourceTypeList[$resourceType->Id()] = $resourceType;
     }
     $this->page->BindResourceTypes($resourceTypeList);
     $statusReasons = $this->resourceRepository->GetStatusReasons();
     $statusReasonList = array();
     foreach ($statusReasons as $reason) {
         $statusReasonList[$reason->Id()] = $reason;
     }
     $this->page->BindResourceStatusReasons($statusReasonList);
     $groups = $this->groupRepository->GetGroupsByRole(RoleLevel::RESOURCE_ADMIN);
     $this->page->BindAdminGroups($groups);
     $resourceIds = array();
     foreach ($resources as $resource) {
         $resourceIds[] = $resource->GetId();
     }
     $attributeList = $this->attributeService->GetAttributes(CustomAttributeCategory::RESOURCE, $resourceIds);
     $this->page->BindAttributeList($attributeList);
     $this->InitializeFilter($filterValues, $resourceAttributes);
 }
 public function PageLoad($userTimezone)
 {
     $session = ServiceLocator::GetServer()->GetUserSession();
     $this->page->BindSchedules($this->scheduleRepository->GetAll());
     $this->page->BindResources($this->resourceRepository->GetResourceList());
     $statusReasonList = array();
     foreach ($this->resourceRepository->GetStatusReasons() as $reason) {
         $statusReasonList[$reason->Id()] = $reason;
     }
     $this->page->BindResourceStatuses($statusReasonList);
     $startDateString = $this->page->GetStartDate();
     $endDateString = $this->page->GetEndDate();
     $filterPreferences = new ReservationFilterPreferences();
     $filterPreferences->Load($this->userPreferenceRepository, $session->UserId);
     $startDate = $this->GetDate($startDateString, $userTimezone, $filterPreferences->GetFilterStartDateDelta());
     $endDate = $this->GetDate($endDateString, $userTimezone, $filterPreferences->GetFilterEndDateDelta());
     $scheduleId = $this->page->GetScheduleId();
     $resourceId = $this->page->GetResourceId();
     $userId = $this->page->GetUserId();
     $userName = $this->page->GetUserName();
     $reservationStatusId = $this->page->GetReservationStatusId();
     $referenceNumber = $this->page->GetReferenceNumber();
     $resourceStatusId = $this->page->GetResourceStatusFilterId();
     $resourceReasonId = $this->page->GetResourceStatusReasonFilterId();
     if (!$this->page->FilterButtonPressed()) {
         // Get filter settings from db
         $referenceNumber = $filterPreferences->GetFilterReferenceNumber();
         $scheduleId = $filterPreferences->GetFilterScheduleId();
         $resourceId = $filterPreferences->GetFilterResourceId();
         $userId = $filterPreferences->GetFilterUserId();
         $userName = $filterPreferences->GetFilterUserName();
         $reservationStatusId = $filterPreferences->GetFilterReservationStatusId();
         $resourceStatusId = $filterPreferences->GetFilterResourceStatusId();
         $resourceReasonId = $filterPreferences->GetFilterResourceReasonId();
         $filters = $filterPreferences->GetFilterCustomAttributes();
     } else {
         $startOffset = $this->GetDateOffsetFromToday($startDate, $userTimezone);
         $endOffset = $this->GetDateOffsetFromToday($endDate, $userTimezone);
         $formFilters = $this->page->GetAttributeFilters();
         $filters = array();
         foreach ($formFilters as $filter) {
             $filters[$filter->Id] = $filter->Value;
         }
         $filterPreferences->SetFilterStartDateDelta($startOffset == null ? -14 : $startOffset);
         $filterPreferences->SetFilterEndDateDelta($endOffset == null ? 14 : $endOffset);
         $filterPreferences->SetFilterReferenceNumber($referenceNumber);
         $filterPreferences->SetFilterScheduleId($scheduleId);
         $filterPreferences->SetFilterResourceId($resourceId);
         $filterPreferences->SetFilterUserId($userId);
         $filterPreferences->SetFilterUserName($userName);
         $filterPreferences->SetFilterReservationStatusId($reservationStatusId);
         $filterPreferences->SetFilterResourceStatusId($resourceStatusId);
         $filterPreferences->SetFilterResourceReasonId($resourceReasonId);
         $filterPreferences->SetFilterCustomAttributes($filters);
         $filterPreferences->Update($this->userPreferenceRepository, $session->UserId);
     }
     $reservationAttributes = $this->attributeService->GetByCategory(CustomAttributeCategory::RESERVATION);
     $attributeFilters = array();
     foreach ($reservationAttributes as $attribute) {
         $attributeValue = null;
         if (array_key_exists($attribute->Id(), $filters)) {
             $attributeValue = $filters[$attribute->Id()];
         }
         $attributeFilters[] = new Attribute($attribute, $attributeValue);
     }
     $this->page->SetStartDate($startDate);
     $this->page->SetEndDate($endDate);
     $this->page->SetReferenceNumber($referenceNumber);
     $this->page->SetScheduleId($scheduleId);
     $this->page->SetResourceId($resourceId);
     $this->page->SetUserId($userId);
     $this->page->SetUserName($userName);
     $this->page->SetReservationStatusId($reservationStatusId);
     $this->page->SetResourceStatusFilterId($resourceStatusId);
     $this->page->SetResourceStatusReasonFilterId($resourceReasonId);
     $this->page->SetAttributeFilters($attributeFilters);
     $this->page->SetReservationAttributes($reservationAttributes);
     $filter = new ReservationFilter($startDate, $endDate, $referenceNumber, $scheduleId, $resourceId, $userId, $reservationStatusId, $resourceStatusId, $resourceReasonId, $attributeFilters);
     $reservations = $this->manageReservationsService->LoadFiltered($this->page->GetPageNumber(), $this->page->GetPageSize(), $filter, $session);
     /** @var ReservationItemView[] $reservationList */
     $reservationList = $reservations->Results();
     $this->page->BindReservations($reservationList);
     $this->page->BindPageInfo($reservations->PageInfo());
     $seriesIds = array();
     /** @var $reservationItemView ReservationItemView */
     foreach ($reservationList as $reservationItemView) {
         $seriesIds[] = $reservationItemView->SeriesId;
     }
     if ($this->page->GetFormat() == 'csv') {
         $this->page->ShowCsv();
     } else {
         $this->page->ShowPage();
     }
 }
Ejemplo n.º 11
0
 /**
  * @name GetAllSchedules
  * @description Loads all schedules
  * @response SchedulesResponse
  * @return void
  */
 public function GetSchedules()
 {
     $schedules = $this->scheduleRepository->GetAll();
     $this->server->WriteResponse(new SchedulesResponse($this->server, $schedules));
 }
 public function GetSourceSchedules()
 {
     return $this->scheduleRepo->GetAll();
 }