<?php
namespace App\Controller;
use App\Entity\User;
use App\Entity\Horaire;
use App\Entity\Etudiant;
use App\Form\HoraireType;
use Ijanki\Bundle\FtpBundle\Ftp;
use App\Repository\HoraireRepository;
use App\Repository\EtudiantRepository;
use Doctrine\ORM\EntityManagerInterface;
use Ijanki\Bundle\FtpBundle\IjankiFtpBundle;
use Symfony\Component\HttpFoundation\Request;
use App\Repository\VariablesGlobalesRepository;
use Symfony\Component\Routing\Annotation\Route;
use Ijanki\Bundle\FtpBundle\Exception\FtpException;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Ijanki\Bundle\FtpBundle\DependencyInjection\IjankiFtpExtension;
class HomeController extends AbstractController
{
/**
* @var HoraireRepository
*/
protected $horaireRepository;
public function __construct(HoraireRepository $horaireRepository)
{
$this->horaireRepository = $horaireRepository;
}
/**
* @Route("/", name="homepage")
* @IsGranted("ROLE_USER")
*/
public function homepage(Request $request, EntityManagerInterface $em, EtudiantRepository $etudiantRepository, VariablesGlobalesRepository $variablesGlobales)
{
$horaire = new Horaire($variablesGlobales);
/**
* @var User
*/
$user = $this->getUser();
/**
* @var Etudiant
*/
$etudiant = $user->getEtudiant();
if (isset($etudiant)) {
$allHoraires = $etudiant->getHoraires()->toArray();
} else {
$allHoraires = null;
}
if ($user->getNouveauMDP() == "1") {
$this->addFlash(
'warning',
"Vous devez configurer votre nouveau mot de passe."
);
return $this->redirectToRoute('security_updatePassword');
}
$form = $this->createForm(HoraireType::class, $horaire);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$nbHeureJEHT = is_null($variablesGlobales->findOneBy(array('nomVariable' => 'nbHeureJEHT'))) ? 8 : $variablesGlobales->findOneBy(array('nomVariable' => 'nbHeureJEHT'))->getValeur();
if (isset($etudiant)) {
$horaire->setEtudiant($etudiant);
$em->persist($horaire);
$em->flush();
} else {
$this->addFlash(
'danger',
"Votre profil ne permet pas de saisir des récapitulatifs horaires !"
);
return $this->redirectToRoute('homepage');
}
$mois = $horaire->getMois();
$this->addFlash(
'success',
"Votre récapitulatif horraire pour le mois $mois a bien été pris en compte !"
);
return $this->redirectToRoute('homepage');
}
$formView = $form->createView();
return $this->render('etudiant/home.html.twig', [
'horaires' => $allHoraires,
'user' => $user,
'formView' => $formView
]);
}
}