Código:
y el formulario para insertar nuevas visitas:............ class Visita { protected $id; protected $venta; protected $cliente; protected $comentario; ............
Código:
Como veis, he añadido dos botones 'submit' al formulario con el siguiente objetivo: .................... $builder->add('cliente', 'entity', array( 'empty_value' => '-- Seleccionar --', 'class' => 'ClienteBundle:Cliente', 'property' => 'nomComercial', 'label' => 'Cliente', 'attr' => array( 'class' => 'form-control' ) )) ->add('comentario', 'textarea', array( 'label' => 'Comentario', 'required' => false, 'attr' => array( 'placeholder' => 'Breve comentario (opcional)...', 'class' => 'form-control', 'rows' => '10', ) )) ->add('finalizar_sin', 'submit', array( 'label' => 'Finalizar sin compra', 'attr' => array( 'class' => 'btn btn-success' ) )) ->add('finalizar_con', 'submit', array( 'label' => 'Finalizar y realizar pedido', 'attr' => array( 'class' => 'btn btn-success' ) )); } ..................
- el submit 'Finalizar sin compra' persiste una entidad Visita, marcando el atributo $venta a FALSE. Aquí os muestro el procesamiento para este botón:
Código:
- el submit 'Finalizar y generar pedido' persiste una entidad Visita, marcando el atributo $venta a TRUE, para crear una entidad Pedido y hacer otras operaciones:................... $visita->setVenta(false); $em->persist($visita); $em->flush(); $this->addFlash('info', 'La visita ha sido cerrada sin venta'); return $this->redirectToRoute('visita_listado', array(), 301); .....................
Código:
La vista tiene el siguiente aspecto:..................... $visita->setVenta(true); $em->persist($visita); $em->flush(); $pedido = new Pedido(); .....................
Código:
El problema es que el método que procesa las visitas me queda muy farragoso y con muchas líneas de código. Me gustaría poder separar de alguna manera el procesamiento y respetar las buenas prácticas. Es decir, que un submit ejecute un 'action' y el otro submit tenga otro 'action', con dos métodos separados en el controlador.<form action="{{ path('visita_nueva') }}" method="POST"> {{ form_errors(formulario) }} <div class="form-group"> {{ form_row(formulario.cliente) }} </div> <div class="form-group"> {{ form_row(formulario.comentario) }} </div> <div class="form-group"> {{ form_row(formulario.finalizar_sin) }} </div> <div class="form-group"> {{ form_row(formulario.finalizar_con) }} </div> {{ form_row(formulario._token) }} </form>
Si alguien puede echarme un cable, le estaré muy agradecido!