/**
  * Add my subscribed calendars.
  * @param SavedCalendarSubscriptions $savedCalendarSubscriptions
  * @param User $user
  * @param string $subscribedCalendarIds
  * @return \SavedCalendarSubscriptions
  */
 private static function addMySubscribedCalendars(SavedCalendarSubscriptions $savedCalendarSubscriptions, User $user, $subscribedCalendarIds)
 {
     $mySubscribedCalendars = CalendarUtil::getUserSubscribedCalendars($user);
     if (count($mySubscribedCalendars) > 0) {
         ZurmoConfigurationUtil::setByUserAndModuleName($user, 'CalendarsModule', 'mySubscribedCalendarSelections', $subscribedCalendarIds);
         $subscribedCalendarIdArray = array();
         if ($subscribedCalendarIds != null) {
             $subscribedCalendarIdArray = explode(',', $subscribedCalendarIds);
             // Not Coding Standard
         }
         foreach ($mySubscribedCalendars as $key => $mySubscribedCalendar) {
             CalendarUtil::setSharedCalendarColor($mySubscribedCalendar);
             if (in_array($mySubscribedCalendar->id, $subscribedCalendarIdArray)) {
                 $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, true);
             } else {
                 $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, false);
             }
         }
     }
 }
 public function testMeetingsThanSpanForMoreThanOneMonth()
 {
     $savedCalendars = SavedCalendar::getByName('aSavedCalendar');
     $savedCalendar = $savedCalendars[0];
     $meetings = Meeting::getByName('aMeeting');
     $meeting = $meetings[0];
     $meeting->startDateTime = '2014-04-29 01:00:00';
     $meeting->endDateTime = '2014-05-09 01:00:00';
     $this->assertTrue($meeting->save());
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(1, $data);
     $this->assertEquals('aMeeting', $data[0]->getTitle());
     $meeting->startDateTime = '2014-04-29 01:00:00';
     $meeting->endDateTime = '2014-06-09 01:00:00';
     $this->assertTrue($meeting->save());
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(1, $data);
     $this->assertEquals('aMeeting', $data[0]->getTitle());
     $meeting->startDateTime = '2014-05-29 01:00:00';
     $meeting->endDateTime = '2014-06-09 01:00:00';
     $this->assertTrue($meeting->save());
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(1, $data);
     $this->assertEquals('aMeeting', $data[0]->getTitle());
     //Meeting start and ends before calendar start/end dates
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-07-01 01:00:00', 'endDate' => '2014-08-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(0, $data);
     //Meeting start and ends after calendar start/end dates
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-01-01 01:00:00', 'endDate' => '2014-03-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(0, $data);
 }
 /**
  * @covers CalendarItemsDataProviderFactory::getDataProviderByDateRangeType
  * @covers CalendarItemsDataProvider::fetchData
  * @covers CalendarRowsAndColumnsReportDataProvider::makeSelectQueryAdapter
  * @covers CalendarRowsAndColumnsReportDataProvider::resolveSqlQueryAdapterForCount
  * @covers CalendarRowsAndColumnsReportDataProvider::getData
  */
 public function testGetDataProviderByDateRangeType()
 {
     Yii::app()->user->userModel = User::getByUsername('super');
     $product = ProductTestHelper::createProductByNameForOwner('Test Product', Yii::app()->user->userModel);
     $savedCalendar = CalendarTestHelper::createSavedCalendarByName('Test Cal', '#315AB0');
     $currentDateTime = new DateTime('NOW');
     $currentDateTime->add(new DateInterval('P1D'));
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser(Yii::app()->user->userModel, (string) $savedCalendar->id);
     $dp = CalendarItemsDataProviderFactory::getDataProviderByDateRangeType($savedCalendarSubscriptions, '2014-01-01', $currentDateTime->format('Y-m-d'), SavedCalendar::DATERANGE_TYPE_MONTH);
     $this->assertInstanceOf('CalendarItemsDataProvider', $dp);
     $this->assertEquals('2014-01-01', $dp->getStartDate());
     $this->assertEquals($currentDateTime->format('Y-m-d'), $dp->getEndDate());
     $this->assertEquals(SavedCalendar::DATERANGE_TYPE_MONTH, $dp->getDateRangeType());
     $savedCalendarsData = $dp->getSavedCalendarSubscriptions()->getMySavedCalendarsAndSelected();
     $keys = array_keys($savedCalendarsData);
     $this->assertEquals($savedCalendar->id, $keys[0]);
     $items = CalendarUtil::getFullCalendarItems($dp);
     $this->assertCount(1, $items);
     $this->assertEquals($product->id, $items[0]['modelId']);
 }
Esempio n. 4
0
 /**
  * Process user calendars and get data provider.
  * @param null|string $myCalendarIds
  * @param null|string $mySubscribedCalendarIds
  * @param null|string $dateRangeType
  * @param null|string $startDate
  * @param null|string $endDate
  * @return CalendarItemsDataProvider
  */
 public static function processUserCalendarsAndMakeDataProviderForCombinedView($myCalendarIds = null, $mySubscribedCalendarIds = null, $dateRangeType = null, $startDate = null, $endDate = null)
 {
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser(Yii::app()->user->userModel, $myCalendarIds, $mySubscribedCalendarIds);
     if ($dateRangeType == null) {
         $dateRangeType = CalendarUtil::getDateRangeType();
         ZurmoConfigurationUtil::setByUserAndModuleName(Yii::app()->user->userModel, 'CalendarsModule', 'myCalendarDateRangeType', $dateRangeType);
     }
     if ($startDate == null) {
         $startDate = CalendarUtil::getStartDate($dateRangeType);
         ZurmoConfigurationUtil::setByUserAndModuleName(Yii::app()->user->userModel, 'CalendarsModule', 'myCalendarStartDate', $startDate);
     }
     if ($endDate == null) {
         $endDate = CalendarUtil::getEndDate($dateRangeType);
         ZurmoConfigurationUtil::setByUserAndModuleName(Yii::app()->user->userModel, 'CalendarsModule', 'myCalendarEndDate', $endDate);
     }
     return CalendarItemsDataProviderFactory::getDataProviderByDateRangeType($savedCalendarSubscriptions, $startDate, $endDate, $dateRangeType);
 }
 public function testLoadDefaultCalendars()
 {
     $user = UserTestHelper::createBasicUser('jim');
     Yii::app()->user->userModel = $user;
     $this->assertEquals(0, count(CalendarUtil::getUserSavedCalendars($user)));
     SavedCalendarSubscriptions::makeByUser($user);
     $this->assertEquals(2, count(CalendarUtil::getUserSavedCalendars($user)));
     $calendars = CalendarUtil::getUserSavedCalendars($user);
     $model = $calendars[0];
     $data = unserialize($model->serializedData);
     $filtersData = $data[ComponentForReportForm::TYPE_FILTERS];
     $this->assertEquals(strval($user), $filtersData[0]['stringifiedModelForValue']);
     $this->assertEquals($user->id, $filtersData[0]['value']);
     $this->assertEquals('1', $data['filtersStructure']);
 }