141 lines
4.6 KiB
PHP
Executable File
141 lines
4.6 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class HomeController extends AbstractController
|
|
{
|
|
public function home()
|
|
{
|
|
return $this->redirectToRoute("app_synthese");
|
|
|
|
/*
|
|
if($this->getUser()) {
|
|
return $this->redirectToRoute("app_synthese");
|
|
}
|
|
else {
|
|
return $this->render('Home/home.html.twig',[
|
|
"useheader" => true,
|
|
"usesidebar" => false,
|
|
]);
|
|
}
|
|
*/
|
|
}
|
|
|
|
public function customer()
|
|
{
|
|
return $this->render('Home/customer.html.twig',[
|
|
"useheader" => true,
|
|
"usesidebar" => false,
|
|
]);
|
|
}
|
|
|
|
public function selectmonth(Request $request)
|
|
{
|
|
$nbmonth = $request->request->get('nbmonth');
|
|
$this->get('session')->set('nbmonth',$nbmonth);
|
|
$output=["return"=>"OK"];
|
|
return new Response(json_encode($output));
|
|
}
|
|
|
|
public function selectuser(Request $request)
|
|
{
|
|
$iduser = $request->request->get('iduser');
|
|
$this->get('session')->set('iduser',$iduser);
|
|
$output=["return"=>"OK"];
|
|
return new Response(json_encode($output));
|
|
}
|
|
|
|
public function selectproject(Request $request)
|
|
{
|
|
$idproject = $request->request->get('idproject');
|
|
$this->get('session')->set('idproject',$idproject);
|
|
$output=["return"=>"OK"];
|
|
return new Response(json_encode($output));
|
|
}
|
|
|
|
public function selectservice(Request $request)
|
|
{
|
|
$em = $this->getDoctrine()->getManager();
|
|
|
|
$iddomaine = $this->get('session')->get('iddomaine');
|
|
$idservice = $request->request->get('idservice');
|
|
|
|
$this->get('session')->set('idservice',$idservice);
|
|
$output=["return"=>"OK"];
|
|
|
|
// On recalcul les users
|
|
if($idservice=="all")
|
|
$users=$em->getRepository("App:User")->findAll();
|
|
else
|
|
$users=$em->getRepository("App:User")->findBy(["service"=>$idservice]);
|
|
$tbusers=[];
|
|
$haveuser=false;
|
|
foreach($users as $user) {
|
|
if(in_array("ROLE_USER",$user->getRoles())) {
|
|
if($user->getId()==$this->get('session')->get('iduser'))
|
|
$haveuser=true;
|
|
|
|
$tmp=[
|
|
"id"=>$user->getId(),
|
|
"displayname"=>$user->getDisplayname()
|
|
];
|
|
array_push($tbusers,$tmp);
|
|
}
|
|
}
|
|
$this->get('session')->set('users',$tbusers);
|
|
if(!$haveuser) $this->get('session')->set("iduser","all");
|
|
|
|
// On recalcul les projets
|
|
$this->regenProjects($idservice,$iddomaine);
|
|
|
|
return new Response(json_encode($output));
|
|
}
|
|
|
|
public function selectdomaine(Request $request)
|
|
{
|
|
$iddomaine = $request->request->get('iddomaine');
|
|
$idservice = $this->get('session')->get('idservice');
|
|
|
|
$this->get('session')->set('iddomaine',$iddomaine);
|
|
$output=["return"=>"OK"];
|
|
|
|
// On recalcul les projets
|
|
$this->regenProjects($idservice,$iddomaine);
|
|
|
|
|
|
return new Response(json_encode($output));
|
|
}
|
|
|
|
private function regenProjects($idservice,$iddomaine) {
|
|
$em = $this->getDoctrine()->getManager();
|
|
|
|
if($idservice=="all"&&$iddomaine=="all")
|
|
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject')]);
|
|
elseif($idservice!="all"&&$iddomaine!="all")
|
|
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"service"=>$idservice,"domaine"=>$iddomaine]);
|
|
elseif($idservice!="all")
|
|
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"service"=>$idservice]);
|
|
else
|
|
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"domaine"=>$iddomaine]);
|
|
|
|
$tbprojects=[];
|
|
$haveproject=false;
|
|
foreach($projects as $project) {
|
|
if($project->getId()==$this->get('session')->get('idproject'))
|
|
$haveproject=true;
|
|
|
|
$tmp=[
|
|
"id"=>$project->getId(),
|
|
"displayname"=>$project->getDisplayname()
|
|
];
|
|
array_push($tbprojects,$tmp);
|
|
}
|
|
$this->get('session')->set('projects',$tbprojects);
|
|
if(!$haveproject) $this->get('session')->set("idproject","all");
|
|
}
|
|
}
|