/**
  * @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;
 }
Beispiel #5
0
 /**
  * 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);
 }