src/Admin/FluxoCaixaAdmin.php line 16

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Admin;
  4. use Sonata\AdminBundle\Admin\AbstractAdmin;
  5. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Sonata\AdminBundle\Route\RouteCollection;
  9. use Sonata\AdminBundle\Show\ShowMapper;
  10. use Sonata\Form\Type\DatePickerType;
  11. use Sonata\Form\Type\DateRangePickerType;
  12. final class FluxoCaixaAdmin extends BaseAdmin
  13. {
  14.     protected $perPageOptions = [641282562000];
  15.     protected $datagridValues = [
  16.         '_page'         => 1,
  17.         '_sort_order'   => 'ASC',
  18.         '_sort_by'      => 'dataExtrato',
  19.         '_per_page'     => 2000
  20.     ];
  21.     protected $maxPerPage 2000;
  22.     public function getExportFields()
  23.     {
  24.         return array(
  25.             'Data' =>'dataExtrato',
  26.             'Descrição'=>'descricao',
  27.             'NF/Comprovante' => 'tipoDocumento',
  28.             'Conta' => 'classificacao',
  29.             'Valor' => 'valor',
  30.         );
  31.     }
  32.     public function getDataSourceIterator()
  33.     {
  34.         $datasourceit parent::getDataSourceIterator();
  35.         $datasourceit->setDateTimeFormat('d/m/Y'); //change this to suit your needs
  36.         return $datasourceit;
  37.     }
  38. //    public function getExportFormats()
  39. //    {
  40. //        return ['html'];
  41. //    }
  42.     public function createQuery($context 'list')
  43.     {
  44.         $query parent::createQuery($context);
  45.         if(!isset($_GET['filter'])){
  46.             $today = new \DateTime('now');
  47.             $fromTime = new \DateTime$today->format('Y') . '-' $today->format('m') . '-01');
  48.             $toTime = new \DateTime($fromTime->format('Y-m-d') . ' first day of next month');
  49.             $fromTime->setTime(0,0,0);
  50.             $toTime->setTime(0,0,0);
  51.             $query->andWhere($query->getRootAliases()[0] . '.dataExtrato >= :fromTime');
  52.             $query->andWhere($query->getRootAliases()[0] . '.dataExtrato <= :toTime');
  53.             // $query->andWhere($query->expr()->notIn($query->getRootAliases()[0] . '.classificacao', '175,174,173,167,160,159,158'));
  54.             $query->setParameter('fromTime'$fromTime->format('Y-m-d'));
  55.             $query->setParameter('toTime'$toTime->format('Y-m-d'));
  56.         }
  57.         return $query;
  58.     }
  59. //    protected function configureDefaultFilterValues(array &$filterValues)
  60. //    {
  61. //        parent::configureDefaultFilterValues($filterValues); // TODO: Change the autogenerated stub
  62. //
  63. //        // display the first page (default = 1)
  64. //        $filterValues['_page'] = 1;
  65. //
  66. //        // reverse order (default = 'ASC')
  67. //        $filterValues['_sort_order'] = 'ASC';
  68. //
  69. //        // name of the ordered field (default = the model's id field, if any)
  70. //        $filterValues['_sort_by'] = 'ordem';
  71. //
  72. //        $filterValues['_per_page'] = 'All';
  73. //
  74. //    }
  75. //    public function getFilterParameters()
  76. //    {
  77. //        $this->datagridValues = array_merge([
  78. //            'ordem' => ['value' => 1],
  79. //        ], $this->datagridValues);
  80. //
  81. //        return parent::getFilterParameters();
  82. //    }
  83.     protected function configureRoutes(RouteCollection $collection)
  84.     {
  85.         parent::configureRoutes($collection); // TODO: Change the autogenerated stub
  86.         $collection->remove("create");
  87.         $collection->remove("delete");
  88.         $collection->add('relatorioContabilidade');
  89.         $collection->add('ordenarFluxo');
  90.     }
  91.     protected function configureBatchActions($actions)
  92.     {
  93.         return parent::configureBatchActions($actions); // TODO: Change the autogenerated stub
  94.         unset($actions['edit']);
  95.         unset($actions['delete']);
  96.     }
  97.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  98.     {
  99.         $datagridMapper
  100.             //->add('tipo')
  101.             ->add('dataExtrato''doctrine_orm_datetime_range', ['field_type'=> DateRangePickerType::class])
  102.             ->add('ordem')
  103.             ;
  104.     }
  105.     protected function configureListFields(ListMapper $listMapper): void
  106.     {
  107.         $this->setTemplate('list''FluxoCaixa/list.html.twig');
  108.         $listMapper
  109.             
  110.             ->add('ordem'null, ['label'=>'Ordem''template'=>'FluxoCaixa/input_ordem_list.html.twig'])
  111.             ->add('dataExtrato'null, ['label'=>'Data'])
  112.             ->add('descricao'null, ['label'=>'Descrição','template'=>'FluxoCaixa/descricao_list.html.twig'])
  113.             ->add('tipoDocumento'null, ['label'=>'N.F/Comprovante'])
  114.             ->add('classificacao'null, ['label'=>'Conta'])
  115.             ->add('valorFormatado'null, ['label'=>'Valor','template'=>'FluxoCaixa/valor_list.html.twig'])
  116.             ->add('id'null, ['label'=>'ID'])
  117.             ->add('link'null, ['label'=>'Link','template'=>'FluxoCaixa/link_financeiro.html.twig'])
  118.             ->add('_action'null, [
  119.                 'actions' => [
  120.                     'show' => [],
  121.                     'edit' => [],
  122.                     //'delete' => [],
  123.                 ],
  124.             ]);
  125.     }
  126.     protected function configureFormFields(FormMapper $formMapper): void
  127.     {
  128.         $formMapper
  129.             ->add('ordem')
  130.             ->add('dataExtrato'DatePickerType::class,['label'=>'Data do extrato''required'=>true])
  131.             ;
  132.     }
  133.     protected function configureShowFields(ShowMapper $showMapper): void
  134.     {
  135.         $showMapper
  136.             ->add('id')
  137.             ->add('tipo')
  138.             ->add('createdAt')
  139.             ->add('dataExtrato')
  140.             ;
  141.     }
  142.     public function preUpdate($object)
  143.     {
  144.         $object->setUserUltimaAlteracao($this->getUserLogado());
  145.         parent::preUpdate($object); // TODO: Change the autogenerated stub
  146.     }
  147. }