<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Service\Utile;
use App\Form\PeriodeType;
//use PhpOffice\PhpSpreadsheet\Spreadsheet;
//use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
/** -----------------------------------------------------------------------------
* controller initial : fonction index
* controller utils : autres fonctions
* -----------------------------------------------------------------------------
*/
class InitController extends AbstractController {
/**
* Controller lancé au lancement de l'appli
* @Route("/", name="app_init")
*/
public function index(Request $request, Utile $utile): Response {
$session = $request->getSession();
//---------------------------------------------------------------------
//RESTRICTION ADRESSE IP
//---------------------------------------------------------------------
// $adr = $_SERVER['REMOTE_ADDR'];
// if (!in_array($_SERVER['REMOTE_ADDR'], $utile->getValidesIP())) {
// $session->getFlashBag()->add("message", $_SERVER['REMOTE_ADDR'] . " : IP non autorisée");
// $session->set('statut', 'success');
// return $this->redirectToRoute('app_login');
// }
//---------------------------------------------------------------------
// on teste si on s'est loggé ou pas
if ( $session->get('comite') ) {
//---------------------------------------------------------------------
//initialisation debut
$session->set('debut', false);
//---------------------------------------------------------------------
//initialisation date du jour
$session->set('dateDuJour', $utile->recupDateNow());
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//initialisation périodes
$session->set('semEnCours', $utile->getSemEnCours());
$session->set('moisEnCours', $utile->getMoisEnCours());
$session->set('anneeEnCours', $utile->getAnneeEnCours());
//---------------------------------------------------------------------
}
else {
$session->set('debut', true);
return $this->redirectToRoute('app_login');
}
return $this->render('init/init.html.twig');
}
/**
* @Route("/appli/periode/", name="appli_choixPeriode")
*/
public function choixPeriode(Request $request,LibreserviceRepository $libreserviceRepository,Utile $utile): Response
{
$session = $request->getSession();
// on cherche la période d'export
if ($session->get('periode')){
$periode = $session->get('periode');
}
else {
$periode = $utile->getSemEnCours();
}
$form = $this->createForm(PeriodeType::class, $periode);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
if ($periode->getSemEnCours()){
$periode = $utile->getSemEnCours();
}
if ($periode->getMoisEnCours()){
$periode = $utile->getMoisEnCours();
}
if ($periode->getAnneeEnCours()){
$periode = $utile->getAnneeEnCours();
}
if ($periode->getPeriode()){
$periode->setNom('période choisie');
$periode->setPeriode(true);
}
$session->set('periode', $periode);
// switch ($app) {
// case 'LS':
// return $this->redirectToRoute('excel_choixPeriode');
// break;
// case 'Dom':
//// return $this->redirectToRoute('excel_Dom');
// break;
// }
return $this->redirectToRoute('appli_choixPeriode');
}
return $this->render('init/periode.html.twig', [
'periode' => $periode,
'form' => $form->createView(),
]);
}
}