Advertisement
Metrowy

OrderController.php

Jan 27th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.47 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Controller;
  4.  
  5. use App\Entity\ShopOrder;
  6. use App\Entity\OrderDetails;
  7. use App\Entity\Status;
  8. use App\Entity\User;
  9. use App\Form\ShopOrderForm;
  10. use App\Entity\Disc;
  11. use App\Repository\DiscRepository;
  12. use App\Repository\OrderDetailsRepository;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  18. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  19. use Symfony\Component\Validator\Validator\ValidatorInterface;
  20.  
  21.  
  22. class OrderController extends AbstractController
  23. {
  24.     private $session;
  25.  
  26.     public function __construct(SessionInterface $session)
  27.     {
  28.         $this->session = $session;
  29.     }
  30.  
  31.     /**
  32.      * @Route("/newOrder", methods={"GET", "POST"}, name="new_order")
  33.      */
  34.     public function newOrder(Request $request, ValidatorInterface $validator, DiscRepository $discRepository, OrderDetailsRepository $detailsRepository)
  35.     {
  36.         $cart = $this->session->get('cart');
  37.         $order = new ShopOrder();
  38.         $user = $this->container->get('security.token_storage')->getToken()->getUser();
  39.         $form = $this->createForm(ShopOrderForm::class, $order);
  40.         $form->handleRequest($request);
  41.         if($form->isSubmitted() && $form->isValid())
  42.         {
  43.             $order->setUser($user);
  44.             $order->setDate(new \DateTime());
  45.             $order = $form->getData();
  46.  
  47.             $entityManager = $this->getDoctrine()->getManager();
  48.             $entityManager->persist($order);
  49.             $entityManager->flush();
  50.  
  51.             return $this->redirectToRoute('home');
  52.         }
  53.         foreach($cart as $id => $disc)
  54.         {
  55.             $order = $detailsRepository->findAllByID($request, $user);
  56.             $orderDetails = new OrderDetails();
  57.             $orderDetails->setDisc($discRepository->find($id));
  58.             $orderDetails->setAmount($disc['quantity']);
  59.             $orderDetails->setPrice($discRepository->find($id)->getPrice());
  60.             $orderDetails->getOrderId($order);
  61.             $entityManager = $this->getDoctrine()->getManager();
  62.             $entityManager->persist($orderDetails);
  63.             $entityManager->flush();
  64.         }
  65.  
  66.         return $this->render('order/new_order.html.twig', array(
  67.             'form' => $form->createView()
  68.         ));
  69.  
  70.     }
  71.  
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement