src/Controller/RenunciaReceitaController.php line 43

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\RenunciaReceita;
  4. use App\Form\RenunciaReceitaType;
  5. use App\Repository\RenunciaReceitaRepository;
  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('/renuncia/receita')]
  12. class RenunciaReceitaController extends AbstractController
  13. {
  14.     /**
  15.      * @IsGranted("ROLE_ADMIN")
  16.      */        
  17.     #[Route('/'name'app_renuncia_receita_index'methods: ['GET'])]
  18.     public function index(RenunciaReceitaRepository $renunciaReceitaRepository,Request $request): Response
  19.     {
  20.         $filter['tipo'] = $request->get('tipo') ?: '';
  21.         $filter['descricao'] = $request->get('descricao') ?: '';
  22.         $filter['pagina'] = $request->get('pagina') ?: 1;
  23.         $filter['anterior'] = $this->verifica('anterior', ($filter['pagina']));
  24.         $filter['primeira'] = 1;
  25.         $filter['total_registros'] = $renunciaReceitaRepository->filterGridTotal($filter);
  26.         $filter['page'] = $request->get('page') ?: 10;
  27.         $filter['ultima'] = $this->verifica('ultima'$filter['total_registros'],$filter['page']);        
  28.         $filter['proxima'] = $this->verifica('proxima', ($filter['pagina']), $filter['ultima']);        
  29.         $filter['dataInicial'] = '';
  30.         $filter['dataFinal'] = '';         
  31.         return $this->render('renuncia_receita/index.html.twig', [
  32.             'lista' => $renunciaReceitaRepository->filterGrid($filter),
  33.             'filtro'=>$filter
  34.         ]);
  35.     }
  36.     
  37.     
  38.     #[Route('/ano'name'app_renuncia_receita_ano'methods: ['GET'])]
  39.     public function ano(RenunciaReceitaRepository $renunciaReceitaRepositoryRequest $request): Response {
  40.         $lista $renunciaReceitaRepository->getAnos();
  41.         return $this->render('renuncia_receita/ano.html.twig', [
  42.                     'itens' => $lista,
  43.         ]);
  44.     }  
  45.     
  46.     #[Route('/relatorio'name'app_renuncia_receita_relatorio'methods: ['GET'])]
  47.     public function relatorio(RenunciaReceitaRepository $renunciaReceitaRepositoryRequest $request): Response {
  48.         $filter['ano'] = $request->get('ano') ?: date('Y');
  49.         $filter['tipo'] = $request->get('tipo') ?: '';
  50.         $filter['descricao'] = $request->get('descricao') ?: '';
  51.         $filter['pagina'] = $request->get('pagina') ?: 1;
  52.         $filter['anterior'] = $this->verifica('anterior', ($filter['pagina']));
  53.         $filter['primeira'] = 1;
  54.         $filter['total_registros'] = $renunciaReceitaRepository->filterGridTotal($filter);
  55.         $filter['page'] = $request->get('page') ?: 10;
  56.         $filter['ultima'] = $this->verifica('ultima'$filter['total_registros'], $filter['page']);
  57.         $filter['proxima'] = $this->verifica('proxima', ($filter['pagina']), $filter['ultima']);
  58.         $filter['dataInicial'] = '';
  59.         $filter['dataFinal'] = '';
  60.         if ($request->get('impressao')) {
  61.             $filter['page'] = 'all';
  62.             if ($request->get('pdf')) {
  63.                 $html $this->renderView('renuncia_receita/impressao_pdf.html.twig', [
  64.                     'filtro' => $filter,
  65.                     'lista' => $renunciaReceitaRepository->filterGrid($filter),
  66.                 ]);
  67.                 $dompdf = new Dompdf();
  68.                 $dompdf->setPaper('A4''landscape');
  69.                 $dompdf->set_option("isPhpEnabled"true);
  70.                 $options $dompdf->getOptions();
  71.                 $options->setDefaultFont('Courier');
  72.                 $dompdf->setOptions($options);
  73.                 $dompdf->loadHtml($html);
  74.                 $dompdf->render();
  75.                 return new Response(
  76.                         $dompdf->stream('resume', ["Attachment" => false]),
  77.                         Response::HTTP_OK,
  78.                         ['Content-Type' => 'application/pdf']
  79.                 );
  80.             } elseif ($request->get('excel')) {
  81.                 $lista $renunciaReceitaRepository->filterGrid($filter);
  82.                 $titulos = array("Nome""Convênio""Justificativa""Estimativa""Período Inicial""Período Final""Valor Mensal""Valor Total");
  83.                 $rows[] = implode(';'$titulos);
  84.                 foreach ($lista as $value) {
  85.                     $data = array($value->getNome(), $value->getConvenio(), $value->getJustificativa(), $value->getEstimativa(), $value->getPeriodoInicial() ? $value->getPeriodoInicial()->format('d/m/Y') : null$value->getPeriodoInicial() ? $value->getPeriodoFinal()->format('d/m/Y') : null$value->getValorMensal(), $value->getValorTotal());
  86.                     $rows[] = implode(';'$data);
  87.                 }
  88.                 $content implode("\n"$rows);
  89.                 $response = new Response($content);
  90.                 $response->headers->set('Content-Type''text/csv');
  91.                 return $response;
  92.             } else {
  93.                 return $this->render('renuncia_receita/impressao.html.twig', [
  94.                             'filtro' => $filter,
  95.                             'lista' => $renunciaReceitaRepository->filterGrid($filter),
  96.                 ]);
  97.             }
  98.         }
  99.         return $this->render('renuncia_receita/renuncia_receita.html.twig', [
  100.                     'filtro' => $filter,
  101.                     'lista' => $renunciaReceitaRepository->filterGrid($filter),
  102.         ]);
  103.     }    
  104.     /**
  105.      * @IsGranted("ROLE_ADMIN")
  106.      */    
  107.     #[Route('/new'name'app_renuncia_receita_new'methods: ['GET''POST'])]
  108.     public function new(Request $requestRenunciaReceitaRepository $renunciaReceitaRepository): Response
  109.     {
  110.         $renunciaReceitum = new RenunciaReceita();
  111.         $form $this->createForm(RenunciaReceitaType::class, $renunciaReceitum);
  112.         $form->handleRequest($request);
  113.         if ($form->isSubmitted() && $form->isValid()) {
  114.             $renunciaReceitaRepository->save($renunciaReceitumtrue);
  115.             return $this->redirectToRoute('app_renuncia_receita_index', [], Response::HTTP_SEE_OTHER);
  116.         }
  117.         return $this->renderForm('renuncia_receita/new.html.twig', [
  118.             'renuncia_receitum' => $renunciaReceitum,
  119.             'form' => $form,
  120.         ]);
  121.     }
  122.     /**
  123.      * @IsGranted("ROLE_ADMIN")
  124.      */    
  125.     #[Route('/{id}'name'app_renuncia_receita_show'methods: ['GET'])]
  126.     public function show(RenunciaReceita $renunciaReceitum): Response
  127.     {
  128.         return $this->render('renuncia_receita/show.html.twig', [
  129.             'renuncia_receitum' => $renunciaReceitum,
  130.         ]);
  131.     }
  132.     /**
  133.      * @IsGranted("ROLE_ADMIN")
  134.      */    
  135.     #[Route('/{id}/edit'name'app_renuncia_receita_edit'methods: ['GET''POST'])]
  136.     public function edit(Request $requestRenunciaReceita $renunciaReceitumRenunciaReceitaRepository $renunciaReceitaRepository): Response
  137.     {
  138.         $form $this->createForm(RenunciaReceitaType::class, $renunciaReceitum);
  139.         $form->handleRequest($request);
  140.         if ($form->isSubmitted() && $form->isValid()) {
  141.             $renunciaReceitaRepository->save($renunciaReceitumtrue);
  142.             return $this->redirectToRoute('app_renuncia_receita_index', [], Response::HTTP_SEE_OTHER);
  143.         }
  144.         return $this->renderForm('renuncia_receita/edit.html.twig', [
  145.             'renuncia_receitum' => $renunciaReceitum,
  146.             'form' => $form,
  147.         ]);
  148.     }
  149.     /**
  150.      * @IsGranted("ROLE_ADMIN")
  151.      */    
  152.         
  153.     #[Route('/delete/{id}'name'app_renuncia_receita_delete'methods: ['GET'])]
  154.     public function delete(RenunciaReceita $entity,  RenunciaReceitaRepository $entityRepository ): Response {
  155.         if ($entity) {
  156.             $entityRepository->remove($entitytrue);
  157.             $this->addFlash('success'"REGISTRO EXCLUIDO COM SUCESSO.");
  158.         }
  159.         return $this->redirectToRoute('app_renuncia_receita_index', [], Response::HTTP_SEE_OTHER);
  160.     }    
  161.     
  162.     private function verifica($str$pagina$page null) {
  163.         if ($str == "anterior") {
  164.             if ($pagina 1) {
  165.                 return 1;
  166.             }
  167.         }
  168.         if ($str == "proxima") {
  169.             if ($pagina $page) {
  170.                 return $page;
  171.             }
  172.             return $pagina;
  173.         }
  174.         if ($str == "ultima") {
  175.             if($page == "all"){
  176.                 $page $pagina;
  177.             }
  178.             $valor intdiv($pagina$page);
  179.             if (($pagina $page) > 0) {
  180.                 return ++$valor;
  181.             } else {
  182.                 return $valor;
  183.             }
  184.         }
  185.     }      
  186. }