protected function AddItem(ReservationListItem $item) { $currentDate = $item->StartDate()->ToTimezone($this->timezone); $lastDate = $item->EndDate()->ToTimezone($this->timezone); if ($currentDate->GreaterThan($lastDate)) { Log::Error("Reservation dates corrupted. ReferenceNumber=%s, Start=%s, End=%s", $item->ReferenceNumber(), $item->StartDate(), $item->EndDate()); return; } if ($currentDate->DateEquals($lastDate)) { $this->AddOnDate($item, $currentDate); } else { while ($currentDate->LessThan($lastDate) && !$currentDate->DateEquals($lastDate)) { $this->AddOnDate($item, $currentDate); $currentDate = $currentDate->AddDays(1); } if (!$lastDate->IsMidnight()) { $this->AddOnDate($item, $lastDate); } } $this->_reservations[] = $item; $this->_reservationByResource[$item->ResourceId()][] = $item; }