<?php
namespace App\Controller\Frontend;
use App\Entity\Block;
use App\Entity\model\Rent;
use App\Form\RentType;
use App\Repository\BlockRepository;
use App\Repository\StopRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
class RentABusController extends AbstractController {
/** @required */
public BlockRepository $blockRepo;
/**
* @Route("/location-bus", name="page_quotation", options={"i18n_locales"={"fr","en"}})
* @Template("Default/rent/quotation.html.twig")
*/
public function quotationRentFormAction(Request $request, MailerInterface $mailer, StopRepository $stopRepo) {
$block = $this->getBlock($request);
$rent = new Rent();
$rent->setDepStop($stopRepo->find(10));
$rent->setArrStop($stopRepo->find(6));
$rent->setDepDatetime(new \DateTime('10:00'));
$rent->setToDatetime(new \DateTime('10:00'));
$form = $this->createForm(RentType::class, $rent);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
/** @var Rent $rent */
$rent = $form->getData();
if ($rent->getBack()) {
$back = "Pas de retour <br/>";
} else {
$back = "<label>Date de retour : </label>" . $rent->getToDatetime()->format('Y-m-d') . "<br/>
<label>Horaire de retour : </label>" . $rent->getToDatetime()->format('H:i') . "<br/>";
}
$message = (new Email())
->subject('Nouvelle demande de devis [ComparaBUS]')
->from('remy.cloutrier@gmail.com')
->to('contact@comparabus.com')
->replyTo($rent->getEmail())
->html("<html>
<body>
<div>
<div>
<p>Bonjour,<br/>
Vous trouverez ci-dessous toutes les informations concernant cette nouvelle demande de devis :
</p>
</div><hr>
<div style=\"color: #0b3e6f\">
<label>Nom : </label>" . $rent->getName() . " <br/>
<label>Adresse email : </label>" . $rent->getEmail() . "<br/>
<label>Téléphone : </label>".$rent->getPhone()."<br/>
<label>Nombre de personnes : </label>" . $rent->getSeat() . " <br/>
<h4>Départ</h4>
<label>Lieu de départ : <label>" . $rent->getDepStop()->getName() . "<br/>
<label>Date de départ : </label>" . $rent->getDepDatetime()->format('Y-m-d') . "<br/>
<label>Horaire de départ : </label>" . $rent->getDepDatetime()->format('H:i') . "<br/>
<h4>Arrivée</h4>
<label>Lieu d’arrivée : </label>" . $rent->getArrStop()->getName() . " <br/>
<h4>Retour</h4>
$back
<h4>Commentaires : </h4><p>" . $rent->getComment() . "</p><br/>
</div><hr>
<div>
<p>
Bonne réception,<br/>Bien cordialement,
</p>
</div>
</div>
</body>
<footer>
<h3>L’équipe ComparaBUS</h3>
<p>Email : partner@comparabus.com</p>
<span>
<a href=\"https://www.comparabus.com/\">
<img src=\"https://www.comparabus.com/images/press/media/comparabus_logo-name_w300.png\" width=\" 64 px\">
</a>
</span>
</footer>
</html>",
'text/html'
);
$mailer->send($message);
$this->addFlash('message', [1]);
}
//$block = $this->getBlockRepo()->findOnebyPathNotNull($request->getPathInfo() . '#modification');
return [
'form' => $form->createView(),
'block' => $block
];
}
/**
* Get the block if exists
*/
private function getBlock(Request $request): Block {
$currentUrl = $request->getPathInfo();
$block = $this->blockRepo->findOneByPath($currentUrl);
if (!$block) {
throw $this->createNotFoundException('Page/Blog does not exist');
}
return $block;
}
}