/** * 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); }
/** * @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']); }