Merge branch 'changehourevent' into timetracking

This commit is contained in:
2020-07-30 13:57:18 +02:00
3 changed files with 179 additions and 16 deletions

View File

@@ -99,6 +99,7 @@ class EventController extends AbstractController
$am = ($request->request->get('am')=="true");
$ap = ($request->request->get('ap')=="true");
$astreinte = ($request->request->get('astreinte')=="true");
$externaltrip = ($request->request->get('externaltrip')=="true");
$description = $request->request->get('description');
$user = $em->getRepository("App:User")->find($iduser);
@@ -242,6 +243,7 @@ class EventController extends AbstractController
$event->setEnd($dateend);
$event->setDuration($duration);
$event->setAllday($allday);
$event->setExternalTrip($externaltrip);
$event->setDescription($description);
$event->setUser($user);
$event->setTask($task);
@@ -271,7 +273,10 @@ 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");
$externaltrip = ($request->request->get('externaltrip')=="true");
$description = $request->request->get('description');
$user = $em->getRepository("App:User")->find($iduser);
@@ -327,17 +332,82 @@ class EventController extends AbstractController
return new Response(json_encode($output));
}
$datestart=$event->getStart();
$dateend =$event->getEnd();
$duration=$dateend->diff($datestart)->d;
if($am&&$ap) {
if ($duration >= 1) {
$dateend->SetTime(0,0,-1);
}
$datestart->SetTime(0,0,0);
$dateend->add(new \DateInterval('P1D'));
$dateend->SetTime(0,0,0);
$duration=$dateend->diff($datestart)->d;
$allday=true;
}
else {
$duration=$dateend->diff($datestart)->d;
if ($duration == 1) {
$dateend->SetTime(0,0,-1);
}
$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();
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->setExternalTrip($externaltrip);
$event->setUser($user);
$event->setTask($task);
$em->persist($event);
$em->flush();
$output=$this->formatEvent($event);
}
return new Response(json_encode($output));
}
@@ -411,6 +481,8 @@ class EventController extends AbstractController
"borderColor" => $event->getTask()->getColor(),
"textColor" => "#ffffff",
"allDay" => $event->getAllday(),
"holiday" => $event->getTask()->getNature()->getIsvacation(),
"externaltrip" => ($event instanceof Penalty?$event->getExternalTrip():false),
"editable" => $editable,
"durationEditable" => false,
"extendedProps" => [
@@ -441,6 +513,8 @@ class EventController extends AbstractController
"borderColor" => "#cdcdcd",
"textColor" => "#ffffff",
"allDay" => true,
"externaltrip" => false,
"holiday" => false,
"editable" => false,
"durationEditable" => false,
"extendedProps" => [

View File

@@ -50,6 +50,12 @@ class Event
*/
private $allday;
/**
* @ORM\Column(name="externaltrip", type="boolean")
*
*/
private $externaltrip;
/**
* @ORM\Column(name="validate", type="boolean")
*
@@ -96,24 +102,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;
}
@@ -129,6 +135,17 @@ class Event
return $this;
}
public function getExternalTrip(): ?bool
{
return $this->externaltrip;
}
public function setExternalTrip(bool $externaltrip): self
{
$this->externaltrip = $externaltrip;
return $this;
}
public function getValidate(): ?bool
{