1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
public function newAction(Request $request)
{
$question = new Question();
$form = $this->createForm(TblQuestionType::class, $question);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($question);
$em->flush();
$title = $request->request->get('title');
$content = $request->request->get('content');
$ref = $request->query->get('ref');
// requêtes pour récupérer les emails utilisateurs
$qb = $em->createQueryBuilder();
$query1 = $qb->select('n')
->from('AppBundle\Entity\Note', 'n')
->where('n.ref = :ref')
->andWhere('n.note = 2 OR n.note is null')
->setParameter('ref', $ref)
->getQuery()
->getDQL();
$query2 = $qb->select('m')
->from('AppBundle\Entity\SendMail', '')
->where('m.rob = :rob')
->setParameter('rob', '1')
->getQuery()
->getDQL();
$queries = $qb->select('c.commandeId', 'c.dateExpe', 'u.userId', 'u.email')
->from('AppBundle\Entity\Commande', 'c')
->join('AppBundle\Entity\Users', 'u', 'WITH', $qb->expr()->eq('c.userId', 'u.userId'))
->where($qb->expr()->andX(
$qb->expr()->in('c.commandeId', ':query1'),
$qb->expr()->notIn('u.email', ':query2')
))
->andWhere(date_diff(D, 'c.dateExpe', NOW()) > 5)
->setParameters('query1', $query1)
->setParameters('query2', $query2)
->getQuery()
->getResult();
$message = \Swift_Message::newInstance();
$message->setSubject('Envoi mail');
$message->setFrom(array('noreply@domaine.com' => 'domaine'));
foreach ($queries as $query) {
$email = $query->getEmail();
$username = $query->getUsername();
$message->setTo($email);
}
$message->setBody($this->renderView('mail_user.html.twig', array(
'username' => $username,
'title' => $title,
'content' => $content
)));
$message->setCharset('utf-8');
$message->setContentType('text/html');
$this->get('mailer')->send($message)
$response = new JsonResponse();
$response->setData(array(
'formSuccess' => $this->render('layout.html.twig', array(
'form' => $form->createView())
),
'successMessage' => 'Success d\'envoi'
));
return $response; } else {
$response = new JsonResponse(); $response->setData(array(
'formErrors' => $this->render('layout.html.twig', array(
'form' => $form->createView())
),
'errorMessage' => 'Echec lors d\'envoie'
//$this->addFlash('warning', $translator->trans('c2c.message_error'))
));
return $response; }
} |
Partager