src/Controller/DashboardController.php line 29

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Inventory;
  4. use App\Entity\PurchaseOrder;
  5. use App\Entity\Receiption;
  6. use App\Entity\SaleOrder;
  7. use App\Entity\Shipment;
  8. use App\Entity\TransferOrder;
  9. use App\Entity\User;
  10. use Doctrine\Persistence\ManagerRegistry;
  11. use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
  12. use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
  13. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  14. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  15. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. class DashboardController extends AbstractDashboardController
  19. {
  20.     public function __construct(private ManagerRegistry $managerRegistry)
  21.     {
  22.     }
  23.     #[Route('/'name'admin')]
  24.     public function index(): Response
  25.     {
  26.         $manager $this->managerRegistry->getManager();
  27.         /** var array[LogEntry] */
  28.         $lastSaleOrder $this->managerRegistry
  29.             ->getManager()
  30.             ->getRepository(SaleOrder::class)
  31.             ->findBy(
  32.                 [],
  33.                 ['updatedAt' => 'DESC'],
  34.                 20
  35.             );
  36.         return $this->render('admin/dashboard.html.twig'compact('lastSaleOrder'));
  37.     }
  38.     public function configureDashboard(): Dashboard
  39.     {
  40.         return Dashboard::new()
  41.             ->setTitle('KPS x Active fulfilment')->disableDarkMode(true);
  42.     }
  43.     public function configureAssets(): Assets
  44.     {
  45.         return Assets::new()->addCssFile('build/app.css')->addWebpackEncoreEntry('app');
  46.     }
  47.     public function configureMenuItems(): iterable
  48.     {
  49.         return [
  50.             MenuItem::linkToCrud('Sale orders''fas fa-cart-arrow-down'SaleOrder::class),
  51.             MenuItem::linkToCrud('Shipments''fas fa-truck-loading'Shipment::class),
  52.             MenuItem::linkToCrud('Purchase orders''fas fa-box'PurchaseOrder::class),
  53.             MenuItem::linkToCrud('Transfers to FBA''fab fa-amazon'TransferOrder::class),
  54.             MenuItem::linkToCrud('Inventory''fas fa-box-open'Inventory::class),
  55.             MenuItem::linkToCrud('Users''fa fa-user'User::class)
  56.         ];
  57.     }
  58.     public function configureCrud(): Crud
  59.     {
  60.         return Crud::new()
  61.             ->setPaginatorPageSize(50);
  62.     }
  63. }