public static function makeActiveCustomerEmailList() { $contactStateIdsAndNames = ContactsUtil::getContactStateDataFromStartingStateOnAndKeyedById(); $report = new Report(); $report->setDescription('A report showing active customers who have not opted out of receiving emails'); $report->setModuleClassName('ContactsModule'); $report->setName('Active Customer Email List'); $report->setType(Report::TYPE_ROWS_AND_COLUMNS); $report->setOwner(Yii::app()->user->userModel); $report->setFiltersStructure('1 AND 2 AND 3'); $report->setCurrencyConversionType(Report::CURRENCY_CONVERSION_TYPE_BASE); $filter = new FilterForReportForm('ContactsModule', 'Contact', $report->getType()); $filter->attributeIndexOrDerivedType = 'account___type'; $filter->value = 'Customer'; $filter->operator = OperatorRules::TYPE_EQUALS; $report->addFilter($filter); $filter = new FilterForReportForm('ContactsModule', 'Contact', $report->getType()); $filter->attributeIndexOrDerivedType = 'state'; $filter->value = array_keys($contactStateIdsAndNames); $filter->operator = OperatorRules::TYPE_ONE_OF; $report->addFilter($filter); $filter = new FilterForReportForm('ContactsModule', 'Contact', $report->getType()); $filter->attributeIndexOrDerivedType = 'primaryEmail___optOut'; $filter->value = false; $filter->operator = OperatorRules::TYPE_EQUALS; $report->addFilter($filter); $displayAttribute = new DisplayAttributeForReportForm('ContactsModule', 'Contact', $report->getType()); $displayAttribute->attributeIndexOrDerivedType = 'FullName'; $report->addDisplayAttribute($displayAttribute); $displayAttribute = new DisplayAttributeForReportForm('ContactsModule', 'Contact', $report->getType()); $displayAttribute->attributeIndexOrDerivedType = 'account___name'; $displayAttribute->label = 'Account Name'; $report->addDisplayAttribute($displayAttribute); $displayAttribute = new DisplayAttributeForReportForm('ContactsModule', 'Contact', $report->getType()); $displayAttribute->attributeIndexOrDerivedType = 'primaryEmail___emailAddress'; $report->addDisplayAttribute($displayAttribute); $savedReport = new SavedReport(); SavedReportToReportAdapter::resolveReportToSavedReport($report, $savedReport); //set explicit $saved = $savedReport->save(); assert('$saved'); $explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::makeBySecurableItem($savedReport); $explicitReadWriteModelPermissions->addReadWritePermitable(Group::getByName(Group::EVERYONE_GROUP_NAME)); $success = ExplicitReadWriteModelPermissionsUtil::resolveExplicitReadWriteModelPermissions($savedReport, $explicitReadWriteModelPermissions); assert('$success'); $saved = $savedReport->save(); assert('$saved'); }
protected function resolveStates() { return ContactsUtil::getContactStateDataFromStartingStateOnAndKeyedById(); }
public function testContactStateAdapterReturnsCorrectStatesUponStartingStateChange() { $this->assertEquals(7, count(ContactState::GetAll())); $metadata = ContactsModule::getMetadata(); $metadata['global']['startingStateId'] = ContactsUtil::getStartingState()->id; ContactsModule::setMetadata($metadata); $metadata = array('clauses' => array(), 'structure' => ''); $adapter = new ContactsStateMetadataAdapter($metadata); $adaptedMetadata = $adapter->getAdaptedDataProviderMetadata(); $statesToInclude = ContactsUtil::getContactStateDataFromStartingStateOnAndKeyedById(); $this->assertEquals(7, count($statesToInclude)); $compareMetadata['clauses'] = array(); $compareMetadata['structure'] = '(1 or 2 or 3 or 4 or 5 or 6 or 7)'; $index = 1; foreach ($statesToInclude as $stateId => $notUsed) { $compareMetadata['clauses'][$index] = array('attributeName' => 'state', 'operatorType' => 'equals', 'value' => $stateId); $index++; } $this->assertEquals($compareMetadata, $adaptedMetadata); }