/** * @EXT\Route( * "/payment/workspace/submit/order/{order}/product/{product}", * name="workspace_product_payment_submit" * ) * @EXT\ParamConverter("authenticatedUser", options={"authenticatedUser" = true}) * @return Response */ public function addOrderToChartAction(Order $order, Product $product) { $chart = $order->getChart(); //check it wasn't already submitted if (false) { $content = $this->renderView('FormaLibreInvoiceBundle:errors:orderAlreadySubmitedException.html.twig'); return new Response($content); } if ($this->session->has('form_price_data')) { $priceSolution = $this->session->get('form_price_data'); $this->session->remove('form_price_data'); $priceSolution = $this->em->getRepository('FormaLibreInvoiceBundle:PriceSolution')->find($priceSolution->getId()); } $form = $this->createForm(new SharedWorkspaceForm($product)); $form->handleRequest($this->request); if ($form->isValid()) { //do that stuff here if (!$this->authorization->isGranted('ROLE_USER')) { $this->session->set('form_price_data', $form->get('price')->getData()); $redirectRoute = $this->router->generate('workspace_product_payment_submit', array('order' => $order->getId(), 'product' => $product->getId(), 'chart' => $chart->getId())); $this->session->set('redirect_route', $redirectRoute); $route = $this->router->generate('claro_security_login', array()); return new RedirectResponse($route); } $priceSolution = $form->get('price')->getData(); } $order->setChart($chart); $order->setProduct($product); $chart->setOwner($this->tokenStorage->getToken()->getUser()); $chart->setIpAdress($_SERVER['REMOTE_ADDR']); $order->setPriceSolution($priceSolution); $order->setChart($chart); if ($this->swsManager->hasFreeTestMonth($chart->getOwner())) { $order->setHasDiscount(true); $this->swsManager->useFreeTestMonth($chart->getOwner()); } $this->em->persist($chart); $this->em->persist($order); $this->em->flush(); return new RedirectResponse($this->router->generate('chart_payment_confirm', array('chart' => $order->getChart()->getId()), true)); throw new \Exception('Errors were found: ' . $form->getErrorsAsString()); }