Beispiel #1
0
 /**
  * @param Channel $channel
  */
 public function scheduleRecalculation(Channel $channel = null)
 {
     if ($channel) {
         $isActiveChannel = $channel->getStatus() === Channel::STATUS_ACTIVE;
         $channelData = $channel->getData();
         $rfmEnabled = !empty($channelData[RFMAwareInterface::RFM_STATE_KEY]);
         if (!$isActiveChannel || !$rfmEnabled) {
             return;
         }
     }
     if ($this->getJob()) {
         return;
     }
     $args = [];
     if ($channel) {
         $argument = sprintf('--channel=%s', $channel->getId());
         $channelJob = $this->getJob($argument);
         if ($channelJob) {
             return;
         }
         $args = [$argument];
     }
     $job = new Job(CalculateAnalyticsCommand::COMMAND_NAME, $args);
     $em = $this->doctrineHelper->getEntityManager($job);
     if (!$channel) {
         $channelJobs = $this->getJob('--channel');
         if ($channelJobs) {
             foreach ($channelJobs as $channelJob) {
                 $em->remove($channelJob);
             }
         }
     }
     $em->persist($job);
     $em->flush($job);
 }
Beispiel #2
0
 /**
  * @param EntityManager    $em
  * @param SettingsProvider $settingsProvider
  * @param Channel          $channel
  */
 public function __construct(EntityManager $em, SettingsProvider $settingsProvider, Channel $channel)
 {
     $this->em = $em;
     $this->settingsProvider = $settingsProvider;
     $this->channel = $channel;
     $this->channelType = $channel->getChannelType();
     $this->dataSource = $channel->getDataSource();
     $this->name = $channel->getName();
     $this->owner = $channel->getOwner();
     $this->entities = $channel->getEntities();
     $this->status = (bool) $channel->getStatus();
 }
Beispiel #3
0
 /**
  * @Route(
  *      "/status/change/{id}",
  *      requirements={"id"="\d+"},
  *      name="orocrm_channel_change_status"
  *  )
  * @AclAncestor("orocrm_channel_update")
  */
 public function changeStatusAction(Channel $channel)
 {
     if ($channel->getStatus() == Channel::STATUS_ACTIVE) {
         $message = 'orocrm.channel.controller.message.status.deactivated';
         $channel->setStatus(Channel::STATUS_INACTIVE);
     } else {
         $message = 'orocrm.channel.controller.message.status.activated';
         $channel->setStatus(Channel::STATUS_ACTIVE);
     }
     $this->getDoctrine()->getManager()->flush();
     $event = new ChannelChangeStatusEvent($channel);
     $this->get('event_dispatcher')->dispatch(ChannelChangeStatusEvent::EVENT_NAME, $event);
     $this->get('session')->getFlashBag()->add('success', $this->get('translator')->trans($message));
     return $this->redirect($this->generateUrl('orocrm_channel_view', ['id' => $channel->getId(), '_enableContentProviders' => 'mainMenu']));
 }