src/Controller/Admin/ClienteController.php line 46

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Admin\Cliente;
  4. use App\Form\Admin\ClienteType;
  5. use App\Repository\Admin\ClienteRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\HttpFoundation\RequestStack;
  11. #[Route('/cliente')]
  12. class ClienteController extends AbstractController {
  13.     #[Route('/'name'app_admin_cliente_index'methods: ['GET'])]
  14.     public function index(RequestStack $rsClienteRepository $clienteRepository): Response {
  15.         $session $rs->getSession();
  16.         $filtro unserialize($session->get('filtro.cliente'));
  17.         
  18.         return $this->render('admin/cliente/index.html.twig', [
  19.                     'clientes' => $clienteRepository->findByFiltro($filtro),
  20.         ]);
  21.     }
  22.     #[Route('/new'name'app_admin_cliente_new'methods: ['GET''POST'])]
  23.     public function new(Request $requestClienteRepository $clienteRepository): Response {
  24.         $cliente = new Cliente();
  25.         $form $this->createForm(ClienteType::class, $cliente);
  26.         $form->handleRequest($request);
  27.         if ($form->isSubmitted() && $form->isValid()) {
  28.             $cliente->setHabilitado(true);
  29.             $clienteRepository->add($cliente);
  30.             return $this->redirect($this->generateUrl('app_admin_cliente_show', ['id' => $cliente->getId()]));
  31.         }
  32.         return $this->renderForm('admin/cliente/form.html.twig', [
  33.                     'cliente' => $cliente,
  34.                     'form' => $form,
  35.         ]);
  36.     }
  37.     #[Route('/{id}'name'app_admin_cliente_show'methods: ['GET'])]
  38.     public function show(Cliente $cliente): Response {
  39.         $eliminable 'disabled';
  40.         if (count($cliente->getContactos()) == && count($cliente->getProyectos()) == 0) {
  41.             $eliminable '';
  42.         }
  43.         return $this->render('admin/cliente/show.html.twig', [
  44.                     'cliente' => $cliente,
  45.                     'contactosCantidad' => count($cliente->getContactos()),
  46.                     'proyectosCantidad' => count($cliente->getProyectos()),
  47.                     'eliminable' => $eliminable,
  48.         ]);
  49.     }
  50.     #[Route('/{id}/edit'name'app_admin_cliente_edit'methods: ['GET''POST'])]
  51.     public function edit(Request $requestCliente $clienteClienteRepository $clienteRepository): Response {
  52.         $form $this->createForm(ClienteType::class, $cliente);
  53.         $form->handleRequest($request);
  54.         if ($form->isSubmitted() && $form->isValid()) {
  55.             $clienteRepository->add($cliente);
  56.             return $this->redirect($this->generateUrl('app_admin_cliente_show', ['id' => $cliente->getId()]));
  57.         }
  58.         return $this->renderForm('admin/cliente/form.html.twig', [
  59.                     'cliente' => $cliente,
  60.                     'form' => $form,
  61.         ]);
  62.     }
  63.     #[Route('/{id}/delete'name'app_admin_cliente_delete'methods: ['GET''POST'])]
  64.     public function delete(Request $requestCliente $clienteClienteRepository $clienteRepository): Response {
  65.         if (count($cliente->getContactos()) == && count($cliente->getProyectos()) == 0) {
  66.             $clienteRepository->remove($cliente);
  67.         }
  68.         return $this->redirectToRoute('app_admin_cliente_index', [], Response::HTTP_SEE_OTHER);
  69.     }
  70.     #[Route('/estado/{id}'name'app_admin_cliente_estado'methods: ['GET''POST'])]
  71.     public function cambiarEstado(Cliente $cliente): Response {
  72.         $em $this->getDoctrine()->getManager();
  73.         if ($cliente->getHabilitado()) {
  74.             $cliente->setHabilitado(false);
  75.             if (count($cliente->getContactos()) != 0) {
  76.                 foreach ($cliente->getContactos() as $contacto) {
  77.                     if (!is_null($contacto->getUsuario())) {
  78.                         $contacto->getUsuario()->setHabilitado(false);
  79.                         $em->persist($contacto->getUsuario());
  80.                     }
  81.                 }
  82.             }
  83.         } else {
  84.             $cliente->setHabilitado(true);
  85.         }
  86.         $em->persist($cliente);
  87.         $em->flush();
  88.         return $this->redirect($this->generateUrl('app_admin_cliente_index'));
  89.     }
  90. }