src/Controller/AgendaProcedimientoController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\AgendaProcedimiento;
  4. use App\Entity\Agenda;
  5. use App\Form\AgendaProcedimientoType;
  6. use App\Repository\AgendaProcedimientoRepository;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Security\Core\Security;
  12. /**
  13.  * @Route("/agenda_procedimiento")
  14.  */
  15. class AgendaProcedimientoController extends AbstractController
  16. {
  17.     
  18.     /**
  19.      * @var Security
  20.      */
  21.     private $security;
  22.     public function __construct(Security $security)
  23.     {
  24.        date_default_timezone_set("America/Guayaquil");
  25.        $this->security $security;
  26.     }
  27.     
  28.      /**
  29.      * @Route("/{id}", name="agenda_procedimiento_index", methods={"GET"})
  30.      */
  31.     public function index(Agenda $agendaRequest $request): Response
  32.     {
  33.         $procedimientos $agenda->getAgendaProcedimientos();
  34.                
  35.         return $this->render('agenda/index_procedimientos.html.twig', [
  36.             'procedimientos' => $procedimientos,
  37.             
  38.         ]);
  39.     }
  40.     
  41.     /**
  42.      * @Route("/new/{id}", name="agenda_procedimiento_new", methods={"GET","POST"})
  43.      */
  44.     public function new(Request $requestAgenda $agenda): Response
  45.     {
  46.         $user $this->security->getUser();
  47.         $ip   $request->getClientIp();
  48.         
  49.         $agendaProcedimiento = new AgendaProcedimiento();
  50.         $form_ap $this->createForm(AgendaProcedimientoType::class, $agendaProcedimiento);
  51.         $form_ap->handleRequest($request);
  52.         
  53.         if ($form_ap->isSubmitted() && $form_ap->isValid()) {
  54.             
  55.             $agendaProcedimiento->setAgenda($agenda);
  56.             $agendaProcedimiento->setIpCrea($ip);
  57.             $agendaProcedimiento->setIpModifica($ip);
  58.             $agendaProcedimiento->setUserCrea($user->getId());
  59.             $agendaProcedimiento->setUserModifica($user->getId());
  60.             
  61.             $entityManager $this->getDoctrine()->getManager();
  62.             $entityManager->persist($agendaProcedimiento);
  63.             $entityManager->flush();
  64.             return $this->json(['estado' => 'ok''agenda' => $agendaProcedimiento->getId()]);
  65.         }
  66.         return $this->json(['estado' => 'error''msn' => 'NO SE GUARDO']);
  67.         
  68.     }
  69.     
  70.     /**
  71.      * @Route("/procedimiento/eliminar/{id}", name="agenda_procedimiento_delete", methods={"DELETE"})
  72.      */
  73.     public function delete(Request $requestAgendaProcedimiento $procedimiento): Response
  74.     {
  75.         // Guardamos la agenda asociada para recargar el listado luego
  76.         $agenda $procedimiento->getAgenda();
  77.         // Eliminamos el procedimiento
  78.         $em $this->getDoctrine()->getManager();
  79.         $em->remove($procedimiento);
  80.         $em->flush();
  81.         // Recargamos el listado de procedimientos
  82.         $procedimientos $agenda->getAgendaProcedimientos();
  83.         $html $this->renderView('agenda/index_procedimientos.html.twig', [
  84.             'procedimientos' => $procedimientos,
  85.         ]);
  86.         return $this->json([
  87.             'estado' => 'ok',
  88.             'html' => $html,
  89.         ]);
  90.     }
  91.     
  92. }