ajout possibilité de modifier la plage horaire d'un événement sur le calendrier

This commit is contained in:
2020-07-28 13:50:24 +02:00
parent 0ba2f94521
commit dc182b6888
3 changed files with 107 additions and 11 deletions

View File

@@ -122,7 +122,7 @@ class EventController extends AbstractController
if($am&&$ap) {
$datestart->SetTime(0,0,0);
$dateend->add(new \DateInterval('P1D'));
$dateend->SetTime(0,0,0);
$dateend->SetTime(0,0,-1);
$duration=$dateend->diff($datestart)->d;
$allday=true;
}
@@ -271,6 +271,8 @@ class EventController extends AbstractController
$idevent = str_replace("A","",$request->request->get('idevent'));
$iduser = $request->request->get('iduser');
$idtask = $request->request->get('idtask');
$am = ($request->request->get('am')=="true");
$ap = ($request->request->get('ap')=="true");
$fgastreinte = ($request->request->get('fgastreinte')=="true");
$description = $request->request->get('description');
@@ -327,17 +329,77 @@ class EventController extends AbstractController
return new Response(json_encode($output));
}
$datestart=$event->getStart();
$dateend =$event->getEnd();
if($am&&$ap) {
$datestart->SetTime(0,0,0);
$dateend->add(new \DateInterval('P1D'));
$dateend->SetTime(0,0,-1);
$duration=$dateend->diff($datestart)->d;
$allday=true;
}
else {
$duration=0.5;
$allday=false;
if($am) {
$datestart->SetTime(9,0,0);
$dateend->SetTime(12,0,0);
}
else {
$datestart->SetTime(13,0,0);
$dateend->SetTime(17,0,0);
}
}
// On regarde si une tache ne commence pas pendant une autre intervention ou qui se termine pendant une autre intervention ou qui a une intervention compris dans ses dates
$events = $em->createQueryBuilder('event')
->select('event')
->from('App:Event','event')
->Where('event.user=:user AND event.start<=:start AND event.end >:start')
->orWhere('event.user=:user AND event.start<:end AND event.end >=:end')
->orWhere('event.user=:user AND event.start>:start AND event.end <:end')
->setParameter('user',$iduser)
->setParameter('start',$datestart)
->setParameter('end',$dateend)
->getQuery()->getResult();
dump($event->getId());
if($events) {
$tbevent=[];
foreach($events as $ev) {
if ($event->getId() != $ev->getId()) {
$tmp=[
"id" => $ev->getId(),
"task" => $ev->getTask()->getName(),
"start" => $ev->getStart(),
"end" => $ev->getEnd(),
];
array_push($tbevent,$tmp);
}
}
if (sizeof($tbevent)>0) {
$output=["return"=>"KO","error"=>"Cet intervant a déjà une tache à cette date","start"=>$datestart,"end"=>$dateend,"events"=>$tbevent];
return new Response(json_encode($output));
}
}
// Modification de l'évenement
$event->setStart($datestart);
$event->setEnd($dateend);
$event->setDescription($description);
$event->setDuration($duration);
$event->setAllday($allday);
$event->setUser($user);
$event->setTask($task);
$em->persist($event);
$em->flush();
$output=$this->formatEvent($event);
dump($event);
}
return new Response(json_encode($output));
}

View File

@@ -96,24 +96,24 @@ class Event
public function getStart(): ?\DateTimeInterface
{
return $this->start;
return clone $this->start;
}
public function setStart(\DateTimeInterface $start): self
{
$this->start = $start;
$this->start = clone $start;
return $this;
}
public function getEnd(): ?\DateTimeInterface
{
return $this->end;
return clone $this->end;
}
public function setEnd(\DateTimeInterface $end): self
{
$this->end = $end;
$this->end = clone $end;
return $this;
}