src/Nolimit/Company/Admin/CompanyAdmin.php line 23

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Nolimit\Company\Admin;
  4. use App\Entity\Company;
  5. use App\Entity\CompanyType;
  6. use App\Entity\Traits\ToStringNameTrait;
  7. use Sonata\AdminBundle\Admin\AbstractAdmin;
  8. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  9. use Sonata\AdminBundle\Datagrid\ListMapper;
  10. use Sonata\AdminBundle\FieldDescription\FieldDescriptionInterface;
  11. use Sonata\AdminBundle\Form\FormMapper;
  12. use Sonata\AdminBundle\Route\RouteCollection;
  13. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  14. use Sonata\AdminBundle\Show\ShowMapper;
  15. use Sonata\AdminBundle\Templating\TemplateRegistry;
  16. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  17. use Symfony\Component\OptionsResolver\OptionsResolver;
  18. final class CompanyAdmin extends AbstractAdmin
  19. {
  20.     protected $translationDomain 'messages';
  21.     use ToStringNameTrait;
  22.     /**
  23.      * @param RouteCollection $collection
  24.      */
  25.     protected function configureRoutes(RouteCollectionInterface $collection):void
  26.     {
  27.         $collection
  28.             ->remove('create')
  29.             ->remove('edit')
  30.             ->remove('delete')
  31.             ->add('company_add''company_add')
  32.             ->add('company_save''company_save')
  33.             ->add('company_edit'$this->getRouterIdParameter().'/company_edit')
  34.             ->add('company_check'$this->getRouterIdParameter().'/company_check')
  35.             ->add('company_delete'$this->getRouterIdParameter().'/company_delete')
  36.             ->add('delete_log'$this->getRouterIdParameter().'/delete_log')
  37.             ->add('company_load_city_by_county''company_load_city_by_county')
  38.             ->add('company_get_contact_person_data''company_get_contact_person_data')
  39.             ->add('company_anaf_add''company_anaf_add')
  40.             ->add('company_anaf_display''company_anaf_display')
  41.             ->add('company_anaf_display_save''company_anaf_display_save')
  42.             ->add('company_populate_city''company_populate_city')
  43.         ;
  44.     }
  45.     protected function configureBatchActions($actions):array
  46.     {
  47.         if (
  48.             $this->hasRoute('edit') && $this->hasAccess('edit') &&
  49.             $this->hasRoute('delete') && $this->hasAccess('delete')
  50.         ) {
  51.             $actions['merge'] = [
  52.                 'ask_confirmation' => true
  53.             ];
  54.         }
  55.         return $actions;
  56.     }
  57.     protected function configureDatagridFilters(DatagridMapper $filter): void
  58.     {
  59.         $filter
  60.             ->add('name'null, array('show_filter' => true))
  61.             ->add('codFiscal'null, array('show_filter' => true))
  62.             ->add('nrRegCom')
  63.             ->add('address')
  64.             ->add('banca')
  65.             ->add('contBancar')
  66.             ->add('contactPerson')
  67.             ->add('tel')
  68.             ->add('email')
  69.             ->add('type')
  70.             ;
  71.     }
  72.     protected function configureListFields(ListMapper $list): void
  73.     {
  74.         $list
  75.             ->add('id''number', array('label' => 'Nr.'))
  76.             ->add('name')
  77.             ->add('codFiscal')
  78.             ->add('nrRegCom')
  79.             ->add('address')
  80.             ->add('banca')
  81.             ->add('contBancar')
  82.             ->add('contactPerson')
  83.             ->add('tel')
  84.             ->add('email')
  85.             ->add(ListMapper::NAME_ACTIONSnull, [
  86.                 'actions' => [
  87.                     'show_reception' => [
  88.                         'template' => '/company/CRUD/list__action_company_show.html.twig',
  89.                     ],
  90.                     'edit_reception' => [
  91.                         'template' => '/company/CRUD/list__action_company_edit.html.twig',
  92.                     ],
  93.                     'check_reception' => [
  94.                         'template' => '/company/CRUD/list__action_company_check_anaf.html.twig',
  95.                     ],
  96. //                    'clone' => [
  97. //                        'template' => '/company/CRUD/list__action_company_clone.html.twig',
  98. //                    ],
  99.                     'delete_log' => [
  100.                         'template' => '/company/CRUD/list__action_company_logical_delete.html.twig',
  101.                     ],
  102.                 ],
  103.             ]);
  104.     }
  105.     protected function configureFormFields(FormMapper $form): void
  106.     {
  107. //        $this->builder = $form->getFormBuilder();
  108. //        $form
  109. //            ->with('Date de baza', ['class' => 'col-md-6 col-sx-12 '])
  110. //            ->add('type', ChoiceType::class, [
  111. //                'expanded' => true,
  112. //                'choices' => [
  113. //                    'Persoana fizica'=>1,
  114. //                     'Persoana juridica'=> "2"
  115. //                ],
  116. //            ])
  117. //            ->add('name')
  118. //            ->add('codFiscal')
  119. //            ->add('nrRegCom')
  120. //            ->add('county', EntityType::class, [
  121. //                'class' => Counties::class,
  122. //                'multiple' => false,
  123. //                'placeholder' => 'Județ',
  124. //                'required' => true,
  125. //                'attr' => array('data-dependent-id' => 'country'),
  126. //            ])
  127. //           ->add('city', EntityType::class, [
  128. //                'class' => Cities::class,
  129. //                'placeholder'=>'Localitate',
  130. //               //'auto_initialize'=> 'false'
  131. //            ])
  132. //            ->add('address')
  133. //            ->add('banca')
  134. //            ->add('contBancar')
  135. //            ->add('contactPerson')
  136. //            ->add('contactPersonTitle')
  137. //            ->add('tel')
  138. //            ->add('email')
  139. //            ->end()
  140. //            ->with('Date de atestat', ['class' => 'col-md-6 col-sx-12'])
  141. //            ->add('atestatExpSeria')
  142. //            ->add('atestatExpNr')
  143. //            ->add('atestatExpValabil')
  144. //            ->end()
  145. //            ;
  146.     }
  147.     public function configureOptions(OptionsResolver $resolver)
  148.     {
  149.         $resolver->setDefaults(array(
  150.             'data_class' => Company::class
  151.         ));
  152.     }
  153.     protected function configureShowFields(ShowMapper $show): void
  154.     {
  155.         $show
  156.             ->add('name')
  157.             ->add('codFiscal')
  158.             ->add('nrRegCom')
  159.             ->add('country')
  160.             ->add('address')
  161.             ->add('banca')
  162.             ->add('contBancar')
  163.             ->add('contactPerson')
  164.             ->add('tel')
  165.             ->add('email')
  166.             ->add('type'FieldDescriptionInterface::TYPE_CHOICE, [
  167.                 'choices' => [
  168.                     Company::COMPANY_TYPE_PF=>'Persoana fizica',
  169.                     Company::COMPANY_TYPE_PJ=>'Persoana juridica'
  170.                 ],
  171.             ])
  172.             ->add('companyType'FieldDescriptionInterface::TYPE_CHOICE, [
  173.                 'choices' => [
  174.                     CompanyType::COMPANY_TYPE_K=>'Kliens',
  175.                     CompanyType::COMPANY_TYPE_B=>'Beszálító'
  176.                 ],
  177.             ])
  178.             ;
  179.     }
  180.     /**
  181.      * @param string $action
  182.      * @param null $object
  183.      * @return array
  184.      */
  185.     public function configureActionButtons($buttonList$action$object null): array
  186.     {
  187.         $buttonList['addFirmaAnafApi'] = ['template' => '/company/CRUD/addFirmaAnafApi_button.html.twig'];
  188.         $list parent::configureActionButtons($buttonList$action$object);
  189.         $list['custom_action'] = array(
  190.             'template' => '/company/CRUD/add_new_company.html.twig',
  191.         );
  192.         return $list;
  193.     }
  194. }