Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controller;
- use App\Entity\ShopOrder;
- use App\Entity\OrderDetails;
- use App\Entity\Status;
- use App\Entity\User;
- use App\Form\ShopOrderForm;
- use App\Entity\Disc;
- use App\Repository\DiscRepository;
- use App\Repository\OrderDetailsRepository;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\Routing\Annotation\Route;
- use Symfony\Component\HttpFoundation\Session\SessionInterface;
- use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
- use Symfony\Component\Validator\Validator\ValidatorInterface;
- class OrderController extends AbstractController
- {
- private $session;
- public function __construct(SessionInterface $session)
- {
- $this->session = $session;
- }
- /**
- * @Route("/newOrder", methods={"GET", "POST"}, name="new_order")
- */
- public function newOrder(Request $request, ValidatorInterface $validator, DiscRepository $discRepository, OrderDetailsRepository $detailsRepository)
- {
- $cart = $this->session->get('cart');
- $order = new ShopOrder();
- $user = $this->container->get('security.token_storage')->getToken()->getUser();
- $form = $this->createForm(ShopOrderForm::class, $order);
- $form->handleRequest($request);
- if($form->isSubmitted() && $form->isValid())
- {
- $order->setUser($user);
- $order->setDate(new \DateTime());
- $order = $form->getData();
- $entityManager = $this->getDoctrine()->getManager();
- $entityManager->persist($order);
- $entityManager->flush();
- return $this->redirectToRoute('home');
- }
- foreach($cart as $id => $disc)
- {
- $order = $detailsRepository->findAllByID($request, $user);
- $orderDetails = new OrderDetails();
- $orderDetails->setDisc($discRepository->find($id));
- $orderDetails->setAmount($disc['quantity']);
- $orderDetails->setPrice($discRepository->find($id)->getPrice());
- $orderDetails->getOrderId($order);
- $entityManager = $this->getDoctrine()->getManager();
- $entityManager->persist($orderDetails);
- $entityManager->flush();
- }
- return $this->render('order/new_order.html.twig', array(
- 'form' => $form->createView()
- ));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement