src/Modules/VoucherCart/Controller/CartController.php line 28
<?phpnamespace App\Modules\VoucherCart\Controller;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\JsonResponse;use App\Modules\VoucherCart\Service\CartService;use App\Modules\VoucherCart\Service\PredefinedVoucherService;use App\Modules\VoucherCart\Service\OrderService;use App\Modules\VoucherCart\Form\CartType;class CartController extends BaseController{private $_cartService;private $_predefinedVoucherService;private $_orderService;public function __construct(CartService $cartService,PredefinedVoucherService $predefinedVoucherService,OrderService $orderService){$this->_cartService = $cartService;$this->_predefinedVoucherService = $predefinedVoucherService;$this->_orderService = $orderService;}public function details(Request $request){$cartData = $this->_cartService->getDetails();if ($cartData['vouchers']){$form = $this->createForm(CartType::class);$form->handleRequest($request);if ($form->isSubmitted()){if ($form->isValid()){$this->_cartService->updateCartFromForm($form);$order = $this->_orderService->add($form, $errorMessage);if ($errorMessage == '')return $this->redirectToRoute('voucher_cart_go_to_payment', ['orderId' => $order->getId(), 'paymentMethodId' => $form['paymentMethod']->getData(), 'key' => $this->_orderService->getOrderAccessKey($order)]);else$this->addFlash('error', $errorMessage);}}}return $this->render('Modules/VoucherCart/Templates/Cart/details.html.twig', ['formType' => isset($form) ? $form->getConfig()->getType()->getInnerType() : null,'form' => isset($form) ? $form->createView() : null]);}public function detailsUpdateAjax(Request $request){$form = $this->createForm(CartType::class, null, ['validation_groups' => false]);$form->handleRequest($request);$this->_cartService->updateCartFromForm($form);$formType = $form->getConfig()->getType()->getInnerType();if (!$formType->cartData['vouchers'])$form = null;return new JsonResponse(array('html' => $this->renderView('Modules/VoucherCart/Templates/Cart/partials/detailsForm.html.twig', array('formType' => $formType,'form' => $form ?? null))));}public function addPredefinedVoucherAjax($id){$voucherData = $this->_predefinedVoucherService->getDetails($id);if (!$voucherData)$this->throwHttpError400();$this->_cartService->addPredefinedVoucher($voucherData, 1, $errorMessage);return new JsonResponse(['error_message' => $errorMessage]);}public function cartWidget(){return $this->render('Modules/VoucherCart/Templates/Cart/partials/cartWidget.html.twig', ['data' => $this->_cartService->getDetails()]);}}