<?php
declare(strict_types=1);
namespace App\Admin;
use App\Enums\TipoContaBancariaEnum;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Sonata\Form\Type\DatePickerType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
final class ColaboradorAdmin extends BaseAdmin
{
protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
{
$datagridMapper
->add('id')
->add('nome')
->add('email')
;
}
protected function configureListFields(ListMapper $listMapper): void
{
$listMapper
->add('id')
->add('nome')
->add('email')
->add('franquia', null, ['label'=>'Franquia'])
->add('_action', null, [
'actions' => [
'show' => [],
'edit' => [],
'delete' => [],
],
]);
}
protected function configureFormFields(FormMapper $formMapper): void
{
$formMapper
->add('nome')
->add('email')
->add('enderecoCompleto',null, ['label'=>'Endereço Residencial Completo'])
->add('enderecoCep',null, ['label'=>'CEP Residencial'])
->add('funcao',null, ['label'=>'Função'])
->add('lotacao',null, ['label'=>'Local de Lotação'])
->add('telefone')
->add('salario', MoneyType::class, [
'label' => 'Salário',
'currency' => 'BRL',
'grouping' => true,
'required' => false,
'attr' => ['class' => 'maskMoney'],
])
->add('dataAdmissao', DatePickerType::class,['label'=>'Data de admissão', 'required'=>false])
->add('contratoExperiencia',null, ['label'=>'Contrato de Experiência', 'help'=>'Use uma destas opções: 30+30, 30+60, 44+46 ou 90'])
->add('dataRescisao', DatePickerType::class,['label'=>'Data de recisão', 'required'=>false])
->add('bancoAgencia',null, ['label'=>'Agência bancária'])
->add('bancoConta',null, ['label'=>'Nº Conta bancária'])
->add('tipoConta', ChoiceType::class, [
'choices' => TipoContaBancariaEnum::getAssociatedValues(),
])
;
}
protected function configureShowFields(ShowMapper $showMapper): void
{
$showMapper
->add('id')
->add('nome')
->add('email')
->add('telefone')
;
}
public function prePersist($object)
{
$object->setCadastradoPor($this->getUserLogado());
parent::prePersist($object); // TODO: Change the autogenerated stub
}
}