<?php
namespace App\Controller;
use App\Entity\Config;
use App\Entity\Emails;
use App\Services\CallApiServices;
use App\Services\Mercure;
use Doctrine\DBAL\Driver\IBMDB2\Result;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class HomeController extends AbstractController
{
/**
* @Route("/", name="app_home")
*/
public function index(): Response
{
return $this->render('home/index.html.twig', [
'controller_name' => 'HomeController',
]);
}
/**
* @Route("/", name="app_home", methods={"GET", "POST"})
*/
public function getConseiller(CallApiServices $callApiServices): Response
{
$serviceId = $this->getParameter('app.serviceId');
$accountId = $this->getParameter('app.accountId');
$conseillers = $callApiServices->getListConseillers($accountId, $serviceId);
$config = $callApiServices->configuratationPlateforme($accountId, $serviceId);
array_multisort(
array_column($conseillers, 'userServiceId'),
SORT_DESC,
$conseillers
);
usort($conseillers, fn ($a, $b) => [
[1 => 1, 2 => 2, 0 => 3][$a['userState']],
] <=> [
[1 => 1, 2 => 2, 0 => 3][$b['userState']],
]);
$configPlateforme = new Config();
$configPlateforme->setKindOfCredit($config['kindOfCredit']);
$configPlateforme->setItemsPerPage($config['itemsPerPage']);
$configPlateforme->setItemsPerRow($config['itemsPerRow']);
$configPlateforme->setWelcomeCredit($config['welcomeCredit']);
$configPlateforme->setRecaptchaTab($config['recaptchaTab']);
$configPlateforme->setPaymentInfos($config['paymentInfos']);
$configPlateforme->setMail($config['mail']);
$configPlateforme->setMarchand($config['marchand']);
return $this->render('home/index.html.twig', [
'conseillers' => $conseillers,
'config' => $config,
]);
}
/**
* @Route("/consultant/{id}", name="app_consultant", methods={"GET", "POST"})
*/
public function conseillerEtPlanning(CallApiServices $callApiServices, $id): Response
{
$serviceId = $this->getParameter('app.serviceId');
$accountId = $this->getParameter('app.accountId');
$conseillerAvis = $callApiServices->conseillerAvis($serviceId, $id);
$conseiller = $callApiServices->conseillerEtPlanning($id, $serviceId);
if (!isset($conseiller[0])) {
// le conseiller n'est pas configuré
return $this->redirectToRoute('app_home');
}
$weekdaysShort = ['Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim'];
$daysHoursShort = [
0 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
1 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
2 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
3 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
4 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
5 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
6 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
7 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
8 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
9 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
10 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
11 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
12 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
13 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
14 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
15 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
16 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
17 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
18 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
19 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
20 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
21 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
22 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false],
23 => ['Lun' => false, 'Mar' => false, 'Mer' => false, 'Jeu' => false, 'Ven' => false, 'Sam' => false, 'Dim' => false]
];
$i = 0;
foreach ($conseiller[0]['planningArray'] as $planing) {
$begin[] = explode(':', $planing['begin']);
$end[] = explode(':', $planing['end']);
$day[] = $planing['weekDayNum'];
$hourEnd[] = $end[$i][0];
$hourBegin[] = $begin[$i][0];
$minuteEnd[] = $end[$i][1];
$minuteBegin[] = $begin[$i][1];
$calcul = $hourEnd[$i] - $hourBegin[$i];
$h = 0;
while ($calcul > $h) {
$daysHoursShort[$begin[$i][0] + $h][$weekdaysShort[$planing['weekDayNum']]] = true;
$h++;
}
$i++;
};
return $this->render('consultant/index.html.twig', [
'conseiller' => $conseiller,
'weekdaysShort' => $weekdaysShort,
'daysHoursShort' => $daysHoursShort,
'conseillerAvis' => $conseillerAvis
]);
}
/**
* @Route("/ping", name="ping", methods={"POST"})
*/
public function ping(Mercure $mercure): Response
{
$topic = 'https://star-voyance/mail';
$data = [0];
$mercure->mercurePost($topic, $data);
return $this->redirectToRoute('app_home');
}
/**
* @Route("/consultants", name="app_all", methods={"GET", "POST"})
*/
public function getAllConseiller(CallApiServices $callApiServices): Response
{
$serviceId = $this->getParameter('app.serviceId');
$accountId = $this->getParameter('app.accountId');
$conseillers = $callApiServices->getListConseillers($accountId, $serviceId);
$config = $callApiServices->configuratationPlateforme($accountId, $serviceId);
$configPlateforme = new Config();
$configPlateforme->setKindOfCredit($config['kindOfCredit']);
$configPlateforme->setItemsPerPage($config['itemsPerPage']);
$configPlateforme->setItemsPerRow($config['itemsPerRow']);
$configPlateforme->setWelcomeCredit($config['welcomeCredit']);
$configPlateforme->setRecaptchaTab($config['recaptchaTab']);
$configPlateforme->setPaymentInfos($config['paymentInfos']);
$configPlateforme->setMail($config['mail']);
$configPlateforme->setMarchand($config['marchand']);
return $this->render('home/allConseiller.html.twig', [
'conseillers' => $conseillers,
'config' => $config,
]);
}
}