<?php
namespace App\Form\Manager;
use App\Entity\Paper;
use App\Entity\ProviderOrderItem;
use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use App\Form\Helpers\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
class ProviderOrderItemType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$provider = $options['provider'];
$builder
->add('paper', EntityType::class, [
'label' => 'Produit',
'class' => Paper::class,
'placeholder' => 'Choisir un produit',
'query_builder' => function (EntityRepository $er) use ($provider) {
return $er->createQueryBuilder('pp')
->where('pp.provider = :provider')
->setParameter('provider', $provider);
},
'attr' => [ 'class' => 'provider-order-paper-field', 'data-controller' => 'select2', 'data-parent' => $options['is_ajax'] ? '#forecastingOrderModal' : null ]
])
->add('quantity', IntegerType::class, [
'label' => 'Q(kg)',
'attr' => [ 'class' => 'provider-order-quantity-field' ]
])
->add('priceUnity', MoneyType::class, [
'label' => 'Prix unitaire',
'attr' => [ 'class' => 'provider-order-price-unity-field' ]
])
->add('price', MoneyType::class, [
'label' => 'Montant HT',
'attr' => [ 'class' => 'provider-order-price-field' ],
'disabled' => true
])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => ProviderOrderItem::class,
'provider' => null,
'is_ajax' => false
]);
}
}