/** * @param MarketingList $marketingList * @param string|null $type * @return array */ public function getMarketingListTypedFields(MarketingList $marketingList, $type = null) { if ($marketingList->isManual()) { $typedFields = $this->getEntityTypedFields($marketingList->getEntity(), $type); } else { $typedFields = $this->getQueryTypedFields($marketingList->getSegment(), $type); } return $typedFields; }
/** * {@inheritdoc} */ public function getDataGridConfiguration(MarketingList $marketingList) { if ($marketingList->isManual()) { $mixin = MarketingListProvider::MANUAL_RESULT_ENTITIES_MIXIN; } else { $mixin = MarketingListProvider::RESULT_ENTITIES_MIXIN; } $dataGrid = $this->getMarketingListDataGrid($marketingList, $mixin); return $dataGrid->getConfig(); }
/** * @param MarketingList $marketingList * @param string|null $mixin * * @return QueryBuilder */ public function getMarketingListEntitiesQueryBuilder(MarketingList $marketingList, $mixin = null) { if (!$mixin) { if ($marketingList->isManual()) { $mixin = self::MANUAL_RESULT_ENTITIES_MIXIN; } else { $mixin = self::RESULT_ENTITIES_MIXIN; } } $queryBuilder = clone $this->getMarketingListQueryBuilder($marketingList, $mixin); /** @var From[] $from */ $from = $queryBuilder->getDQLPart('from'); $entityAlias = $from[0]->getAlias(); // Select only entity related information ordered by identifier field for maximum performance $queryBuilder->resetDQLPart('select')->resetDQLPart('orderBy')->select($entityAlias)->orderBy($entityAlias . '.id'); return $queryBuilder; }
/** * @param MarketingList $marketingList * @param string $alias * @return \PHPUnit_Framework_MockObject_MockObject */ protected function assertEntitiesQueryBuilder(MarketingList $marketingList, $alias) { if ($marketingList->isManual()) { $mixin = MarketingListProvider::MANUAL_RESULT_ENTITIES_MIXIN; } else { $mixin = MarketingListProvider::RESULT_ENTITIES_MIXIN; } $queryBuilder = $this->getQueryBuilder(); $dataGrid = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datagrid\\DatagridInterface')->getMockForAbstractClass(); $queryBuilder->expects($this->exactly(2))->method('resetDQLPart')->will($this->returnSelf()); $queryBuilder->expects($this->once())->method('select')->with($alias)->will($this->returnSelf()); $queryBuilder->expects($this->once())->method('orderBy')->with($alias . '.id')->will($this->returnSelf()); $this->assertGetQueryBuilder($marketingList, $queryBuilder, $dataGrid, $mixin); return $queryBuilder; }
/** * Validate Marketing List. * * @param MarketingList $marketingList * @return bool */ protected function isValid(MarketingList $marketingList) { if (!$marketingList->isManual()) { $errors = $this->validator->validate($marketingList->getSegment(), [Constraint::DEFAULT_GROUP, 'marketing_list']); if (count($errors) > 0) { /** @var ConstraintViolationInterface $error */ foreach ($errors as $error) { $this->form->addError(new FormError($error->getMessage(), $error->getMessageTemplate(), $error->getMessageParameters(), $error->getMessagePluralization())); } } } return $this->form->isValid(); }
/** * @param \PHPUnit_Framework_MockObject_MockObject $queryBuilder * @param MarketingList $marketingList * @param string $alias */ protected function assertEntitiesQueryBuilder($queryBuilder, MarketingList $marketingList, $alias) { if ($marketingList->isManual()) { $mixin = MarketingListProvider::MANUAL_RESULT_ENTITIES_MIXIN; } else { $mixin = MarketingListProvider::RESULT_ENTITIES_MIXIN; } $dataGrid = $this->getDataGrid(); $queryBuilder->expects($this->exactly(2))->method('resetDQLPart')->will($this->returnSelf()); $queryBuilder->expects($this->once())->method('select')->with($alias)->will($this->returnSelf()); $queryBuilder->expects($this->once())->method('orderBy')->with($alias . '.id')->will($this->returnSelf()); $this->assertGetQueryBuilder($marketingList, $queryBuilder, $dataGrid, $mixin); }