src/Controller/Admin/OrderController.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Order;
  4. use App\Repository\Admin\OrderRepository;
  5. use App\Service\SearchHelper;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Doctrine\Common\Collections\Criteria;
  12. /**
  13.  * Admin Order Controller.
  14.  * @Route("/admin/order/")
  15.  * @IsGranted("ROLE_ADMIN")
  16.  */
  17. class OrderController extends AbstractController {
  18.     private $urls = [
  19.         'list' => 'admin_order_list',
  20.         /*'edit' => 'admin_order_edit',*/
  21.         'view' => 'admin_order_view',
  22.         /*'delete' => 'admin_order_delete',*/
  23.     ];
  24.     private $token_prefix 'admin_order';
  25.     /**
  26.      * Order List.
  27.      * @Route(
  28.      *      "list/{page}/{sort}/{dir}",
  29.      *      name="admin_order_list",
  30.      *      methods={"GET","POST"},
  31.      *      requirements={"page"="\d+","sort"="[0-9a-zA-Z\.]+","dir"="asc|desc"},
  32.      *      defaults={"page"=1,"sort"="createdAt","dir"="desc"}
  33.      *  )
  34.      *
  35.      * @return string
  36.      */
  37.     public function defaultAction(
  38.         Request $request$page$sort$dirOrderRepository $orderRepositorySearchHelper $searchHelper
  39.     ) {
  40.         $limit $request->query->getInt('limit'20);
  41.         $searchHelper->searchSession($this->token_prefix);
  42.         $searchHelper->addParameter('code''like''code''code''Code''Enter code...''text''all');
  43.         $searchHelper->addParameter('status''eq''status''status''Status''Please select...''select''full', [
  44.             null => "Please Select",
  45.             \App\DBAL\Types\OrderStatusType::CREATED => "Created",
  46.             \App\DBAL\Types\OrderStatusType::DECLINED => "Declined",
  47.             \App\DBAL\Types\OrderStatusType::PENDING => "Pending",
  48.             \App\DBAL\Types\OrderStatusType::CANCELED => "Canceled",
  49.             \App\DBAL\Types\OrderStatusType::SUCCESS => "Success",
  50.             \App\DBAL\Types\OrderStatusType::FAILED => "Failed",
  51.         ], true);
  52.         $action $request->request->get('_action''');
  53.         if ($this->isCsrfTokenValid('quicksearch'$request->request->get('_csrf_token')) && $action == 'quicksearch'$searchHelper->processQuick();
  54.         if ($this->isCsrfTokenValid('fullsearch'$request->request->get('_csrf_token')) && $action == 'fullsearch') :
  55.             if ($request->get('reset'0) == 1)
  56.                 $searchHelper->resetActive();
  57.             else
  58.                 $searchHelper->processFull();
  59.         endif;
  60.         $criteria $searchHelper->getCriteria();
  61.         $criteria->orderBy([$sort => $dir]);
  62.         $entries $orderRepository->matching($criteria);
  63.         $totalSearch $entries->count();
  64.         $entries $entries->slice(($page-1)*$limit$limit);
  65.         $totalCriteria Criteria::create();
  66.         //$totalCriteria->andWhere(Criteria::expr()->eq('isActive', true));
  67.         //$totalCriteria->andWhere(Criteria::expr()->eq('isDeceased', false));
  68.         $total $orderRepository->countAll($totalCriteria);
  69.         $pages ceil($totalSearch/$limit);
  70.         return $this->render('/admin/orders/list.html.twig', [
  71.             'title' => 'Orders',
  72.             'listParams' => [],
  73.             'entries' => $entries,
  74.             'activeSearch' => $searchHelper->isActive(),
  75.             'quickSearchValue' => $searchHelper->getQuickSearchValue(),
  76.             'searchFields' => $searchHelper->getSearchParams(),
  77.             'ordering' => [
  78.                 'sort' => $sort,
  79.                 'dir' => $dir
  80.             ],
  81.             'page' => [
  82.                 'icon' => 'list',
  83.                 'title' => 'List Orders',
  84.                 'subtitle' => 'View the list with the Orders',
  85.                 'header' => 'Training Manager - Orders List'
  86.             ],
  87.             'urls' => $this->urls,
  88.             'tokenPrefix' => $this->token_prefix,
  89.             'pagination' => [
  90.                 'total' => $total,
  91.                 'totalSearch' => $totalSearch,
  92.                 'limit' => $limit,
  93.                 'totalPages' => $pages,
  94.                 'page' => $page,
  95.                 'listURL' => $this->urls['list']
  96.             ],
  97.         ]);
  98.     }
  99.     /**
  100.      * @Route("show/{id}", name="admin_order_view", methods={"GET"})
  101.      */
  102.     public function show(
  103.         Order $order
  104.     ): Response {
  105.         return $this->render('admin/orders/show.html.twig', [
  106.             'title' => 'View Order',
  107.             'page' => [
  108.                 'icon' => 'star',
  109.                 'title' => 'View Order'
  110.             ],
  111.             'urls' => $this->urls,
  112.             'tokenPrefix' => $this->token_prefix,
  113.             'entry' => $order,
  114.         ]);
  115.     }
  116.     /**
  117.      * @Route("edit/{id}", name="admin_order_edit", methods={"GET","POST"})
  118.      */
  119.     /*public function edit(
  120.         Request $request,
  121.         Order $order,
  122.         \Symfony\Contracts\Translation\TranslatorInterface $translator,
  123.         \Doctrine\Persistence\ManagerRegistry $managerRegistry
  124.     ): Response {
  125.         $form = $this->createForm(\App\Form\Admin\OrderForm::class, $order);
  126.         $form->handleRequest($request);
  127.         if ($form->isSubmitted() && $form->isValid()) {
  128.             $managerRegistry->getManager()->flush();
  129.             $this->addFlash(
  130.                 'success',
  131.                 $translator->trans('Entry was updated successfully!')
  132.             );
  133.             if ($form->get('save-exit')->isClicked()) return $this->redirectToRoute($this->urls['list']);
  134.             if ($form->get('save-new')->isClicked()) return $this->redirectToRoute($this->urls['create']);
  135.         }
  136.         return $this->render('admin/orders/edit.html.twig', [
  137.             'title' => 'Edit Order',
  138.             'page' => [
  139.                 'icon' => 'star',
  140.                 'title' => 'Edit Order'
  141.             ],
  142.             'urls' => $this->urls,
  143.             'tokenPrefix' => $this->token_prefix,
  144.             'entry' => $order,
  145.             'form' => $form->createView(),
  146.         ]);
  147.     }*/
  148.     /**
  149.      * @Route("delete/{id}", name="admin_order_delete", methods={"POST"})
  150.      */
  151.     /*public function delete(
  152.         Request $request,
  153.         Order $order,
  154.         \Symfony\Contracts\Translation\TranslatorInterface $translator,
  155.         \Doctrine\Persistence\ManagerRegistry $managerRegistry
  156.     ): Response {
  157.         $returnURL = null;
  158.         if ($this->isCsrfTokenValid($this->token_prefix . '-delete' . $order->getId(), $request->request->get('_token'))) {
  159.             $returnURL = $request->get('_return')?$request->get('_return'):null;
  160.             $entityManager = $managerRegistry->getManager();
  161.             $entityManager->remove($order);
  162.             $entityManager->flush();
  163.             $this->addFlash(
  164.                 'success',
  165.                 $translator->trans('Entry was deleted successfully!')
  166.             );
  167.             if ($returnURL) return $this->redirect($returnURL);
  168.         } else {
  169.             $this->addFlash(
  170.                 'danger',
  171.                 $translator->trans('Invalid Token!')
  172.             );
  173.         }
  174.         return $this->redirectToRoute($this->urls['list']);
  175.     }*/
  176. }