src/Controller/AdminFinance/SciController.php line 73
<?phpnamespace App\Controller\AdminFinance;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\BankPatrimoine;use App\Repository\AdminFinance\Bank\BankPatrimoineRepository;use App\Entity\AdminFinance\Bank\BankPrelevement;use App\Repository\AdminFinance\Bank\BankMouvementCategorieRepository;use App\Repository\AdminFinance\Bank\BankTiersRepository;use App\Controller\AdminFinance\Bank\BankMouvementCrudController;use App\Controller\AdminFinance\Sci\SciBankMouvementCrudController;use App\Controller\AdminFinance\Sci\SciTiersCrudController;use App\Entity\Transverse\Tiers;/*** Classe permettant d'afficher le tableau de bord dans la partie BackOffice*/class SciController extends AbstractDashboardController{#[Route('/admin/sci/{year}', name: 'easyadmin_sci', requirements: ['year' => '\d+'])]public function index(?int $year = null, ?int $tags = null): Response{$year = ($year === null)?date('Y'):$year;$mvts = $this->mvtRepository->findLastDebit(35, self::SCI_ID);$revenus = $this->mvtRepository->sommeRevenusByMonth($year, self::SCI_ID);$depenses = $this->mvtRepository->sommeDepensesByMonth($year, self::SCI_ID);return $this->render('adminfinance/sci/sci.html.twig', ['year' => $year,'revenus' => $revenus,'depenses' => $depenses,'mvts' => $mvts]);}/*** Affichage du bilan comptable d'une année** @param int $year* @return Response*/#[Route('/admin/sci/bilan-comptable/{year}', name: 'easyadmin_sci_bilan_comptable', requirements: ['year' => '\d+'])]public function bilanComptable(?int $year = null): Response{$year = ($year === null)?date('Y'):$year;$sommeDebits = $this->mvtRepository->mvtComptableByYear(self::SCI_ID, true, $year);$sommeCredits = $this->mvtRepository->mvtComptableByYear(self::SCI_ID, false, $year);return $this->render('adminfinance/sci/bilan-comptable.html.twig', ['year' => $year,'comptes' => $this->tiersRepository->findAll(),'debits' => $sommeDebits, 'credits' => $sommeCredits,'patrimoines' => $this->patrimoineRepository->findBy(['type' => BankPatrimoine::TYPE_IMMOBILIER_SCI, 'etat' => true])]);}/*** Affichage de la synthèse fiscale d'un patrimoine*/#[Route('/admin/sci/synthese-fiscale/{year}/{tags}', name: 'easyadmin_sci_synthese_fiscale', requirements: ['year' => '\d+'])]public function syntheseFiscale(int $year = null, int $tags = null): Response{$tags = ($tags === null)?3:$tags;$year = ($year === null)?date('Y'):$year;$patrimoine = $this->patrimoineRepository->findOneBy(['type' => BankPatrimoine::TYPE_IMMOBILIER_SCI, 'tag'=> $tags, 'etat' => true]);$mouvements = $this->mvtRepository->mvtByYear(self::SCI_ID, $year, $tags, ['dateOperation','desc'], 15);$sommes = $this->mvtRepository->mvtFiscauxByYear(self::SCI_ID, $year, $tags);array_push($sommes, ['indexFiscal'=>222, 'montant'=>20]);return $this->render('adminfinance/sci/synthese-fiscale.html.twig', ['year' => $year,'patrimoine' => $patrimoine,'comptes' => $sommes,'mvts' => $mouvements]);}public function configureDashboard(): Dashboard{return Dashboard::new()->setTitle('BackOffice SCI');}public function configureMenuItems(): iterable{// Partie Bancaire//yield MenuItem::section('Banque', 'fa fa-home')->setCssClass('section');//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);;// Partie SCIyield MenuItem::section('Sci', 'fa fa-home')->setCssClass('section');yield MenuItem::linkToUrl('Tableau de bord', 'fa fa-desktop', $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]) );// Partie Patrimoine$patrimoines = $this->patrimoineRepository->findBy(['type' => BankPatrimoine::TYPE_IMMOBILIER_SCI, 'etat' => true]);foreach($patrimoines as $appartement) {yield MenuItem::section($appartement->getNom() , 'fa fa-home')->setCssClass('section');//yield MenuItem::linkToUrl('Synthèse Fiscale '.date('Y'), 'fa fa-tools', $this->generateUrl('easyadmin_sci_synthese_fiscale', ['year' => date('Y'), 'tags' => $appartement->getTag()->getId()]));yield MenuItem::linkToUrl('Synthèse Fiscale '.(date('Y')-1), 'fa fa-cash-register', $this->generateUrl('easyadmin_sci_synthese_fiscale', ['year' => (date('Y')-1), 'tags' => $appartement->getTag()->getId()]));}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('easyadmin_finance'))->setCssClass('synthese');}const SCI_ID = 5;/*** @var BankPatrimoineRepository*/private $patrimoineRepository;/*** @var BankMouvementCategorieRepository*/private $categorieRepository;/*** @var BankMouvementRepository*/private $mvtRepository;/*** @var BankTiersRepository*/private $tiersRepository;public function __construct(BankPatrimoineRepository $patrimoineRepository, BankMouvementCategorieRepository $categorieRepository,BankMouvementRepository $mvtRepository, BankTiersRepository $tiersRepository) {$this->patrimoineRepository = $patrimoineRepository;$this->categorieRepository = $categorieRepository;$this->mvtRepository = $mvtRepository;$this->tiersRepository = $tiersRepository;}}