src/Modules/Package/Controller/PackageController.php line 69
<?phpnamespace App\Modules\Package\Controller;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\JsonResponse;use Doctrine\Persistence\ManagerRegistry;use App\Controller\BaseController;use App\Common\Modules\Payment\Service\PaymentService as CommonPaymentService;use App\Modules\Package\Service\PackageService;use App\Modules\Package\Service\PackageRepositoryService;use App\Modules\Package\Service\PackageOrderService;use App\Modules\Package\Entity\PackageOrder;use App\Modules\Package\Form\OrderType;use App\Modules\Package\Service\PaymentService;class PackageController extends BaseController{private $_doctrine;private $_packageService;private $_packageRepositoryService;private $_packageOrderService;private $_paymentService;public function __construct(ManagerRegistry $doctrine,PackageService $packageService,PackageRepositoryService $packageRepositoryService,PackageOrderService $packageOrderService,PaymentService $paymentService){$this->_doctrine = $doctrine;$this->_packageService = $packageService;$this->_packageRepositoryService = $packageRepositoryService;$this->_packageOrderService = $packageOrderService;$this->_paymentService = $paymentService;}public function index(Request $request){// czy podano referral id handlowca polecajacego strone, zapamietanie go i ustawienie pozniej w zamowieniuif (($referralId = $request->query->get(PackageOrderService::REFERRAR_LINK_QUERY_PARAM_NAME)) != '')$this->_packageOrderService->setReferralTrader($referralId);// czy podano id vouchera z rabatemif (($voucherId = $request->query->get(PackageOrderService::VOUCHER_ID_QUERY_PARAM_NAME)) != '')$this->_packageOrderService->setVoucher($voucherId);$result = $this->_packageRepositoryService->getQueryBuilder()->orderBy('t.price', 'ASC')->getQuery()->getResult();$packages = array();foreach($result as $package)$packages[] = $this->_packageService->getDetails($package);return $this->render('Modules/Package/Templates/Package/list.html.twig', ['packages' => $packages,'traderUser' => $this->_packageOrderService->getReferralTrader(),'voucher' => $this->_packageOrderService->getVoucher()]);}public function details($slug){$package = $this->_packageRepositoryService->findBySlug($slug);if (!$package)throw $this->createNotFoundException();return $this->render('Modules/Package/Templates/Package/details.html.twig', ['data' => $this->_packageService->getDetails($package)]);}public function buy(Request $request, $slug){$package = $this->_packageRepositoryService->findBySlug($slug);if (!$package)throw $this->createNotFoundException();$form = $this->createForm(OrderType::class);$form->handleRequest($request);if ($form->isSubmitted()){if ($form->isValid()){$order = $this->_packageOrderService->add($form, $package);return $this->redirectToRoute('package_go_to_payment', ['orderId' => $order->getId(), 'key' => $this->_packageOrderService->getOrderAccessKey($order), 'paymentMethodId' => CommonPaymentService::PAYMENT_METHOD_PRZELEWY24_ID]);}}return $this->render('Modules/Package/Templates/Package/buy.html.twig', ['packageData' => $this->_packageService->getDetails($package),'form' => $form->createView(),'traderUser' => $this->_packageOrderService->getReferralTrader()]);}public function buyUpdateFormAjax(Request $request, $slug){$package = $this->_packageRepositoryService->findBySlug($slug);if (!$package)throw $this->createNotFoundException();$form = $this->createForm(OrderType::class, null, ['validation_groups' => false]);$form->handleRequest($request);return new JsonResponse(array('html' => $this->renderView('Modules/Package/Templates/Package/partials/orderForm.html.twig', array('packageData' => $this->_packageService->getDetails($package),'form' => $form->createView(),'traderUser' => $this->_packageOrderService->getReferralTrader()))));}public function goToPayment($orderId, $key, $paymentMethodId){$order = $this->_doctrine->getRepository(PackageOrder::class)->find($orderId);if (!$order || !$this->_packageOrderService->isOrderKeyValid($order, $key))throw $this->createNotFoundException();$this->_paymentService->processPaymentMethod($order, $paymentMethodId);$this->throwHttpError400();}public function paymentVerify($orderId, $key, $paymentMethodId){$order = $this->_doctrine->getRepository(PackageOrder::class)->find($orderId);if (!$order || !$this->_packageOrderService->isOrderKeyValid($order, $key))return new Response();$this->_paymentService->verify($order, $paymentMethodId);return new Response();}public function paymentSuccess($orderId, $key){$order = $this->_doctrine->getRepository(PackageOrder::class)->find($orderId);if (!$order || !$this->_packageOrderService->isOrderKeyValid($order, $key))throw $this->createNotFoundException();return $this->render('Modules/Package/Templates/Package/paymentSuccess.html.twig', ['order' => $order]);}}