Ejemplo n.º 1
0
 /**
  * Create export job
  *
  * @param Leads $lead
  */
 public function createJob($lead)
 {
     $logger = $this->getContainer()->get('export.logger');
     $config = $lead->getForm()->getConfig();
     $em = $this->getContainer()->get('doctrine')->getManager();
     foreach ($config['export'] as $method => $methodConfig) {
         $job = new Export();
         if (!$this->isValidExportMethod($method)) {
             $job->setLog('Méthode d\'export invalide');
             $logger->info('Méthode d\'export invalide (formulaire ID ' . $lead->getForm()->getId() . ')');
         }
         $job->setMethod($method);
         $job->setLead($lead);
         $job->setForm($lead->getForm());
         $status = $this->getInitialExportStatus($lead, array('method' => $method, 'method_config' => $methodConfig));
         $job->setStatus($status);
         $job->setCreatedAt(new \DateTime());
         $job->setScheduledAt($this->getScheduledDate($methodConfig));
         try {
             $em->persist($job);
             $logger->info('Job export (ID ' . $job->getId() . ') créé avec succès');
         } catch (Exception $e) {
             $logger->error($e->getMessage());
             //Error
         }
     }
     $em->flush();
 }
Ejemplo n.º 2
0
 /**
  * Send email notification
  *
  * @param array $params
  * @param \Tellaw\LeadsFactoryBundle\Entity\Leads $leads
  */
 protected function sendNotification($params, $leads)
 {
     $logger = $this->get('logger');
     $exportUtils = $this->get('export_utils');
     $data = json_decode($leads->getData(), true);
     if (!isset($params['to'])) {
         $logger->error('No recipient available, check JSON form config');
         return;
     }
     $to = $params['to'];
     $from = isset($params['from']) ? $params['from'] : $exportUtils::NOTIFICATION_DEFAULT_FROM;
     $subject = isset($params['subject']) ? $params['subject'] : 'Nouvelle DI issue du formulaire ' . $leads->getForm()->getName();
     $template = isset($params['template']) ? $params['template'] : $exportUtils::NOTIFICATION_DEFAULT_TEMPLATE;
     $message = Swift_Message::newInstance()->setSubject($subject)->setFrom($from)->setTo($to)->setBody($this->renderView('TellawLeadsFactoryBundle:' . $template, array('fields' => $data, 'intro' => 'Nouvelle DI issue du formulaire ' . $leads->getForm()->getName())), 'text/html');
     try {
         $result = $this->get('mailer')->send($message);
     } catch (Exception $e) {
         $logger->error($e->getMessage());
     }
 }