src/Form/WayBillForm.php line 46

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Parcel;
  4. use App\Entity\Station;
  5. use App\Entity\WayBill;
  6. use Doctrine\ORM\EntityRepository;
  7. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  11. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextType;
  13. use Symfony\Component\Form\FormBuilderInterface;
  14. use Symfony\Component\OptionsResolver\OptionsResolver;
  15. class WayBillForm extends AbstractType
  16. {
  17. public function buildForm(FormBuilderInterface $builder, array $options) {
  18. $builder
  19. ->add('receiverName', TextType::class)
  20. ->add('receiverPhoneNumber', TextType::class)
  21. ->add('senderName', TextType::class)
  22. ->add('senderPhoneNumber', TextType::class)
  23. ->add('toStation', EntityType::class, [
  24. 'class' => Station::class,
  25. 'query_builder' => function(EntityRepository $er){
  26. return $er->createQueryBuilder('i')
  27. ->andWhere('i.isMobile = false')
  28. ->setMaxResults(50);
  29. },
  30. 'placeholder' => 'Please Select Destination',
  31. ])
  32. ->add('transaction', TransactionForm::class)
  33. ->add('parcelValue', IntegerType::class)
  34. ->add('parcels', CollectionType::class, [
  35. 'entry_type' => ParcelForm::class,
  36. 'allow_add' => true,
  37. 'prototype' => true,
  38. 'entry_options' => [
  39. 'label' => false
  40. ],
  41. 'allow_delete' => true,
  42. 'by_reference' => false,
  43. 'delete_empty' => function (Parcel $parcel = null) {
  44. return null === $parcel || empty($parcel->getDescription());
  45. },
  46. ]);
  47. }
  48. public function configureOptions(OptionsResolver $resolver) {
  49. $resolver
  50. ->setDefaults([
  51. 'data_class' =>WayBill::class,
  52. 'validation_groups' => [
  53. 'Default','collection'
  54. ]
  55. ]);
  56. }
  57. public function getBlockPrefix()
  58. {
  59. return 'app_bundle_way_bill_form';
  60. }
  61. }