src/Controller/VentasController.php line 29

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 VentasController extends AbstractController
  16. {
  17.     private $entityManager;
  18.     public function __construct(EntityManagerInterface $entityManager)
  19.     {
  20.         $this->entityManager $entityManager;
  21.     }
  22.     /**
  23.      * @Route("/ventas", name="ventas")
  24.      */
  25.     public function indexAction(){
  26.         $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidadTotal(3));
  27.         $numPaginas =1;
  28.         if ($totalPropiedades 0) {
  29.             $numPaginas ceil($totalPropiedades 6);
  30.         }
  31.         $propiedades $this->entityManager->getRepository(Propiedades::class)->getPropiedadesPorModalidad(3);
  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('ventas/index.html.twig',
  51.             array(
  52.                 "arrPropiedades"   => $arrPropiedades,
  53.                 "oRegiones"        => $oRegiones,
  54.                 "numPaginas"       => $numPaginas
  55.                 "totalPropiedades" => $totalPropiedades
  56.             )
  57.         );
  58.     }
  59.     /**
  60.      * @Route("/ventas/aplicar_filtro_propiedades", options={"expose"=true}, name="ventas_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('ventas/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("/ventas/cargar_comunas_filtro", options={"expose"=true}, name="cargar_comunas_filtro_ventas")
  118.      */
  119.     public function cargarComunasVentas(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. }