src/Controller/DashboardController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Dashboard;
  4. use App\Form\DashboardType;
  5. use App\Repository\UserRepository;
  6. use DateTime;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  13. /**
  14.  *@Route("/")
  15.  */
  16. class DashboardController extends AbstractController
  17. {
  18.     /**
  19.      *@Route("/", name="dashboard.index")
  20.      */
  21.     public function index(Request $requestEntityManagerInterface $entityManagerUserRepository $userRepository): Response
  22.     {
  23.         if ($request->getSession()->get('userPossess') == 'all') {
  24.             $users $userRepository->getAllAgent($this->getUser()->getId());
  25.         } else {
  26.             $users[] = $userRepository->find($request->getSession()->get('userPossess')->getId());
  27.         }
  28.         $tasks = [];
  29.         $automatisation = [];
  30.         $leads = [];
  31.         $others = new Dashboard();
  32.         foreach ($users as $user) {
  33.             foreach ($user->getTasksActor() as $task) {
  34.                 if ($task->getDueDate() <= new DateTime('now')) {
  35.                     $tasks[] = $task;
  36.                 }
  37.             }
  38.             $lead $user->getLeads();
  39.             if ($request->getSession()->get('userPossess') == 'all') {
  40.                 $lead $user->getLeadsByPossessor();
  41.             }
  42.             if(empty($leads)){
  43.                 foreach ($lead as $l) {
  44.                     if ($l->getAutomatisation() == 1) {
  45.                         $automatisation[] = $l;
  46.                     }
  47.                     $leads[] = $l;
  48.                 }
  49.             }
  50.             $other = new Dashboard($user->getDashboardInfo());
  51.             $others->sumInfo($other);
  52.         }
  53.         $paramsRender =  [
  54.             'current_page' => 'home',
  55.             'tasks' => count($tasks),
  56.             'automatisation' => count($automatisation),
  57.             'leads' => count($leads),
  58.             'other' => $others,
  59.         ];
  60.         if ($request->getSession()->get('userPossess') != 'all') {
  61.             $form $this->createForm(DashboardType::class, $others);
  62.             $form->handleRequest($request);
  63.             if ($form->isSubmitted() && $form->isValid()) {
  64.                 if ($this->isCsrfTokenValid('dashboard'$request->get('_token'))) {
  65.                     $user->setDashboardInfo($others->setJson());
  66.                     $entityManager->flush($user);
  67.                 }
  68.             }
  69.             $formParams['form'] = $form->createView();
  70.             $paramsRender array_merge($paramsRender$formParams);
  71.         }
  72.         return $this->render('dashboard/index.html.twig'$paramsRender);
  73.         // return new Response('test');
  74.     }
  75. }