ajout page validation des timer et option heure supplémentaires
This commit is contained in:
@@ -217,7 +217,8 @@ class TimerController extends AbstractController
|
||||
$tbtimers = [];
|
||||
foreach ($timers as $timer) {
|
||||
$isactive = $timer->getActivePenalty();
|
||||
if ($isactive) {
|
||||
$isadditional = $timer->getAdditionalHour();
|
||||
if ($isactive || $isadditional) {
|
||||
$tbtimer["id"] = $timer->getId();
|
||||
$tbtimer["taskname"] = $timer->getTask()->getDisplayname();
|
||||
$tbtimer["user"] = $timer->getUser()->getUsername();
|
||||
@@ -225,6 +226,7 @@ class TimerController extends AbstractController
|
||||
$tbtimer["end"] = $timer->getId();
|
||||
$tbtimer["duration"] = $timer->getDuration();
|
||||
$tbtimer["activepenalty"] = $timer->getActivePenalty();
|
||||
$tbtimer["additionalhour"] = $timer->getAdditionalHour();
|
||||
$tbtimer["description"] = $timer->getDescription();
|
||||
array_push($tbtimers, $tbtimer);
|
||||
}
|
||||
|
@@ -548,6 +548,138 @@ class ValidationController extends AbstractController
|
||||
$this->get('session')->set('activeholiday',!$this->get('session')->get('activeholiday'));
|
||||
|
||||
return $this->redirectToRoute("app_validationholiday");
|
||||
}
|
||||
}
|
||||
|
||||
public function validationtimer(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
|
||||
if($iduser=="all") {
|
||||
$users=$em->getRepository("App:User")->findAll();
|
||||
}
|
||||
else {
|
||||
$users=$em->getRepository("App:User")->findBy(["id"=>$iduser]);
|
||||
}
|
||||
|
||||
$tbtimers=[];
|
||||
foreach($users as $user) {
|
||||
if(in_array("ROLE_USER",$user->getRoles())) {
|
||||
// Filtre par Service
|
||||
if($this->get('session')->get('idservice')!="all") {
|
||||
if($user->getService()->getId()!=$this->get('session')->get('idservice'))
|
||||
continue;
|
||||
}
|
||||
|
||||
$tmp=[
|
||||
"id" => $user->getId(),
|
||||
"user" => $user,
|
||||
"timers" => [],
|
||||
"timerstodevalidate" => [],
|
||||
];
|
||||
|
||||
// Timers à valider ou à dévalider
|
||||
$timers = $em
|
||||
->createQueryBuilder('timer')
|
||||
->select('timer')
|
||||
->from('App:Timer','timer')
|
||||
->from('App:Task','task')
|
||||
->Where('timer.user=:user')
|
||||
->andWhere('timer.validate=:validate')
|
||||
->andWhere('task=timer.task')
|
||||
->setParameter('user',$user->getId())
|
||||
->setParameter('validate',!($this->get("session")->get("activetimer")))
|
||||
->getQuery()->getResult();
|
||||
foreach($timers as $timer) {
|
||||
|
||||
$tbtimer["id"] = $timer->getId();
|
||||
$tbtimer["taskname"] = $timer->getTask()->getDisplayname();
|
||||
$tbtimer["user"] = $timer->getUser()->getUsername();
|
||||
$tbtimer["start"] = $timer->getId();
|
||||
$tbtimer["end"] = $timer->getId();
|
||||
$tbtimer["duration"] = $timer->getDuration();
|
||||
$tbtimer["activepenalty"] = $timer->getActivePenalty();
|
||||
$tbtimer["additionalhour"] = $timer->getAdditionalHour();
|
||||
$tbtimer["description"] = $timer->getDescription();
|
||||
|
||||
$tbtimer = [
|
||||
"id"=>$timer->getId(),
|
||||
"taskname"=>$timer->getTask()->getDisplayname(),
|
||||
"user"=>$timer->getUser()->getUsername(),
|
||||
"start"=>$timer->getId(),
|
||||
"end"=>$timer->getId(),
|
||||
"duration"=>$timer->getDuration(),
|
||||
"activepenalty"=>$timer->getActivePenalty(),
|
||||
"additionalhour"=>$timer->getAdditionalHour(),
|
||||
"description"=>$timer->getDescription(),
|
||||
"validate"=>$timer->getValidate(),
|
||||
];
|
||||
|
||||
array_push($tmp["timers"],$tbtimer);
|
||||
}
|
||||
array_push($tbtimers,$tmp);
|
||||
}
|
||||
}
|
||||
if($request->query->get('fgprint')) {
|
||||
$render = $this->renderView('Validation/validationtimer.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbtimers,
|
||||
"fgprint" => $request->query->get('fgprint'),
|
||||
]);
|
||||
|
||||
return new PdfResponse(
|
||||
$this->knpSnappy->getOutputFromHtml($render),
|
||||
'validationhoraires.pdf'
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $this->render('Validation/validationtimer.html.twig',[
|
||||
"useheader" => true,
|
||||
"usesidebar" => ($this->getUser()),
|
||||
"users" => $tbtimers
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function validatetimer(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$id = $request->request->get('id');
|
||||
$timer=$em->getRepository("App:Timer")->find($id);
|
||||
if($timer) {
|
||||
$timer->setValidate(true);
|
||||
$em->persist($timer);
|
||||
$em->flush();
|
||||
$iduser=$this->get("session")->get("iduser");
|
||||
$idtimer=$timer->getId();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
public function devalidatetimer(Request $request){
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Récupération des variables envoyées en post
|
||||
$id = $request->request->get('id');
|
||||
$timer=$em->getRepository("App:Timer")->find($id);
|
||||
if($timer) {
|
||||
$timer->setValidate(false);
|
||||
$em->persist($timer);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$output=[];
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
public function activetimer() {
|
||||
$this->get('session')->set('activetimer',!$this->get('session')->get('activetimer'));
|
||||
|
||||
return $this->redirectToRoute("app_validationtimer");
|
||||
}
|
||||
}
|
||||
|
@@ -55,17 +55,30 @@ class Timer
|
||||
*/
|
||||
private $task;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="activepenalty", type="boolean")
|
||||
*
|
||||
*/
|
||||
private $activepenalty;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="additionalhour", type="boolean")
|
||||
*
|
||||
*/
|
||||
private $additionalhour;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="activepenalty", type="boolean")
|
||||
* @ORM\Column(name="validate", type="boolean")
|
||||
*
|
||||
*/
|
||||
private $activepenalty;
|
||||
private $validate;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->start = new \DateTime();
|
||||
$this->end = new \DateTime();
|
||||
$this->duration = new \DateTime();
|
||||
$this->validate = false;
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
@@ -157,4 +170,28 @@ class Timer
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAdditionalHour(): ?bool
|
||||
{
|
||||
return $this->additionalhour;
|
||||
}
|
||||
|
||||
public function setAdditionalHour(bool $additionalhour): self
|
||||
{
|
||||
$this->additionalhour = $additionalhour;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getValidate(): ?bool
|
||||
{
|
||||
return $this->validate;
|
||||
}
|
||||
|
||||
public function setValidate(bool $validate): self
|
||||
{
|
||||
$this->validate = $validate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -65,6 +65,12 @@ class TimerType extends AbstractType
|
||||
"choices" => ["Non"=>false, "Oui"=>true]
|
||||
]
|
||||
);
|
||||
$builder->add("additionalhour",
|
||||
ChoiceType::class,[
|
||||
"label" => "Heures supplémentaires",
|
||||
"choices" => ["Non"=>false, "Oui"=>true]
|
||||
]
|
||||
);
|
||||
|
||||
$builder->add('start',
|
||||
DateTimeType::class, [
|
||||
|
Reference in New Issue
Block a user