Пример #1
0
 /**
  * @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;
 }
Пример #3
0
 /**
  * @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;
 }
Пример #5
0
 /**
  * @return null|string
  */
 public function getEntityName()
 {
     if ($this->marketingList) {
         return $this->marketingList->getEntity();
     }
     return null;
 }
Пример #6
0
 /**
  * @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));
 }