<?php
namespace ParcBundle\Controller;
use App\Entity\Retirage;
use App\Entity\Images;
use ParcBundle\Form\RetirageType;
use App\Service\MailTransport;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Mailer\MailerInterface;
class RetirageController extends AbstractController
{
#[Route('/retirage', name: 'parc_retirage_index')]
public function index(EntityManagerInterface $entityManager, Request $request, MailTransport $mailTransport)
{
$retirage = new Retirage();
$retirage->setCreationDate(new \DateTime());
$form = $this->createForm(RetirageType::class, $retirage);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$numberPhotos = '';
$numberMagnets = '';
$numberKeyChains = '';
// On récupère les images transmises
$images = $form->get('images')->getData();
if (!empty($form->get('numberPhoto')->getData())) {
$numberPhotos = $form->get('numberPhoto')->getData();
}
if (!empty($form->get('numberMagnet')->getData())) {
$numberMagnets = $form->get('numberMagnet')->getData();
}
if (!empty($form->get('numberKeyChain')->getData())) {
$numberKeyChains = $form->get('numberKeyChain')->getData();
}
// On boucle sur les images
foreach ($images as $key => $image) {
// On génère un nouveau nom de fichier
$fichier = md5(uniqid()) . '.' . $image->guessExtension();
// On copie le fichier dans le dossier uploads
$image->move(
$this->getParameter('images_upload'),
$fichier
);
// On crée l'image dans la base de données
$img = new Images();
$img->setName($fichier);
$img->setNumberPhoto($numberPhotos[$key]);
$img->setNumberMagnet($numberMagnets[$key]);
$img->setNumberKeyChain($numberKeyChains[$key]);
$retirage->addImage($img);
}
$entityManager->persist($retirage);
$entityManager->flush();
$name = $retirage->getName();
$firstname = $retirage->getFirstname();
$mail = $retirage->getMail();
$phone = $retirage->getPhone();
$contactFormData = $form->getData();
$from = "Retirage UBPhotographies";
$to = "ub.photographies@gmail.com, alexandre.urbaniak@ubphotographies.com";
$subject = 'Retirage ubphotographies';
$message = "Bonjour,
\r\nVous avez une nouvelle demande de retirage :
\r\n- $name $firstname\r\n- $mail\r\n- $phone
\r\nRendez-vous sur votre espace UBPhotographies pour traiter la demande.";
$mail = $mailTransport->send($from, $to, $subject, $message);
if ($mail == true) {
$this->addFlash('success', 'Votre demande de retirage a bien été envoyée');
} else {
$this->addFlash('error', "Votre demande de retirage n'a pas pu être envoyée, veuillez réessayer.");
}
return $this->redirectToRoute('parc_retirage_index');
}
return $this->render('@parcbundle/parcbundle/retirage/index.html.twig', [
'retirage_form' => $form->createView(),
'step' => $step = '1'
]);
}
}