src/Form/ExpenseType.php line 17

  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Expense;
  4. use App\Entity\ExpenseCategory;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Contracts\Translation\TranslatorInterface;
  10. use Symfony\Component\Form\Extension\Core\Type\DateType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  13. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  14. class ExpenseType extends AbstractType
  15. {
  16.     public function __construct(private TranslatorInterface $translator)
  17.     {
  18.     }
  19.     public function buildForm(FormBuilderInterface $builder, array $options): void
  20.     {
  21.         $builder
  22.             ->add('name'TextType::class, [
  23.                 'label' => $this->translator->trans('Nom de Dépense'),
  24.                 'required' => true,
  25.                 'attr' => [
  26.                     'class' => 'form-control',
  27.                     'placeholder' => ''
  28.                 ],
  29.                 'help' => ''
  30.             ])
  31.             ->add('reference'TextType::class, [
  32.                 'label' => $this->translator->trans('Référence'),
  33.                 'required' => false,
  34.                 'attr' => [
  35.                     'class' => 'form-control',
  36.                     'placeholder' => ''
  37.                 ],
  38.                 'help' => ''
  39.             ])
  40.             ->add('description'TextareaType::class, [
  41.                 'label' => $this->translator->trans('Note'),
  42.                 'required' => false,
  43.                 'attr' => [
  44.                     'class' => 'form-control',
  45.                     'placeholder' => ''
  46.                 ],
  47.                 'help' => ''
  48.             ])
  49.             ->add('date'DateType::class, [
  50.                 'attr' => [
  51.                     'class' => 'form-control',
  52.                     'placeholder' => ''
  53.                 ],
  54.                 'label' => $this->translator->trans('Date'),
  55.                 'required' => true,
  56.                 'widget' => 'single_text',
  57.             ])
  58.             ->add('amount'NumberType::class, [
  59.                 'label' => $this->translator->trans('Montant'),
  60.                 'required' => true,
  61.                 'attr' => [
  62.                     'class' => 'form-control',
  63.                     'placeholder' => ''
  64.                 ],
  65.                 'help' => ''
  66.             ])
  67.             // ->add('createdAt')
  68.             // ->add('updatedAt')
  69.             ->add('type'EntityType::class, [
  70.                 'label' => $this->translator->trans('Type'),
  71.                 'required' => true,
  72.                 'class' => ExpenseCategory::class,
  73.                 'attr' => [
  74.                     'class' => 'form-control  select2-modal'
  75.                 ]
  76.             ])
  77.             // ->add('owner')
  78.         ;
  79.     }
  80.     public function configureOptions(OptionsResolver $resolver): void
  81.     {
  82.         $resolver->setDefaults([
  83.             'data_class' => Expense::class,
  84.         ]);
  85.     }
  86. }