/** * 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(); }
/** * 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()); } }