public function __construct(ExistingReservationSeries $series)
 {
     foreach ($series->Accessories() as $accessory) {
         $this->Accessories[] = new ReservationAccessoryView($accessory->AccessoryId, $accessory->QuantityReserved, $accessory->Name, null);
     }
     foreach ($series->AdditionalResources() as $resource) {
         $this->AdditionalResourceIds[] = $resource->GetId();
     }
     foreach ($series->AddedAttachments() as $attachment) {
         $this->Attachments[] = new ReservationAttachmentView($attachment->FileId(), $series->SeriesId(), $attachment->FileName());
     }
     foreach ($series->AttributeValues() as $av) {
         $this->Attributes[] = $av;
     }
     $this->Description = $series->Description();
     $this->EndDate = $series->CurrentInstance()->EndDate();
     $this->OwnerId = $series->UserId();
     $this->ReferenceNumber = $series->CurrentInstance()->ReferenceNumber();
     $this->ReservationId = $series->CurrentInstance()->ReservationId();
     $this->ResourceId = $series->ResourceId();
     foreach ($series->AllResources() as $resource) {
         $this->Resources[] = new ReservationResourceView($resource->GetId(), $resource->GetName(), $resource->GetAdminGroupId(), $resource->GetScheduleId(), $resource->GetScheduleAdminGroupId(), $resource->GetStatusId());
     }
     $this->ScheduleId = $series->ScheduleId();
     $this->SeriesId = $series->SeriesId();
     $this->StartDate = $series->CurrentInstance()->StartDate();
     $this->StatusId = $series->StatusId();
 }
Beispiel #2
0
 /**
  * @param ExistingReservationSeries $series
  * @return mixed
  */
 public function EarliestDateToKeep($series)
 {
     $startTimeConstraint = Configuration::Instance()->GetSectionKey(ConfigSection::RESERVATION, ConfigKeys::RESERVATION_START_TIME_CONSTRAINT);
     if (ReservationStartTimeConstraint::IsCurrent($startTimeConstraint)) {
         return $series->CurrentInstance()->StartDate();
     }
     if (ReservationStartTimeConstraint::IsNone($startTimeConstraint)) {
         return Date::Min();
     }
     return Date::Now();
 }
 /**
  * @param ExistingReservationSeries $reservationSeries
  */
 public function HandleReservation($reservationSeries)
 {
     Log::Debug("Deleting reservation %s", $reservationSeries->CurrentInstance()->ReferenceNumber());
     $this->handler->Handle($reservationSeries, $this->page);
 }
 public function testUpdateSingleInstanceToAnEarlierTime()
 {
     $now = Date::Now();
     $newStart = Date::Parse('2010-01-01 04:00:00', 'UTC');
     $start = Date::Parse('2010-01-01 05:00:00', 'UTC');
     $end = Date::Parse('2010-01-01 07:00:00', 'UTC');
     $future1 = new TestReservation('1', new DateRange($now->AddDays(5), $now->AddDays(5)));
     $future2 = new TestReservation('2', new DateRange($now->AddDays(6), $now->AddDays(6)));
     $current = new TestReservation('3', new DateRange($start, $end));
     $existing = new ExistingReservationSeries();
     $existing->WithInstance($future1);
     $existing->WithInstance($future2);
     $existing->WithCurrentInstance($current);
     $existing->ApplyChangesTo(SeriesUpdateScope::ThisInstance);
     $existing->UpdateDuration(new DateRange($newStart, $end));
     $newCurrent = $existing->CurrentInstance();
     $this->assertTrue($newCurrent->StartDate()->Equals($newStart));
     $this->assertTrue($newCurrent->EndDate()->Equals($end));
 }