src/Controller/Admin/DashboardController.php line 39

  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\ActionShock;
  4. use App\Entity\AdditionalCompanyInformation;
  5. use App\Entity\BrandDiscount;
  6. use App\Entity\CartFinished;
  7. use App\Entity\ConfigSite;
  8. use App\Entity\DeliveryAddress;
  9. use App\Entity\Invoices;
  10. use App\Entity\Joker;
  11. use App\Entity\LotNumber;
  12. use App\Entity\Products;
  13. use App\Entity\ProductsAnalysis;
  14. use App\Entity\Rebate;
  15. use App\Entity\SpecialCustomer;
  16. use App\Entity\SpecialDiscount;
  17. use App\Entity\User;
  18. use App\Entity\Videos;
  19. use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
  20. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  21. use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
  22. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
  23. use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
  24. use Symfony\Component\HttpFoundation\Response;
  25. use Symfony\Component\Routing\Annotation\Route;
  26. class DashboardController extends AbstractDashboardController
  27. {
  28.     private $entityManager;
  29.     public function __construct(\Doctrine\ORM\EntityManagerInterface $entityManager)
  30.     {
  31.         $this->entityManager $entityManager;
  32.     }
  33.     #[Route('/admin'name'admin')]
  34.     public function index(): Response
  35.     {
  36.         $adminUrlGenerator $this->container->get(AdminUrlGenerator::class);
  37.         return $this->redirect($adminUrlGenerator->setController(UserCrudController::class)->generateUrl());
  38.     }
  39.     public function configureDashboard(): Dashboard
  40.     {
  41.         return Dashboard::new()
  42.             ->setTitle('B2B');
  43.     }
  44.     public function configureAssets(): Assets
  45.     {
  46.         return Assets::new()
  47.             ->addCssFile('css/admin/admin-password-toggle.css')
  48.             ->addCssFile('css/admin/custom-badge.css')
  49.             ->addJsFile('js/admin/admin-password-toggle.js');
  50.     }
  51.     public function configureMenuItems(): iterable
  52.     {
  53.         yield MenuItem::linkToUrl('Vers le site'"fa fa-globe"'/');
  54.         if (in_array('ROLE_ADMIN'$this->getUser()->getRoles())) {
  55.             yield MenuItem::section('Gestion Produit');
  56.             yield MenuItem::linkToCrud('Produits''fa fa-archive'Products::class);
  57.             yield MenuItem::linkToCrud('Analyses produits''fa fa-archive'ProductsAnalysis::class);
  58.             yield MenuItem::linkToCrud('Promotions''fa fa-shopping-basket'Rebate::class);
  59.             yield MenuItem::linkToCrud('Promotions spéciales''fa fa-shopping-basket'SpecialDiscount::class);
  60.             yield MenuItem::linkToCrud('Promotions marques''fa fa-shopping-basket'BrandDiscount::class);
  61.             yield MenuItem::linkToCrud('Calendrier actions-choc''fa fa-calendar'ActionShock::class);
  62.             yield MenuItem::linkToRoute('Remises Mercator''fa fa-percent''remises_mercator');
  63.             yield MenuItem::linkToCrud('Numéro de lot''fa fa-bell'LotNumber::class);
  64.             //        yield MenuItem::linkToCrud('code-barre', 'fa fa-barcode', Barcode::class);
  65.             yield MenuItem::section('Gestion Vidéos');
  66.             yield MenuItem::linkToCrud('Vidéos''fa fa-video-camera'Videos::class);
  67.             yield MenuItem::section('Gestion Facturation');
  68.             yield MenuItem::linkToCrud('Commandes passées''fa fa-address-card'CartFinished::class);
  69.             //        yield MenuItem::linkToCrud('Tva', 'fa fa-area-chart', Tva::class);
  70.             yield MenuItem::section('Gestion Client');
  71.             yield MenuItem::linkToCrud('Facturations''fa fa-archive'Invoices::class);
  72.             yield MenuItem::linkToCrud('Clients''fa fa-user'User::class);
  73.             
  74.             // Compter les nouveaux clients (inactifs)
  75.             $newClientsCount $this->entityManager->getRepository(User::class)
  76.                 ->count(['active' => false]);
  77.             
  78.             yield MenuItem::linkToCrud('Nouveaux clients''fa fa-user-plus'User::class)
  79.                 ->setController(NewClientCrudController::class)
  80.                 ->setBadge($newClientsCount$newClientsCount 'danger' 'secondary');
  81.             
  82.             yield MenuItem::linkToCrud('Clients spéciaux''fa fa-user'SpecialCustomer::class);
  83.             yield MenuItem::linkToCrud('Clients adresses''fa fa-address-card'DeliveryAddress::class);
  84.             yield MenuItem::linkToCrud('Gestion pharmacie %''fa fa-plus-circle'User::class)->setController(User2CrudController::class);
  85.             yield MenuItem::linkToCrud('Joker''fa fa-plane'Joker::class);
  86.             yield MenuItem::linkToCrud('Informations entreprise''fa fa-address-card-o'AdditionalCompanyInformation::class);
  87.             yield MenuItem::section('Mercator');
  88.             yield MenuItem::linkToRoute('Sync Produits Mercator''fa fa-refresh''admin_sync_mercator');
  89.             yield MenuItem::linkToRoute('Import Excel Mercator''fa fa-cogs''mercator');
  90.             yield MenuItem::section('Mise à jour');
  91.             yield MenuItem::linkToCrud('Configuration site''fa fa-address-card-o'ConfigSite::class);
  92.             yield MenuItem::linkToRoute('Mise à jour des données''fa fa-cogs''updateProductEasyAdmin');
  93.         } else {
  94.             yield MenuItem::section('Gestion Client');
  95.             yield MenuItem::linkToCrud('Clients''fa fa-user'User::class);
  96.             yield MenuItem::linkToCrud('Informations entreprise''fa fa-address-card-o'AdditionalCompanyInformation::class);
  97.         }
  98.     }
  99. }