src/Form/Carrito/CartStep1Type.php line 17
<?phpnamespace App\Form\Carrito;use Doctrine\ORM\EntityRepository;use Symfony\Component\Form\AbstractType;use Symfony\Component\Form\FormBuilderInterface;use Symfony\Component\Form\FormView;use Symfony\Component\Form\FormEvent;use Symfony\Component\Form\FormEvents;use Symfony\Component\Form\FormInterface;use Symfony\Component\OptionsResolver\OptionsResolver;use Doctrine\ORM\EntityManagerInterface;use Symfony\Component\Form\Extension\Core\Type\ChoiceType;use Symfony\Component\Form\Extension\Core\Type\NumberType;class CartStep1Type extends AbstractType{protected $em;protected $locale;protected $divisaOrigen;protected $divisaFinal;protected $choices;protected $flagOrigen;protected $flagFinal;protected $divisas;public function __construct(EntityManagerInterface $em, $locale = null){$this->em = $em;$this->locale = $locale;}/*** Esta función busca divisas idioma con restricciones, p.e: los cheques no pueden estar en la derecha* La clase a la que está enlazada es carro, que trabaja con Divisas en vez de DivisaIdioma así que transformamos* los datos en Divisa antes de pasarla de vuelta al carro.* @param FormBuilderInterface $builder [description]* @param array $options [description]* @return [type] [description]*/public function buildForm(FormBuilderInterface $builder, array $options){$builder->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event) {$data=$event->getData();$form = $event->getForm();if($data){$data->getDivisaOrigen();$this->divisaOrigen=$data->getDivisaOrigen()->getId();$this->divisaFinal=$data->getDivisaFinal()->getId();$this->flagOrigen=$data->getDivisaOrigen()->getImagen();$this->flagFinal=$data->getDivisaFinal()->getImagen();}// if(isset($_COOKIE['cookieoficina']) && $_COOKIE['cookieoficina'] == 1){// $disable = true;//// }else{// $disable = false;//// }$form->add('divisaOrigen', ChoiceType::class, array('choices' => array_flip($this->choicesL),'mapped' => false,'disabled' => true,'label' => false,'data' => $this->divisaOrigen,'attr' => array('class'=>'divisaOrigenForm col1'),'choice_attr' => function($choice, $key, $value) {// $dataImagen = $choice->path($media, 'divisa');//TODO rehacer con ruta correcta$dataImagen = "/upload/media/divisa/0001/01/".$this->divisas[$choice]->getImagen()->getProviderReference();// $dataImagen = $this->flagOrigen;return ['data-imagen' => $dataImagen];},));$form->add('divisaFinal', ChoiceType::class, array('choices' => array_flip($this->choicesR),'mapped' => false,'label' => false,'data' => $this->divisaFinal,'attr' => array('class'=>'divisaFinalForm'),'choice_attr' => function($choice, $key, $value) {// $dataImagen = $this->flagFinal;$dataImagen = "/upload/media/divisa/0001/01/".$this->divisas[$choice]->getImagen()->getProviderReference();return ['data-imagen' => $dataImagen];},));});// $language=$this->em->getRepository('App\Entity\Idioma')->findOneByUrl($this->locale);// $traduccionesL=$this->em->getRepository('App\Entity\DivisaIdioma')->findAllVisibles($language);// $traduccionesR=$this->em->getRepository('App\Entity\DivisaIdioma')->findAllVisibles($language,[13]);$traduccionesL=$this->em->getRepository('App\Entity\Divisa')->findBy(["visible" => 1]);$traduccionesR=$this->em->getRepository('App\Entity\Divisa')->findBy(["visible" => 1]);$choices= $divisas = array();foreach ($traduccionesL as $traduccion) {$choicesL[$traduccion->getId()]=$traduccion->getNombre();$this->divisas[$traduccion->getId()] = $traduccion;}foreach ($traduccionesR as $traduccion) {if ($traduccion->getId() != 13)$choicesR[$traduccion->getId()]=$traduccion->getNombre();}$this->choicesL=$choicesL;$this->choicesR=$choicesR;$builder->add('divisaOrigen', ChoiceType::class, array('choices' => $choicesL,'mapped' => false,'label' => false,'data' => $this->divisaOrigen,'attr' => array('class'=>'divisaOrigenForm col1'),'choice_attr' => function($choice, $key, $value) {// $dataImagen = $this->flagOrigen;$dataImagen = "/upload/media/divisa/0001/01/".$this->divisas[$choice]->getImagen()->getProviderReference();return ['data-imagen' => $dataImagen];},))->add('divisaFinal', ChoiceType::class, array('choices' => $choicesR,'mapped' => false,'label' => false,'attr' => array('class'=>'divisaFinalForm'),'choice_attr' => function($choice, $key, $value) {// $dataImagen = $this->flagFinal;$dataImagen = "/upload/media/divisa/0001/01/".$this->divisas[$choice]->getImagen()->getProviderReference();return ['data-imagen' => $dataImagen];},))->add('cantidadOrigen', NumberType::class, array('label' => false,'attr' => array('class'=>'cantidadOrigen')))->add('cantidadFinal', NumberType::class, array('label' => false,'attr' => array('class'=>'cantidadFinal')));}public function configureOptions(OptionsResolver $resolver){// parent::setDefaultOptions($resolver);$resolver->setDefaults( array('data_class' => 'App\Entity\Pedido'));}public function getName(){return 'dinamic_shop_cartStep1';}}