Posted By

uthopiko on 07/19/12


Tagged

cart symfony2


Versions (?)

CartController


 / Published in: PHP
 

Prueba Controller

  1. <?php
  2.  
  3. namespace Eros\CartBundle\Controller;
  4.  
  5. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  6. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  8. use Symfony\Component\HttpFoundation\RedirectResponse;
  9. use Symfony\Component\HttpFoundation\Response;
  10.  
  11. class CartController extends Controller
  12. {
  13.  
  14.  
  15. /**
  16.   * @Route("/add/{NumeroElementos}/{Articulo}/{Precio}",name="_ajax_add2_pedido",options={"expose"=true})
  17.   */
  18. public function addAction($NumeroElementos,$Articulo,$Precio)
  19. {
  20. $em = $this->get('doctrine.orm.entity_manager');
  21. $pedidos = new \Eros\CartBundle\Entity\UsrPedidos();
  22. $articulo = new \Eros\FrontendBundle\Entity\ProArticulo();
  23. $user= $this->get('security.context')->getToken()->getUser();
  24.  
  25. $request = $this->get('request');
  26.  
  27. if($this->get('security.context')->isGranted('ROLE_USER')){
  28. $pedidos->setArticulo($em->getRepository('Eros\FrontendBundle\Entity\ProArticulo')->find($Articulo));
  29. $pedidos->setNumeroarticulos($NumeroElementos);
  30. $pedidos->setDateadd(new \DateTime("now"));
  31. $pedidos->setPrecio($Precio);
  32. $pedidos->setUser($user);
  33. $pedidos->setSidestadopedido($em->getRepository('Eros\BackendBundle\Entity\MstEstadoPedido')->find(2));
  34. $em->persist($pedidos);
  35. $em->flush();
  36. }else{
  37. $pedidos->setArticulo($em->getRepository('Eros\FrontendBundle\Entity\ProArticulo')->find($Articulo));
  38. $pedidos->setNumeroarticulos($NumeroElementos);
  39. $pedidos->setDateadd(new \DateTime("now"));
  40. $pedidos->setPrecio($Precio);
  41. $pedidos->setSidestadopedido($em->getRepository('Eros\BackendBundle\Entity\MstEstadoPedido')->find(2));
  42. $session = $this->getRequest()->getSession();
  43.  
  44. // store an attribute for reuse during a later user request
  45. $session->set('pedidos', $session->get('pedidos').$pedidos->serialize());
  46. /*var_dump($session->get('pedidos'));*/
  47. }
  48.  
  49.  
  50.  
  51. if($this->get('security.context')->isGranted('ROLE_USER')){
  52. $items = $em->getRepository('Eros\CartBundle\Entity\UsrPedidos')->CountItemsByUser($user->GetId());
  53. $precio = $em->getRepository('Eros\CartBundle\Entity\UsrPedidos')->SumarPrecioByUser($user->GetId());
  54. }else{
  55. $items = substr_count($session->get('pedidos'), '{');
  56. $pedidos_array = explode('{', $session->get('pedidos'));
  57. $precio = 0;
  58. for($i=0;$i<count($pedidos_array);$i++){
  59. $trozos_pedido = explode(',',$pedidos_array[$i]);
  60. if(count($trozos_pedido)>1){
  61. $precio_tmp = $trozos_pedido[3];
  62. $nelementos_tmp = $trozos_pedido[2];
  63. $precio += $precio_tmp * $nelementos_tmp;
  64. }
  65.  
  66. }
  67.  
  68.  
  69. }
  70. $response = new Response(json_encode(array('status'=>'OK','items'=>$items,'precio'=>$precio." �")));
  71. $response->headers->set('Content-Type', 'application/json');
  72. return $response;
  73. }
  74. }

Report this snippet  

You need to login to post a comment.