src/Controller/Contador/PanelContadorController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Contador;
  3. use DateTime;
  4. use App\Entity\User;
  5. use App\Entity\Contador;
  6. use App\Entity\DatosSindicato;
  7. use App\Form\ContadorEditType;
  8. use App\Entity\ContadorMensaje;
  9. use App\Controller\ServiceController;
  10. use App\Controller\Admin\UserController;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use App\Controller\Admin\ContadorController;
  13. use Symfony\Component\Filesystem\Filesystem;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\HttpFoundation\File\File;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. use App\Controller\Admin\ContadorMensajeController;
  19. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  20. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  21. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  22. #[Route('/panel/contador')]
  23. class PanelContadorController extends AbstractController
  24. {
  25.     public function __construct(){
  26.         date_default_timezone_set("America/Buenos_Aires");
  27.     }
  28.     /**
  29.      * @return string
  30.      */
  31.     public function generateUniqueFileName()
  32.     {
  33.         return md5(uniqid());
  34.     }
  35.     #[Route('/home'name'panel_contador_home')]
  36.     public function index(ContadorMensajeController $contadorMensajeControllerEntityManagerInterface $em): Response
  37.     {
  38.         $arrayMensajes = Array();
  39.         $fechaHasta = new \DateTime('now');
  40.         $fechaDesde = new \DateTime('now');
  41.         $fechaDesde->modify('-2 month');
  42.         $mensajes $em->getRepository(ContadorMensaje::class)->findByTodosLosMensajes($fechaDesde,$fechaHasta);
  43.         foreach($mensajes as $mensaje){
  44.             array_push($arrayMensajes$contadorMensajeController->getMensaje($mensaje));
  45.         }
  46.         return $this->render('consola/panel_contador/home.html.twig',[
  47.             'arrayMensajes' => $arrayMensajes 
  48.         ]);
  49.     }
  50.     #[Route('/ayuda'name'panel_contador_ayuda')]
  51.     public function ayuda(EntityManagerInterface $em): Response
  52.     {
  53.         $datos $em->getRepository(DatosSindicato::class)->find(1);
  54.         $arrayDatos = Array();
  55.         $arrayDatos[]=[
  56.             'email_sindicato' => $datos->getEmail(),
  57.             'telefono' => $datos->getTelefono(),
  58.             'email_sistemas' => $datos->getMailSistema(),
  59.         ];
  60.         return $this->render('consola/panel_contador/ayuda.html.twig',[
  61.             'arrayDatos' => $arrayDatos
  62.         ]);
  63.     }
  64.     #[Route('/show'name'panel_contador_show'methods: ['GET'])]
  65.     public function show(ContadorController $contadorController): Response
  66.     {
  67.         return $this->render('consola/panel_contador/contador/show.html.twig', [
  68.             'contador' => $contadorController->getArrayContador($this->getUser()),
  69.         ]);
  70.     }
  71.     #[Route('/edit'name'panel_contador_edit'methods: ['GET''POST'])]
  72.     public function edit(Request $requestEntityManagerInterface $entityManager,ServiceController $ServiceController,UserController $UserController): Response
  73.     {
  74.         $contador $this->getUser();
  75.         //foto
  76.         $img $contador->getFoto();
  77.         if($img != NULL){
  78.             $contador->setFoto(
  79.                 new File($this->getParameter('directory_contador_img').'/'.$contador->getFoto())
  80.             );
  81.         }
  82.         //fin foto
  83.         $form $this->createForm(ContadorEditType::class, $contador);
  84.         $form->handleRequest($request);
  85.         if ($form->isSubmitted() && $form->isValid()) {
  86.             if($UserController->verificarCambioEmail($contador,$entityManager) == true){
  87.                 $contador->setNombre($ServiceController->PrimeraLetraMayuscula($contador->getNombre()));
  88.                 $contador->setApellido($ServiceController->PrimeraLetraMayuscula($contador->getApellido()));
  89.                 //foto
  90.                 $file $form->get('foto')->getData();
  91.                 if ($file) {
  92.                     //borro
  93.                     if($img != NULL){
  94.                         $filesystem = new Filesystem();
  95.                         $ruta=$this->getParameter('directory_contador_img').'/'.$img;
  96.                         $filesystem->remove($ruta);
  97.                     }
  98.                     $fileName $this->generateUniqueFileName().'.'.$file->guessExtension();
  99.                     try {
  100.                         $file->move($this->getParameter('directory_contador_img'),$fileName);
  101.                     } catch (FileException $e) {
  102.                     }
  103.                     $contador->setFoto($fileName);
  104.                 }else{
  105.                     //es igual a null, dejo lo que esta. 
  106.                     if($img != NULL){
  107.                         $contador->setFoto($img);
  108.                     }
  109.                 }
  110.                     //mensaje Flash
  111.                 $this->addFlash('notice', array(
  112.                     'type' => 'success'
  113.                     'title' => 'EDITADO!'
  114.                     'message' => 'Se editaron los datos.'
  115.                 ));
  116.                 $entityManager->flush();
  117.                 return $this->redirectToRoute('panel_contador_show', [], Response::HTTP_SEE_OTHER);
  118.             }else{
  119.                 //mensaje Flash
  120.                 $this->addFlash('notice', array(
  121.                     'type' => 'danger'
  122.                     'title' => 'ERROR!'
  123.                     'message' => 'El email que intenta ingresar ya esta en uso. Cambie el Email.'
  124.                 )); 
  125.             }
  126.         }
  127.         return $this->renderForm('consola/panel_contador/contador/edit.html.twig', [
  128.             'contador' => $contador,
  129.             'form' => $form,
  130.         ]);
  131.     }
  132. }