src/Controller/Home/DashboardController.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Home;
  3. use App\Repository\AccountingRepository;
  4. use App\Repository\BankRepository;
  5. use App\Repository\ExpensesRepository;
  6. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. #[IsGranted("IS_AUTHENTICATED_FULLY")]
  11. class DashboardController extends AbstractController
  12. {
  13.     #[Route("/"name"app_dashboard")]
  14.     public function index(AccountingRepository $accountingRepositoryExpensesRepository $expensesRepository): Response
  15.     {
  16.         return $this->render('home/dashboard.html.twig', [
  17.             'title'     => 'Dashboard',
  18.             'cc_value'  => $this->getTotalMouvementByAccount($accountingRepository'CC'),
  19.             'ep_value'  => $this->getTotalMouvementByAccount($accountingRepository'EP'),
  20.             'prv_value' => $this->getTotalMouvementByType($expensesRepository'PRLV'),
  21.             'in_value'  => $this->getTotalMouvementByDateAndTypeAndName($expensesRepository'2023-09-15''VIR''HEVEA')
  22.         ]);
  23.     }
  24.     private function getTotalMouvementByAccount(AccountingRepository $accountingRepositorystring $type): float|int
  25.     {
  26.         $accountings    $accountingRepository->findBy(['type' => $type]);
  27.         $total          0;
  28.         foreach ($accountings as $accounting) {
  29.             foreach ($accounting->getExpenses()->toArray() as $expense) {
  30.                 $mouvement $expense->getMouvement();
  31.                 if($mouvement == "C") {
  32.                     $total += $expense->getPrice();
  33.                 } else {
  34.                     $total -= $expense->getPrice();
  35.                 }
  36.             }
  37.         }
  38.         return $total;
  39.     }
  40.     private function getTotalMouvementByType(ExpensesRepository $expensesRepositorystring $type): float|int
  41.     {
  42.         $expenses   $expensesRepository->findBy(['type' => $type]);
  43.         $total          0;
  44.         foreach ($expenses as $expense) {
  45.             $mouvement $expense->getMouvement();
  46.             if($mouvement == "C") {
  47.                 $total += $expense->getPrice();
  48.             } else {
  49.                 $total -= $expense->getPrice();
  50.             }
  51.         }
  52.         return $total;
  53.     }
  54.     private function getTotalMouvementByDateAndTypeAndName(ExpensesRepository $expensesRepositorystring $datestring $typestring $name)
  55.     {
  56.         $expenses   $expensesRepository->findExpensesByDateAndName($date$name);
  57.         $total          0;
  58.         foreach ($expenses as $expense) {
  59.             $mouvement $expense->getMouvement();
  60.             if($mouvement == "C") {
  61.                 $total += $expense->getPrice();
  62.             } else {
  63.                 $total -= $expense->getPrice();
  64.             }
  65.         }
  66.         return $total;
  67.     }
  68. }