コード例 #1
0
 /**
  * @param ReservationSeries $reservationSeries
  * @return int newly created series_id
  */
 private function InsertSeries(ReservationSeries $reservationSeries)
 {
     $database = ServiceLocator::GetDatabase();
     $insertReservationSeries = new AddReservationSeriesCommand(Date::Now(), $reservationSeries->Title(), $reservationSeries->Description(), $reservationSeries->RepeatOptions()->RepeatType(), $reservationSeries->RepeatOptions()->ConfigurationString(), ReservationTypes::Reservation, $reservationSeries->StatusId(), $reservationSeries->UserId(), $reservationSeries->GetAllowParticipation());
     $reservationSeriesId = $database->ExecuteInsert($insertReservationSeries);
     $reservationSeries->WithSeriesId($reservationSeriesId);
     $insertReservationResource = new AddReservationResourceCommand($reservationSeriesId, $reservationSeries->ResourceId(), ResourceLevel::Primary);
     $database->Execute($insertReservationResource);
     foreach ($reservationSeries->AdditionalResources() as $resource) {
         $insertReservationResource = new AddReservationResourceCommand($reservationSeriesId, $resource->GetResourceId(), ResourceLevel::Additional);
         $database->Execute($insertReservationResource);
     }
     foreach ($reservationSeries->Accessories() as $accessory) {
         $insertAccessory = new AddReservationAccessoryCommand($accessory->AccessoryId, $accessory->QuantityReserved, $reservationSeriesId);
         $database->Execute($insertAccessory);
     }
     foreach ($reservationSeries->AttributeValues() as $attribute) {
         $insertAttributeValue = new AddAttributeValueCommand($attribute->AttributeId, $attribute->Value, $reservationSeriesId, CustomAttributeCategory::RESERVATION);
         $database->Execute($insertAttributeValue);
     }
     foreach ($reservationSeries->AddedAttachments() as $attachment) {
         $this->AddReservationAttachment($attachment);
     }
     if ($reservationSeries->GetStartReminder()->Enabled()) {
         $reminder = $reservationSeries->GetStartReminder();
         $insertAccessory = new AddReservationReminderCommand($reservationSeriesId, $reminder->MinutesPrior(), ReservationReminderType::Start);
         $database->Execute($insertAccessory);
     }
     if ($reservationSeries->GetEndReminder()->Enabled()) {
         $reminder = $reservationSeries->GetEndReminder();
         $insertAccessory = new AddReservationReminderCommand($reservationSeriesId, $reminder->MinutesPrior(), ReservationReminderType::End);
         $database->Execute($insertAccessory);
     }
     return $reservationSeriesId;
 }
コード例 #2
0
ファイル: SeriesUpdateScope.php プロジェクト: Trideon/gigolo
 /**
  * @param ReservationSeries $series
  * @param IRepeatOptions $targetRepeatOptions
  * @return bool
  */
 public function CanChangeRepeatTo($series, $targetRepeatOptions)
 {
     $this->hasSameConfiguration = $targetRepeatOptions->HasSameConfigurationAs($series->RepeatOptions());
     return parent::CanChangeRepeatTo($series, $targetRepeatOptions);
 }