<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
use App\Entity\Categoria;
use Symfony\Component\HttpFoundation\Request;
//
use App\Entity\Contacto;
use App\Entity\Servicio;
use App\Entity\Informacion;
use App\Entity\Producto;
use App\Entity\Cliente;
use App\Entity\Noticia;
class SecurityController extends AbstractController
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
return $this->redirectToRoute('landing_page');
}
/**
* @Route("/index", name="landing_page")
*/
public function landingPageAction(Request $request)
{
//return $this->render('public/landing_page.html.twig');
$em = $this->getDoctrine()->getManager();
$contacto=$this->getDoctrine()->getRepository(Contacto::class)->findAll([],['id'=>'ASC']);
$dato=null;
if($contacto){
$dato=$contacto[0];
}
$servicio=$this->getDoctrine()->getRepository(Servicio::class)->findAll([],['id'=>'ASC']);
$servi=null;
if($servicio){
$servi=$servicio[0];
}
$informacion=$this->getDoctrine()->getRepository(Informacion::class)->findAll([],['id'=>'ASC']);
$info=[];
if($informacion){
$info=$informacion;
}
// $categoriaProducto=$this->getDoctrine()->getRepository(Producto::class)->findAll([],['id'=>'ASC']);
$categoriaProducto = $em->getRepository(Categoria::class)->findAll([],['id'=>'ASC']);
$prod=null;
if($categoriaProducto){
$prod=$categoriaProducto[0];
}
$cliente=$this->getDoctrine()->getRepository(Cliente::class)->findAll([],['id'=>'ASC']);
return $this->render('landing/landing_home.html.twig',array('contacto'=>$dato,'servicio'=>$servicio,
'informacion'=>$info, 'categoriasProducto'=>$categoriaProducto, 'cliente'=>$cliente ));
}
/**
* @Route("/login", name="app_login")
*/
public function login(AuthenticationUtils $authenticationUtils): Response
{
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
return $this->render('security/login.html.twig', ['last_username' => $lastUsername, 'error' => $error]);
}
/**
* @Route("/direc", name="app_direc")
*/
public function direc(AuthenticationUtils $authenticationUtils): Response
{
if($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')){
return $this->redirectToRoute('empresa_plan_index');
}
/*
if($this->get('security.authorization_checker')->isGranted('ROLE_EMPRESA')){
return $this->redirectToRoute('empresa_planes_index');
}*/
if($this->get('security.authorization_checker')->isGranted('ROLE_EMPRESA_EMPLEADO')){
return $this->redirectToRoute('empresa_planes_index');
}
if($this->get('security.authorization_checker')->isGranted('ROLE_GESTOR')){
return $this->redirectToRoute('empresa_index');
}
}
/**
* @Route("/logout", name="app_logout")
*/
public function logout()
{
throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
}
/**
* @Route("{id}/servicios", name="landing_servicio")
*/
public function servicioAction(Request $request)
{
//return $this->render('public/landing_page.html.twig');
$id = (int) $request->get('id');
//var_dump($id);die;
$em = $this->getDoctrine()->getManager();
$contacto=$em->getRepository(Contacto::class)->findAll([],['id'=>'ASC']);
$dato=null;
if($contacto){
$dato=$contacto[0];
}
$producto=$em->getRepository(Producto::class)->findAll([],['id'=>'ASC']);
$prod=null;
if($producto){
$prod=$producto[0];
}
$categoriasProducto=$em->getRepository(Categoria::class)->findAll([],['id'=>'ASC']);
$servicio=$em->getRepository(Servicio::class)->findAll([],['id'=>'ASC']);
$servi=null;
if($servicio){
$servi=$servicio[0];
}
$servi=$em->getRepository(Servicio::class)->findOneBy(['id'=>$id],['id'=>'ASC']);
$cliente=$em->getRepository(Cliente::class)->findAll([],['id'=>'ASC']);
return $this->render('landing/landing_servicio.html.twig',
array('contacto'=>$dato,'servicio'=>$servicio,'servi'=>$servi,
'productos'=>$producto,
'categoriasProducto'=>$categoriasProducto,
'cliente'=>$cliente ));
}
/**
* @Route("/noticias", name="landing_noticia")
*/
public function noticiaAction(Request $request){
$em = $this->getDoctrine()->getManager();
$contacto=$this->getDoctrine()->getRepository(Contacto::class)->findAll([],['id'=>'ASC']);
$dato=null;
if($contacto){
$dato=$contacto[0];
}
$servicio=$this->getDoctrine()->getRepository(Servicio::class)->findAll([],['id'=>'ASC']);
$servi=null;
if($servicio){
$servi=$servicio[0];
}
$informacion=$this->getDoctrine()->getRepository(Informacion::class)->findAll([],['id'=>'ASC']);
$info=[];
if($informacion){
$info=$informacion;
}
// $categoriaProducto=$this->getDoctrine()->getRepository(Producto::class)->findAll([],['id'=>'ASC']);
$categoriaProducto = $em->getRepository(Categoria::class)->findAll([],['id'=>'ASC']);
$prod=null;
if($categoriaProducto){
$prod=$categoriaProducto[0];
}
$cliente=$this->getDoctrine()->getRepository(Cliente::class)->findAll([],['id'=>'ASC']);
$noticia=$this->getDoctrine()->getRepository(Noticia::class)->findAll([],['id'=>'ASC']);
return $this->render('landing/landing_noticias.html.twig',array('contacto'=>$dato,'servicio'=>$servicio,
'informacion'=>$info, 'categoriasProducto'=>$categoriaProducto, 'cliente'=>$cliente, 'noticias'=>$noticia ));
}
/**
* @Route("{id}/productos", name="landing_producto")
*/
public function productoAction(Request $request){
$id = (int) $request->get('id');
$em = $this->getDoctrine()->getManager();
$contacto=$this->getDoctrine()->getRepository(Contacto::class)->findAll([],['id'=>'ASC']);
$dato=null;
if($contacto){
$dato=$contacto[0];
}
$servicio=$this->getDoctrine()->getRepository(Servicio::class)->findAll([],['id'=>'ASC']);
$servi=null;
if($servicio){
$servi=$servicio[0];
}
$productos=$em->getRepository(Producto::class)->findAll([],['id'=>'ASC']);
$categoriasProducto=$em->getRepository(Categoria::class)->findAll([],['id'=>'ASC']);
$objectoCategoria = $em->getRepository(Categoria::class)->find($id);
$productos=$em->getRepository(Producto::class)->findBy(['categoriaId'=>$objectoCategoria],['id'=>'ASC']);
$cliente=$this->getDoctrine()->getRepository(Cliente::class)->findAll([],['id'=>'ASC']);
return $this->render('landing/landing_producto.html.twig',
array('contacto'=>$dato,
'servicio'=>$servicio,
'productos'=>$productos,
'categoria'=>$objectoCategoria,
'categoriasProducto'=>$categoriasProducto,
'cliente'=>$cliente ));
}
/**
* @Route("{id}/productos_detalle", name="landing_producto_detalle")
*/
public function productoDetalleAction(Request $request){
$id = (int) $request->get('id');
$em = $this->getDoctrine()->getManager();
$contacto=$this->getDoctrine()->getRepository(Contacto::class)->findAll([],['id'=>'ASC']);
$dato=null;
if($contacto){
$dato=$contacto[0];
}
$servicio=$this->getDoctrine()->getRepository(Servicio::class)->findAll([],['id'=>'ASC']);
$servi=null;
if($servicio){
$servi=$servicio[0];
}
$productos=$em->getRepository(Producto::class)->findAll([],['id'=>'ASC']);
$objectoProducto=$em->getRepository(Producto::class)->findOneBy(['id'=>$id],['id'=>'ASC']);
$categoriasProducto=$em->getRepository(Categoria::class)->findAll([],['id'=>'ASC']);
// var_dump($objectoProducto->getCategoriaId()->getId());
$objectoCategoria = $em->getRepository(Categoria::class)->find($objectoProducto->getCategoriaId()->getId());
$productos=$em->getRepository(Producto::class)->findBy(['categoriaId'=>$objectoCategoria],['id'=>'ASC']);
$cliente=$this->getDoctrine()->getRepository(Cliente::class)->findAll([],['id'=>'ASC']);
//var_dump($objectoCategoria); die;
return $this->render('landing/landing_producto_detalle.html.twig',
array('contacto'=>$dato,
'servicio'=>$servicio,
'productos'=>$productos,
'categoria'=>$objectoCategoria,
'producto'=> $objectoProducto,
'categoriasProducto'=>$categoriasProducto,
'cliente'=>$cliente ));
}
/**
* @Route("{id}/noticias_detalle", name="landing_noticia_detalle")
*/
public function noticiaDetalleAction(Request $request){
$id = (int) $request->get('id');
$em = $this->getDoctrine()->getManager();
$contacto=$this->getDoctrine()->getRepository(Contacto::class)->findAll([],['id'=>'ASC']);
$dato=null;
if($contacto){
$dato=$contacto[0];
}
$servicio=$this->getDoctrine()->getRepository(Servicio::class)->findAll([],['id'=>'ASC']);
$servi=null;
if($servicio){
$servi=$servicio[0];
}
$productos=$em->getRepository(Producto::class)->findAll([],['id'=>'ASC']);
// $objectoProducto=$em->getRepository(Noticia::class)->findOneBy(['id'=>$id],['id'=>'ASC']);
$notica=$em->getRepository(Noticia::class)->findOneBy(['id'=>$id],['id'=>'ASC']);
$categoriasProducto=$em->getRepository(Categoria::class)->findAll([],['id'=>'ASC']);
// var_dump($objectoProducto->getCategoriaId()->getId());
// $objectoCategoria = $em->getRepository(Categoria::class)->find($objectoProducto->getCategoriaId()->getId());
// $productos=$em->getRepository(Producto::class)->findBy(['categoriaId'=>$objectoCategoria],['id'=>'ASC']);
$cliente=$this->getDoctrine()->getRepository(Cliente::class)->findAll([],['id'=>'ASC']);
//var_dump($objectoCategoria); die;
// var_dump($notica); die;
return $this->render('landing/landing_noticia_detalle.html.twig',
array('contacto'=>$dato,
'servicio'=>$servicio,
'productos'=>$productos,
'noticia' => $notica,
'categoriasProducto'=>$categoriasProducto,
'cliente'=>$cliente ));
}
}