src/Controller/VeiculoManutencaoController.php line 45

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\VeiculoManutencao;
  4. use App\Form\VeiculoManutencaoType;
  5. use App\Repository\VeiculoManutencaoRepository;
  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/manutencao')]
  12. class VeiculoManutencaoController extends AbstractController
  13. {
  14.     
  15.     /**
  16.      * @IsGranted("ROLE_ADMIN")
  17.      */       
  18.     #[Route('/'name'app_veiculo_manutencao_index'methods: ['GET'])]
  19.     public function index(VeiculoManutencaoRepository $veiculoManutencaoRepository,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'] = $veiculoManutencaoRepository->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_manutencao/index.html.twig', [
  35.             'manutencoes' => $veiculoManutencaoRepository->filterGrid($filter),
  36.             'filtro' => $filter
  37.         ]);        
  38.        
  39.     }
  40.     
  41.     #[Route('/publico'name'app_veiculo_manutencao_publico'methods: ['GET'])]
  42.     public function manutencao(VeiculoManutencaoRepository $veiculoManutencaoRepositoryRequest $request): Response {
  43.         $filter['veiculo'] = $request->get('veiculo') ?: '';
  44.         $filter['tipo'] = $request->get('tipo') ?: '';
  45.         //$filter['tipoTitulo'] = $this->verficaTipo($filter['tipo']);
  46.         $filter['descricao'] = $request->get('descricao') ?: '';
  47.         $filter['dataInicial'] = $request->get('dataInicial') ?: '';
  48.         $filter['dataFinal'] = $request->get('dataFinal') ?: '';
  49.         $filter['pagina'] = $request->get('pagina') ?: 1;
  50.         $filter['anterior'] = $this->verifica('anterior', ($filter['pagina']));
  51.         $filter['primeira'] = 1;
  52.         $filter['total_registros'] = $veiculoManutencaoRepository->filterGridTotal($filter);
  53.         $filter['ultima'] = $this->verifica('ultima'$filter['total_registros'], 10);
  54.         $filter['proxima'] = $this->verifica('proxima', ($filter['pagina']), $filter['ultima']);
  55.         $filter['page'] = $request->get('page') ?: 10;
  56.         if ($request->get('impressao')) {
  57.             $filter['page'] = 'all';
  58.             if($request->get('excel')){ 
  59.             $lista =$veiculoManutencaoRepository->filterGrid($filter); 
  60.             $titulos = array("Ano","DATA","NOME","MATRICULA","CARGO","DATA INICIAL","DATA FINAL""QTD DIARIA",'DESTINO','TRANSPORTE','VALOR UNIT',"VALOR TOTAL","OBJETIVO");
  61.                 $rows[] = implode(';'$titulos);
  62.                 
  63.                 foreach ($lista as $value) {
  64.                     $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());
  65.                     $rows[] = implode(';'$data);
  66.                 }    
  67.                 
  68.                 $content implode("\n"$rows);
  69.                 $response = new Response($content);
  70.                 $response->headers->set('Content-Type''text/csv');
  71.                 return $response;
  72.             }else{
  73.                 return $this->render('veiculo_manutencao/impressao.html.twig', [
  74.                             'filtro' => $filter,
  75.                             'manutencoes' => $veiculoManutencaoRepository->filterGrid($filter),
  76.                 ]);
  77.             }
  78.         }
  79.         return $this->render('veiculo_manutencao/manutencao.html.twig', [
  80.                     'filtro' => $filter,
  81.                     'manutencoes' => $veiculoManutencaoRepository->filterGrid($filter),
  82.         ]);
  83.     }    
  84.     
  85.     
  86.     /**
  87.      * @IsGranted("ROLE_ADMIN")
  88.      */   
  89.     #[Route('/new'name'app_veiculo_manutencao_new'methods: ['GET''POST'])]
  90.     public function new(Request $requestVeiculoManutencaoRepository $veiculoManutencaoRepository): Response
  91.     {
  92.         $veiculoManutencao = new VeiculoManutencao();
  93.         $form $this->createForm(VeiculoManutencaoType::class, $veiculoManutencao);
  94.         $form->handleRequest($request);
  95.         if ($form->isSubmitted() && $form->isValid()) {
  96.             $veiculoManutencaoRepository->save($veiculoManutencaotrue);
  97.             return $this->redirectToRoute('app_veiculo_manutencao_index', [], Response::HTTP_SEE_OTHER);
  98.         }
  99.         return $this->renderForm('veiculo_manutencao/new.html.twig', [
  100.             'veiculo_manutencao' => $veiculoManutencao,
  101.             'form' => $form,
  102.         ]);
  103.     }
  104.     
  105.     /**
  106.      * @IsGranted("ROLE_ADMIN")
  107.      */   
  108.     #[Route('/{id}'name'app_veiculo_manutencao_show'methods: ['GET'])]
  109.     public function show(VeiculoManutencao $veiculoManutencao): Response
  110.     {
  111.         return $this->render('veiculo_manutencao/show.html.twig', [
  112.             'veiculo_manutencao' => $veiculoManutencao,
  113.         ]);
  114.     }
  115.     
  116.     /**
  117.      * @IsGranted("ROLE_ADMIN")
  118.      */   
  119.     #[Route('/{id}/edit'name'app_veiculo_manutencao_edit'methods: ['GET''POST'])]
  120.     public function edit(Request $requestVeiculoManutencao $veiculoManutencaoVeiculoManutencaoRepository $veiculoManutencaoRepository): Response
  121.     {
  122.         $form $this->createForm(VeiculoManutencaoType::class, $veiculoManutencao);
  123.         $form->handleRequest($request);
  124.         if ($form->isSubmitted() && $form->isValid()) {
  125.             $veiculoManutencaoRepository->save($veiculoManutencaotrue);
  126.             return $this->redirectToRoute('app_veiculo_manutencao_index', [], Response::HTTP_SEE_OTHER);
  127.         }
  128.         return $this->renderForm('veiculo_manutencao/edit.html.twig', [
  129.             'veiculo_manutencao' => $veiculoManutencao,
  130.             'form' => $form,
  131.         ]);
  132.     }
  133.     
  134.     /**
  135.      * @IsGranted("ROLE_ADMIN")
  136.      */   
  137.     #[Route('/{id}'name'app_veiculo_manutencao_delete'methods: ['POST'])]
  138.     public function delete(Request $requestVeiculoManutencao $veiculoManutencaoVeiculoManutencaoRepository $veiculoManutencaoRepository): Response
  139.     {
  140.         if ($this->isCsrfTokenValid('delete'.$veiculoManutencao->getId(), $request->request->get('_token'))) {
  141.             $veiculoManutencaoRepository->remove($veiculoManutencaotrue);
  142.         }
  143.         return $this->redirectToRoute('app_veiculo_manutencao_index', [], Response::HTTP_SEE_OTHER);
  144.     }
  145.     
  146.     private function verifica($str$pagina$page null) {
  147.         if ($str == "anterior") {
  148.             if ($pagina 1) {
  149.                 return 1;
  150.             }
  151.         }
  152.         if ($str == "proxima") {
  153.             if ($pagina $page) {
  154.                 return $page;
  155.             }
  156.             return $pagina;
  157.         }
  158.         if ($str == "ultima") {
  159.             if($page == "all"){
  160.                 $page $pagina;
  161.             }
  162.             $valor intdiv($pagina$page);
  163.             if (($pagina $page) > 0) {
  164.                 return ++$valor;
  165.             } else {
  166.                 return $valor;
  167.             }
  168.         }
  169.     }     
  170. }