Modification plage horaire événement #14

Closed
mlamalle wants to merge 10 commits from updatehourevent into master
3 changed files with 107 additions and 11 deletions
Showing only changes of commit 82a8118fd6 - Show all commits

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;
}

View File

@@ -157,7 +157,6 @@
{% endif %}
</select>
</div>
<div class="form-group">
<label class="control-label required" for="taskupdate">
Project<span class="mandatory">*</span>
@@ -169,7 +168,19 @@
{% endfor %}
</select>
</div>
<div class="form-group">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="amupdate">
<label class="custom-control-label" for="amupdate">Evènement sur la matinée</label>
</div>
</div>
<div class="form-group">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="apupdate">
<label class="custom-control-label" for="apupdate">Evènement sur l'après-midi</label>
</div>
</div>
<div class="form-group">
<label for="description" class="control-label">
Description
@@ -301,22 +312,43 @@ function eventSelect(selectionInfo) {
// Formulaire Modification d'un évelement
function eventClick(info) {
if(info.event.extendedProps.editable) {
console.log(info.event.id);
console.log(info.event);
var id=info.event.id;
var description=info.event.extendedProps.description;
var userid=info.event.extendedProps.userid;
var taskid=info.event.extendedProps.taskid;
var fgastreinte=info.event.extendedProps.astreinte;
var eventallday = info.event.allDay;
var eventstart = info.event.start;
//var eventend = info.event.end;
$('#userupdate').val(userid).trigger("change");
$('#taskupdate').val(taskid).trigger("change");
$('#modalupdate #idevent').val(id);
$('#modalupdate #fgastreinte').val(fgastreinte);
$('#modalupdate #description').val(description);
$("#modalupdate .alert").remove();
{# $('#modalupdate #amupdate').attr("disabled",eventallday);
$('#modalupdate #apupdate').attr("disabled",eventallday); #}
if (!eventallday){
eStart = eventstart.toString().split(" ")[4].split(":")[0]
//eEnd = eventend.toString().split(" ")[4].split(":")[0]
if (eStart == 09){
$('#modalupdate #amupdate').prop("checked",true);
$('#modalupdate #apupdate').prop("checked",false);
}
if (eStart == 13){
$('#modalupdate #amupdate').prop("checked",false);
$('#modalupdate #apupdate').prop("checked",true);
}
}else{
$('#modalupdate #amupdate').prop("checked",true);
$('#modalupdate #apupdate').prop("checked",true);
}
// Formulaire de création d'un évènement
$('#modalupdate').modal();
}
@@ -378,6 +410,8 @@ function eventUpdate() {
idevent: $("#modalupdate #idevent").val(),
iduser: $("#userupdate").val(),
idtask: $("#taskupdate").val(),
am: $("#modalupdate #amupdate").prop("checked"),
ap: $("#modalupdate #apupdate").prop("checked"),
fgastreinte: $("#modalupdate #fgastreinte").val(),
description: $("#modalupdate #description").val()
},