src/Controller/AdminFinance/DashboardController.php line 46
<?phpnamespace App\Controller\AdminFinance;use App\Controller\AdminFinance\AutoEntreprise\AeFactureCrudController;use App\Controller\AdminFinance\AutoEntreprise\AeTiersCrudController;use App\Controller\AdminFinance\Bank\BankBudgetCrudController;use App\Controller\AdminFinance\Bank\BankMouvementCategorieCrudController;use App\Controller\AdminFinance\Bank\BankPrelevementCrudController;use App\Controller\AdminFinance\Vehicule\VehiculeMouvementCrudController;use App\Entity\AdminFinance\Bank\BankBudget;use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\Routing\Annotation\Route;use Doctrine\Persistence\ManagerRegistry;use App\Entity\AdminFinance\Bank\BankCompte;use App\Repository\AdminFinance\Bank\BankCompteRepository;use App\Entity\AdminFinance\Bank\BankMouvement;use App\Repository\AdminFinance\Bank\BankMouvementRepository;use App\Entity\AdminFinance\Bank\BankPrelevement;use App\Entity\AdminFinance\Vehicule\VehiculeMouvement;use App\Repository\AdminFinance\Vehicule\VehiculeMouvementRepository;use App\Controller\AdminFinance\Bank\BankMouvementCrudController;use App\Controller\AdminFinance\Sci\SciBankMouvementCrudController;use App\Entity\AutoEntreprise\Facture;/*** Classe permettant d'afficher le tableau de bord dans la partie BackOffice*/class DashboardController extends AbstractDashboardController{public function __construct(private BankCompteRepository $compteRepository,private BankMouvementRepository $mvtRepository,private VehiculeMouvementRepository $vehiculeMvtRepository){}#[Route('/admin', name: 'easyadmin_default')]#[Route('/admin/dashboard', name: 'easyadmin_finance')]public function index(): Response{//return parent::index();// 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');$mvts = $this->mvtRepository->findLastDebit(25);$cbts = $this->vehiculeMvtRepository->findLastDebit(5);$comptes_courant = $this->compteRepository->findBy(['type'=> BankCompte::COMPTE_COURANT]);$comptes_livret = $this->compteRepository->findBy(['type'=> BankCompte::COMPTE_LIVRET]);$comptes_professionnel = $this->compteRepository->findBy(['type'=> BankCompte::COMPTE_PROFESSIONNEL]);$comptes_credit = $this->compteRepository->findBy(['type'=> BankCompte::COMPTE_CREDIT]);$typeDepenses = $this->mvtRepository->sommeDepensesByCategories(date('Y'), BankCompte::COMPTE_COURANT);return $this->render('adminfinance/dashboard.html.twig', ['comptes_courant' => array_merge($comptes_courant, $comptes_professionnel),//'mvts' => $listing,'livrets' => $comptes_livret,'credits' => $comptes_credit,// Prochains mouvements//'url_template' => $url_template,'mvts' => array_merge($mvts, $cbts),// Pour l'histogramme'annee' => date('Y'),'typeDepenses' => $typeDepenses,/*// Partie Budget'year' => $year, 'nbre_mois' => $nbreMois, 'start_mois' => ($nbreMois>6)?$nbreMois-6:1,'budgets'=> $budgets,'categories' =>$categories, 'depenses' => $depenses, 'recettes' => $recettes,// Formulaire Upload'form' => $this->createForm(UploadFileType::class)->createView()*/]);}public function configureDashboard(): Dashboard{return Dashboard::new()->setTitle('BackOffice Finance');}public function configureMenuItems(): iterable{// Partie Bancaireyield MenuItem::section('Banque', 'fa fa-home')->setCssClass('section');yield MenuItem::linkToCrud('Budget', 'fa fa-chart-pie', BankBudget::class)->setController(BankBudgetCrudController::class);yield MenuItem::linkToCrud('Catégorie', 'fa fa-book', BankMouvementCategorie::class)->setController(BankMouvementCategorieCrudController::class);yield MenuItem::linkToCrud('Mouvement', 'fa fa-cash-register', BankMouvement::class)->setController(BankMouvementCrudController::class);;yield MenuItem::linkToCrud('Prelevement', 'fa fa-comments-dollar', BankPrelevement::class)->setController(BankPrelevementCrudController::class);;yield MenuItem::section('Véhicule', 'fa fa-car')->setCssClass('section');yield MenuItem::linkToCrud('Carburant', 'fa fa-gas-pump', VehiculeMouvement::class)->setController(VehiculeMouvementCrudController::class);yield MenuItem::section('SCI')->setCssClass('section');yield MenuItem::linkToUrl('Tableau de bord', 'fa fa-landmark fa-2x', $this->generateUrl('easyadmin_sci', []) );yield MenuItem::linkToCrud('Mouvement', 'fa fa-money-bill-transfer', BankMouvement::class)->setController(SciBankMouvementCrudController::class);;yield MenuItem::linkToCrud('Tiers', 'fa fa-person', Tiers::class )->setController(SciTiersCrudController::class);yield MenuItem::linkToUrl('Bilan Cmpt. '.(date('Y')-1), 'fa fa-scale-balanced', $this->generateUrl('easyadmin_sci_bilan_comptable', ['year' => date('Y')-1]) );yield MenuItem::section('AutoEntreprise')->setCssClass('section');yield MenuItem::linkToUrl('Tableau de bord', 'fa fa-house-laptop fa-2x', $this->generateUrl('easyadmin_ae_dashboard', []) );yield MenuItem::linkToCrud('Tiers', 'fa fa-person', Tiers::class )->setController(AeTiersCrudController::class);yield MenuItem::linkToCrud('Factures', 'fa fa-file-invoice', Facture::class )->setController(AeFactureCrudController::class);//yield MenuItem::section('')->setCssClass('section');//yield MenuItem::linkToUrl('EasyAdmin', 'fa fa-tools', 'https://github.com/EasyCorp/EasyAdminBundle')->setLinkTarget('_blank')->setLinkRel('noreferrer');//yield MenuItem::linkToUrl('Retour Synt.', 'fa fa-backward', $this->generateUrl('dashboard'))->setCssClass('synthese');}#[Route('/admin/ajax/mvt-check-uncheck', name: 'ajax_mvt_checked')]public function checkUnCheckMvt(Request $request, ManagerRegistry $doctrine): Response{$mvt = null;if($request->get('type') == BankMouvement::class) {$mvt = $this->mvtRepository->findOneBy(['id' => $request->get('mvt')]);} elseif($request->get('type') == VehiculeMouvement::class) {$mvt = $this->vehiculeMvtRepository->findOneBy(['id' => $request->get('mvt')]);}if($mvt !== null) {$mvt->setChecked($request->get('etat') == 'O' ? true : false);$em = $doctrine->getManager();$em->persist($mvt);$em->flush();return new Response('OK', 200);} else {return new Response('KO', 404);}}}