<?php
/**
* Classe InfosController
*
* Contrôleur de gestion des informations du site BACACIER | Software
*/
namespace App\Controller;
use App\Entity\Commune;
use App\Entity\Commerciaux;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class InfosController extends AbstractController
{
/**
* Contrôleur de récupération des informations sur les communes (nom, zone de vent, région de neige, altitudes mini et maxi)
*
* @param Request $request Requête entrante
* @return Response Tableau contenant les informations de chacune des communes (JSON)
* @Route("/infos/commune", name="admin_infos_commune")
*/
public function commune(Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$part = $request->request->get('q');
$communes = $em->getRepository(Commune::class)->search($part);
foreach ($communes as $commune) {
$retour[] = array(
'id' => $commune->getId(),
'text' => $commune->getNom() . ' (' . $commune->getDepartement() . ')',
'vent' => $commune->getZoneVent(),
'neige' => $commune->getRegionNeige(),
'alt_max' => $commune->getAltitudeMax(),
'alt_min' => $commune->getAltitudeMin()
);
}
return new JsonResponse($retour);
}
/**
* Contrôleur de récupération des informations sur les commerciaux (nom, prénom et site)
*
* @param Request $request Requête entrante
* @return Response Tableau contenant la liste des commerciaux (JSON)
* @Route("/infos/commercial", name="admin_infos_commercial")
*/
public function commercialAction(Request $request)
{
$part = $request->request->get('q');
$em = $this->getDoctrine()->getManager();
$commerciaux = $em->getRepository(Commerciaux::class)->searchInName($part);
foreach ($commerciaux as $Commerciaux) {
$retour[] = array(
'id' => $Commerciaux->getId(),
'text' => $Commerciaux->getPrenom() . ' ' . $Commerciaux->getNom() . ' (' . $Commerciaux->getSite() . ')'
);
}
return new JsonResponse($retour);
}
}