src/Controller/VeiculoSaidaController.php line 44

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\VeiculoSaida;
  4. use App\Form\VeiculoSaidaType;
  5. use App\Repository\VeiculoSaidaRepository;
  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 Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  11. #[Route('/veiculo/saida')]
  12. class VeiculoSaidaController extends AbstractController
  13. {
  14.     
  15.     /**
  16.      * @IsGranted("ROLE_ADMIN")
  17.      */       
  18.     #[Route('/'name'app_veiculo_saida_index'methods: ['GET'])]
  19.     public function index(VeiculoSaidaRepository $saidaRepository,Request $request): Response
  20.     {
  21.         $filter['veiculo'] = $request->get('veiculo') ?: '';
  22.         $filter['tipo'] = $request->get('tipo') ?: '';
  23.         $filter['descricao'] = $request->get('descricao') ?: '';
  24.         $filter['pagina'] = $request->get('pagina') ?: 1;
  25.         $filter['anterior'] = $this->verifica('anterior', ($filter['pagina']));
  26.         $filter['primeira'] = 1;
  27.         $filter['total_registros'] = $saidaRepository->filterGridTotal($filter);
  28.         $filter['page'] = $request->get('page') ?: 10;
  29.         $filter['ultima'] = $this->verifica('ultima'$filter['total_registros'],$filter['page']);        
  30.         $filter['proxima'] = $this->verifica('proxima', ($filter['pagina']), $filter['ultima']);        
  31.         $filter['dataInicial'] = '';
  32.         $filter['dataFinal'] = ''
  33.         
  34.         return $this->render('veiculo_saida/index.html.twig', [
  35.             'saidas' => $saidaRepository->filterGrid($filter),
  36.             'filtro' => $filter
  37.         ]);         
  38.     }
  39.     
  40.     #[Route('/publico'name'app_veiculo_saida_publico'methods: ['GET'])]
  41.     public function saida(VeiculoSaidaRepository $saidaRepositoryRequest $request): Response {
  42.         $filter['veiculo'] = $request->get('veiculo') ?: '';
  43.         $filter['tipo'] = $request->get('tipo') ?: '';
  44.         //$filter['tipoTitulo'] = $this->verficaTipo($filter['tipo']);
  45.         $filter['descricao'] = $request->get('descricao') ?: '';
  46.         $filter['dataInicial'] = $request->get('dataInicial') ?: '';
  47.         $filter['dataFinal'] = $request->get('dataFinal') ?: '';
  48.         $filter['pagina'] = $request->get('pagina') ?: 1;
  49.         $filter['anterior'] = $this->verifica('anterior', ($filter['pagina']));
  50.         $filter['primeira'] = 1;
  51.         $filter['total_registros'] = $saidaRepository->filterGridTotal($filter);
  52.         $filter['ultima'] = $this->verifica('ultima'$filter['total_registros'], 10);
  53.         $filter['proxima'] = $this->verifica('proxima', ($filter['pagina']), $filter['ultima']);
  54.         $filter['page'] = $request->get('page') ?: 10;
  55.         if ($request->get('impressao')) {
  56.             $filter['page'] = 'all';
  57.             if($request->get('excel')){ 
  58.             $lista =$saidaRepository->filterGrid($filter); 
  59.             $titulos = array("Ano","DATA","NOME","MATRICULA","CARGO","DATA INICIAL","DATA FINAL""QTD DIARIA",'DESTINO','TRANSPORTE','VALOR UNIT',"VALOR TOTAL","OBJETIVO");
  60.                 $rows[] = implode(';'$titulos);
  61.                 
  62.                 foreach ($lista as $value) {
  63.                     $data = array($value->getAno(), $value->getData() ? $value->getData()->format('d/m/Y') :null$value->getNome(),$value->getMatricula(),$value->getCargo(),$value->getDataInicial() ? $value->getDataInicial()->format('d/m/Y') :null,$value->getDataFinal() ? $value->getDataFinal()->format('d/m/Y') :null,$value->getQtdDiaria(),$value->getDestino(),$value->getTransporte(),$value->getValorUnit(),$value->getValorTotal(),$value->getObjetivo());
  64.                     $rows[] = implode(';'$data);
  65.                 }    
  66.                 
  67.                 $content implode("\n"$rows);
  68.                 $response = new Response($content);
  69.                 $response->headers->set('Content-Type''text/csv');
  70.                 return $response;
  71.             }else{
  72.                 return $this->render('veiculo_saida/impressao.html.twig', [
  73.                             'filtro' => $filter,
  74.                             'saidas' => $saidaRepository->filterGrid($filter),
  75.                 ]);
  76.             }
  77.         }
  78.         return $this->render('veiculo_saida/saida.html.twig', [
  79.                     'filtro' => $filter,
  80.                     'saidas' => $saidaRepository->filterGrid($filter),
  81.         ]);
  82.     }    
  83.     
  84.     
  85.     /**
  86.      * @IsGranted("ROLE_ADMIN")
  87.      */   
  88.     #[Route('/new'name'app_veiculo_saida_new'methods: ['GET''POST'])]
  89.     public function new(Request $requestVeiculoSaidaRepository $saidaRepository): Response
  90.     {
  91.         $veiculoSaida = new VeiculoSaida();
  92.         $form $this->createForm(VeiculoSaidaType::class, $veiculoSaida);
  93.         $form->handleRequest($request);
  94.         if ($form->isSubmitted() && $form->isValid()) {
  95.             $saidaRepository->save($veiculoSaidatrue);
  96.             return $this->redirectToRoute('app_veiculo_saida_index', [], Response::HTTP_SEE_OTHER);
  97.         }
  98.         return $this->renderForm('veiculo_saida/new.html.twig', [
  99.             'veiculo_saida' => $veiculoSaida,
  100.             'form' => $form,
  101.         ]);
  102.     }
  103.     
  104.     /**
  105.      * @IsGranted("ROLE_ADMIN")
  106.      */   
  107.     #[Route('/{id}'name'app_veiculo_saida_show'methods: ['GET'])]
  108.     public function show(VeiculoSaida $veiculoSaida): Response
  109.     
  110.     {
  111.         return $this->render('veiculo_saida/show.html.twig', [
  112.             'veiculo_saida' => $veiculoSaida,
  113.         ]);
  114.     }
  115.     
  116.     /**
  117.      * @IsGranted("ROLE_ADMIN")
  118.      */   
  119.     #[Route('/{id}/edit'name'app_veiculo_saida_edit'methods: ['GET''POST'])]
  120.     public function edit(Request $requestVeiculoSaida $veiculoSaidaVeiculoSaidaRepository $saidaRepository): Response
  121.     {
  122.         $form $this->createForm(VeiculoSaidaType::class, $veiculoSaida);
  123.         $form->handleRequest($request);
  124.         if ($form->isSubmitted() && $form->isValid()) {
  125.             $saidaRepository->save($veiculoSaidatrue);
  126.             return $this->redirectToRoute('app_veiculo_saida_index', [], Response::HTTP_SEE_OTHER);
  127.         }
  128.         return $this->renderForm('veiculo_saida/edit.html.twig', [
  129.             'veiculo_saida' => $veiculoSaida,
  130.             'form' => $form,
  131.         ]);
  132.     }
  133.     
  134.     /**
  135.      * @IsGranted("ROLE_ADMIN")
  136.      */   
  137.     #[Route('/{id}'name'app_veiculo_saida_delete'methods: ['POST'])]
  138.     public function delete(Request $requestVeiculoSaida $veiculoSaidaVeiculoSaidaRepository $saidaRepository): Response
  139.     
  140.     {
  141.         
  142.         if ($this->isCsrfTokenValid('delete'.$veiculoSaida->getId(), $request->request->get('_token'))) {
  143.             $saidaRepository->remove($veiculoSaidatrue);
  144.         }
  145.         return $this->redirectToRoute('app_veiculo_saida_index', [], Response::HTTP_SEE_OTHER);
  146.     }
  147.     
  148.     private function verifica($str$pagina$page null) {
  149.         if ($str == "anterior") {
  150.             if ($pagina 1) {
  151.                 return 1;
  152.             }
  153.         }
  154.         if ($str == "proxima") {
  155.             if ($pagina $page) {
  156.                 return $page;
  157.             }
  158.             return $pagina;
  159.         }
  160.         if ($str == "ultima") {
  161.             if($page == "all"){
  162.                 $page $pagina;
  163.             }
  164.             $valor intdiv($pagina$page);
  165.             if (($pagina $page) > 0) {
  166.                 return ++$valor;
  167.             } else {
  168.                 return $valor;
  169.             }
  170.         }
  171.     }     
  172. }