public function addOrder(Order $order, Chart $chart = null) { if (!$chart) { $chart = new Chart(); } $order->setChart($chart); }
/** * @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()); }
/** * @EXT\Route( * "/support/credits/products/purchase", * name="formalibre_support_credits_products_purchase" * ) * @EXT\Template("") * * @return Response */ public function supportCreditsPurchaseAction() { $user = $this->tokenStorage->getToken()->getUser(); $productId = null; if ($this->session->has('support_credit_purchase_form_product_id')) { $productId = $this->session->get('support_credit_purchase_form_product_id'); $this->session->remove('support_credit_purchase_form_product_id'); } $datas = $this->request->request->all(); if (!is_null($productId) || isset($datas['support_credit_purchase_form']) && isset($datas['support_credit_purchase_form']['product'])) { $productId = is_null($productId) ? intval($datas['support_credit_purchase_form']['product']) : $productId; if (!$this->authorization->isGranted('ROLE_USER')) { $this->session->set('support_credit_purchase_form_product_id', $productId); $redirectRoute = $this->router->generate('formalibre_support_credits_products_purchase'); $this->session->set('redirect_route', $redirectRoute); $route = $this->router->generate('claro_security_login', array()); return new RedirectResponse($route); } $product = $this->productManager->getProductById($productId); if (is_null($product)) { return new RedirectResponse($this->router->generate('formalibre_support_credits_products_purchase_form')); } $priceSolutions = $product->getPriceSolutions(); $priceSolution = $priceSolutions[0]; $order = new Order(); $chart = new Chart(); $order->setChart($chart); $order->setProduct($product); $chart->setOwner($user); $chart->setIpAdress($_SERVER['REMOTE_ADDR']); $order->setPriceSolution($priceSolution); $order->setChart($chart); $this->om->persist($chart); $this->om->persist($order); $this->om->flush(); return new RedirectResponse($this->router->generate('chart_payment_confirm', array('chart' => $chart->getId()), true)); // return new RedirectResponse( // $this->router->generate('formalibre_support_credits_products_purchase_thanks') // ); } else { return new RedirectResponse($this->router->generate('formalibre_support_credits_products_purchase_form')); } }
/** * @EXT\Route( * "/shared/workspace/create", * name="formalibre_admin_shared_workspace_create", * options={"expose"=true} * ) * @EXT\ParamConverter("authenticatedUser", options={"authenticatedUser" = true}) * @EXT\Template("FormaLibreInvoiceBundle:AdminSharedWorkspaces:sharedWorkspaceCreateForm.html.twig") */ public function sharedWorkspaceCreateAction() { $products = $this->productManager->getProductsBy(array('type' => 'SHARED_WS'), array('code' => 'ASC')); $product = count($products) > 0 ? $products[0] : null; $workspaces = $this->sharedWorkspaceManager->getNonPersonalRemoteWorkspacesDatas(); $sharedWorkspace = new SharedWorkspace(); $form = $this->formFactory->create(new SharedWorkspaceType($this->translator, $product, $workspaces), $sharedWorkspace); $form->handleRequest($this->request); if ($form->isValid()) { $owner = $sharedWorkspace->getOwner(); $remoteUser = $this->sharedWorkspaceManager->getRemoteUser($owner->getUsername()); if (isset($remoteUser['error']['code'])) { $remoteUser = $this->sharedWorkspaceManager->createRemoteUser($owner); } $remoteWorkspaceId = $form->get('remoteWorkspace')->getData(); if (!is_null($remoteWorkspaceId)) { $sharedWorkspace->setRemoteId($remoteWorkspaceId); $this->om->persist($sharedWorkspace); $datas = 'success'; } else { $name = $form->get('name')->getData(); $code = $form->get('code')->getData(); $datas = $this->sharedWorkspaceManager->createRemoteWorkspace($sharedWorkspace, $owner, $name, $code); } if ($datas === 'success') { $product = $form->get('product')->getData(); $priceSolutionId = $form->get('price')->getData(); $priceSolutions = $product->getPriceSolutions(); $priceSolution = $priceSolutions[$priceSolutionId]; $chart = new Chart(); $chart->setOwner($owner); $now = new \DateTime(); $chart->setCreationDate($now); $chart->setValidationDate($now); $order = new Order(); $order->setPriceSolution($priceSolution); $order->setProduct($product); $order->setSharedWorkspace($sharedWorkspace); $order->setChart($chart); $this->om->persist($order); $chart->addOrder($order); $this->om->persist($chart); $this->invoiceManager->create($chart, 'bank_transfer', true); return new RedirectResponse($this->router->generate('formalibre_admin_shared_workspaces_admin_tool_index')); } else { $form->addError(new FormError($this->translator->trans('probably_invalid_code', array(), 'invoice'))); } } return array('form' => $form->createView()); }
/** * @EXT\Route( * "/renew/test/workspace/{remoteId}", * name="renew_test_workspace" * ) * @EXT\Template * * @return Response */ public function renewWorkspaceAction($remoteId) { $sws = $this->em->getRepository('FormaLibre\\InvoiceBundle\\Entity\\Product\\SharedWorkspace')->findOneByRemoteId($remoteId); if (!$sws) { throw new \Exception('unknown remote id'); } if (!$this->authorization->isGranted('ROLE_ADMIN') && $this->tokenStorage->getToken()->getUser() !== $sws->getOwner()) { throw new AccessDeniedException(); } $order = new Order(); $chart = new Chart(); $order->setChart($chart); $order->setSharedWorkspace($sws); $product = $this->sharedWorkspaceManager->getLastOrder($sws)->getProduct(); $order->setProduct($product); $this->em->persist($chart); $this->em->persist($order); $this->em->flush(); $formType = new SharedWorkspaceForm($product); $form = $this->createForm($formType)->createView(); $workspace = $this->sharedWorkspaceManager->getWorkspaceData($sws); return array('form' => $form, 'chart' => $chart, 'product' => $product, 'order' => $order, 'workspace' => $workspace); }