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 83 84 85 86 87 88 89 90 91 92 93 94
| <?php
namespace App\Controller;
use App\Entity\Email;
use App\Entity\Client;
use App\Form\EmailType;
use App\Repository\EmailRepository;
use App\Repository\ClientRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/email")
*/
class EmailController extends AbstractController
{
/**
* @Route("/new", name="email_new", methods={"GET","POST"})
*/
public function new(Request $request, \Swift_Mailer $mailer, ClientRepository $clientRepository): Response
{
$email = new Email();
$form = $this->createForm(EmailType::class, $email);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$email->setDateEmission(new \DateTime('now'));
$sujet = $form->get('sujet')->getData();
$priorite = strtoupper($form->get('priorite')->getData());
$emetteur = $form->get('emetteur')->getData();
$destinataireOrigine = $form->get('destinataire')->getData(); // le DO est en fait une collection au format brute
//$ressourceRepository = $this->getDoctrine()->getRepository(Client::class);
$destinataireTab = explode(" ", $destinataireOrigine->first(), 2);
$destinataire = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getEmail();
$corps = $form->get('corps')->getData();
if($form->get('EnvoyerFormulaireDuVehicule')->getData())
{
$message = (new \Swift_Message($priorite . ':' . $sujet))
->setFrom($emetteur)
->setTo($destinataire)
->setReplyTo($emetteur)
->setBody($corps .
'<br><br>' .
'Ce mail contient les fiches de suivi du vehicule'.
'<HR>' .
'<br>'.
'<small><i>Ce mail vous est envoyé avec l\'application Web FollowCarService, l\'efficacité au service de la simplicité<br>
Vous souhaitez vous renseigner sur FollowCarService ? => adresse email <b>|</b> num tel</i></small>',
'text/html'
)
->setContentType('application/pdf');
// $attachment = \Swift_Attachment::fromPath("../fichesVehiculesPdf/FicheSuiviVehicule_$id.pdf");
$vehicules = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getVehicules();
$this->forward('App\Controller\PdfController::historiqueReparationsSending',['vehicules'=>$vehicules]);
$attachment = \Swift_Attachment::fromPath('FicheSuiviVehicule.pdf', 'application/pdf');
$message->attach($attachment);
}
else {
//$pathDebug = getcwd() . "\n";
$message = (new \Swift_Message($priorite . ':' . $sujet))
->setFrom($emetteur)
->setTo($destinataire)
->setReplyTo($emetteur)
->setBody($corps .
'<br><br>' .
'<HR>' .
'<br>'.
'<small><i>Ce mail vous est envoyé avec l\'application Web FollowCarService, l\'efficacité au service de la simplicité<br>
Vous souhaitez vous renseigner sur FollowCarService ? => adresse email <b>|</b> num tel</i></small>',
'text/html'
);
}
$mailer->send($message);
$this->addFlash(
'notice',
"Votre message a bien été envoyé à l'adresse : $destinataire"
);
if($form->get('EnvoyerFormulaireDuVehicule')->getData()){
unlink('FicheSuiviVehicule.pdf');
}
}
return $this->render('email/new.html.twig', [
'email' => $email,
'form' => $form->createView(),
]);
}
} |
Partager