<?php
namespace App\Controller\Admin;
use App\Entity\Begraafplaats;
use App\Entity\Klant;
use App\Entity\Order;
use App\Entity\Agent;
use App\Entity\Brief;
use App\Entity\Prospect;
use App\Entity\Topic;
use App\Entity\User;
use App\Entity\Vestiging;
use App\Entity\Familie;
use App\Entity\Reminder;
use App\Entity\Rol;
use App\Entity\Uitvaartvereniging;
use App\Repository\OrderRepository;
use App\Repository\ReminderRepository;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use EasyCorp\Bundle\EasyAdminBundle\Config\Menu\SectionMenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\UX\Chartjs\Builder\ChartBuilderInterface;
use Symfony\UX\Chartjs\Model\Chart;
class DashboardController extends AbstractDashboardController
{
public OrderRepository $orderRepository;
public ReminderRepository $reminderRepository;
public ChartBuilderInterface $chartbuilder;
public AdminUrlGenerator $adminUrlGenerator;
public array $backgroundColors;
private TokenStorageInterface $tokenStorage;
public user $user;
public function __construct(OrderRepository $orderRepository, ReminderRepository $reminderRepository, ChartBuilderInterface $chartbuilder, AdminUrlGenerator $adminUrlGenerator, TokenStorageInterface $tokenStorage)
{
$this->orderRepository = $orderRepository;
$this->reminderRepository = $reminderRepository;
$this->chartbuilder = $chartbuilder;
$this->adminUrlGenerator = $adminUrlGenerator;
$this->backgroundColors = [
'rgb(121, 134, 203)',
'rgb(240, 147, 0)',
'rgb(213, 0, 0)',
'rgb(0, 150, 136)'
];
$this->tokenStorage = $tokenStorage;
$this->user = $tokenStorage->getToken()->getUser();
}
#[IsGranted('ROLE_ADMIN')]
#[Route('/admin', name: 'admin')]
public function index(): Response
{
//return parent::index();
$vestigingOfferteCount = $this->orderRepository->vestigingOfferteCount();
$vestigingOfferteActieCount = $this->orderRepository->vestigingOfferteActieCount();
$vestigingOrderCount = $this->orderRepository->vestigingOrderCount();
$vestigingOrderActieCount = $this->orderRepository->vestigingOrderActieCount();
$vestigingVergunningAanvragenCount = $this->orderRepository->vestigingVergunningAanvragenCount();
$vestigingOfferteTeControlerenCount = $this->orderRepository->vestigingOfferteTeControlerenCount();
$vestigingOfferteTeVersturenCount = $this->orderRepository->vestigingOfferteTeVersturenCount();
$vestigingOrderTeControlerenCount = $this->orderRepository->vestigingOrderTeControlerenCount();
$vestigingOrderTeVersturenCount = $this->orderRepository->vestigingOrderTeVersturenCount();
$vestigingOfferteLeeftijdCount = $this->orderRepository->vestigingOfferteLeeftijdCount();
$vestigingOrderLeeftijdCount = $this->orderRepository->vestigingOrderLeeftijdCount();
$vestigingOrderLeveringCount = $this->orderRepository->vestigingOrderLeveringCount();
$vestigingOfferteTeOntwerpenCount = $this->orderRepository->vestigingOfferteTeOntwerpenCount();
$vestigingOrderTeOntwerpenCount = $this->orderRepository->vestigingOrderTeOntwerpenCount();
$vestigingOfferteAanpassenCount = $this->orderRepository->vestigingOfferteAanpassenCount();
$vestigingOfferteOntwerpAanpassenCount = $this->orderRepository->vestigingOfferteOntwerpAanpassenCount();
$vestigingOrderOntwerpAanpassenCount = $this->orderRepository->vestigingOrderOntwerpAanpassenCount();
$vestigingOrderOntwerpTeControlerenCount = $this->orderRepository->vestigingOrderOntwerpTeControlerenCount();
$vestigingOfferteOntwerpTeControlerenCount = $this->orderRepository->vestigingOfferteOntwerpTeControlerenCount();
$vestigingOrderAanpassenCount = $this->orderRepository->vestigingOrderAanpassenCount();
$vestigingAfhalerLeeftijdCount = $this->orderRepository->vestigingAfhalerLeeftijdCount();
$vestigingOrderTeBestellenCount = $this->orderRepository->vestigingOrderTeBestellenCount();
$vestigingOrderTeLeverenCount = $this->orderRepository->vestigingOrderTeLeverenCount();
$vestigingOrderLevermaandOntbreektCount = $this->orderRepository->vestigingOrderLevermaandOntbreektCount();
$reminderActiveCount = $this->reminderRepository->activeCount();
$reminderVanMijCount = $this->reminderRepository->vanMijCount($this->user);
$reminderAlleCount = $this->reminderRepository->alleCount();
$reminderNijkerkCount = $this->reminderRepository->vestigingCount(1);
$reminderHarderwijkCount = $this->reminderRepository->vestigingCount(4);
$reminderEpeCount = $this->reminderRepository->vestigingCount(2);
$reminderHardeCount = $this->reminderRepository->vestigingCount(3);
$orderCount = array_sum($vestigingOrderCount); //$this->orderRepository->orderCount();
$orderActieCount = array_sum($vestigingOrderActieCount); //$this->orderRepository->orderActieCount();
$vergunningCount = array_sum($vestigingVergunningAanvragenCount); //$this->orderRepository->vergunningCount();
$offerteCount = array_sum($vestigingOfferteCount); //$this->orderRepository->offerteCount();
$offerteActieCount = array_sum($vestigingOfferteActieCount); //$this->orderRepository->offerteActieCount();
$offerteTeControlerenCount = array_sum($vestigingOfferteTeControlerenCount); //$this->orderRepository->offerteTeControlerenCount();
$offerteTeVersturenCount = array_sum($vestigingOfferteTeVersturenCount); //$this->orderRepository->offerteTeVersturenCount();
$orderTeControlerenCount = array_sum($vestigingOrderTeControlerenCount); //$this->orderRepository->orderTeControlerenCount();
$orderTeVersturenCount = array_sum($vestigingOrderTeVersturenCount); //$this->orderRepository->orderTeVersturenCount();
$offerteLeeftijdCount = array_sum($vestigingOfferteLeeftijdCount); //$this->orderRepository->offerteLeeftijdCount();
$orderLeeftijdCount = array_sum($vestigingOrderLeeftijdCount); //$this->orderRepository->orderLeeftijdCount();
$orderLeveringCount = array_sum($vestigingOrderLeveringCount); //$this->orderRepository->orderLeveringCount();
$offerteTeOntwerpenCount = array_sum($vestigingOfferteTeOntwerpenCount); //$this->orderRepository->offerteTeOntwerpenCount();
$orderTeOntwerpenCount = array_sum($vestigingOrderTeOntwerpenCount); //$this->orderRepository->orderTeOntwerpenCount();
$offerteOntwerpAanpassenCount = array_sum($vestigingOfferteOntwerpAanpassenCount); //$this->orderRepository->offerteOntwerpAanpassenCount();
$offerteAanpassenCount = array_sum($vestigingOfferteAanpassenCount);
$orderOntwerpAanpassenCount = array_sum($vestigingOrderOntwerpAanpassenCount); //$this->orderRepository->orderOntwerpAanpassenCount();
$orderOntwerpTeControlerenCount = array_sum($vestigingOrderOntwerpTeControlerenCount);
$offerteOntwerpTeControlerenCount = array_sum($vestigingOfferteOntwerpTeControlerenCount);
$orderAanpassenCount = array_sum($vestigingOrderAanpassenCount);
$afhalerLeeftijdCount = array_sum($vestigingAfhalerLeeftijdCount);
$orderTeBestellenCount = array_sum($vestigingOrderTeBestellenCount);
$orderTeLeverenCount = array_sum($vestigingOrderTeLeverenCount);
$orderLevermaandOntbreektCount = array_sum($vestigingOrderLevermaandOntbreektCount);
//Charts
$chartOfferte = $this->makeChart($vestigingOfferteCount);
$chartOfferteActie = $this->makeChart($vestigingOfferteActieCount);
$chartOfferteTeOntwerpen = $this->makeChart($vestigingOfferteTeOntwerpenCount);
$chartOrderTeOntwerpen = $this->makeChart($vestigingOrderTeOntwerpenCount);
$chartOfferteAanpassen = $this->makeChart($vestigingOfferteAanpassenCount);
$chartOrderAanpassen = $this->makeChart($vestigingOrderAanpassenCount);
$chartOfferteOntwerpAanpassen = $this->makeChart($vestigingOfferteOntwerpAanpassenCount);
$chartOrderOntwerpAanpassen = $this->makeChart($vestigingOrderOntwerpAanpassenCount);
$chartOrder = $this->makeChart($vestigingOrderCount);
$chartOrderActie = $this->makeChart($vestigingOrderActieCount);
$chartVergunningAanvragen = $this->makeChart($vestigingVergunningAanvragenCount);
$chartOfferteTeControleren = $this->makeChart($vestigingOfferteTeControlerenCount);
$chartOfferteTeVersturen = $this->makeChart($vestigingOfferteTeVersturenCount);
$chartOrderTeControleren = $this->makeChart($vestigingOrderTeControlerenCount);
$chartOrderOntwerpTeControleren = $this->makeChart($vestigingOrderOntwerpTeControlerenCount);
$chartOfferteOntwerpTeControleren = $this->makeChart($vestigingOfferteOntwerpTeControlerenCount);
$chartOrderTeVersturen = $this->makeChart($vestigingOrderTeVersturenCount);
$chartOrderLevering = $this->makeChart($vestigingOrderLeveringCount);
$chartOfferteLeeftijd = $this->makeChart($vestigingOfferteLeeftijdCount);
$chartOrderLeeftijd = $this->makeChart($vestigingOrderLeeftijdCount);
$chartAfhalerLeeftijd = $this->makeChart($vestigingAfhalerLeeftijdCount);
$chartOrderTeBestellen = $this->makeChart($vestigingOrderTeBestellenCount);
$chartOrderTeLeveren = $this->makeChart($vestigingOrderTeLeverenCount);
$chartOrderLevermaandOntbreekt = $this->makeChart($vestigingOrderLevermaandOntbreektCount);
//URL's
$urlOffertes = $this->adminUrlGenerator
->setController(OfferteAlleCrudController::class)
->setAction('index')
->generateUrl();
$urlOrders = $this->adminUrlGenerator
->setController(OrderAlleCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteActie = $this->adminUrlGenerator
->setController(OfferteActieCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderActie = $this->adminUrlGenerator
->setController(OrderActieCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderVergunningaanvraag = $this->adminUrlGenerator
->setController(OrderVergunningaanvraagCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteTeControleren = $this->adminUrlGenerator
->setController(OfferteTeControlerenCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteTeVersturen = $this->adminUrlGenerator
->setController(OfferteTeVersturenCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteTeOntwerpen = $this->adminUrlGenerator
->setController(OfferteTeOntwerpenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderTeOntwerpen = $this->adminUrlGenerator
->setController(OrderTeOntwerpenCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteAanpassen = $this->adminUrlGenerator
->setController(OfferteAanpassenCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteOntwerpAanpassen = $this->adminUrlGenerator
->setController(OfferteOntwerpAanpassenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderAanpassen = $this->adminUrlGenerator
->setController(OrderAanpassenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderOntwerpAanpassen = $this->adminUrlGenerator
->setController(OrderOntwerpAanpassenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderOntwerpTeControleren = $this->adminUrlGenerator
->setController(OrderOntwerpTeControlerenCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteOntwerpTeControleren = $this->adminUrlGenerator
->setController(OfferteOntwerpTeControlerenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderTeControleren = $this->adminUrlGenerator
->setController(OrderTeControlerenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderTeVersturen = $this->adminUrlGenerator
->setController(OrderTeVersturenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderLevering = $this->adminUrlGenerator
->setController(OrderLeveringCrudController::class)
->setAction('index')
->generateUrl();
$urlOfferteLeeftijd = $this->adminUrlGenerator
->setController(OfferteLeeftijdCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderLeeftijd = $this->adminUrlGenerator
->setController(OrderLeeftijdCrudController::class)
->setAction('index')
->generateUrl();
$urlAfhalerLeeftijd = $this->adminUrlGenerator
->setController(AfhalerLeeftijdCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderTeBestellen = $this->adminUrlGenerator
->setController(OrderTeBestellenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderTeLeveren = $this->adminUrlGenerator
->setController(OrderTeLeverenCrudController::class)
->setAction('index')
->generateUrl();
$urlOrderLevermaandOntbreekt = $this->adminUrlGenerator
->setController(OrderLevermaandOntbreektCrudController::class)
->setAction('index')
->generateUrl();
$urlReminderActive = $this->adminUrlGenerator
->setController(ReminderActiveCrudController::class)
->setAction('index')
->generateUrl();
$urlReminderVanMij = $this->adminUrlGenerator
->setController(ReminderMijnCrudController::class)
->setAction('index')
->generateUrl();
$urlReminderAlle = $this->adminUrlGenerator
->setController(ReminderCrudController::class)
->setAction('index')
->generateUrl();
$urlReminderNijkerk = $this->adminUrlGenerator
->setController(ReminderNijkerkCrudController::class)
->setAction('index')
->generateUrl();
$urlReminderHarderwijk = $this->adminUrlGenerator
->setController(ReminderHarderwijkCrudController::class)
->setAction('index')
->generateUrl();
$urlReminderEpe = $this->adminUrlGenerator
->setController(ReminderEpeCrudController::class)
->setAction('index')
->generateUrl();
$urlReminderHarde = $this->adminUrlGenerator
->setController(ReminderHardeCrudController::class)
->setAction('index')
->generateUrl();
return $this->render('admin/contentDashboard.html.twig', [
'orderCount' => $orderCount,
'orderActieCount' => $orderActieCount,
'offerteCount' => $offerteCount,
'offerteActieCount' => $offerteActieCount,
'offerteTeControlerenCount' => $offerteTeControlerenCount,
'offerteTeVersturenCount' => $offerteTeVersturenCount,
'orderTeControlerenCount' => $orderTeControlerenCount,
'orderOntwerpTeControlerenCount' => $orderOntwerpTeControlerenCount,
'offerteOntwerpTeControlerenCount' => $offerteOntwerpTeControlerenCount,
'orderTeVersturenCount' => $orderTeVersturenCount,
'offerteTeOntwerpenCount' => $offerteTeOntwerpenCount,
'orderTeOntwerpenCount' => $orderTeOntwerpenCount,
'offerteAanpassenCount' => $offerteAanpassenCount,
'offerteOntwerpAanpassenCount' => $offerteOntwerpAanpassenCount,
'orderAanpassenCount' => $orderAanpassenCount,
'orderOntwerpAanpassenCount' => $orderOntwerpAanpassenCount,
'vergunningCount' => $vergunningCount,
'offerteLeeftijdCount' => $offerteLeeftijdCount,
'orderLeeftijdCount' => $orderLeeftijdCount,
'orderLeveringCount' => $orderLeveringCount,
'afhalerLeeftijdCount' => $afhalerLeeftijdCount,
'orderTeBestellenCount' => $orderTeBestellenCount,
'orderTeLeverenCount' => $orderTeLeverenCount,
'orderLevermaandOntbreektCount' => $orderLevermaandOntbreektCount,
'reminderActiveCount' => $reminderActiveCount,
'reminderVanMijCount' => $reminderVanMijCount,
'reminderAlleCount' => $reminderAlleCount,
'reminderNijkerkCount' => $reminderNijkerkCount,
'reminderHarderwijkCount' => $reminderHarderwijkCount,
'reminderEpeCount' => $reminderEpeCount,
'reminderHardeCount' => $reminderHardeCount,
'chartOfferte' => $chartOfferte,
'chartOfferteActie' => $chartOfferteActie,
'chartOrder' => $chartOrder,
'chartOrderActie' => $chartOrderActie,
'chartVergunningAanvragen' => $chartVergunningAanvragen,
'chartOfferteTeControleren' => $chartOfferteTeControleren,
'chartOfferteTeVersturen' => $chartOfferteTeVersturen,
'chartOfferteTeOntwerpen' => $chartOfferteTeOntwerpen,
'chartOrderTeOntwerpen' => $chartOrderTeOntwerpen,
'chartOfferteAanpassen' => $chartOfferteAanpassen,
'chartOfferteOntwerpAanpassen' => $chartOfferteOntwerpAanpassen,
'chartOrderAanpassen' => $chartOrderAanpassen,
'chartOrderOntwerpAanpassen' => $chartOrderOntwerpAanpassen,
'chartOrderTeControleren' => $chartOrderTeControleren,
'chartOrderOntwerpTeControleren' => $chartOrderOntwerpTeControleren,
'chartOfferteOntwerpTeControleren' => $chartOfferteOntwerpTeControleren,
'chartOrderTeVersturen' => $chartOrderTeVersturen,
'chartOrderLevering' => $chartOrderLevering,
'chartOfferteLeeftijd' => $chartOfferteLeeftijd,
'chartOrderLeeftijd' => $chartOrderLeeftijd,
'chartAfhalerLeeftijd' => $chartAfhalerLeeftijd,
'chartOrderTeBestellen' => $chartOrderTeBestellen,
'chartOrderTeLeveren' => $chartOrderTeLeveren,
'chartOrderLevermaandOntbreekt' => $chartOrderLevermaandOntbreekt,
'urlOffertes' => $urlOffertes,
'urlOrders' => $urlOrders,
'urlOrderVergunningaanvraag' => $urlOrderVergunningaanvraag,
'urlOfferteTeControleren' => $urlOfferteTeControleren,
'urlOrderTeControleren' => $urlOrderTeControleren,
'urlOfferteTeVersturen' => $urlOfferteTeVersturen,
'urlOrderTeVersturen' => $urlOrderTeVersturen,
'urlOfferteTeOntwerpen' => $urlOfferteTeOntwerpen,
'urlOfferteAanpassen' => $urlOfferteAanpassen,
'urlOfferteOntwerpAanpassen' => $urlOfferteOntwerpAanpassen,
'urlOrderTeOntwerpen' => $urlOrderTeOntwerpen,
'urlOrderOntwerpTeControleren' => $urlOrderOntwerpTeControleren,
'urlOfferteOntwerpTeControleren' => $urlOfferteOntwerpTeControleren,
'urlOrderOntwerpAanpassen' => $urlOrderOntwerpAanpassen,
'urlOrderAanpassen' => $urlOrderAanpassen,
'urlOfferteActie' => $urlOfferteActie,
'urlOrderActie' => $urlOrderActie,
'urlOfferteLeeftijd' => $urlOfferteLeeftijd,
'urlOrderLeeftijd' => $urlOrderLeeftijd,
'urlOrderLevering' => $urlOrderLevering,
'urlAfhalerLeeftijd' => $urlAfhalerLeeftijd,
'urlOrderTeBestellen' => $urlOrderTeBestellen,
'urlOrderTeLeveren' => $urlOrderTeLeveren,
'urlOrderLevermaandOntbreekt' => $urlOrderLevermaandOntbreekt,
'urlReminderActive' => $urlReminderActive,
'urlReminderVanMij' => $urlReminderVanMij,
'urlReminderAlle' => $urlReminderAlle,
'urlReminderNijkerk' => $urlReminderNijkerk,
'urlReminderHarderwijk' => $urlReminderHarderwijk,
'urlReminderEpe' => $urlReminderEpe,
'urlReminderHarde' => $urlReminderHarde
]);
// Option 1. You can make your dashboard redirect to some common page of your backend
//
// $adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
// return $this->redirect($adminUrlGenerator->setController(OneOfYourCrudController::class)->generateUrl());
// Option 2. You can make your dashboard redirect to different pages depending on the user
//
// if ('jane' === $this->getUser()->getUsername()) {
// return $this->redirect('...');
// }
// Option 3. You can render some custom template to display a proper dashboard with widgets, etc.
// (tip: it's easier if your template extends from @EasyAdmin/page/content.html.twig)
//
// return $this->render('some/path/my-dashboard.html.twig');
}
public function makeChart($chartData)
{
$chart = $this->chartbuilder->createChart(Chart::TYPE_PIE);
$chart->setData([
'labels' => array_keys($chartData),
'datasets' => [
[
'data' => array_values($chartData),
'backgroundColor' => $this->backgroundColors,
'hoverOffset' => 4
],
],
]);
$chart->setOptions([
'plugins' => ['legend' => ['display' => false]]
]);
return $chart;
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Alphanatuursteen');
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToDashboard('Dashboard', 'fa fa-dashboard');
yield MenuItem::subMenu('Reminders', 'fa fa-bell', Reminder::class)
->setSubItems([
MenuItem::linkToCrud('Actieve reminders', 'fa fa-minus', Reminder::class)
->setController(ReminderActiveCrudController::class),
MenuItem::linkToCrud('Mijn reminders', 'fa fa-minus', Reminder::class)
->setController(ReminderMijnCrudController::class),
MenuItem::linkToCrud('Nijkerk', 'fa fa-minus', Reminder::class)
->setController(ReminderNijkerkCrudController::class),
MenuItem::linkToCrud('Harderwijk', 'fa fa-minus', Reminder::class)
->setController(ReminderHarderwijkCrudController::class),
MenuItem::linkToCrud('Epe', 'fa fa-minus', Reminder::class)
->setController(ReminderEpeCrudController::class),
MenuItem::linkToCrud('\'t Harde', 'fa fa-minus', Reminder::class)
->setController(ReminderHardeCrudController::class),
MenuItem::linkToCrud('Alle reminders', 'fa fa-minus', Reminder::class)
->setController(ReminderCrudController::class)
]);
yield MenuItem::linkToCrud('Families', 'fa fa-users', Familie::class);
yield MenuItem::subMenu('Prospects', 'fa fa-user', Prospect::class)
->setSubItems([
MenuItem::linkToCrud('Alle prospects', 'fa fa-minus', Prospect::class)
->setController(ProspectCrudController::class),
MenuItem::linkToCrud('Te versturen', 'fa fa-minus', Prospect::class)
->setController(ProspectTeVersturenCrudController::class),
MenuItem::linkToCrud('Fotoboek afgegeven', 'fa fa-minus', Prospect::class)
->setController(ProspectFotoboekAfgegevenCrudController::class)
]);
yield MenuItem::subMenu('Administratie', 'fa fa-folder-open')
->setSubItems([
MenuItem::linkToCrud('Alle records', 'fa fa-minus', order::class)
->setController(OrderCrudController::class),
MenuItem::linkToCrud('Afhalers', 'fa fa-minus', order::class)
->setController(AfhalerCrudController::class),
MenuItem::section('Offertes'),
MenuItem::linkToCrud('Alle lopende offertes', 'fa fa-minus', order::class)
->setController(OfferteAlleCrudController::class),
MenuItem::linkToCrud('Offerte actie nodig', 'fa fa-minus', order::class)
->setController(OfferteActieCrudController::class),
MenuItem::linkToCrud('Offerte aan te passen', 'fa fa-minus', order::class)
->setController(OfferteAanpassenCrudController::class),
MenuItem::linkToCrud('Offerte te ontwerpen', 'fa fa-minus', order::class)
->setController(OfferteTeOntwerpenCrudController::class),
MenuItem::linkToCrud('Ontwerp aanpassen', 'fa fa-minus', order::class)
->setController(OfferteOntwerpAanpassenCrudController::class),
MenuItem::linkToCrud('Ontwerp controleren', 'fa fa-minus', order::class)
->setController(OfferteOntwerpTeControlerenCrudController::class),
MenuItem::linkToCrud('Offerte controleren', 'fa fa-minus', order::class)
->setController(OfferteTeControlerenCrudController::class),
MenuItem::linkToCrud('Offerte versturen', 'fa fa-minus', order::class)
->setController(OfferteTeVersturenCrudController::class),
MenuItem::section('Orders'),
MenuItem::linkToCrud('Alle lopende orders', 'fa fa-minus', order::class)
->setController(OrderAlleCrudController::class),
MenuItem::linkToCrud('Order actie nodig', 'fa fa-minus', order::class)
->setController(OrderActieCrudController::class),
MenuItem::linkToCrud('Order aan te passen', 'fa fa-minus', order::class)
->setController(OrderAanpassenCrudController::class),
MenuItem::linkToCrud('Order te ontwerpen', 'fa fa-minus', order::class)
->setController(OrderTeOntwerpenCrudController::class),
MenuItem::linkToCrud('Ontwerp aanpassen', 'fa fa-minus', order::class)
->setController(OrderOntwerpAanpassenCrudController::class),
MenuItem::linkToCrud('Ontwerp controleren', 'fa fa-minus', order::class)
->setController(OrderOntwerpTeControlerenCrudController::class),
MenuItem::linkToCrud('Order controleren', 'fa fa-minus', order::class)
->setController(OrderTeControlerenCrudController::class),
MenuItem::linkToCrud('Order versturen', 'fa fa-minus', order::class)
->setController(OrderTeVersturenCrudController::class),
]);
yield MenuItem::subMenu('Workflow', 'fa fa-gears')
->setSubItems([
MenuItem::linkToCrud('Vergunning aanvr.', 'fa fa-minus', order::class)
->setController(OrderVergunningaanvraagCrudController::class),
MenuItem::linkToCrud('Te bestellen', 'fa fa-minus', order::class)
->setController(OrderTeBestellenCrudController::class),
MenuItem::linkToCrud('Te Leveren', 'fa fa-minus', order::class)
->setController(OrderTeLeverenCrudController::class),
MenuItem::linkToCrud('Levering melden', 'fa fa-minus', order::class)
->setController(OrderLeveringCrudController::class)
]);
yield MenuItem::subMenu('Monitoring', 'fa fa-magnifying-glass')
->setSubItems([
MenuItem::linkToCrud('Offertes > 1 maand', 'fa fa-minus', order::class)
->setController(OfferteLeeftijdCrudController::class),
MenuItem::linkToCrud('Orders > 2 maand', 'fa fa-minus', order::class)
->setController(OrderLeeftijdCrudController::class),
MenuItem::linkToCrud('Afhalers > 3 weken', 'fa fa-minus', order::class)
->setController(AfhalerLeeftijdCrudController::class),
MenuItem::linkToCrud('Orders niet akkoord', 'fa fa-minus', order::class)
->setController(OrderNietAkkoordCrudController::class),
MenuItem::linkToCrud('Check voortgang levermaand < 2 weken', 'fa fa-minus', order::class)
->setController(OrderCheckVoortgangLevermaandCrudController::class),
MenuItem::linkToCrud('Levermaand ontbreekt', 'fa fa-minus', order::class)
->setController(OrderLevermaandOntbreektCrudController::class)
]);
yield MenuItem::section('Basisgegevens');
yield MenuItem::linkToCrud('Vestigingen', 'fa fa-building', vestiging::class);
yield MenuItem::linkToCrud('Uitvaartverenigingen', 'fa fa-leaf', Uitvaartvereniging::class);
yield MenuItem::linkToCrud('Agenten', 'fa fa-leaf', Agent::class);
yield MenuItem::linkToCrud('Begraafplaatsen', 'fa fa-leaf', Begraafplaats::class);
//yield MenuItem::linkToCrud('Topics','fa fa-folder',Topic::class);
//yield MenuItem::linkToCrud('Users', 'fas fa-users', User::class);
// yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
yield MenuItem::subMenu('Configuratie', 'fa fa-gear')
->setSubItems([
MenuItem::linkToCrud('Users', 'fa fa-minus', User::class)
->setController(UserCrudController::class),
MenuItem::linkToCrud('Brieven', 'fa fa-minus', Brief::class)
->setController(BriefCrudController::class)
]);
}
public function configureActions(): Actions
{
return parent::configureActions()
->add(Crud::PAGE_INDEX, Action::DETAIL);
}
public function configureAssets(): Assets
{
return parent::configureAssets()
->addWebpackEncoreEntry('admin');
}
}