src/Controller/PanelController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  10. use Symfony\Bundle\SecurityBundle\Security;
  11. use Symfony\Component\Security\Core\User\UserInterface;
  12. use Symfony\Component\Validator\Constraints\Date;
  13. use App\Entity\WorkTime;
  14. use App\Entity\User;
  15. use App\Entity\Reservation;
  16. use App\Service\workTimeService;
  17. class PanelController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/", name="app_panel")
  21.      */
  22.     public function index(workTimeService $workTimeEntityManagerInterface $entityManager): Response
  23.     {
  24.         // $workTime = new workTimeService;
  25.         $user $this->getUser();
  26.         $workTimeStatus $workTime->getUserCurrentStatus($user);
  27.         $usersTimeStatus $workTime->getUsersCurrentStatus($user, new \DateTime());
  28.         $reservations $entityManager->getRepository(Reservation::class)->findByCheckInIncoming();
  29.         return $this->render('panel/index.html.twig', [
  30.             'workTimeStatus' => $workTimeStatus,
  31.             'usersTimeStatus' => $usersTimeStatus,
  32.             'reservations' => $reservations,
  33.         ]);
  34.     }
  35.     private function getUserWorkTime(): array
  36.     {
  37.         $data null;
  38.         $user $this->getUser();
  39.         if (!in_array('ROLE_ADMIN'$user->getRoles(), true)) {
  40.             // $workTime = $entityManager->getRepository(WorkTime::class)->findOneBy(['user' => $user, 'stop' => null]);
  41.             //$worktime = $user->getWorkTime()->fim;
  42.             // var_dump($workTime);
  43.             $data[] = array();
  44.         }
  45.         
  46.         return $data;
  47.     }
  48.     /**
  49.      * @Route("/panel_workTimeChange ", name="panel_workTimeChange", methods="GET|POST")
  50.      */
  51.     public function workTimeChange(Request $requestUserInterface $userEntityManagerInterface $entityManager): JsonResponse
  52.     {
  53.         
  54.         if ($request->isMethod('POST')){
  55.             
  56.             $time = new \DateTime('@'.strtotime('now'));
  57.             $changeType $request->get('changeType');     
  58.             $workTime = new WorkTime();
  59.             if($changeType == 'start'){
  60.                 $workTime->setUser($user);
  61.                 $workTime->setStart($time);  
  62.                 
  63.             }else if($changeType == 'stop'){
  64.                 
  65.                 $workTime $entityManager->getRepository(WorkTime::class)->findOneBy(['user' => $user'stop' => null]); 
  66.                 $workTime->setStop($time);
  67.                 
  68.             }
  69.             try {
  70.                 $entityManager->persist($workTime);
  71.                 $entityManager->flush();
  72.             } catch (\Exception $e) {
  73.                 return new JsonResponse(['success' => false'time' => $time'changeType' => $changeType'worktime' => $worktime->getId(), 'worktimeStart' => $worktime->getStart()]);
  74.             }
  75.             return new JsonResponse(['success' => true'time' => $time'changeType' => $changeType]);
  76.         }   
  77.         return new JsonResponse(['success' => false]);
  78.     }
  79.     
  80. }