src/Controller/HomeController.php line 38
<?php
namespace App\Controller;
use App\Entity\DepotFichier;
use App\Form\DepotFichierRegionType;
use App\Form\DepotFichierDeptType;
use App\Form\DepotFichierEpciType;
use App\Form\DepotFichierComType;
use App\Model\HelperModel;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\HttpFoundation\RequestStack;
use Doctrine\ORM\EntityManager;
use Doctrine\Persistence\ManagerRegistry as PersistenceManagerRegistry;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Notifier\ChatterInterface;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
use Symfony\Component\Serializer\SerializerInterface;
use Twig\Environment;
use Symfony\Component\String\Slugger\SluggerInterface;
class HomeController extends AbstractController
{
protected $loader;
public function __construct(Environment $twig)
{
$this->loader = $twig->getLoader();
}
#[Route('/', name: 'home')]
public function index(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
return $this->render('index.html.twig');
}
#[Route('/depot-fichier-region', name: 'depot_fichier_region')]
public function depotFichierRegion(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierRegionType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
'class' => 'parsley-examples'
),
'allow_extra_fields' => true,
'action' => $this->generateUrl('depot_success_region'),
]);
$form->handleRequest($request);
/*if ($form->isSubmitted() && $form->isValid()) {
$depotFichier = $form->getData();
dd($request);
}*/
return $this->render('depot_fichier_region.html.twig', [
'form' => $form->createView(),
]);
}
#[Route('/depot-success-region', name: 'depot_success_region')]
public function depotSuccessRegion(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierRegionType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
),
'allow_extra_fields' => true,
'action' => $this->generateUrl('depot_success_region'),
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
$depotFichier = $form->getData();
if($depotFichier->getIdentifiantCollectivite() == null){
$idCollectivite = '28';
}else{
$idCollectivite = $depotFichier->getIdentifiantCollectivite();
}
$repository = $entityManager->getRepository(DepotFichier::class);
$depotFichierRes = $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
return $this->render('depot_success.html.twig',[
'depotFichier' => $depotFichierRes
]);
}
}
#[Route('/depot-success-dept', name: 'depot_success_dept')]
public function depotSuccessDept(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierDeptType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
),
'allow_extra_fields' => true,
'action' => $this->generateUrl('depot_success_dept'),
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
$depotFichier = $form->getData();
if($depotFichier->getIdentifiantCollectivite() == null){
$idCollectivite = '28';
}else{
$idCollectivite = $depotFichier->getIdentifiantCollectivite();
}
$repository = $entityManager->getRepository(DepotFichier::class);
$depotFichierRes = $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
return $this->render('depot_success.html.twig',[
'depotFichier' => $depotFichierRes
]);
}
}
#[Route('/depot-success-epci', name: 'depot_success_epci')]
public function depotSuccessEpci(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierEpciType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
),
'allow_extra_fields' => true,
'action' => $this->generateUrl('depot_success_epci'),
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
$depotFichier = $form->getData();
if($depotFichier->getIdentifiantCollectivite() == null){
$idCollectivite = '28';
}else{
$idCollectivite = $depotFichier->getIdentifiantCollectivite();
}
$repository = $entityManager->getRepository(DepotFichier::class);
$depotFichierRes = $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
return $this->render('depot_success.html.twig',[
'depotFichier' => $depotFichierRes
]);
}
}
#[Route('/depot-success-com', name: 'depot_success_com')]
public function depotSuccessCom(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierComType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
),
'allow_extra_fields' => true,
'action' => $this->generateUrl('depot_success_com'),
]);
$form->handleRequest($request);
if ($form->isSubmitted()) {
$depotFichier = $form->getData();
if($depotFichier->getIdentifiantCollectivite() == null){
$idCollectivite = '28';
}else{
$idCollectivite = $depotFichier->getIdentifiantCollectivite();
}
$repository = $entityManager->getRepository(DepotFichier::class);
$depotFichierRes = $repository->findOneBy(['identifiantCollectivite' => $idCollectivite],array('dateDepot' => 'DESC'));
return $this->render('depot_success.html.twig',[
'depotFichier' => $depotFichierRes
]);
}
}
#[Route('/upload-fichier-region', name: 'upload_fichier_region')]
public function uploadFichierRegion(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger, HelperModel $helperModel): JsonResponse
{
$myfile = $request->files->get('file');
// this condition is needed because the 'brochure' field is not required
// so the PDF file must be processed only when a file is uploaded
if ($myfile) {
$originalFilename = pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
// this is needed to safely include the file name as part of the URL
$safeFilename = 'reg-28-nouvelle-aquitaine-'.time();
$newFilename = $safeFilename.'.'.$myfile->guessExtension();
// Move the file to the directory where brochures are stored
try {
$helperModel->addUnimportedDocumentAzure("fichiers/", $myfile, $newFilename);
$myfile->move(
$this->getParameter('upload_directory'),
$newFilename
);
$depotFichier = new Depotfichier();
$depotFichier->setPrenom($request->get('prenom'));
$depotFichier->setNom($request->get('nom'));
$depotFichier->setFonction($request->get('fonction'));
$depotFichier->setEmail($request->get('email'));
$depotFichier->setTelephone($request->get('telephone'));
$depotFichier->setTypeCollectivite('region');
$depotFichier->setIdentifiantCollectivite('28');
$depotFichier->setIp($request->getClientIp());
$depotFichier->setDateDepot(new \DateTimeImmutable("now"));
$depotFichier->setFichier($newFilename);
$depotFichier->setOriginalFilename($myfile->getClientOriginalName());
$entityManager->persist($depotFichier);
$entityManager->flush();
return $this->json($depotFichier->getId(), $status = 200, $headers = [], $context = []);
} catch (FileException $e) {
return $this->json($e, $status = 500, $headers = [], $context = []);
}
}
}
#[Route('/check-region-exist/{depotFichier}', name: 'check_region_exist')]
public function checkFichierRegion(DepotFichier $depotFichier, EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger, HelperModel $helperModel): bool
{
$repository = $entityManager->getRepository(DepotFichier::class);
$depotFichierRes = $repository->findOneBy(['id' => $depotFichier]);
if($depotFichierRes != null){
return true;
}else{
return false;
}
}
#[Route('/depot-fichier-dept', name: 'depot_fichier_dept')]
public function depotFichierDept(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierDeptType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
'class' => 'parsley-form-dept'
),
'action' => $this->generateUrl('depot_success_dept'),
]);
return $this->render('depot_fichier_dept.html.twig', [
'form' => $form->createView(),
]);
}
#[Route('/upload-fichier-dept', name: 'upload_fichier_dept')]
public function uploadFichierDept(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger, HelperModel $helperModel): JsonResponse
{
$myfile = $request->files->get('file');
// this condition is needed because the 'brochure' field is not required
// so the PDF file must be processed only when a file is uploaded
if ($myfile) {
$originalFilename = pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
// this is needed to safely include the file name as part of the URL
$safeFilename = 'dept-'.$request->get('identifiantCollectivite').'-'.time();
$newFilename = $safeFilename.'.'.$myfile->guessExtension();
// Move the file to the directory where brochures are stored
try {
$helperModel->addUnimportedDocumentAzure("fichiers/", $myfile, $newFilename);
$myfile->move(
$this->getParameter('upload_directory'),
$newFilename
);
$depotFichier = new Depotfichier();
$depotFichier->setPrenom($request->get('prenom'));
$depotFichier->setNom($request->get('nom'));
$depotFichier->setFonction($request->get('fonction'));
$depotFichier->setEmail($request->get('email'));
$depotFichier->setTelephone($request->get('telephone'));
$depotFichier->setTypeCollectivite('dept');
$depotFichier->setIdentifiantCollectivite($request->get('identifiantCollectivite'));
$depotFichier->setIp($request->getClientIp());
$depotFichier->setDateDepot(new \DateTimeImmutable("now"));
$depotFichier->setFichier($newFilename);
$depotFichier->setOriginalFilename($myfile->getClientOriginalName());
$entityManager->persist($depotFichier);
$entityManager->flush();
} catch (FileException $e) {
return $this->json($e, $status = 500, $headers = [], $context = []);
}
return $this->json('success', $status = 200, $headers = [], $context = []);
}
}
#[Route('/check-exist/{depotFichier}', name: 'check_exist')]
public function checkDepotExist($depotFichier, EntityManagerInterface $entityManager): JsonResponse
{
$repository = $entityManager->getRepository(DepotFichier::class);
$depotFichierRes = $repository->findOneBy(['identifiantCollectivite' => $depotFichier],['dateDepot' => 'DESC']);
if($depotFichierRes != null){
return $this->json($depotFichierRes, $status = 200, $headers = [], $context = []);
}else{
return $this->json('not-exist', $status = 200, $headers = [], $context = []);
}
}
#[Route('/depot-fichier-epci', name: 'depot_fichier_epci')]
public function depotFichierEpci(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierEpciType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
'class' => 'parsley-examples'
),
'action' => $this->generateUrl('depot_success_epci'),
]);
return $this->render('depot_fichier_epci.html.twig', [
'form' => $form->createView(),
]);
}
#[Route('/upload-fichier-epci', name: 'upload_fichier_epci')]
public function uploadFichierEpci(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger, HelperModel $helperModel): JsonResponse
{
$myfile = $request->files->get('file');
// this condition is needed because the 'brochure' field is not required
// so the PDF file must be processed only when a file is uploaded
if ($myfile) {
$originalFilename = pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
// this is needed to safely include the file name as part of the URL
$safeFilename = 'epci-'.$request->get('identifiantCollectivite').'-'.time();
$newFilename = $safeFilename.'.'.$myfile->guessExtension();
// Move the file to the directory where brochures are stored
try {
$helperModel->addUnimportedDocumentAzure("fichiers/", $myfile, $newFilename);
$myfile->move(
$this->getParameter('upload_directory'),
$newFilename
);
$depotFichier = new Depotfichier();
$depotFichier->setPrenom($request->get('prenom'));
$depotFichier->setNom($request->get('nom'));
$depotFichier->setFonction($request->get('fonction'));
$depotFichier->setEmail($request->get('email'));
$depotFichier->setTelephone($request->get('telephone'));
$depotFichier->setTypeCollectivite('epci');
$depotFichier->setIdentifiantCollectivite($request->get('identifiantCollectivite'));
$depotFichier->setIp($request->getClientIp());
$depotFichier->setDateDepot(new \DateTimeImmutable("now"));
$depotFichier->setFichier($newFilename);
$depotFichier->setOriginalFilename($myfile->getClientOriginalName());
$entityManager->persist($depotFichier);
$entityManager->flush();
} catch (FileException $e) {
return $this->json($e, $status = 500, $headers = [], $context = []);
}
return $this->json('success', $status = 200, $headers = [], $context = []);
}
}
#[Route('/depot-fichier-commune', name: 'depot_fichier_com')]
public function depotFichierCommune(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger): Response
{
$depotFichier = new DepotFichier();
$form = $this->createForm(DepotFichierComType::class, $depotFichier, [
'attr' => array(
'id' => 'form-create',
'novalidate' => 'novalidate',
),
'action' => $this->generateUrl('depot_success_com'),
]);
return $this->render('depot_fichier_com.html.twig', [
'form' => $form->createView(),
]);
}
#[Route('/upload-fichier-com', name: 'upload_fichier_com')]
public function uploadFichierCom(EntityManagerInterface $entityManager, Request $request, SluggerInterface $slugger, HelperModel $helperModel): JsonResponse
{
$myfile = $request->files->get('file');
// this condition is needed because the 'brochure' field is not required
// so the PDF file must be processed only when a file is uploaded
if ($myfile) {
$originalFilename = pathinfo($myfile->getClientOriginalName(), PATHINFO_FILENAME);
// this is needed to safely include the file name as part of the URL
$safeFilename = 'com-'.$request->get('identifiantCollectivite').'-'.time();
$newFilename = $safeFilename.'.'.$myfile->guessExtension();
// Move the file to the directory where brochures are stored
try {
$helperModel->addUnimportedDocumentAzure("fichiers/", $myfile, $newFilename);
$myfile->move(
$this->getParameter('upload_directory'),
$newFilename
);
$depotFichier = new Depotfichier();
$depotFichier->setPrenom($request->get('prenom'));
$depotFichier->setNom($request->get('nom'));
$depotFichier->setFonction($request->get('fonction'));
$depotFichier->setEmail($request->get('email'));
$depotFichier->setTelephone($request->get('telephone'));
$depotFichier->setTypeCollectivite('com');
$depotFichier->setIdentifiantCollectivite($request->get('identifiantCollectivite'));
$depotFichier->setIp($request->getClientIp());
$depotFichier->setDateDepot(new \DateTimeImmutable("now"));
$depotFichier->setFichier($newFilename);
$depotFichier->setOriginalFilename($myfile->getClientOriginalName());
$entityManager->persist($depotFichier);
$entityManager->flush();
} catch (FileException $e) {
return $this->json($e, $status = 500, $headers = [], $context = []);
}
return $this->json('success', $status = 200, $headers = [], $context = []);
}
}
/*#[Route('/{path}')]
public function root($path)
{
if ($this->loader->exists('poubelle/'.$path.'.html.twig')) {
if ($path == '/' || $path == 'home') {
die('Home');
}
return $this->render('poubelle/'.$path.'.html.twig');
}
throw $this->createNotFoundException();
}*/
}