src/Controller/ListTasksUserController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\CategoryProject;
  4. use App\Entity\CategoryTask;
  5. use App\Entity\Company;
  6. use App\Entity\Document;
  7. use App\Entity\Project;
  8. use App\Entity\ProjectSearch;
  9. use App\Entity\Task;
  10. use App\Form\CompanyType;
  11. use App\Form\DocumentType;
  12. use App\Form\ProjectSearchType;
  13. use App\Form\ProjectType;
  14. use App\Form\TaskType;
  15. use App\Repository\CompanyRepository;
  16. use App\Repository\PlaceRepository;
  17. use App\Repository\ProjectRepository;
  18. use App\Repository\TaskRepository;
  19. use Doctrine\ORM\EntityManager;
  20. use Doctrine\ORM\EntityManagerInterface;
  21. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  22. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  23. use Symfony\Component\Form\Extension\Core\Type\TimeType;
  24. use Symfony\Component\HttpFoundation\Request;
  25. use Symfony\Component\HttpFoundation\Response;
  26. use Symfony\Component\Routing\Annotation\Route;
  27. use Symfony\Component\Security\Core\Security;
  28. //added by abdel
  29. use DateTime;
  30. use App\Utils\UtilsFunc;
  31. class ListTasksUserController extends AbstractController
  32. {
  33.     /**
  34.      * @Route("/list-tasks-user", name="list_tasks_user")
  35.      */
  36.    public function displayListTasksUser(taskRepository $taskRepository,CompanyRepository $companyRepository)
  37.     {
  38.        $user=$this->getUser();
  39.        
  40.        // check or Find Task activ in Timer if exists      
  41.        $task_activ=$taskRepository->findOneBy(array('user' => $user,'statusTask' => 1));
  42.        if (!$task_activ) {$task_activ=''$date= new DateTime();$date_timerdate('Y-m-d H:i:s');}
  43.        else { $date $task_activ->getStartAt();$date_timer$date->format('Y-m-d H:i:s');}
  44.       
  45.         $start_date='2021-01-01';
  46.         $end_date=date("Y-m-d");
  47.          //$end_date = date('y:m:d', time() + 86400);
  48.          $end_date date('Y:m:d 23:59:59'); 
  49.          // $end_date ='2022-11-11';
  50.         //echo  $end_date;      
  51.         $month="";$year="";
  52.       
  53.         // ??? $companies=$user->getCompanies();
  54.         $companies=$companyRepository->findAll();
  55.       
  56.         $tasks=$taskRepository->findAllTasksOfUsersAndCompaniesinPeriod($user,$companies$month$year,$start_date,$end_date);
  57.         return $this->render('ab_user_list_tasks/index.html.twig', [
  58.             'tasks' => $tasks,
  59.             'task_activ'=>$task_activ,          
  60.             'date_timer'=>$date_timer,
  61.         ]);
  62.     }
  63. /************ Quick modify task (date - desc/Place)***************************************/
  64. /**
  65.      * @Route("/edit-date-task-modal-{id}", name="edit_date_task_modal")
  66.      */
  67.      public function editDateTaskInModal(Task $taskEntityManagerInterface $entityManagerRequest $request)
  68.     
  69.     {
  70.         
  71.         if ($task->getUser() != $this->getUser()){
  72.                 return $this->redirectToRoute('show_project',['id'=>$task->getProject()->getId()]);
  73.         }
  74.         $project=$task->getProject();
  75.         $form $this->createForm(TaskType::class,$task,array('categoryProject' => $task->getProject()->getCategory()));
  76.             
  77.         $form->remove('start_at');
  78.         $form->remove('end_at');
  79.         $form->remove('durationHours');
  80.         $form->remove('durationMinutes');
  81.         
  82.         $form->handleRequest($request);
  83.         if($form->isSubmitted() && $form->isValid())
  84.         {
  85.               
  86.             $otherCategoryCheckbox $form->get('otherCategoryCheckbox')->getData();
  87.             $otherCategory $form->get('otherCategory')->getData();
  88.             if ($otherCategoryCheckbox){
  89.                 $newCategoryTask = new CategoryTask();
  90.                 $newCategoryTask->setCategoryName($otherCategory);
  91.                 $newCategoryTask->setCategoryProject($project->getCategory());
  92.                 $entityManager->persist($newCategoryTask);
  93.                $task->setCategoryTask($newCategoryTask);
  94.             }            
  95.          
  96.             $start_task_date $request->request->get('start_task_date');
  97.             $end_task_date $start_task_date;
  98.             $timeFrom $request->request->get('timeFrom');
  99.             $timeTo $request->request->get('timeTo');
  100.             $startAt=new DateTime($start_task_date.' '.$timeFrom);
  101.             $endAt=new DateTime($start_task_date.' '.$timeTo);
  102.             // Absolute value of time difference in seconds
  103.             $diff abs(strtotime($timeFrom) - strtotime($timeTo));
  104.             // Convert $diff to minutes
  105.             $tmins $diff/60;
  106.             // Get hours
  107.             $hours floor($tmins/60);
  108.             // Get minutes
  109.             $mins $tmins%60;
  110.                 
  111.             $task->setDurationHours($hours);
  112.             $task->setdurationMinutes($mins);
  113.             $task->setStartAt($startAt);
  114.             $task->setEndAt($endAt);
  115.             $entityManager->persist($task);
  116.             $entityManager->flush();
  117.             $this->addFlash('success','Your task has been successfully added !');
  118.             
  119.             return $this->redirect($request->headers->get('referer'));
  120.  
  121.         }        
  122.         return $this->render('ab_user_list_tasks/edit_date_task_modal.html.twig', [
  123.             'form'=>$form->createView(),
  124.             'task' => $task,
  125.            
  126.         ]);
  127.     }
  128. /***************Modify category task/Description /Placetask - Modal Widow  ********************/
  129. /**
  130.      * @Route("/edit-category-description-task-modal-{id}", name="edit_category_description_task_modal")
  131.      */
  132.      public function editTaskCategoryDescriptionInModal(Task $taskEntityManagerInterface $entityManagerRequest $request)
  133.     
  134.     {
  135.         
  136.         if ($task->getUser() != $this->getUser()){
  137.                 return $this->redirectToRoute('show_project',['id'=>$task->getProject()->getId()]);
  138.         }
  139.         // Important when otherCategoryCheckbox is checked 
  140.         $project=$task->getProject();
  141.         $form $this->createForm(TaskType::class,$task,array('categoryProject' => $task->getProject()->getCategory()));   
  142.         $form->remove('start_at');
  143.         $form->remove('end_at');
  144.         $form->remove('durationHours');
  145.         $form->remove('durationMinutes');
  146.         $form->handleRequest($request);
  147.         // Get task's parameters wich removed from form and statu task
  148.         $durationHours=$task->getDurationHours();
  149.         $durationMinutes=$task->getdurationMinutes();        
  150.         $startAt=$task->getStartAt();
  151.         $endAt=$task->getEndAt();
  152.         $statusTask=$task->getStatusTask();
  153.         if($form->isSubmitted() && $form->isValid())
  154.         {
  155.             $otherCategoryCheckbox $form->get('otherCategoryCheckbox')->getData();
  156.             $otherCategory $form->get('otherCategory')->getData();
  157.             if ($otherCategoryCheckbox){
  158.                 //$project=$task->getProject(); in top
  159.                 $newCategoryTask = new CategoryTask();
  160.                 $newCategoryTask->setCategoryName($otherCategory);
  161.                 $newCategoryTask->setCategoryProject($project->getCategory());
  162.                 $entityManager->persist($newCategoryTask);
  163.                 $task->setCategoryTask($newCategoryTask);
  164.             }            
  165.          
  166.             $task->setDurationHours($durationHours);
  167.             $task->setdurationMinutes($durationMinutes);
  168.             $task->setStartAt($startAt);
  169.             $task->setEndAt($endAt);
  170.             $task->setStatusTask($statusTask);
  171.             $entityManager->persist($task);
  172.             $entityManager->flush();
  173.             $this->addFlash('success','Your task has been successfully Modified !');
  174.             
  175.             return $this->redirect($request->headers->get('referer'));
  176.  
  177.         }
  178.         return $this->render('ab_user_list_tasks/edit_category_description_task_modal.html.twig', [
  179.             'form'=>$form->createView(),
  180.             'task' => $task,
  181.            
  182.         ]);
  183.     }
  184. }