src/Form/Customer/PackageCalculation.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Form\Customer;
  3. use App\Entity\ComplexMeasurement;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  6. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Contracts\Translation\TranslatorInterface;
  10. /**
  11.  * Formular pro vypocet ceny za balik na zaklade parametru baliku, formular nema tlacitko submit
  12.  */
  13. class PackageCalculation extends AbstractType
  14. {
  15.     private TranslatorInterface $translator;
  16.     public function __construct(TranslatorInterface $translator)
  17.     {
  18.         $this->translator $translator;
  19.     }
  20.     public function buildForm(FormBuilderInterface $builder, array $options): void
  21.     {
  22.         $builder
  23.             ->add(
  24.                 'length',
  25.                 NumberType::class,
  26.                 [
  27.                     'label' => $this->translator->trans('Délka:'),
  28.                     'help' => $this->translator->trans('v centimetrech, maximální délka je 100 cm'),
  29.                     'required' => true,
  30.                     'attr' => ['step' => 'any']
  31.                 ]
  32.             )
  33.             ->add(
  34.                 'width',
  35.                 NumberType::class,
  36.                 [
  37.                     'label' => $this->translator->trans('Šířka:'),
  38.                     'help' => $this->translator->trans('v centimetrech, maximální šířka je 100 cm'),
  39.                     'required' => true,
  40.                     'attr' => ['step' => 'any']
  41.                 ]
  42.             )
  43.             ->add(
  44.                 'height',
  45.                 NumberType::class,
  46.                 [
  47.                     'label' => $this->translator->trans('Výška:'),
  48.                     'help' => $this->translator->trans('v centimetrech, maximální výška je 100 cm'),
  49.                     'required' => true,
  50.                     'attr' => ['step' => 'any']
  51.                 ]
  52.             )
  53.             ->add(
  54.                 'weight',
  55.                 NumberType::class,
  56.                 [
  57.                     'label' => $this->translator->trans('Hmotnost:'),
  58.                     'help' => $this->translator->trans('v kilogramech, maximální váha je 30 kg'),
  59.                     'required' => true,
  60.                     'attr' => ['step' => 'any']
  61.                 ]
  62.             );
  63.         if ($options['renderSubmitButton']) {
  64.             $builder->add(
  65.                 'submit',
  66.                 SubmitType::class,
  67.                 [
  68.                     'label' => $this->translator->trans('Odeslat')
  69.                 ]
  70.             );
  71.         }
  72.     }
  73.     public function configureOptions(OptionsResolver $resolver): void
  74.     {
  75.         $resolver->setRequired('entityManager');
  76.         $resolver->setRequired('renderSubmitButton');
  77.         $resolver->setDefaults([
  78.             'renderSubmitButton' => false,
  79.             'data_class' => ComplexMeasurement::class
  80.         ]);
  81.     }
  82. }