<?php
declare(strict_types=1);
namespace App\Admin;
use App\Enums\TipoOperacaoFinanceira;
use App\Enums\TipoOperacaoFinanceiraEnum;
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 Sonata\Form\Type\DateTimePickerType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
final class RegistroCaixaRotativoAdmin extends AbstractAdmin
{
protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
{
$datagridMapper
->add('id')
->add('tipo')
->add('motivo')
->add('descricao')
->add('data')
->add('createdAt')
->add('valor')
;
}
protected function configureListFields(ListMapper $listMapper): void
{
$listMapper
->add('tipo')
->add('motivo')
->add('data')
->add('valor')
->add('_action', null, [
'actions' => [
'show' => [],
'edit' => [],
'delete' => [],
],
]);
}
protected function configureFormFields(FormMapper $formMapper): void
{
$formMapper
->add('tipo', ChoiceType::class, [
'label' => 'Tipo da operação',
'placeholder' => '-- Selecione --',
'choices' => TipoOperacaoFinanceiraEnum::getAssociatedValues(),
])
->add('valor', MoneyType::class, [
'label' => 'Valor',
'currency' => 'BRL',
'grouping' => true,
'required' => true,
'attr' => ['class' => 'maskMoney'],
])
->add('motivo')
->add('descricao')
->add('data', DateTimePickerType::class,['dp_use_seconds'=>false, 'dp_use_current'=> true, 'format'=>"DD/MM/YYYY", 'label'=>'Data da operação', 'required'=>true])
;
}
protected function configureShowFields(ShowMapper $showMapper): void
{
$showMapper
->add('id')
->add('tipo')
->add('motivo')
->add('descricao')
->add('data')
->add('createdAt')
->add('valor')
;
}
}