public function UpdateResourceStatus() { if (!$this->page->CanUpdateResourceStatuses()) { Log::Debug('User does not have rights to update resource statuses'); return; } $session = ServiceLocator::GetServer()->GetUserSession(); $statusId = $this->page->GetResourceStatus(); $reasonId = $this->page->GetResourceStatusReason(); $referenceNumber = $this->page->GetResourceStatusReferenceNumber(); $resourceId = $this->page->GetUpdateResourceId(); $updateScope = $this->page->GetUpdateScope(); Log::Debug('Updating resource status. ResourceId=%s, ReferenceNumber=%s, StatusId=%s, ReasonId=%s, UserId=%s', $resourceId, $referenceNumber, $statusId, $reasonId, $session->UserId); $resourceIds = array(); if (empty($updateScope)) { $resourceIds[] = $resourceId; } else { $reservations = $this->manageReservationsService->LoadFiltered(null, null, new ReservationFilter(null, null, $referenceNumber, null, null, null, null), $session); /** @var $reservation ReservationItemView */ foreach ($reservations->Results() as $reservation) { $resourceIds[] = $reservation->ResourceId; } } foreach ($resourceIds as $id) { $resource = $this->resourceRepository->LoadById($id); $resource->ChangeStatus($statusId, $reasonId); $this->resourceRepository->Update($resource); } }