src/Controller/IndexController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Task;
  4. use App\Repository\TaskRepository;
  5. use App\Repository\TaskStatutRepository;
  6. use App\Service\RoleService;
  7. use App\Service\StatutService;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\RedirectResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. class IndexController extends BaseController
  14. {
  15.     /**
  16.      * @Route("/", name="index")
  17.      */
  18.     public function index(): Response
  19.     {
  20.         return $this->redirectToRoute('app_login');
  21. //        return $this->render('index/index.html.twig', [
  22. //            'controller_name' => 'IndexController',
  23. //        ]);
  24.     }
  25.     /**
  26.      * @Route("/task/{id}/change/statut/", name="task_change_statut", methods={"POST","GET"})
  27.      * @param Request $request
  28.      * @param Task $task
  29.      * @param TaskStatutRepository $taskStatutRepository
  30.      * @return Response
  31.      */
  32.     public function changeStatut(Request $requestTask $taskTaskStatutRepository $taskStatutRepository): Response
  33.     {
  34.         if ($request->isMethod("POST")){
  35.             $statutId $request->request->get("statut_id");
  36.             $statut $taskStatutRepository->findOneBy(['id' => $statutId]);
  37.         }else{
  38.             $statutName $request->query->get("statut_name");
  39.             $statut $taskStatutRepository->findByName($statutName);
  40.         }
  41.         $taskStatut $task->getTaskStatus();
  42.         $statusNeedRealTimes = [StatutService::PENDING,StatutService::WAITING_CONFIRMATION];
  43.         $defaultTimeUndoing $this->getParameter('default_time_undoing');
  44.         if ($task and $statut ){
  45.             if ($taskStatut && in_array($taskStatut->getName(), $statusNeedRealTimestrue)){
  46.                 $task->setRealTimeElapsed($task->getRealTimeElapsed() + $defaultTimeUndoing);
  47.             }
  48.             $task->setTaskStatus($statut);
  49.             $this->save($task);
  50.             $this->addFlash('success''Changement de statut efféctué avec succées');
  51.         }
  52.         return $this->redirectToRoute($this->getUserType() . '_task_show', ['id' => $task->getId()],
  53.         Response::HTTP_SEE_OTHER);
  54.     }
  55.     /**
  56.      * @Route("/task/{id}/reestimate", name="task_reestimate", methods={"POST","GET"})
  57.      * @param Request $request
  58.      * @param Task $task
  59.      * @param TaskStatutRepository $taskStatutRepository
  60.      * @return Response
  61.      */
  62.     public function reestimate(Request $requestTask $taskTaskStatutRepository $taskStatutRepository): Response
  63.     {
  64.         $statut $taskStatutRepository->findByName(StatutService::WAITING_ESTIMATITON);
  65.         if ($task and $statut ){
  66.             $task->setEstimatedTime(null);
  67.             $task->setTaskStatus($statut);
  68.             $this->save($task);
  69.             $this->addFlash('success''Demande de reestimation effectuer ');
  70.         }
  71.         return $this->redirectToRoute($this->getUserType() . '_task_show', ['id' => $task->getId()],
  72.         Response::HTTP_SEE_OTHER);
  73.     }
  74.     /**
  75.      * @Route("/setreal/estimated/time-elapsed/", name="task_set_real_and_estimated_time", methods={"POST"})
  76.      * @param Request $request
  77.      * @param TaskRepository $taskRepository
  78.      * @return RedirectResponse
  79.      */
  80.     public function setEstimatedOrRealTime(Request $requestTaskRepository $taskRepository): RedirectResponse
  81.     {
  82.         $data $request->request->all();
  83.         $taskId $data['taskId'];
  84.         $task $taskRepository->findOneBy(['id' => $taskId]);
  85.         if (array_key_exists('estimatedTime',$data)){
  86.             $task->setEstimatedTime($data['estimatedTime']);
  87.         }elseif(array_key_exists('realTime',$data)){
  88.             $realTime $task->getRealTimeElapsed() + $data['realTime'];
  89.             $task->setRealTimeElapsed($realTime);
  90.         }
  91. //dd($task);
  92.         $this->entityManager->persist($task);
  93.         $this->entityManager->flush();
  94.         $this->addFlash('success''Enregistrement efféctué avec succès');
  95.         return $this->redirectToRoute($this->getUserType() . '_task_index');
  96.     }
  97.     /**
  98.      * @Route("/{id}/set-real-and-estimated-time-elapsed", name="task_set_real_time_elapsed", methods={"POST"})
  99.      * @param Task $task
  100.      * @param Request $request
  101.      * @param TaskStatutRepository $taskStatutRepository
  102.      * @return Response
  103.      */
  104.     public function setRealTime(Task $taskRequest $request,
  105.                                 TaskStatutRepository $taskStatutRepository): Response
  106.     {
  107.         $realTimeElapsed $request->request->get("taskRealTimeElapsed");
  108.         $estimatedTime $request->request->get('estimatedTime');
  109.         $realtimeOld $task->getRealTimeElapsed();
  110.         if ($estimatedTime){
  111.             $task->setEstimatedTime($estimatedTime);
  112.         }elseif ($realTimeElapsed){
  113.             $task->setRealTimeElapsed($realtimeOld $realTimeElapsed);
  114.         }
  115. //dd($task);
  116.         $this->save($task);
  117.         return $this->redirectToRoute($this->getUserType() . '_task_show',['id' => $task->getId()]);
  118.     }
  119. }