src/Form/Carrito/CartStep1Type.php line 17
- <?php
- namespace 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';
- }
- }