src/Controller/ArriendosController.php line 198

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use App\Entity\Propiedades;
  10. use App\Entity\Imagenes;
  11. use App\Entity\Regiones;
  12. use App\Entity\Modalidad;
  13. use App\Entity\TipoPropiedad;
  14. use App\Entity\Comunas;
  15. class ArriendosController extends AbstractController
  16. {
  17.     private $entityManager;
  18.     public function __construct(EntityManagerInterface $entityManager)
  19.     {
  20.         $this->entityManager $entityManager;
  21.     }
  22.     /**
  23.      * @Route("/arriendos", name="arriendos")
  24.      */
  25.     public function indexAction(){        
  26.         $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidadTotal());
  27.         $numPaginas =0;
  28.         if ($totalPropiedades 0) {
  29.             $numPaginas ceil($totalPropiedades 6);
  30.         }
  31.         $propiedades $this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidad();
  32.         
  33.         $arrPropiedades = array();
  34.         foreach ($propiedades as $key => $propiedad) {
  35.             
  36.             $arrPropiedades[$key]["id"]          = $propiedad['id'];   
  37.             $arrPropiedades[$key]["titulo"]      = $propiedad['titulo'];
  38.             $arrPropiedades[$key]["valor"]       = $propiedad['valor'];
  39.             $arrPropiedades[$key]["uf"]       = $propiedad['uf'];
  40.             $arrPropiedades[$key]["banios"]      = $propiedad['numeroBanios'];
  41.             $arrPropiedades[$key]["dormitorios"] = $propiedad['numeroDormitorios'];
  42.             $arrPropiedades[$key]["tipoPropiedad"] = $propiedad['tipo'];
  43.             $arrPropiedades[$key]["imagenes"]    = array();
  44.             $oImagenes    $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $propiedad['id']));
  45.             foreach ($oImagenes as $keyimg => $img) {
  46.                 $arrPropiedades[$key]["imagenes"][$keyimg]["nombre"] = $img->getNombre();
  47.             }
  48.         }    
  49.         $oRegiones $this->entityManager->getRepository(Regiones::class)->findAll();
  50.         return $this->render('arriendos/index.html.twig'
  51.             array(
  52.                 "arrPropiedades"   => $arrPropiedades,
  53.                 "oRegiones"        => $oRegiones,
  54.                 "numPaginas"       => $numPaginas
  55.                 "totalPropiedades" => $totalPropiedades
  56.             )
  57.         );
  58.     }
  59.     /**
  60.      * @Route("/arriendos/aplicar_filtro_propiedades", options={"expose"=true}, name="arriendos_aplicar_filtro")
  61.      */
  62.     public function aplicarFiltroPropiedadesAction(Request $request){
  63.         $arrModalidad     $request->request->get('filtro_propiedad_modalidad');       
  64.         $ordenar          $request->request->get('filtro_propiedad_ordenar');
  65.         $region           $request->request->get('filtro_propiedad_region');
  66.         $comuna           $request->request->get('filtro_propiedad_comuna');
  67.         $arrTipoPropiedad $request->request->get('filtro_propiedad_tipo');
  68.         $dormitorios      $request->request->get('filtro_propiedad_dormitorios');
  69.         $banios           $request->request->get('filtro_propiedad_banios');
  70.         $valor            $request->request->get('filtro_propiedad_valor');
  71.         $pagina           $request->request->get('filtro_propiedad_pagina');
  72.         $flagFiltros      $request->request->get('filtro_propiedad_flag');
  73.         $numItemPaginas   6;
  74.         $offset = ($pagina 1) * $numItemPaginas;
  75.         
  76.         $propiedades $this->entityManager->getRepository(Propiedades::class)->aplicarFiltroPropiedad($arrModalidad$ordenar$region$comuna$arrTipoPropiedad$dormitorios$banios$valor$numItemPaginas$offset);
  77.         $arrPropiedades = array();
  78.         foreach ($propiedades as $key => $propiedad) {
  79.             
  80.             $arrPropiedades[$key]["id"]            = $propiedad['id'];   
  81.             $arrPropiedades[$key]["titulo"]        = $propiedad['titulo'];
  82.             $arrPropiedades[$key]["valor"]         = $propiedad['valor'];
  83.             $arrPropiedades[$key]["uf"]         = $propiedad['uf'];
  84.             $arrPropiedades[$key]["banios"]        = $propiedad['numeroBanios'];
  85.             $arrPropiedades[$key]["dormitorios"]   = $propiedad['numeroDormitorios'];
  86.             $arrPropiedades[$key]["tipoPropiedad"] = $propiedad['tipo'];
  87.             $arrPropiedades[$key]["imagenes"]      = array();
  88.             $oImagenes    $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $propiedad['id']));
  89.             foreach ($oImagenes as $keyimg => $img) {
  90.                 $arrPropiedades[$key]["imagenes"][$keyimg]["nombre"] = $img->getNombre();
  91.             }
  92.         } 
  93.         if( (!empty($arrModalidad)) || (!empty($ordenar)) || (!empty($region)) || (!empty($comuna)) || (!empty($arrTipoPropiedad)) || (!empty($dormitorios)) || (!empty($banios)) || (!empty($valor)) ){
  94.             
  95.             if ($flagFiltros) {
  96.                 $offset = (1) * $numItemPaginas;
  97.             }
  98.             $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->aplicarFiltroPropiedad($arrModalidad$ordenar$region$comuna$arrTipoPropiedad$dormitorios$banios$valor9999999$offset));
  99.         }else{
  100.             $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidadTotal());
  101.         }
  102.         $numPaginas =0;
  103.         if ($totalPropiedades 0) {
  104.             $numPaginas ceil($totalPropiedades 6);
  105.         }
  106.         return $this->render('arriendos/mostrarFiltroPropiedades.html.twig'
  107.             array(
  108.                 "arrPropiedades"   => $arrPropiedades,
  109.                 "numPaginas"       => $numPaginas,
  110.                 "totalPropiedades" => $totalPropiedades,
  111.                 "flagFiltros"      => $flagFiltros,
  112.                 "pagina"           => $pagina
  113.             )
  114.         );
  115.     }
  116.     /**
  117.      * @Route("/arriendos/cargar_comunas_filtro", options={"expose"=true}, name="cargar_comunas_filtro")
  118.      */
  119.     public function cargarComunasBuscador(Request $request){
  120.         $idRegion $request->request->get('idRegion');
  121.         $oComunas $this->entityManager->getRepository(Comunas::class)->findBy(array("idRegion" => $idRegion));
  122.         $arrComunas = array();
  123.         foreach ($oComunas as $value) {
  124.             $arrComunas[$value->getId()] = $value->getNombre();
  125.         }
  126.         return new JsonResponse($arrComunas);
  127.     }
  128.     /**
  129.      * @Route("/arriendos/amoblados", name="amoblados")
  130.      */
  131.     public function amobladosAction(){
  132.         $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidadTotal(2));
  133.         $numPaginas =1;
  134.         if ($totalPropiedades 0) {
  135.             $numPaginas ceil($totalPropiedades 6);
  136.         }
  137.         $propiedades $this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidad(2);
  138.         
  139.         $arrPropiedades = array();
  140.         foreach ($propiedades as $key => $propiedad) {
  141.             
  142.             $arrPropiedades[$key]["id"]            = $propiedad['id'];   
  143.             $arrPropiedades[$key]["titulo"]        = $propiedad['titulo'];
  144.             $arrPropiedades[$key]["valor"]         = $propiedad['valor'];
  145.             $arrPropiedades[$key]["uf"]            = $propiedad['uf'];
  146.             $arrPropiedades[$key]["banios"]        = $propiedad['numeroBanios'];
  147.             $arrPropiedades[$key]["dormitorios"]   = $propiedad['numeroDormitorios'];
  148.             $arrPropiedades[$key]["tipoPropiedad"] = $propiedad['tipo'];
  149.             $arrPropiedades[$key]["imagenes"]      = array();
  150.             $oImagenes    $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $propiedad['id']));
  151.             foreach ($oImagenes as $keyimg => $img) {
  152.                 $arrPropiedades[$key]["imagenes"][$keyimg]["nombre"] = $img->getNombre();
  153.             }
  154.         }    
  155.         $oRegiones $this->entityManager->getRepository(Regiones::class)->findAll();
  156.         return $this->render('arriendos/amoblados.html.twig',
  157.             array(
  158.                 "arrPropiedades"   => $arrPropiedades,
  159.                 "oRegiones"        => $oRegiones,
  160.                 "numPaginas"       => $numPaginas
  161.                 "totalPropiedades" => $totalPropiedades
  162.             )
  163.         );
  164.     }
  165.     /**
  166.      * @Route("/arriendos/sin-amoblar", name="sin_amoblar")
  167.      */
  168.     public function sinAmoblarAction(){
  169.         $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidadTotal(1));
  170.         $numPaginas =1;
  171.         if ($totalPropiedades 0) {
  172.             $numPaginas ceil($totalPropiedades 6);
  173.         }
  174.         $propiedades $this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidad(1);
  175.         
  176.         $arrPropiedades = array();
  177.         foreach ($propiedades as $key => $propiedad) {
  178.             
  179.             $arrPropiedades[$key]["id"]            = $propiedad['id'];   
  180.             $arrPropiedades[$key]["titulo"]        = $propiedad['titulo'];
  181.             $arrPropiedades[$key]["valor"]         = $propiedad['valor'];
  182.             $arrPropiedades[$key]["uf"]            = $propiedad['uf'];
  183.             $arrPropiedades[$key]["banios"]        = $propiedad['numeroBanios'];
  184.             $arrPropiedades[$key]["dormitorios"]   = $propiedad['numeroDormitorios'];
  185.             $arrPropiedades[$key]["tipoPropiedad"] = $propiedad['tipo'];
  186.             $arrPropiedades[$key]["imagenes"]      = array();
  187.             $oImagenes    $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $propiedad['id']));
  188.             foreach ($oImagenes as $keyimg => $img) {
  189.                 $arrPropiedades[$key]["imagenes"][$keyimg]["nombre"] = $img->getNombre();
  190.             }
  191.         }    
  192.         $oRegiones $this->entityManager->getRepository(Regiones::class)->findAll();
  193.         return $this->render('arriendos/sinAmoblar.html.twig',
  194.             array(
  195.                 "arrPropiedades"   => $arrPropiedades,
  196.                 "oRegiones"        => $oRegiones,
  197.                 "numPaginas"       => $numPaginas
  198.                 "totalPropiedades" => $totalPropiedades
  199.             )
  200.         );
  201.     }
  202. }