src/Controller/VeiculoAbastecimentoController.php line 44

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\VeiculoAbastecimento;
  4. use App\Form\VeiculoAbastecimentoType;
  5. use App\Repository\VeiculoAbastecimentoRepository;
  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/abastecimento')]
  12. class VeiculoAbastecimentoController extends AbstractController
  13. {
  14.     
  15.     /**
  16.      * @IsGranted("ROLE_ADMIN")
  17.      */       
  18.     #[Route('/'name'app_veiculo_abastecimento_index'methods: ['GET'])]
  19.     public function index(VeiculoAbastecimentoRepository $veiculoAbastecimentoRepository,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'] = $veiculoAbastecimentoRepository->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_abastecimento/index.html.twig', [
  35.             'abastecimentos' => $veiculoAbastecimentoRepository->filterGrid($filter),
  36.             'filtro' => $filter
  37.         ]);
  38.     }
  39.     
  40.     #[Route('/publico'name'app_veiculo_abastecimento_publico'methods: ['GET'])]
  41.     public function abastecimento(VeiculoAbastecimentoRepository $veiculoAbastecimentoRepositoryRequest $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'] = $veiculoAbastecimentoRepository->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 =$veiculoAbastecimentoRepository->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_abastecimento/impressao.html.twig', [
  73.                             'filtro' => $filter,
  74.                             'abastecimentos' => $veiculoAbastecimentoRepository->filterGrid($filter),
  75.                 ]);
  76.             }
  77.         }
  78.         return $this->render('veiculo_abastecimento/abastecimento.html.twig', [
  79.                     'filtro' => $filter,
  80.                     'abastecimentos' => $veiculoAbastecimentoRepository->filterGrid($filter),
  81.         ]);
  82.     }    
  83.     
  84.     
  85.     /**
  86.      * @IsGranted("ROLE_ADMIN")
  87.      */   
  88.     #[Route('/new'name'app_veiculo_abastecimento_new'methods: ['GET''POST'])]
  89.     public function new(Request $requestVeiculoAbastecimentoRepository $veiculoAbastecimentoRepository): Response
  90.     {
  91.         $veiculoAbastecimento = new VeiculoAbastecimento();
  92.         $form $this->createForm(VeiculoAbastecimentoType::class, $veiculoAbastecimento);
  93.         $form->handleRequest($request);
  94.         if ($form->isSubmitted() && $form->isValid()) {
  95.             $veiculoAbastecimentoRepository->save($veiculoAbastecimentotrue);
  96.             return $this->redirectToRoute('app_veiculo_abastecimento_index', [], Response::HTTP_SEE_OTHER);
  97.         }
  98.         return $this->renderForm('veiculo_abastecimento/new.html.twig', [
  99.             'veiculo_abastecimento' => $veiculoAbastecimento,
  100.             'form' => $form,
  101.         ]);
  102.     }
  103.     
  104.     /**
  105.      * @IsGranted("ROLE_ADMIN")
  106.      */   
  107.     #[Route('/{id}'name'app_veiculo_abastecimento_show'methods: ['GET'])]
  108.     public function show(VeiculoAbastecimento $veiculoAbastecimento): Response
  109.     {
  110.         return $this->render('veiculo_abastecimento/show.html.twig', [
  111.             'veiculo_abastecimento' => $veiculoAbastecimento,
  112.         ]);
  113.     }
  114.     
  115.     /**
  116.      * @IsGranted("ROLE_ADMIN")
  117.      */   
  118.     
  119.     #[Route('/{id}/edit'name'app_veiculo_abastecimento_edit'methods: ['GET''POST'])]
  120.     public function edit(Request $requestVeiculoAbastecimento $veiculoAbastecimentoVeiculoAbastecimentoRepository $veiculoAbastecimentoRepository): Response
  121.     {
  122.         $form $this->createForm(VeiculoAbastecimentoType::class, $veiculoAbastecimento);
  123.         $form->handleRequest($request);
  124.         if ($form->isSubmitted() && $form->isValid()) {
  125.             $veiculoAbastecimentoRepository->save($veiculoAbastecimentotrue);
  126.             return $this->redirectToRoute('app_veiculo_abastecimento_index', [], Response::HTTP_SEE_OTHER);
  127.         }
  128.         return $this->renderForm('veiculo_abastecimento/edit.html.twig', [
  129.             'veiculo_abastecimento' => $veiculoAbastecimento,
  130.             'form' => $form,
  131.         ]);
  132.     }
  133.     
  134.     /**
  135.      * @IsGranted("ROLE_ADMIN")
  136.      */   
  137.     #[Route('/{id}'name'app_veiculo_abastecimento_delete'methods: ['POST'])]
  138.     public function delete(Request $requestVeiculoAbastecimento $veiculoAbastecimentoVeiculoAbastecimentoRepository $veiculoAbastecimentoRepository): Response
  139.     {
  140.         if ($this->isCsrfTokenValid('delete'.$veiculoAbastecimento->getId(), $request->request->get('_token'))) {
  141.             $veiculoAbastecimentoRepository->remove($veiculoAbastecimentotrue);
  142.         }
  143.         return $this->redirectToRoute('app_veiculo_abastecimento_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. }