src/Controller/VeiculoMultaController.php line 45

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\VeiculoMulta;
  4. use App\Form\VeiculoMultaType;
  5. use App\Repository\VeiculoMultaRepository;
  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/multa')]
  12. class VeiculoMultaController extends AbstractController
  13. {
  14.     
  15.     /**
  16.      * @IsGranted("ROLE_ADMIN")
  17.      */       
  18.     #[Route('/'name'app_veiculo_multa_index'methods: ['GET'])]
  19.     public function index(VeiculoMultaRepository $veiculoMultaRepository,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'] = $veiculoMultaRepository->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_multa/index.html.twig', [
  35.             'multas' => $veiculoMultaRepository->filterGrid($filter),
  36.             'filtro' => $filter
  37.         ]); 
  38.     }
  39.     
  40.     #[Route('/publico'name'app_veiculo_multa_publico'methods: ['GET'])]
  41.     public function multa(VeiculoMultaRepository $veiculoMultaRepositoryRequest $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'] = $veiculoMultaRepository->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 =$veiculoMultaRepository->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_multa/impressao.html.twig', [
  73.                             'filtro' => $filter,
  74.                             'multas' => $veiculoMultaRepository->filterGrid($filter),
  75.                 ]);
  76.             }
  77.         }
  78.         return $this->render('veiculo_multa/multa.html.twig', [
  79.                     'filtro' => $filter,
  80.                     'multas' => $veiculoMultaRepository->filterGrid($filter),
  81.         ]);
  82.     }    
  83.     
  84.     
  85.     /**
  86.      * @IsGranted("ROLE_ADMIN")
  87.      */   
  88.     #[Route('/new'name'app_veiculo_multa_new'methods: ['GET''POST'])]
  89.     public function new(Request $requestVeiculoMultaRepository $veiculoMultaRepository): Response
  90.     {
  91.         $veiculoMultum = new VeiculoMulta();
  92.         $form $this->createForm(VeiculoMultaType::class, $veiculoMultum);
  93.         $form->handleRequest($request);
  94.         if ($form->isSubmitted() && $form->isValid()) {
  95.             $veiculoMultaRepository->save($veiculoMultumtrue);
  96.             return $this->redirectToRoute('app_veiculo_multa_index', [], Response::HTTP_SEE_OTHER);
  97.         }
  98.         return $this->renderForm('veiculo_multa/new.html.twig', [
  99.             'veiculo_multum' => $veiculoMultum,
  100.             'form' => $form,
  101.         ]);
  102.     }
  103.     
  104.     /**
  105.      * @IsGranted("ROLE_ADMIN")
  106.      */   
  107.     #[Route('/{id}'name'app_veiculo_multa_show'methods: ['GET'])]
  108.     public function show(VeiculoMulta $veiculoMultum): Response
  109.     {
  110.         return $this->render('veiculo_multa/show.html.twig', [
  111.             'veiculo_multum' => $veiculoMultum,
  112.         ]);
  113.     }
  114.     
  115.     /**
  116.      * @IsGranted("ROLE_ADMIN")
  117.      */   
  118.     #[Route('/{id}/edit'name'app_veiculo_multa_edit'methods: ['GET''POST'])]
  119.     public function edit(Request $requestVeiculoMulta $veiculoMultumVeiculoMultaRepository $veiculoMultaRepository): Response
  120.     {
  121.         $form $this->createForm(VeiculoMultaType::class, $veiculoMultum);
  122.         $form->handleRequest($request);
  123.         if ($form->isSubmitted() && $form->isValid()) {
  124.             $veiculoMultaRepository->save($veiculoMultumtrue);
  125.             return $this->redirectToRoute('app_veiculo_multa_index', [], Response::HTTP_SEE_OTHER);
  126.         }
  127.         return $this->renderForm('veiculo_multa/edit.html.twig', [
  128.             'veiculo_multum' => $veiculoMultum,
  129.             'form' => $form,
  130.         ]);
  131.     }
  132.     
  133.     /**
  134.      * @IsGranted("ROLE_ADMIN")
  135.      */   
  136.     #[Route('/{id}'name'app_veiculo_multa_delete'methods: ['POST'])]
  137.     public function delete(Request $requestVeiculoMulta $veiculoMultumVeiculoMultaRepository $veiculoMultaRepository): Response
  138.     {
  139.         if ($this->isCsrfTokenValid('delete'.$veiculoMultum->getId(), $request->request->get('_token'))) {
  140.             $veiculoMultaRepository->remove($veiculoMultumtrue);
  141.         }
  142.         return $this->redirectToRoute('app_veiculo_multa_index', [], Response::HTTP_SEE_OTHER);
  143.     }
  144.     
  145.     private function verifica($str$pagina$page null) {
  146.         if ($str == "anterior") {
  147.             if ($pagina 1) {
  148.                 return 1;
  149.             }
  150.         }
  151.         if ($str == "proxima") {
  152.             if ($pagina $page) {
  153.                 return $page;
  154.             }
  155.             return $pagina;
  156.         }
  157.         if ($str == "ultima") {
  158.             if($page == "all"){
  159.                 $page $pagina;
  160.             }
  161.             $valor intdiv($pagina$page);
  162.             if (($pagina $page) > 0) {
  163.                 return ++$valor;
  164.             } else {
  165.                 return $valor;
  166.             }
  167.         }
  168.     }     
  169. }