src/Controller/HomeController.php line 58

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Config;
  4. use App\Entity\Emails;
  5. use App\Services\CallApiServices;
  6. use App\Services\Mercure;
  7. use Doctrine\DBAL\Driver\IBMDB2\Result;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. class HomeController extends AbstractController
  12. {
  13.     /**
  14.      * @Route("/", name="app_home")
  15.      */
  16.     public function index(): Response
  17.     {
  18.         return $this->render('home/index.html.twig', [
  19.             'controller_name' => 'HomeController',
  20.         ]);
  21.     }
  22.     /**
  23.      * @Route("/", name="app_home", methods={"GET", "POST"})
  24.      */
  25.     public function getConseiller(CallApiServices $callApiServices): Response
  26.     {
  27.         $serviceId $this->getParameter('app.serviceId');
  28.         $accountId $this->getParameter('app.accountId');
  29.         $conseillers $callApiServices->getListConseillers($accountId$serviceId);
  30.         $config $callApiServices->configuratationPlateforme($accountId$serviceId);
  31.         array_multisort(
  32.             array_column($conseillers'userServiceId'),
  33.             SORT_DESC,
  34.             $conseillers
  35.         );
  36.         usort($conseillers, fn ($a$b) => [
  37.             [=> 1=> 2=> 3][$a['userState']],
  38.         ] <=> [
  39.             [=> 1=> 2=> 3][$b['userState']],
  40.         ]);
  41.         $configPlateforme = new Config();
  42.         $configPlateforme->setKindOfCredit($config['kindOfCredit']);
  43.         $configPlateforme->setItemsPerPage($config['itemsPerPage']);
  44.         $configPlateforme->setItemsPerRow($config['itemsPerRow']);
  45.         $configPlateforme->setWelcomeCredit($config['welcomeCredit']);
  46.         $configPlateforme->setRecaptchaTab($config['recaptchaTab']);
  47.         $configPlateforme->setPaymentInfos($config['paymentInfos']);
  48.         $configPlateforme->setMail($config['mail']);
  49.         $configPlateforme->setMarchand($config['marchand']);
  50.         return $this->render('home/index.html.twig', [
  51.             'conseillers' => $conseillers,
  52.             'config' => $config,
  53.         ]);
  54.     }
  55.     /**
  56.      * @Route("/consultant/{id}", name="app_consultant", methods={"GET", "POST"})
  57.      */
  58.     public function conseillerEtPlanning(CallApiServices $callApiServices$id): Response
  59.     {
  60.         $serviceId $this->getParameter('app.serviceId');
  61.         $accountId $this->getParameter('app.accountId');
  62.         $conseillerAvis $callApiServices->conseillerAvis($serviceId$id);
  63.         $conseiller $callApiServices->conseillerEtPlanning($id$serviceId);
  64.         if (!isset($conseiller[0])) {
  65.             // le conseiller n'est pas configuré
  66.             return $this->redirectToRoute('app_home');
  67.         }
  68.         $weekdaysShort = ['Lun''Mar''Mer''Jeu''Ven''Sam''Dim'];
  69.         $daysHoursShort = [
  70.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  71.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  72.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  73.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  74.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  75.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  76.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  77.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  78.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  79.             => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  80.             10 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  81.             11 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  82.             12 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  83.             13 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  84.             14 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  85.             15 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  86.             16 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  87.             17 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  88.             18 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  89.             19 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  90.             20 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  91.             21 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  92.             22 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false],
  93.             23 => ['Lun' => false'Mar' => false'Mer' => false'Jeu' => false'Ven' => false'Sam' => false'Dim' => false]
  94.         ];
  95.         $i 0;
  96.         foreach ($conseiller[0]['planningArray'] as $planing) {
  97.             $begin[] = explode(':'$planing['begin']);
  98.             $end[] = explode(':'$planing['end']);
  99.             $day[] = $planing['weekDayNum'];
  100.             $hourEnd[] = $end[$i][0];
  101.             $hourBegin[] = $begin[$i][0];
  102.             $minuteEnd[] = $end[$i][1];
  103.             $minuteBegin[] = $begin[$i][1];
  104.             $calcul $hourEnd[$i] -  $hourBegin[$i];
  105.             $h 0;
  106.             while ($calcul $h) {
  107.                 $daysHoursShort[$begin[$i][0] + $h][$weekdaysShort[$planing['weekDayNum']]] = true;
  108.                 $h++;
  109.             }
  110.             $i++;
  111.         };
  112.         return $this->render('consultant/index.html.twig', [
  113.             'conseiller' => $conseiller,
  114.             'weekdaysShort' => $weekdaysShort,
  115.             'daysHoursShort' => $daysHoursShort,
  116.             'conseillerAvis' => $conseillerAvis
  117.         ]);
  118.     }
  119.     /**
  120.      * @Route("/ping", name="ping", methods={"POST"})
  121.      */
  122.     public function ping(Mercure $mercure): Response
  123.     {
  124.         $topic 'https://star-voyance/mail';
  125.         $data = [0];
  126.         $mercure->mercurePost($topic$data);
  127.         return $this->redirectToRoute('app_home');
  128.     }
  129.     /**
  130.      * @Route("/consultants", name="app_all", methods={"GET", "POST"})
  131.      */
  132.     public function getAllConseiller(CallApiServices $callApiServices): Response
  133.     {
  134.         $serviceId $this->getParameter('app.serviceId');
  135.         $accountId $this->getParameter('app.accountId');
  136.         $conseillers $callApiServices->getListConseillers($accountId,  $serviceId);
  137.         $config $callApiServices->configuratationPlateforme($accountId,  $serviceId);
  138.         $configPlateforme = new Config();
  139.         $configPlateforme->setKindOfCredit($config['kindOfCredit']);
  140.         $configPlateforme->setItemsPerPage($config['itemsPerPage']);
  141.         $configPlateforme->setItemsPerRow($config['itemsPerRow']);
  142.         $configPlateforme->setWelcomeCredit($config['welcomeCredit']);
  143.         $configPlateforme->setRecaptchaTab($config['recaptchaTab']);
  144.         $configPlateforme->setPaymentInfos($config['paymentInfos']);
  145.         $configPlateforme->setMail($config['mail']);
  146.         $configPlateforme->setMarchand($config['marchand']);
  147.         return $this->render('home/allConseiller.html.twig', [
  148.             'conseillers' => $conseillers,
  149.             'config' => $config,
  150.         ]);
  151.     }
  152. }