/** * @param array|ReservationItemView[] $reservationsWithinRange * @param ReservationSeries $series * @param string $timezone * @throws QuotaExceededException */ private function CheckAll($reservationsWithinRange, $series, $timezone) { $toBeSkipped = array(); /** @var $instance Reservation */ foreach ($series->Instances() as $instance) { $toBeSkipped[$instance->ReferenceNumber()] = true; if (!is_null($this->scheduleId)) { foreach ($series->AllResources() as $resource) { // add each resource instance if ($this->AppliesToResource($resource->GetResourceId())) { $this->AddInstance($instance, $timezone); } } } else { $this->AddInstance($instance, $timezone); } } /** @var $reservation ReservationItemView */ foreach ($reservationsWithinRange as $reservation) { if (!empty($this->resourceId)) { $applies = $this->AppliesToResource($reservation->ResourceId) && $series->ContainsResource($reservation->ResourceId); } else { $applies = $series->ContainsResource($reservation->ResourceId) || $series->ScheduleId() == $reservation->ScheduleId; } if ($applies && !array_key_exists($reservation->ReferenceNumber, $toBeSkipped) && !$this->willBeDeleted($series, $reservation->ReservationId)) { $this->AddExisting($reservation, $timezone); } } }