src/Controller/DefaultController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Ecommerce\Checkout\CommitOrderProcessor;
  4. use App\Ecommerce\Model\Order;
  5. use App\EventSubscriber\Order\SendEmailsSubscriber;
  6. use App\Helper\DataMapper\NavigationDataMapper;
  7. use Factory\CartBundle\Classes\DataMapper\CartDataMapper;
  8. use Pimcore\Event\Model\Ecommerce\SendConfirmationMailEvent;
  9. use Pimcore\Navigation\Builder;
  10. use App\Classes\Controller\AbstractFrontController as AbstractFrontController;
  11. use App\Classes\DataMapper\Invoice\InvoiceDataMapper;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. class DefaultController extends AbstractFrontController
  16. {
  17.     protected $navigationBuilder;
  18.     protected $emailSubscriber;
  19.     protected $orderCommitProcessor;
  20.     public function __construct(Builder $navigationBuilderSendEmailsSubscriber $emailSubscriberCommitOrderProcessor $orderCommitProcessor)
  21.     {
  22.         $this->navigationBuilder $navigationBuilder;
  23.         $this->emailSubscriber $emailSubscriber;
  24.         $this->orderCommitProcessor $orderCommitProcessor;
  25.     }
  26.     /**
  27.      * @Route("/order-email/{order}/send")
  28.      */
  29.     public function testOrderEmail(Request $request$order)
  30.     {
  31.         $order Order::getById($order);
  32.         if (!$order) {
  33.             dd('Order Not Found');
  34.         }
  35.         $evt = new SendConfirmationMailEvent($this->orderCommitProcessor$order'');
  36.         $this->emailSubscriber->sendOrderPlacedEmail($evt);
  37.         dd('Email Sent');
  38.     }
  39.     /**
  40.      * @Route("/order-email/{order}/preview")
  41.      */
  42.     public function previewOrderEmail(Request $request$order)
  43.     {
  44.         $order Order::getById($order);
  45.         if (!$order) {
  46.             dd('Order Not Found');
  47.         }
  48.         return $this->render('email/invoice.html.twig', [
  49.             'data' => (new InvoiceDataMapper($order))->toArray($request),
  50.             'summary' => (new CartDataMapper($order))->toArray($request)
  51.         ]);
  52.     }
  53.     #[Template()]
  54.     public function defaultAction(Request $request)
  55.     {
  56.     }
  57.     public function installAction(Request $request)
  58.     {
  59.         //        $this->install();
  60.     }
  61.     public function headerAction(Request $request)
  62.     {
  63.         $masterRequest $this->get('request_stack')->getMasterRequest();
  64.         $parentDocument $masterRequest->get('contentDocument');
  65.         $mainNavigation $this->navigationBuilder->getNavigation($parentDocument$parentDocument);
  66.         $navigationMapped NavigationDataMapper::list(
  67.             $mainNavigation->getPages()
  68.         )->all($request);
  69.         $navigationGrouped = [];
  70.         foreach ($navigationMapped as $navItem) {
  71.             $navigationGrouped[$navItem['menu_group']][] = $navItem;
  72.         }
  73.         $this->view->mainNavigation $navigationGrouped;
  74.         $this->view->routeName $masterRequest->get('_route');
  75.     }
  76. }