/** * @param MarketingList $marketingList * @param array $result * @return MarketingListItem */ public function contactResultRow(MarketingList $marketingList, array $result) { $idName = $this->doctrineHelper->getSingleEntityIdentifierFieldName($marketingList->getEntity()); if (empty($result[$idName])) { throw new \InvalidArgumentException('Result row must contain identifier field'); } return $this->contact($marketingList, $result[$idName]); }
/** * @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; }
/** * @Route("/view/{id}", name="orocrm_marketing_list_view", requirements={"id"="\d+"}, defaults={"id"=0}) * @Acl( * id="orocrm_marketing_list_view", * type="entity", * permission="VIEW", * class="OroCRMMarketingListBundle:MarketingList" * ) * @Template * * @param MarketingList $entity * * @return array */ public function viewAction(MarketingList $entity) { $entityConfig = $this->get('orocrm_marketing_list.entity_provider')->getEntity($entity->getEntity()); return ['entity' => $entity, 'config' => $entityConfig, 'gridName' => Segment::GRID_PREFIX . $entity->getSegment()->getId()]; }
/** * {@inheritdoc} */ protected function getEntitiesQueryBuilder(MarketingList $marketingList) { $className = $marketingList->getEntity(); $qb = $this->doctrineHelper->getEntityManager($className)->getRepository($className)->createQueryBuilder('e'); return $qb; }
/** * @return null|string */ public function getEntityName() { if ($this->marketingList) { return $this->marketingList->getEntity(); } return null; }
/** * @param MarketingList $marketingList */ protected function processSegment(MarketingList $marketingList) { $requestData = $this->request->get($this->form->getName()); $segment = $marketingList->getSegment(); if (!$segment) { $segment = new Segment(); } $segmentName = $this->translator->trans('orocrm.marketinglist.segment', ['%name%' => $marketingList->getName()]); $segment->setName($segmentName)->setEntity($marketingList->getEntity())->setType($this->getSegmentTypeByMarketingListType($marketingList->getType()))->setDefinition($requestData['definition'])->setOwner($marketingList->getOwner()->getOwner()); $marketingList->setSegment($segment); }
/** * @param MarketingList $marketingList * @param int $id * * @Rest\Get( * "/marketinglist/{marketingList}/unremove/{id}" * ) * @ApiDoc( * description="Delete MarketingListRemovedItem by marketing list entity", * resource=true * ) * @AclAncestor("orocrm_marketing_list_removed_item_delete") * * @return Response */ public function unremoveAction(MarketingList $marketingList, $id) { /** @var MarketingListRemovedItem[] $forRemove */ $forRemove = $this->getManager()->getRepository()->findBy(array('marketingList' => $marketingList, 'entityId' => $id)); if ($forRemove) { try { $item = $forRemove[0]; $this->getDeleteHandler()->handleDelete($item->getId(), $this->getManager()); } catch (EntityNotFoundException $notFoundEx) { return $this->handleView($this->view(null, Codes::HTTP_NOT_FOUND)); } catch (ForbiddenException $forbiddenEx) { return $this->handleView($this->view(['reason' => $forbiddenEx->getReason()], Codes::HTTP_FORBIDDEN)); } } $entityName = $this->get('oro_entity_config.provider.entity')->getConfig($marketingList->getEntity())->get('label'); return $this->handleView($this->view(array('successful' => true, 'message' => $this->get('translator')->trans('orocrm.marketinglist.controller.unremoved', ['%entityName%' => $this->get('translator')->trans($entityName)])), Codes::HTTP_OK)); }