src/Controller/JIT/DashboardController.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\Controller\JIT;
  3. use App\Common\Controller\DefaultController;
  4. use App\Entity\JIT\Person;
  5. use App\Entity\JIT\Property;
  6. use App\Entity\JIT\Search;
  7. use App\Form\JIT\PersonP2Type;
  8. use App\Form\JIT\PropertyPType;
  9. use App\Repository\JIT\MovementRepository;
  10. use App\Repository\JIT\PersonRepository;
  11. use App\Repository\JIT\PropertyRepository;
  12. use App\Service\Logger;
  13. use App\Service\Uploader\PersonIdentityUploader;
  14. use App\Service\Uploader\PictureUploader;
  15. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  16. use Symfony\Component\Form\Extension\Core\Type\DateType;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use Symfony\Contracts\Translation\TranslatorInterface;
  21. /**
  22.  * @Route("/jit/dashboard")
  23.  */
  24. class DashboardController extends DefaultController {
  25.     protected $menu 10;
  26.     protected $limit 4;
  27.     /**
  28.      * @Route("/", name="pr_jit_dashboard_index", methods="GET")
  29.      * @Route("/", name="jit_index", methods="GET")
  30.      * 
  31.      * @Security("is_granted('ROLE_JIT_DASHBOARD_INDEX')")
  32.      */
  33.     public function index(): Response {
  34.         $cuser $this->getUser();
  35.         if($cuser->getPerson() === null && $cuser->isSelfOwner()){
  36.             return $this->redirectToRoute('pr_jit_dashboard_start1');
  37.         }
  38.         return $this->render('jit/dashboard/default.html.twig', [
  39.                     'menu' => $this->menu,
  40.         ]);
  41.     }
  42.     /**
  43.      * @Route("/account", name="pr_jit_dashboard_account", methods="GET|POST")
  44.      * 
  45.      * @Security("is_granted('ROLE_JIT_DASHBOARD_INDEX')")
  46.      */
  47.     public function account(MovementRepository $mRepositoryRequest $request): Response {
  48.         // creates a task object and initializes some data for this example
  49.         $search = new Search();
  50.         $form $this->createFormBuilder($search)
  51.                 ->add('startDate'DateType::class, [
  52.                     'required' => false,
  53.                     'widget' => 'single_text',
  54.                 ])
  55.                 ->add('endDate'DateType::class, [
  56.                     'required' => false,
  57.                     'widget' => 'single_text',
  58.                 ])
  59.                 ->getForm();
  60.         $form->handleRequest($request);
  61.         $start null;
  62.         $end null;
  63.         if ($form->isSubmitted() && $form->isValid()) {
  64.             $start $search->getStartDate();
  65.             $end $search->getEndDate();
  66.         }
  67.         $accounts $this->getUser()->getAccounts();
  68.         $movements $mRepository->findByAccounts($accounts$start$end);
  69.         return $this->render('jit/dashboard/account.html.twig', [
  70.                     'menu' => $this->menu,
  71.                     'form' => $form->createView(),
  72.                     'movements' => $movements,
  73.         ]);
  74.     }
  75.     /**
  76.      * @Route("/property", name="pr_jit_dashboard_property", methods="GET|POST")
  77.      * 
  78.      * @Security("is_granted('ROLE_JIT_DASHBOARD_INDEX')")
  79.      */
  80.     public function property(TranslatorInterface $translator): Response {
  81.         return $this->render('jit/dashboard/property.html.twig', [
  82.                     'menu' => $this->menu,
  83.         ]);
  84.     }
  85.     /**
  86.      * @Route("/start", name="pr_jit_dashboard_start", methods="GET|POST")
  87.      * 
  88.      * @Security("is_granted('ROLE_JIT_DASHBOARD_INDEX')")
  89.      */
  90.     public function start(TranslatorInterface $translator): Response {
  91.         return $this->render('jit/dashboard/start.html.twig', [
  92.                     'menu' => $this->menu,
  93.         ]);
  94.     }
  95.     /**
  96.      * @Route("/document", name="pr_jit_dashboard_document", methods="GET|POST")
  97.      * 
  98.      * @Security("is_granted('ROLE_JIT_DASHBOARD_INDEX')")
  99.      */
  100.     public function document(TranslatorInterface $translator): Response {
  101.         return $this->render('jit/dashboard/document.html.twig', [
  102.                     'menu' => $this->menu,
  103.         ]);
  104.     }
  105.     /**
  106.      * @Route("/start1", name="pr_jit_dashboard_start1", methods="GET|POST")
  107.      * 
  108.      * @Security("is_granted('ROLE_JIT_DASHBOARD_INDEX')")
  109.      */
  110.     public function addPersonP(PersonRepository $repositoryRequest $requestPersonIdentityUploader $fileUploaderTranslatorInterface $translatorLogger $logger): Response {
  111.         
  112.         $cuser $this->getUser();
  113.         if($cuser->getPerson() !== null){
  114.             return $this->redirectToRoute('pr_jit_dashboard_index');
  115.         }
  116.         $person = new Person();
  117.         $person->setPfl(Person::PROFIL_PROPRITAIRE);
  118.         $person->setAccount($cuser);
  119.         $person->setFnm($cuser->getFullname());
  120.         $person->setEmail($cuser->getEmail());
  121.         $person->setTel1($cuser->getPhone());
  122.         $form $this->createForm(PersonP2Type::class, $person, ['user' => $cuser]);
  123.         $form->handleRequest($request);
  124.         if ($form->isSubmitted() && $form->isValid()) {
  125.             //Save Identity file
  126.             $file $person->getIFile();
  127.             if ($file) {
  128.                 $newFileName $fileUploader->upload($file);
  129.                 $person->setIdf($newFileName);
  130.             }
  131.             //Save Picture file
  132.             $pfile $person->getPFile();
  133.             if ($pfile) {
  134.                 $newFileName $fileUploader->upload($pfile);
  135.                 $person->setPicture($newFileName);
  136.             }
  137.             //Add User
  138.             if ($form->get('createUser')->getData()) {
  139.                 $person->createUser();
  140.             }
  141.             $repository->add($persontrue);
  142.             $logger->logging($this->getUser(), $personLogger::ACTION_ADD);
  143.             $this->addFlash('success'$translator->trans('tt_message.add_successfully'));
  144.             return $this->redirectToRoute('pr_jit_dashboard_start2');
  145.         } else {
  146.             $logger->logging($this->getUser(), $personLogger::ACTION_ADD_FORM);
  147.         }
  148.         return $this->render('jit/dashboard/start1.html.twig', [
  149.                     'our_form' => $form->createView(),
  150.                     'menu' => $this->menu,
  151.         ]);
  152.     }
  153.     /**
  154.      * @Route("/start2", name="pr_jit_dashboard_start2", methods="GET|POST")
  155.      * 
  156.      * @Security("is_granted('ROLE_JIT_DASHBOARD_INDEX')")
  157.      */
  158.     public function addProperty(PropertyRepository $repositoryPictureUploader $fileUploaderRequest $requestTranslatorInterface $translatorLogger $logger): Response {
  159.         $cuser $this->getUser();
  160.         $person $cuser->getPerson();
  161.         if($person === null && $cuser->isSelfOwner()){
  162.             return $this->redirectToRoute('pr_jit_dashboard_start1');
  163.         }
  164.         $property = new Property();
  165.         $property->setOwner($person);
  166.         $form $this->createForm(PropertyPType::class, $property, ['person' => $property->getOwner()]);
  167.         $form->handleRequest($request);
  168.         if ($form->isSubmitted() && $form->isValid()) {
  169.             //Save Pictures
  170.             $pictures $property->getPictures();
  171.             foreach ($pictures as $picture) {
  172.                 $file $picture->getImage();
  173.                 if ($file) {
  174.                     $newImg $fileUploader->upload($file);
  175.                     $picture->setImg($newImg);
  176.                     $logger->logging($this->getUser(), $pictureLogger::ACTION_ADD);
  177.                 }
  178.             }
  179.             $repository->add($propertytrue);
  180.             $logger->logging($this->getUser(), $propertyLogger::ACTION_ADD);
  181.             $this->addFlash('success'$translator->trans('tt_message.add_successfully'));
  182.             return $this->redirectToRoute('pr_jit_dashboard_index');
  183.         } else {
  184.             $logger->logging($this->getUser(), $propertyLogger::ACTION_ADD_FORM);
  185.         }
  186.         return $this->render('jit/dashboard/start2.html.twig', [
  187.                     'our_form' => $form->createView(),
  188.                     'menu' => $this->menu,
  189.         ]);
  190.     }
  191. }