コード例 #1
0
ファイル: Quota.php プロジェクト: utn-frm-si/booked
 /**
  * @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);
         }
     }
 }