/**
  * @return EventContainer
  */
 private function getEventContainer()
 {
     if (null === $this->eventContainer) {
         if (null === $this->getIdentifier()) {
             throw new AggregateRootIdNotInitialized("Aggregate Id unknown in [" . get_class($this) . "] Make sure the Aggregate Id is initialized before registering events.");
         }
         $this->eventContainer = new EventContainer($this->getIdentifier());
         $this->eventContainer->initializeSequenceNumber($this->lastEventScn);
     }
     return $this->eventContainer;
 }
 /**
  *
  * @param <type> $fnEventContainer
  * @param <type> $updateDate
  * @param <type> $accountOffset
  * @return <type> 
  */
 private function ConvertFunambolToWMEventContainer(&$fnEventContainer, $updateDate = FALSE, $accountOffset = 0)
 {
     $wmEventContainer = new EventContainer();
     /*
     		$this->_container['calendarId'] = null;
     		$this->_container['eventId'] = null;
     */
     $wmEventContainer->SetValue('FunambolEventId', $fnEventContainer->GetValue('id', 'int'));
     //		$fnEventContainer->SetValue('userid', $fnUserId);
     if ($updateDate) {
         $fnDateModified = $this->ConvertFNtoWMTimestamp($fnEventContainer->GetValue('last_update'), TRUE);
         $wmEventContainer->SetValue('eventLastModified', $fnDateModified);
     } else {
         //$wmContactContainer->_container['DateCreated']	= null;
         //$wmContactContainer->_container['DateModified']	= null;
     }
     $wmEventContainer->SetValue('eventAllDay', $fnEventContainer->GetValue('all_day'));
     $wmEventContainer->SetValue('eventText', $fnEventContainer->GetValue('body'));
     $this->log("fnEventContainer->GetValue('dstart')=" . $fnEventContainer->GetValue('dstart'));
     $wmEventContainer->SetValue('eventTimeFrom', date("Y-m-d H:i:s", strtotime($fnEventContainer->GetValue('dstart')) - date('Z')));
     $wmEventContainer->SetValue('eventTimeTill', date("Y-m-d H:i:s", strtotime($fnEventContainer->GetValue('dend')) - date('Z')));
     //		$fnEventContainer->SetValue('folder',	"DEFAULT_FOLDER" );//\\" . $wmCalendarName);
     //		$this->_container['reminder_time'] = null;
     //		$fnEventContainer->SetValue('reminder'] = 0;
     //		$fnEventContainer->SetValue('reminder_repeat_count'] = 0;
     //		$fnEventContainer->SetValue('sensitivity'] = 0;
     $wmEventContainer->SetValue('eventName', $fnEventContainer->GetValue('subject'));
     if ($fnEventContainer->GetValue('rec_type', 'int') < 0) {
         // not repeatable event
     } else {
         $internalRepeatForm = new RepeatContainer();
         $internalRepeatForm->SetValue('repeatOrder', $fnEventContainer->GetValue('rec_interval'));
         switch ($fnEventContainer->GetValue('rec_type', 'int')) {
             case 0:
                 // daily
                 $internalRepeatForm->SetValue('repeatPeriod', 0);
                 break;
             case 1:
                 // weekly
                 $internalRepeatForm->SetValue('repeatPeriod', 1);
                 $this->FillDaysFromMask($internalRepeatForm, $fnEventContainer->GetValue('rec_day_of_week_mask'));
                 break;
             case 2:
                 // monthly, each 4-th of May
                 $internalRepeatForm->SetValue('repeatPeriod', 2);
                 $internalRepeatForm->SetValue('repeatWeekNumber', $fnEventContainer->GetValue('rec_instance', 'int') - 1);
                 $this->FillDaysFromMask($internalRepeatForm, $fnEventContainer->GetValue('rec_day_of_week_mask'));
                 break;
             case 3:
                 // monthly, each Second Sunday
                 $internalRepeatForm->SetValue('repeatPeriod', 2);
                 $internalRepeatForm->SetValue('repeatWeekNumber', $fnEventContainer->GetValue('rec_instance', 'int') - 1);
                 $this->FillDaysFromMask($internalRepeatForm, $fnEventContainer->GetValue('rec_day_of_week_mask'));
                 break;
             case 4:
                 break;
             case 5:
                 $internalRepeatForm->SetValue('repeatPeriod', 3);
                 $internalRepeatForm->SetValue('repeatWeekNumber', $fnEventContainer->GetValue('rec_instance', 'int') - 1);
                 $this->FillDaysFromMask($internalRepeatForm, $fnEventContainer->GetValue('rec_day_of_week_mask'));
                 break;
             case 6:
                 $internalRepeatForm->SetValue('repeatPeriod', 3);
                 $internalRepeatForm->SetValue('repeatWeekNumber', $fnEventContainer->GetValue('rec_instance', 'int') - 1);
                 $this->FillDaysFromMask($internalRepeatForm, $fnEventContainer->GetValue('rec_day_of_week_mask'));
                 //							$fnEventContainer->SetValue('rec_interval', 12);
                 //							$fnEventContainer->SetValue('rec_month_of_year', date( "m", strtotime($wmEventContainer->GetValue('eventTimeFrom'))));
                 break;
         }
         // switch
         if ($fnEventContainer->GetValue('rec_no_end_date', 'int')) {
             $internalRepeatForm->SetValue('repeatEnd', 0);
             $this->log("<h1>no end</h1>");
         } else {
             if ($fnEventContainer->GetValue('rec_end_date_pattern') != NULL && strlen($fnEventContainer->GetValue('rec_end_date_pattern')) > 0) {
                 $this->log("<h1>end date</h1>");
                 $internalRepeatForm->SetValue('repeatEnd', 2);
                 $internalRepeatForm->SetValue('repeatUntil', date("Y-m-d H:i:s", strtotime($fnEventContainer->GetValue('rec_end_date_pattern'))));
             } else {
                 if ($fnEventContainer->GetValue('rec_occurrences', 'int')) {
                     $this->log("<h1>end occurences</h1>");
                     $internalRepeatForm->SetValue('repeatEnd', 1);
                     $internalRepeatForm->SetValue('repeatNum', $fnEventContainer->GetValue('rec_occurrences'));
                 }
             }
         }
         $wmEventContainer->SetInternalRepeatForm($internalRepeatForm);
     }
     // if( repeatable event )
     return $wmEventContainer;
 }
Example #3
0
 /**
  * Delete all appointments for the specified event.
  *
  * @param int|EventContainer $event - event container or event id for which appointment will be deleted.
  * @return bool
  */
 protected function _DeleteAllAppointmentsForEvent($event)
 {
     if ($event instanceof EventContainer) {
         $eventId = $event->GetValue('eventId');
     } else {
         $eventId = $event;
     }
     $result = $this->_currentModel->DeleteAllAppointmentsForEvent($eventId);
     return $result;
 }