src/Form/LetterOfIntentToPurchaseType.php line 210

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\AdminDonneurOrdre;
  4. use App\Entity\Conditionnement;
  5. use App\Entity\Devise;
  6. use App\Entity\Emballage;
  7. use App\Entity\Exigence;
  8. use App\Entity\LetterOfIntentToPurchase;
  9. use App\Entity\Niveau;
  10. use App\Entity\PaymentMethod;
  11. use App\Entity\Products;
  12. use App\Entity\SousJacent;
  13. use App\Entity\Status;
  14. use App\Entity\Unite;
  15. use App\Entity\User;
  16. use DateTime;
  17. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  18. use Symfony\Component\Form\AbstractType;
  19. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  20. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  21. use Symfony\Component\Form\Extension\Core\Type\CountryType;
  22. use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  23. use Symfony\Component\Form\Extension\Core\Type\DateType;
  24. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  25. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  26. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  27. use Symfony\Component\Form\Extension\Core\Type\MoneyType;
  28. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  29. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  30. use Symfony\Component\Form\Extension\Core\Type\TextType;
  31. use Symfony\Component\Form\FormBuilderInterface;
  32. use Symfony\Component\OptionsResolver\OptionsResolver;
  33. use Symfony\Component\Validator\Constraints\NotBlank;
  34. class LetterOfIntentToPurchaseType extends AbstractType
  35. {
  36.     public function buildForm(FormBuilderInterface $builder, array $options)
  37.     {
  38.         $builder
  39.             ->add('adminName',HiddenType::class,[
  40.                 'data'=>'bscm'
  41.             ])
  42.             ->add('reference',TextType::class,['required'=>false, ])
  43.             ->add('mandataire',TextType::class,['required'=>false, ])
  44.             // ->add('recipient',EntityType::class,[
  45.             //     'class'=>AdminDonneurOrdre::class,
  46.             //     'choice_label'=>'raison',
  47.             //     'placeholder'=>'Choix',
  48.             //     'required'=>true,
  49.             //     'query_builder' => function ($repository) {
  50.             //         return $repository->createQueryBuilder('d')
  51.             //             ->join('d.position', 'p')
  52.             //             ->where('p.name = :position')
  53.             //             ->setParameter('position', 'Vendeur');
  54.             //     },
  55.             // ])
  56.             ->add('date_saisie',DateType::class,[
  57.                 'required'=>false,
  58.                 'widget' => 'single_text',
  59.                 'format' => 'yyyy-MM-dd',
  60.                 'placeholder' => [
  61.                     'year' => 'Année''month' => 'Mois''day' => 'Jour',
  62.                     'hour' => 'Hour''minute' => 'Minute''second' => 'Second',
  63.                 ],
  64.             ])
  65.             ->add('representant',TextType::class,[
  66.                 'required'=>false,
  67.                 'attr'=>[
  68.                 ]
  69.             ])
  70.             ->add('entreprise',TextType::class,[
  71.                 'label'=>'Tel ',
  72.                 'required'=>false,
  73.                 'attr'=>[
  74.                 ]
  75.             ])
  76.             ->add('numero_rc',TextType::class,['required'=>false, ])
  77.             ->add('pays',CountryType::class,[
  78.                 'required'=>false,
  79.                 'placeholder' => 'Choix',
  80.             ])
  81.             ->add('phone',TextType::class,['required'=>false, ])
  82.             ->add('email',TextType::class,['required'=>false, ])
  83.             ->add('sousJacent',EntityType::class,[
  84.                 'required'=>false,
  85.                 'placeholder' => 'sous-jacent',
  86.                 'class' => SousJacent::class,
  87.                 'choice_label' => 'produit_en_gestion',
  88.             ])
  89.             ->add('agent',EntityType::class,[
  90.                 'required'=>false,
  91.                 'placeholder' => 'agent',
  92.                 'class' => User::class,
  93.                 'choice_label' => 'name',
  94.             ])
  95.             ->add('quantity',NumberType::class,[
  96.                 'required'=>false,
  97.                 'label'=>'Quantité en T ',
  98.             ])
  99.             ->add('qt_unite'EntityType::class,[
  100.                 'class'=>Unite::class,
  101.                 'placeholder' => 'Choix',
  102.                 'choice_label'=>'nom',
  103.                 'required'=>false,
  104.             ])
  105.             ->add('filiere',EntityType::class,[
  106.                 'required'=>false,
  107.                 'placeholder' => 'Produit',
  108.                 'class' => Products::class,
  109.                 'choice_label' => 'name',
  110.             ])
  111.             ->add('origine',CountryType::class,[
  112.                 'label'=>'Origine ',
  113.                 'required'=>false,
  114.                 'placeholder' => 'Choix',
  115.             ])
  116.             ->add('prix_cible',IntegerType::class,[
  117.                 'label'=>'Prix cible ',
  118.                 'required'=>false,
  119.             ])
  120.             ->add('devise'EntityType::class,[
  121.                 'class'=>Devise::class,
  122.                 'placeholder' => 'choix',
  123.                 'choice_label'=>'name',
  124.                 'required'=>false,
  125.             ])
  126.             ->add('emballage'EntityType::class,[
  127.                 'class'=>Emballage::class,
  128.                 'placeholder' => 'Choix',
  129.                 'choice_label'=>'name',
  130.                 'required'=>false,
  131.             ])
  132.             ->add('conditionnement'EntityType::class,[
  133.                 'class'=>Conditionnement::class,
  134.                 'placeholder' => 'Choix',
  135.                 'choice_label'=>'name',
  136.                 'required'=>false,
  137.             ])
  138.             ->add('paiement_mode'EntityType::class,[
  139.                 'class'=>PaymentMethod::class,
  140.                 'placeholder' => 'Choix',
  141.                 'choice_label'=>'name',
  142.                 'required'=>false,
  143.             ])
  144.             ->add('destination',CountryType::class,[
  145.                 'required'=>false,
  146.             ])
  147.             ->add('delai_livraison',TextType::class,['required'=>false, ])
  148.             ->add('frequence',TextType::class,['required'=>false, ])
  149.             ->add('condition',TextType::class,['required'=>false, ])
  150.             ->add('exigence'EntityType::class,[
  151.                 'class'=>Exigence::class,
  152.                 'placeholder' => 'Choix',
  153.                 'choice_label'=>'name',
  154.                 'required'=>false,
  155.             ])
  156.             ->add('specification',TextareaType::class,[
  157.                 'required'=>false,
  158.             ])
  159.             ->add('date_expiration',TextType::class,['required'=>false, ])
  160.             ->add('niveau'EntityType::class,[
  161.                 'class'=>Niveau::class,
  162.                 'placeholder' => 'Choix',
  163.                 'choice_label'=>'niveau',
  164.             ])
  165.             ->add('status'EntityType::class,[
  166.                 'class'=>Status::class,
  167.                 'placeholder' => 'Choix',
  168.                 'choice_label'=>'name',
  169.                 'required'=>false,
  170.                 'query_builder' => function ($repository) {
  171.                     return $repository->createQueryBuilder('s')
  172.                         ->where('LOWER(s.formulaire) LIKE :entity_name'// Utilisation de LIKE pour une correspondance approximative
  173.                         ->setParameter('entity_name''%intention%achat%'); // Utilisation de % pour faire correspondre n'importe quel caractère (y compris aucun)
  174.                 },
  175.             ])
  176.             ->add('suivipar',EntityType::class,[
  177.                 'class'=>User::class,
  178.                 'choice_label'=>'name',
  179.                 'placeholder'=>'Choix',
  180.                 'required'=>true,
  181.                 'query_builder' => function ($repository) {
  182.                     return $repository->createQueryBuilder('d')
  183.                         ->join('d.status''p')
  184.                         ->where('p.name = :autorisation')
  185.                         ->setParameter('autorisation''Autorisé');
  186.                 },
  187.             ])
  188.         ;
  189.     }
  190.     public function configureOptions(OptionsResolver $resolver)
  191.     {
  192.         $resolver->setDefaults([
  193.             'data_class' => LetterOfIntentToPurchase::class,
  194.             'vendeurs' => [],
  195.             'vendeur' => null,
  196.         ]);
  197.     }
  198. }