src/Controller/Admin/DashboardController.php line 69

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Begraafplaats;
  4. use App\Entity\Klant;
  5. use App\Entity\Order;
  6. use App\Entity\Agent;
  7. use App\Entity\Brief;
  8. use App\Entity\Prospect;
  9. use App\Entity\Topic;
  10. use App\Entity\User;
  11. use App\Entity\Vestiging;
  12. use App\Entity\Familie;
  13. use App\Entity\Reminder;
  14. use App\Entity\Rol;
  15. use App\Entity\Uitvaartvereniging;
  16. use App\Repository\OrderRepository;
  17. use App\Repository\ReminderRepository;
  18. use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
  19. use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
  20. use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
  21. use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
  22. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  23. use EasyCorp\Bundle\EasyAdminBundle\Config\Menu\SectionMenuItem;
  24. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  25. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  26. use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
  27. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  28. use Symfony\Component\HttpFoundation\Response;
  29. use Symfony\Component\Routing\Annotation\Route;
  30. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
  31. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  32. use Symfony\UX\Chartjs\Builder\ChartBuilderInterface;
  33. use Symfony\UX\Chartjs\Model\Chart;
  34. class DashboardController extends AbstractDashboardController
  35. {
  36.     public OrderRepository $orderRepository;
  37.     public ReminderRepository $reminderRepository;
  38.     public ChartBuilderInterface $chartbuilder;
  39.     public AdminUrlGenerator $adminUrlGenerator;
  40.     public array $backgroundColors;
  41.     private TokenStorageInterface $tokenStorage;
  42.     public user $user;
  43.     public function __construct(OrderRepository $orderRepositoryReminderRepository $reminderRepositoryChartBuilderInterface $chartbuilderAdminUrlGenerator $adminUrlGeneratorTokenStorageInterface $tokenStorage)
  44.     {
  45.         $this->orderRepository $orderRepository;
  46.         $this->reminderRepository $reminderRepository;
  47.         $this->chartbuilder $chartbuilder;
  48.         $this->adminUrlGenerator $adminUrlGenerator;
  49.         $this->backgroundColors = [
  50.             'rgb(121, 134, 203)',
  51.             'rgb(240, 147, 0)',
  52.             'rgb(213, 0, 0)',
  53.             'rgb(0, 150, 136)'
  54.         ];
  55.         $this->tokenStorage $tokenStorage;
  56.         $this->user $tokenStorage->getToken()->getUser();
  57.     }
  58.     #[IsGranted('ROLE_ADMIN')]
  59.     #[Route('/admin'name'admin')]
  60.     public function index(): Response
  61.     {
  62.         //return parent::index();
  63.         $vestigingOfferteCount $this->orderRepository->vestigingOfferteCount();
  64.         $vestigingOfferteActieCount $this->orderRepository->vestigingOfferteActieCount();
  65.         $vestigingOrderCount $this->orderRepository->vestigingOrderCount();
  66.         $vestigingOrderActieCount $this->orderRepository->vestigingOrderActieCount();
  67.         $vestigingVergunningAanvragenCount $this->orderRepository->vestigingVergunningAanvragenCount();
  68.         $vestigingOfferteTeControlerenCount $this->orderRepository->vestigingOfferteTeControlerenCount();
  69.         $vestigingOfferteTeVersturenCount $this->orderRepository->vestigingOfferteTeVersturenCount();
  70.         $vestigingOrderTeControlerenCount $this->orderRepository->vestigingOrderTeControlerenCount();
  71.         $vestigingOrderTeVersturenCount $this->orderRepository->vestigingOrderTeVersturenCount();
  72.         $vestigingOfferteLeeftijdCount $this->orderRepository->vestigingOfferteLeeftijdCount();
  73.         $vestigingOrderLeeftijdCount $this->orderRepository->vestigingOrderLeeftijdCount();
  74.         $vestigingOrderLeveringCount $this->orderRepository->vestigingOrderLeveringCount();
  75.         $vestigingOfferteTeOntwerpenCount $this->orderRepository->vestigingOfferteTeOntwerpenCount();
  76.         $vestigingOrderTeOntwerpenCount $this->orderRepository->vestigingOrderTeOntwerpenCount();
  77.         $vestigingOfferteAanpassenCount $this->orderRepository->vestigingOfferteAanpassenCount();
  78.         $vestigingOfferteOntwerpAanpassenCount $this->orderRepository->vestigingOfferteOntwerpAanpassenCount();
  79.         $vestigingOrderOntwerpAanpassenCount $this->orderRepository->vestigingOrderOntwerpAanpassenCount();
  80.         $vestigingOrderOntwerpTeControlerenCount $this->orderRepository->vestigingOrderOntwerpTeControlerenCount();
  81.         $vestigingOfferteOntwerpTeControlerenCount $this->orderRepository->vestigingOfferteOntwerpTeControlerenCount();
  82.         $vestigingOrderAanpassenCount $this->orderRepository->vestigingOrderAanpassenCount();
  83.         $vestigingAfhalerLeeftijdCount $this->orderRepository->vestigingAfhalerLeeftijdCount();
  84.         $vestigingOrderTeBestellenCount $this->orderRepository->vestigingOrderTeBestellenCount();
  85.         $vestigingOrderTeLeverenCount $this->orderRepository->vestigingOrderTeLeverenCount();
  86.         $vestigingOrderLevermaandOntbreektCount $this->orderRepository->vestigingOrderLevermaandOntbreektCount();
  87.         $reminderActiveCount $this->reminderRepository->activeCount();
  88.         $reminderVanMijCount $this->reminderRepository->vanMijCount($this->user);
  89.         $reminderAlleCount $this->reminderRepository->alleCount();
  90.         $reminderNijkerkCount $this->reminderRepository->vestigingCount(1);
  91.         $reminderHarderwijkCount $this->reminderRepository->vestigingCount(4);
  92.         $reminderEpeCount $this->reminderRepository->vestigingCount(2);
  93.         $reminderHardeCount $this->reminderRepository->vestigingCount(3);
  94.         $orderCount array_sum($vestigingOrderCount); //$this->orderRepository->orderCount();
  95.         $orderActieCount array_sum($vestigingOrderActieCount); //$this->orderRepository->orderActieCount();
  96.         $vergunningCount array_sum($vestigingVergunningAanvragenCount); //$this->orderRepository->vergunningCount();
  97.         $offerteCount array_sum($vestigingOfferteCount); //$this->orderRepository->offerteCount();
  98.         $offerteActieCount array_sum($vestigingOfferteActieCount); //$this->orderRepository->offerteActieCount();
  99.         $offerteTeControlerenCount array_sum($vestigingOfferteTeControlerenCount); //$this->orderRepository->offerteTeControlerenCount();
  100.         $offerteTeVersturenCount array_sum($vestigingOfferteTeVersturenCount); //$this->orderRepository->offerteTeVersturenCount();
  101.         $orderTeControlerenCount array_sum($vestigingOrderTeControlerenCount); //$this->orderRepository->orderTeControlerenCount();
  102.         $orderTeVersturenCount array_sum($vestigingOrderTeVersturenCount); //$this->orderRepository->orderTeVersturenCount();
  103.         $offerteLeeftijdCount array_sum($vestigingOfferteLeeftijdCount); //$this->orderRepository->offerteLeeftijdCount();
  104.         $orderLeeftijdCount array_sum($vestigingOrderLeeftijdCount); //$this->orderRepository->orderLeeftijdCount();
  105.         $orderLeveringCount array_sum($vestigingOrderLeveringCount); //$this->orderRepository->orderLeveringCount();
  106.         $offerteTeOntwerpenCount array_sum($vestigingOfferteTeOntwerpenCount); //$this->orderRepository->offerteTeOntwerpenCount();
  107.         $orderTeOntwerpenCount array_sum($vestigingOrderTeOntwerpenCount); //$this->orderRepository->orderTeOntwerpenCount();
  108.         $offerteOntwerpAanpassenCount array_sum($vestigingOfferteOntwerpAanpassenCount); //$this->orderRepository->offerteOntwerpAanpassenCount();
  109.         $offerteAanpassenCount array_sum($vestigingOfferteAanpassenCount);
  110.         $orderOntwerpAanpassenCount array_sum($vestigingOrderOntwerpAanpassenCount); //$this->orderRepository->orderOntwerpAanpassenCount();
  111.         $orderOntwerpTeControlerenCount array_sum($vestigingOrderOntwerpTeControlerenCount);
  112.         $offerteOntwerpTeControlerenCount array_sum($vestigingOfferteOntwerpTeControlerenCount);
  113.         $orderAanpassenCount array_sum($vestigingOrderAanpassenCount);
  114.         $afhalerLeeftijdCount array_sum($vestigingAfhalerLeeftijdCount);
  115.         $orderTeBestellenCount array_sum($vestigingOrderTeBestellenCount);
  116.         $orderTeLeverenCount array_sum($vestigingOrderTeLeverenCount);
  117.         $orderLevermaandOntbreektCount array_sum($vestigingOrderLevermaandOntbreektCount);
  118.         //Charts
  119.         $chartOfferte $this->makeChart($vestigingOfferteCount);
  120.         $chartOfferteActie $this->makeChart($vestigingOfferteActieCount);
  121.         $chartOfferteTeOntwerpen $this->makeChart($vestigingOfferteTeOntwerpenCount);
  122.         $chartOrderTeOntwerpen $this->makeChart($vestigingOrderTeOntwerpenCount);
  123.         $chartOfferteAanpassen $this->makeChart($vestigingOfferteAanpassenCount);
  124.         $chartOrderAanpassen $this->makeChart($vestigingOrderAanpassenCount);
  125.         $chartOfferteOntwerpAanpassen $this->makeChart($vestigingOfferteOntwerpAanpassenCount);
  126.         $chartOrderOntwerpAanpassen $this->makeChart($vestigingOrderOntwerpAanpassenCount);
  127.         $chartOrder $this->makeChart($vestigingOrderCount);
  128.         $chartOrderActie $this->makeChart($vestigingOrderActieCount);
  129.         $chartVergunningAanvragen $this->makeChart($vestigingVergunningAanvragenCount);
  130.         $chartOfferteTeControleren $this->makeChart($vestigingOfferteTeControlerenCount);
  131.         $chartOfferteTeVersturen $this->makeChart($vestigingOfferteTeVersturenCount);
  132.         $chartOrderTeControleren $this->makeChart($vestigingOrderTeControlerenCount);
  133.         $chartOrderOntwerpTeControleren $this->makeChart($vestigingOrderOntwerpTeControlerenCount);
  134.         $chartOfferteOntwerpTeControleren $this->makeChart($vestigingOfferteOntwerpTeControlerenCount);
  135.         $chartOrderTeVersturen $this->makeChart($vestigingOrderTeVersturenCount);
  136.         $chartOrderLevering $this->makeChart($vestigingOrderLeveringCount);
  137.         $chartOfferteLeeftijd $this->makeChart($vestigingOfferteLeeftijdCount);
  138.         $chartOrderLeeftijd $this->makeChart($vestigingOrderLeeftijdCount);
  139.         $chartAfhalerLeeftijd $this->makeChart($vestigingAfhalerLeeftijdCount);
  140.         $chartOrderTeBestellen $this->makeChart($vestigingOrderTeBestellenCount);
  141.         $chartOrderTeLeveren $this->makeChart($vestigingOrderTeLeverenCount);
  142.         $chartOrderLevermaandOntbreekt $this->makeChart($vestigingOrderLevermaandOntbreektCount);
  143.         //URL's
  144.         $urlOffertes $this->adminUrlGenerator
  145.             ->setController(OfferteAlleCrudController::class)
  146.             ->setAction('index')
  147.             ->generateUrl();
  148.         $urlOrders $this->adminUrlGenerator
  149.             ->setController(OrderAlleCrudController::class)
  150.             ->setAction('index')
  151.             ->generateUrl();
  152.         $urlOfferteActie $this->adminUrlGenerator
  153.             ->setController(OfferteActieCrudController::class)
  154.             ->setAction('index')
  155.             ->generateUrl();
  156.         $urlOrderActie $this->adminUrlGenerator
  157.             ->setController(OrderActieCrudController::class)
  158.             ->setAction('index')
  159.             ->generateUrl();
  160.         $urlOrderVergunningaanvraag $this->adminUrlGenerator
  161.             ->setController(OrderVergunningaanvraagCrudController::class)
  162.             ->setAction('index')
  163.             ->generateUrl();
  164.         $urlOfferteTeControleren $this->adminUrlGenerator
  165.             ->setController(OfferteTeControlerenCrudController::class)
  166.             ->setAction('index')
  167.             ->generateUrl();
  168.         $urlOfferteTeVersturen $this->adminUrlGenerator
  169.             ->setController(OfferteTeVersturenCrudController::class)
  170.             ->setAction('index')
  171.             ->generateUrl();
  172.         $urlOfferteTeOntwerpen $this->adminUrlGenerator
  173.             ->setController(OfferteTeOntwerpenCrudController::class)
  174.             ->setAction('index')
  175.             ->generateUrl();
  176.         $urlOrderTeOntwerpen $this->adminUrlGenerator
  177.             ->setController(OrderTeOntwerpenCrudController::class)
  178.             ->setAction('index')
  179.             ->generateUrl();
  180.         $urlOfferteAanpassen $this->adminUrlGenerator
  181.             ->setController(OfferteAanpassenCrudController::class)
  182.             ->setAction('index')
  183.             ->generateUrl();
  184.         $urlOfferteOntwerpAanpassen $this->adminUrlGenerator
  185.             ->setController(OfferteOntwerpAanpassenCrudController::class)
  186.             ->setAction('index')
  187.             ->generateUrl();
  188.         $urlOrderAanpassen $this->adminUrlGenerator
  189.             ->setController(OrderAanpassenCrudController::class)
  190.             ->setAction('index')
  191.             ->generateUrl();
  192.         $urlOrderOntwerpAanpassen $this->adminUrlGenerator
  193.             ->setController(OrderOntwerpAanpassenCrudController::class)
  194.             ->setAction('index')
  195.             ->generateUrl();
  196.         $urlOrderOntwerpTeControleren $this->adminUrlGenerator
  197.             ->setController(OrderOntwerpTeControlerenCrudController::class)
  198.             ->setAction('index')
  199.             ->generateUrl();
  200.         $urlOfferteOntwerpTeControleren $this->adminUrlGenerator
  201.             ->setController(OfferteOntwerpTeControlerenCrudController::class)
  202.             ->setAction('index')
  203.             ->generateUrl();
  204.         $urlOrderTeControleren $this->adminUrlGenerator
  205.             ->setController(OrderTeControlerenCrudController::class)
  206.             ->setAction('index')
  207.             ->generateUrl();
  208.         $urlOrderTeVersturen $this->adminUrlGenerator
  209.             ->setController(OrderTeVersturenCrudController::class)
  210.             ->setAction('index')
  211.             ->generateUrl();
  212.         $urlOrderLevering $this->adminUrlGenerator
  213.             ->setController(OrderLeveringCrudController::class)
  214.             ->setAction('index')
  215.             ->generateUrl();
  216.         $urlOfferteLeeftijd $this->adminUrlGenerator
  217.             ->setController(OfferteLeeftijdCrudController::class)
  218.             ->setAction('index')
  219.             ->generateUrl();
  220.         $urlOrderLeeftijd $this->adminUrlGenerator
  221.             ->setController(OrderLeeftijdCrudController::class)
  222.             ->setAction('index')
  223.             ->generateUrl();
  224.         $urlAfhalerLeeftijd $this->adminUrlGenerator
  225.             ->setController(AfhalerLeeftijdCrudController::class)
  226.             ->setAction('index')
  227.             ->generateUrl();
  228.         $urlOrderTeBestellen $this->adminUrlGenerator
  229.             ->setController(OrderTeBestellenCrudController::class)
  230.             ->setAction('index')
  231.             ->generateUrl();
  232.         $urlOrderTeLeveren $this->adminUrlGenerator
  233.             ->setController(OrderTeLeverenCrudController::class)
  234.             ->setAction('index')
  235.             ->generateUrl();
  236.         $urlOrderLevermaandOntbreekt $this->adminUrlGenerator
  237.             ->setController(OrderLevermaandOntbreektCrudController::class)
  238.             ->setAction('index')
  239.             ->generateUrl();
  240.         $urlReminderActive $this->adminUrlGenerator
  241.             ->setController(ReminderActiveCrudController::class)
  242.             ->setAction('index')
  243.             ->generateUrl();
  244.         $urlReminderVanMij $this->adminUrlGenerator
  245.             ->setController(ReminderMijnCrudController::class)
  246.             ->setAction('index')
  247.             ->generateUrl();
  248.         $urlReminderAlle $this->adminUrlGenerator
  249.             ->setController(ReminderCrudController::class)
  250.             ->setAction('index')
  251.             ->generateUrl();
  252.         $urlReminderNijkerk $this->adminUrlGenerator
  253.             ->setController(ReminderNijkerkCrudController::class)
  254.             ->setAction('index')
  255.             ->generateUrl();
  256.         $urlReminderHarderwijk $this->adminUrlGenerator
  257.             ->setController(ReminderHarderwijkCrudController::class)
  258.             ->setAction('index')
  259.             ->generateUrl();
  260.         $urlReminderEpe $this->adminUrlGenerator
  261.             ->setController(ReminderEpeCrudController::class)
  262.             ->setAction('index')
  263.             ->generateUrl();
  264.         $urlReminderHarde $this->adminUrlGenerator
  265.             ->setController(ReminderHardeCrudController::class)
  266.             ->setAction('index')
  267.             ->generateUrl();
  268.         return $this->render('admin/contentDashboard.html.twig', [
  269.             'orderCount' => $orderCount,
  270.             'orderActieCount' => $orderActieCount,
  271.             'offerteCount' => $offerteCount,
  272.             'offerteActieCount' => $offerteActieCount,
  273.             'offerteTeControlerenCount' => $offerteTeControlerenCount,
  274.             'offerteTeVersturenCount' => $offerteTeVersturenCount,
  275.             'orderTeControlerenCount' => $orderTeControlerenCount,
  276.             'orderOntwerpTeControlerenCount' => $orderOntwerpTeControlerenCount,
  277.             'offerteOntwerpTeControlerenCount' => $offerteOntwerpTeControlerenCount,
  278.             'orderTeVersturenCount' => $orderTeVersturenCount,
  279.             'offerteTeOntwerpenCount' => $offerteTeOntwerpenCount,
  280.             'orderTeOntwerpenCount' => $orderTeOntwerpenCount,
  281.             'offerteAanpassenCount' => $offerteAanpassenCount,
  282.             'offerteOntwerpAanpassenCount' => $offerteOntwerpAanpassenCount,
  283.             'orderAanpassenCount' => $orderAanpassenCount,
  284.             'orderOntwerpAanpassenCount' => $orderOntwerpAanpassenCount,
  285.             'vergunningCount' => $vergunningCount,
  286.             'offerteLeeftijdCount' => $offerteLeeftijdCount,
  287.             'orderLeeftijdCount' => $orderLeeftijdCount,
  288.             'orderLeveringCount' => $orderLeveringCount,
  289.             'afhalerLeeftijdCount' => $afhalerLeeftijdCount,
  290.             'orderTeBestellenCount' => $orderTeBestellenCount,
  291.             'orderTeLeverenCount' => $orderTeLeverenCount,
  292.             'orderLevermaandOntbreektCount' => $orderLevermaandOntbreektCount,
  293.             'reminderActiveCount' => $reminderActiveCount,
  294.             'reminderVanMijCount' => $reminderVanMijCount,
  295.             'reminderAlleCount' => $reminderAlleCount,
  296.             'reminderNijkerkCount' => $reminderNijkerkCount,
  297.             'reminderHarderwijkCount' => $reminderHarderwijkCount,
  298.             'reminderEpeCount' => $reminderEpeCount,
  299.             'reminderHardeCount' => $reminderHardeCount,
  300.             'chartOfferte' => $chartOfferte,
  301.             'chartOfferteActie' => $chartOfferteActie,
  302.             'chartOrder' => $chartOrder,
  303.             'chartOrderActie' => $chartOrderActie,
  304.             'chartVergunningAanvragen' => $chartVergunningAanvragen,
  305.             'chartOfferteTeControleren' => $chartOfferteTeControleren,
  306.             'chartOfferteTeVersturen' => $chartOfferteTeVersturen,
  307.             'chartOfferteTeOntwerpen' => $chartOfferteTeOntwerpen,
  308.             'chartOrderTeOntwerpen' => $chartOrderTeOntwerpen,
  309.             'chartOfferteAanpassen' => $chartOfferteAanpassen,
  310.             'chartOfferteOntwerpAanpassen' => $chartOfferteOntwerpAanpassen,
  311.             'chartOrderAanpassen' => $chartOrderAanpassen,
  312.             'chartOrderOntwerpAanpassen' => $chartOrderOntwerpAanpassen,
  313.             'chartOrderTeControleren' => $chartOrderTeControleren,
  314.             'chartOrderOntwerpTeControleren' => $chartOrderOntwerpTeControleren,
  315.             'chartOfferteOntwerpTeControleren' => $chartOfferteOntwerpTeControleren,
  316.             'chartOrderTeVersturen' => $chartOrderTeVersturen,
  317.             'chartOrderLevering' => $chartOrderLevering,
  318.             'chartOfferteLeeftijd' => $chartOfferteLeeftijd,
  319.             'chartOrderLeeftijd' => $chartOrderLeeftijd,
  320.             'chartAfhalerLeeftijd' => $chartAfhalerLeeftijd,
  321.             'chartOrderTeBestellen' => $chartOrderTeBestellen,
  322.             'chartOrderTeLeveren' => $chartOrderTeLeveren,
  323.             'chartOrderLevermaandOntbreekt' => $chartOrderLevermaandOntbreekt,
  324.             'urlOffertes' => $urlOffertes,
  325.             'urlOrders' => $urlOrders,
  326.             'urlOrderVergunningaanvraag' => $urlOrderVergunningaanvraag,
  327.             'urlOfferteTeControleren' => $urlOfferteTeControleren,
  328.             'urlOrderTeControleren' => $urlOrderTeControleren,
  329.             'urlOfferteTeVersturen' => $urlOfferteTeVersturen,
  330.             'urlOrderTeVersturen' => $urlOrderTeVersturen,
  331.             'urlOfferteTeOntwerpen' => $urlOfferteTeOntwerpen,
  332.             'urlOfferteAanpassen' => $urlOfferteAanpassen,
  333.             'urlOfferteOntwerpAanpassen' => $urlOfferteOntwerpAanpassen,
  334.             'urlOrderTeOntwerpen' => $urlOrderTeOntwerpen,
  335.             'urlOrderOntwerpTeControleren' => $urlOrderOntwerpTeControleren,
  336.             'urlOfferteOntwerpTeControleren' => $urlOfferteOntwerpTeControleren,
  337.             'urlOrderOntwerpAanpassen' => $urlOrderOntwerpAanpassen,
  338.             'urlOrderAanpassen' => $urlOrderAanpassen,
  339.             'urlOfferteActie' => $urlOfferteActie,
  340.             'urlOrderActie' => $urlOrderActie,
  341.             'urlOfferteLeeftijd' => $urlOfferteLeeftijd,
  342.             'urlOrderLeeftijd' => $urlOrderLeeftijd,
  343.             'urlOrderLevering' => $urlOrderLevering,
  344.             'urlAfhalerLeeftijd' => $urlAfhalerLeeftijd,
  345.             'urlOrderTeBestellen' => $urlOrderTeBestellen,
  346.             'urlOrderTeLeveren' => $urlOrderTeLeveren,
  347.             'urlOrderLevermaandOntbreekt' => $urlOrderLevermaandOntbreekt,
  348.             'urlReminderActive' => $urlReminderActive,
  349.             'urlReminderVanMij' => $urlReminderVanMij,
  350.             'urlReminderAlle' => $urlReminderAlle,
  351.             'urlReminderNijkerk' => $urlReminderNijkerk,
  352.             'urlReminderHarderwijk' => $urlReminderHarderwijk,
  353.             'urlReminderEpe' => $urlReminderEpe,
  354.             'urlReminderHarde' => $urlReminderHarde
  355.         ]);
  356.         // Option 1. You can make your dashboard redirect to some common page of your backend
  357.         //
  358.         // $adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
  359.         // return $this->redirect($adminUrlGenerator->setController(OneOfYourCrudController::class)->generateUrl());
  360.         // Option 2. You can make your dashboard redirect to different pages depending on the user
  361.         //
  362.         // if ('jane' === $this->getUser()->getUsername()) {
  363.         //     return $this->redirect('...');
  364.         // }
  365.         // Option 3. You can render some custom template to display a proper dashboard with widgets, etc.
  366.         // (tip: it's easier if your template extends from @EasyAdmin/page/content.html.twig)
  367.         //
  368.         // return $this->render('some/path/my-dashboard.html.twig');
  369.     }
  370.     public function makeChart($chartData)
  371.     {
  372.         $chart $this->chartbuilder->createChart(Chart::TYPE_PIE);
  373.         $chart->setData([
  374.             'labels' => array_keys($chartData),
  375.             'datasets' => [
  376.                 [
  377.                     'data' => array_values($chartData),
  378.                     'backgroundColor' => $this->backgroundColors,
  379.                     'hoverOffset' => 4
  380.                 ],
  381.             ],
  382.         ]);
  383.         $chart->setOptions([
  384.             'plugins' => ['legend' => ['display' => false]]
  385.         ]);
  386.         return $chart;
  387.     }
  388.     public function configureDashboard(): Dashboard
  389.     {
  390.         return Dashboard::new()
  391.             ->setTitle('Alphanatuursteen');
  392.     }
  393.     public function configureMenuItems(): iterable
  394.     {
  395.         yield MenuItem::linkToDashboard('Dashboard''fa fa-dashboard');
  396.         yield MenuItem::subMenu('Reminders''fa fa-bell'Reminder::class)
  397.             ->setSubItems([
  398.                 MenuItem::linkToCrud('Actieve reminders''fa fa-minus'Reminder::class)
  399.                     ->setController(ReminderActiveCrudController::class),
  400.                 MenuItem::linkToCrud('Mijn reminders''fa fa-minus'Reminder::class)
  401.                     ->setController(ReminderMijnCrudController::class),
  402.                 MenuItem::linkToCrud('Nijkerk''fa fa-minus'Reminder::class)
  403.                     ->setController(ReminderNijkerkCrudController::class),
  404.                 MenuItem::linkToCrud('Harderwijk''fa fa-minus'Reminder::class)
  405.                     ->setController(ReminderHarderwijkCrudController::class),
  406.                 MenuItem::linkToCrud('Epe''fa fa-minus'Reminder::class)
  407.                     ->setController(ReminderEpeCrudController::class),
  408.                 MenuItem::linkToCrud('\'t Harde''fa fa-minus'Reminder::class)
  409.                     ->setController(ReminderHardeCrudController::class),
  410.                 MenuItem::linkToCrud('Alle reminders''fa fa-minus'Reminder::class)
  411.                     ->setController(ReminderCrudController::class)
  412.             ]);
  413.         yield MenuItem::linkToCrud('Families''fa fa-users'Familie::class);
  414.         yield MenuItem::subMenu('Prospects''fa fa-user'Prospect::class)
  415.             ->setSubItems([
  416.                 MenuItem::linkToCrud('Alle prospects''fa fa-minus'Prospect::class)
  417.                     ->setController(ProspectCrudController::class),
  418.                 MenuItem::linkToCrud('Te versturen''fa fa-minus'Prospect::class)
  419.                     ->setController(ProspectTeVersturenCrudController::class),
  420.                 MenuItem::linkToCrud('Fotoboek afgegeven''fa fa-minus'Prospect::class)
  421.                     ->setController(ProspectFotoboekAfgegevenCrudController::class)
  422.             ]);
  423.         yield MenuItem::subMenu('Administratie''fa fa-folder-open')
  424.             ->setSubItems([
  425.                 MenuItem::linkToCrud('Alle records''fa fa-minus'order::class)
  426.                     ->setController(OrderCrudController::class),
  427.                 MenuItem::linkToCrud('Afhalers''fa fa-minus'order::class)
  428.                     ->setController(AfhalerCrudController::class),
  429.                 MenuItem::section('Offertes'),
  430.                 MenuItem::linkToCrud('Alle lopende offertes''fa fa-minus'order::class)
  431.                     ->setController(OfferteAlleCrudController::class),
  432.                 MenuItem::linkToCrud('Offerte actie nodig''fa fa-minus'order::class)
  433.                     ->setController(OfferteActieCrudController::class),
  434.                 MenuItem::linkToCrud('Offerte aan te passen''fa fa-minus'order::class)
  435.                     ->setController(OfferteAanpassenCrudController::class),
  436.                 MenuItem::linkToCrud('Offerte te ontwerpen''fa fa-minus'order::class)
  437.                     ->setController(OfferteTeOntwerpenCrudController::class),
  438.                 MenuItem::linkToCrud('Ontwerp aanpassen''fa fa-minus'order::class)
  439.                     ->setController(OfferteOntwerpAanpassenCrudController::class),
  440.                 MenuItem::linkToCrud('Ontwerp controleren''fa fa-minus'order::class)
  441.                     ->setController(OfferteOntwerpTeControlerenCrudController::class),
  442.                 MenuItem::linkToCrud('Offerte controleren''fa fa-minus'order::class)
  443.                     ->setController(OfferteTeControlerenCrudController::class),
  444.                 MenuItem::linkToCrud('Offerte versturen''fa fa-minus'order::class)
  445.                     ->setController(OfferteTeVersturenCrudController::class),
  446.                 MenuItem::section('Orders'),
  447.                 MenuItem::linkToCrud('Alle lopende orders''fa fa-minus'order::class)
  448.                     ->setController(OrderAlleCrudController::class),
  449.                 MenuItem::linkToCrud('Order actie nodig''fa fa-minus'order::class)
  450.                     ->setController(OrderActieCrudController::class),
  451.                 MenuItem::linkToCrud('Order aan te passen''fa fa-minus'order::class)
  452.                     ->setController(OrderAanpassenCrudController::class),
  453.                 MenuItem::linkToCrud('Order te ontwerpen''fa fa-minus'order::class)
  454.                     ->setController(OrderTeOntwerpenCrudController::class),
  455.                 MenuItem::linkToCrud('Ontwerp aanpassen''fa fa-minus'order::class)
  456.                     ->setController(OrderOntwerpAanpassenCrudController::class),
  457.                 MenuItem::linkToCrud('Ontwerp controleren''fa fa-minus'order::class)
  458.                     ->setController(OrderOntwerpTeControlerenCrudController::class),
  459.                 MenuItem::linkToCrud('Order controleren''fa fa-minus'order::class)
  460.                     ->setController(OrderTeControlerenCrudController::class),
  461.                 MenuItem::linkToCrud('Order versturen''fa fa-minus'order::class)
  462.                     ->setController(OrderTeVersturenCrudController::class),
  463.             ]);
  464.         yield MenuItem::subMenu('Workflow''fa fa-gears')
  465.             ->setSubItems([
  466.                 MenuItem::linkToCrud('Vergunning aanvr.''fa fa-minus'order::class)
  467.                     ->setController(OrderVergunningaanvraagCrudController::class),
  468.                 MenuItem::linkToCrud('Te bestellen''fa fa-minus'order::class)
  469.                     ->setController(OrderTeBestellenCrudController::class),
  470.                 MenuItem::linkToCrud('Te Leveren''fa fa-minus'order::class)
  471.                     ->setController(OrderTeLeverenCrudController::class),
  472.                 MenuItem::linkToCrud('Levering melden''fa fa-minus'order::class)
  473.                     ->setController(OrderLeveringCrudController::class)
  474.             ]);
  475.         yield MenuItem::subMenu('Monitoring''fa fa-magnifying-glass')
  476.             ->setSubItems([
  477.                 MenuItem::linkToCrud('Offertes > 1 maand''fa fa-minus'order::class)
  478.                     ->setController(OfferteLeeftijdCrudController::class),
  479.                 MenuItem::linkToCrud('Orders > 2 maand''fa fa-minus'order::class)
  480.                     ->setController(OrderLeeftijdCrudController::class),
  481.                 MenuItem::linkToCrud('Afhalers > 3 weken''fa fa-minus'order::class)
  482.                     ->setController(AfhalerLeeftijdCrudController::class),
  483.                 MenuItem::linkToCrud('Orders niet akkoord''fa fa-minus'order::class)
  484.                     ->setController(OrderNietAkkoordCrudController::class),
  485.                 MenuItem::linkToCrud('Check voortgang levermaand < 2 weken''fa fa-minus'order::class)
  486.                     ->setController(OrderCheckVoortgangLevermaandCrudController::class),
  487.                 MenuItem::linkToCrud('Levermaand ontbreekt''fa fa-minus'order::class)
  488.                     ->setController(OrderLevermaandOntbreektCrudController::class)
  489.             ]);
  490.         yield MenuItem::section('Basisgegevens');
  491.         yield MenuItem::linkToCrud('Vestigingen''fa fa-building'vestiging::class);
  492.         yield MenuItem::linkToCrud('Uitvaartverenigingen''fa fa-leaf'Uitvaartvereniging::class);
  493.         yield MenuItem::linkToCrud('Agenten''fa fa-leaf'Agent::class);
  494.         yield MenuItem::linkToCrud('Begraafplaatsen''fa fa-leaf'Begraafplaats::class);
  495.         //yield MenuItem::linkToCrud('Topics','fa fa-folder',Topic::class);
  496.         //yield MenuItem::linkToCrud('Users', 'fas fa-users', User::class);
  497.         // yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
  498.         yield MenuItem::subMenu('Configuratie''fa fa-gear')
  499.             ->setSubItems([
  500.                 MenuItem::linkToCrud('Users''fa fa-minus'User::class)
  501.                     ->setController(UserCrudController::class),
  502.                 MenuItem::linkToCrud('Brieven''fa fa-minus'Brief::class)
  503.                     ->setController(BriefCrudController::class)
  504.             ]);
  505.     }
  506.     public function configureActions(): Actions
  507.     {
  508.         return parent::configureActions()
  509.             ->add(Crud::PAGE_INDEXAction::DETAIL);
  510.     }
  511.     public function configureAssets(): Assets
  512.     {
  513.         return parent::configureAssets()
  514.             ->addWebpackEncoreEntry('admin');
  515.     }
  516. }