src/Form/Manager/ProviderOrderItemType.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Form\Manager;
  3. use App\Entity\Paper;
  4. use App\Entity\ProviderOrderItem;
  5. use Doctrine\ORM\EntityRepository;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. use App\Form\Helpers\MoneyType;
  11. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  12. class ProviderOrderItemType extends AbstractType
  13. {
  14.     public function buildForm(FormBuilderInterface $builder, array $options): void
  15.     {
  16.         $provider $options['provider'];
  17.  
  18.         $builder
  19.             ->add('paper'EntityType::class, [
  20.                 'label' => 'Produit',
  21.                 'class' => Paper::class,
  22.                 'placeholder' => 'Choisir un produit',
  23.                 'query_builder' => function (EntityRepository $er) use ($provider) {
  24.                     return $er->createQueryBuilder('pp')
  25.                         ->where('pp.provider = :provider')
  26.                         ->setParameter('provider'$provider);
  27.                 },
  28.                 'attr' => [ 'class' => 'provider-order-paper-field''data-controller' => 'select2''data-parent' => $options['is_ajax'] ? '#forecastingOrderModal' null ]
  29.             ])
  30.             ->add('quantity'IntegerType::class, [
  31.                 'label' => 'Q(kg)',
  32.                 'attr' => [ 'class' => 'provider-order-quantity-field' ]
  33.             ])
  34.             ->add('priceUnity'MoneyType::class, [
  35.                 'label' => 'Prix unitaire',
  36.                 'attr' => [ 'class' => 'provider-order-price-unity-field' ]
  37.             ])
  38.             ->add('price'MoneyType::class, [
  39.                 'label' => 'Montant HT',
  40.                 'attr' => [ 'class' => 'provider-order-price-field' ],
  41.                 'disabled' => true
  42.             ])
  43.         ;
  44.     }
  45.     public function configureOptions(OptionsResolver $resolver): void
  46.     {
  47.         $resolver->setDefaults([
  48.             'data_class' => ProviderOrderItem::class,
  49.             'provider' => null,
  50.             'is_ajax' => false
  51.         ]);
  52.     }
  53. }