src/Controller/OficinasController.php line 33
<?phpnamespace App\Controller;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\ResponseHeaderBag;use Symfony\Component\HttpFoundation\BinaryFileResponse;use Symfony\Contracts\Translation\TranslatorInterface;use Doctrine\ORM\EntityManagerInterface;use Knp\Component\Pager\PaginatorInterface;use Symfony\Component\HttpFoundation\Cookie;use Symfony\Component\HttpFoundation\RequestStack;use Doctrine\Persistence\ManagerRegistry as PersistenceManagerRegistry;use Symfony\Component\Cache\Adapter\FilesystemAdapter;use Symfony\Contracts\Cache\ItemInterface;use App\Entity\Contenido;class OficinasController extends AbstractController{#[Route(path: ['es' => '/oficinas-cambio-moneda','en' => '/en/currency-exchange-offices'], name: 'oficinas')]public function oficinas(Request $request, PersistenceManagerRegistry $doctrine): Response{$local=$request->getLocale();$em = $doctrine->getManager();$oficinas = $em->getRepository('App\Entity\Oficina')->findBy(['activo' => true]);$contenido = $em->getRepository('App\Entity\Pagina')->findOneByClave('Oficinas');$provincias = array();foreach($oficinas as $ofi){if(!in_array($ofi->getProvincia(), $provincias)){array_push($provincias, $ofi->getProvincia());}}$localidades = array();foreach($oficinas as $ofi){if(!in_array($ofi->getLocalidad(), $localidades)){array_push($localidades, $ofi->getLocalidad());}}// $provincias = $em->getRepository("App\Entity\Provincia")// ->createQueryBuilder('p')// ->leftJoin('p.localidades', 'l')// ->addSelect('COUNT(l.id) AS HIDDEN totalLocalidades')// ->groupBy('p.id')// //->orderBy('totalLocalidades', 'DESC')// ->orderBy('p.nombre', 'ASC')// ->getQuery()// ->getResult();// var_dump($cotizaciones);die();$returnArray = array('oficinas' => $oficinas,'provincias' => $provincias,'localidades' => $localidades,'contenido' => $contenido);return $this->render('default/listado_oficinas.html.twig', $returnArray);}#[Route(path: ['es' => '/oficinas-cambio-moneda/{slug}','en' => '/en/currency-exchange-offices/{slug}'], name: 'listado_provincia')]public function listadoProvincia(Request $request, PersistenceManagerRegistry $doctrine, $slug): Response{$local=$request->getLocale();$em = $doctrine->getManager();// dump($slug); die();$provinciaId = $em->getRepository("App\Entity\ProvinciaTranslation")->findOneBy(['slug' => $slug, 'locale' => $local]);$provincia = $em->getRepository("App\Entity\Provincia")->findOneBy(['id' => $provinciaId->getTranslatable()]);$localidades = $em->getRepository("App\Entity\Localidad")->findBy(['provincia' => $provincia->getId()],['peso' => 'DESC']);$oficinas = $em->getRepository('App\Entity\Oficina')->findBy(['provincia' => $provincia->getId(), 'activo' => true]);$returnArray = array('provincia' => $provincia,'localidades' => $localidades,'oficinas' => $oficinas,'contenido' => $provincia// 'provinciaIdioma' => $provinciaIdioma);return $this->render('default/listado_provincia.html.twig', $returnArray);}#[Route(path: ['es' => '/oficinas-cambio-moneda/{slugP}/{slugL}','en' => '/en/currency-exchange-offices/{slugP}/{slugL}'], name: 'listado_localidad')]public function listadoLocalidad(Request $request, PersistenceManagerRegistry $doctrine, $slugP, $slugL): Response{$local=$request->getLocale();$em = $doctrine->getManager();$provinciaId = $em->getRepository("App\Entity\ProvinciaTranslation")->findOneBy(['slug' => $slugP, 'locale' => $local]);$provincia = $em->getRepository("App\Entity\Provincia")->findOneBy(['id' => $provinciaId->getTranslatable()]);$localidad = $em->getRepository("App\Entity\Localidad")->findOneBy(['slug' => $slugL]);$localidadIdioma = $em->getRepository("App\Entity\LocalidadTranslation")->findOneBy(['translatable' => $localidad->getId(), 'locale' => $local]);$oficinas = $em->getRepository('App\Entity\Oficina')->findBy(['localidad' => $localidad->getId(), 'activo' => true],['peso' => 'DESC']);$returnArray = array('provincia' => $provincia,'localidad' => $localidad,'localidadIdioma' => $localidadIdioma,'oficinas' => $oficinas,'contenido' => $localidad);return $this->render('default/listado_localidad.html.twig', $returnArray);}#[Route(path: ['es' => '/oficinas-cambio-moneda/{slugP}/{slugL}/{slugO}','en' => '/en/currency-exchange-offices/{slugP}/{slugL}/{slugO}'], name: 'ficha_oficina')]public function fichaOficina(Request $request, PersistenceManagerRegistry $doctrine, $slugP, $slugL, $slugO): Response{$local=$request->getLocale();$em = $doctrine->getManager();$provinciaId = $em->getRepository("App\Entity\ProvinciaTranslation")->findOneBy(['slug' => $slugP, 'locale' => $local]);$provincia = $em->getRepository("App\Entity\Provincia")->findOneBy(['id' => $provinciaId->getTranslatable()]);$localidad = $em->getRepository("App\Entity\Localidad")->findOneBy(['slug' => $slugL]);$oficinaId = $em->getRepository("App\Entity\OficinaTranslation")->findOneBy(['slug' => $slugO, 'locale' => $local]);$oficina = $em->getRepository('App\Entity\Oficina')->findOneBy(['id' => $oficinaId->getTranslatable()]);$oficinaIdioma = $em->getRepository("App\Entity\OficinaTranslation")->findOneBy(['translatable' => $oficina->getId(), 'locale' => $local]);$maxDia = $em->getRepository('App\Entity\Cotizaciones')->getMaxDia($oficina->getId());$fechaMax = new \DateTime($maxDia);$cotizaciones = $em->getRepository('App\Entity\Cotizaciones')->findAllOrdered($fechaMax, $oficina->getId());$returnArray = array('provincia' => $provincia,'localidad' => $localidad,'oficina' => $oficina,'oficinaIdioma' => $oficinaIdioma,'cotizaciones' => $cotizaciones,'diaMax' => $maxDia);return $this->render('default/ficha_oficina.html.twig', $returnArray);}#[Route(path: ['es' => '/oficina/ver/{slugO}','en' => '/en/office/see/{slugO}'], name: 'ficha_oficina_ant')]public function fichaOficinaAnt(Request $request, PersistenceManagerRegistry $doctrine, $slugO): Response{$local=$request->getLocale();$em = $doctrine->getManager();$oficinaIdioma = $em->getRepository('App\Entity\OficinaTranslation')->findOneBy(['slug' => $slugO]);if (!$oficinaIdioma)throw $this->createNotFoundException('No existe la página');$oficina = $oficinaIdioma->getTranslatable();return $this->redirect($this->generateUrl('ficha_oficina',['slugP' => $oficina->getProvincia()->getSlug(), 'slugL' => $oficina->getLocalidad()->getSlug(), 'slugO' => $oficina->getSlug()]),301);}}