ne pas pouvoir commencer une journée tant que les précédentes ne sont pas terminées (fixes #9)
This commit is contained in:
parent
4ec5dceb14
commit
d8df23bc5d
|
@ -130,6 +130,11 @@ class RestController extends AbstractFOSRestController
|
|||
$datenow=new \DateTime("now");
|
||||
$datenow->setTime ( $datenow->format("H"), $datenow->format("i"), 0 );
|
||||
|
||||
if(!$em->getRepository("App:Tallyday")->ctrlTallyday($user,$datenow)) {
|
||||
$view = $this->view("Impossible d'entamer une journée sans avoir terminé les jours précédents", 404);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
|
||||
// On recherche le dernier pointage de la journée
|
||||
$data = $em->getRepository("App:Tallyday")->findOneBy(["user"=>$user,"dateof"=>$datenow],["datestart"=>"DESC"]);
|
||||
|
||||
|
@ -228,6 +233,11 @@ class RestController extends AbstractFOSRestController
|
|||
}
|
||||
$datenow=new \DateTime("now");
|
||||
$datenow->setTime ( $datenow->format("H"), $datenow->format("i"), 0 );
|
||||
|
||||
if(!$em->getRepository("App:Tallyday")->ctrlTallyday($user,$datenow)) {
|
||||
$view = $this->view("Impossible d'entamer une journée sans avoir terminé les jours précédents", 404);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
|
||||
// On recherche le dernier pointage de la journée
|
||||
$data = $em->getRepository("App:Tallyday")->findOneBy(["user"=>$user,"dateof"=>$datenow],["datestart"=>"DESC"]);
|
||||
|
@ -322,6 +332,11 @@ class RestController extends AbstractFOSRestController
|
|||
$datenow=new \DateTime("now");
|
||||
$datenow->setTime ( $datenow->format("H"), $datenow->format("i"), 0 );
|
||||
|
||||
if(!$em->getRepository("App:Tallyday")->ctrlTallyday($user,$datenow)) {
|
||||
$view = $this->view("Impossible d'entamer une journée sans avoir terminé les jours précédents", 404);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
|
||||
// On recherche le dernier pointage de la journée
|
||||
$data = $em->getRepository("App:Tallyday")->findOneBy(["user"=>$user,"dateof"=>$datenow],["datestart"=>"DESC"]);
|
||||
|
||||
|
@ -429,7 +444,12 @@ class RestController extends AbstractFOSRestController
|
|||
$view = $this->view("API Key inconnue", 403);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
|
||||
|
||||
if(!$em->getRepository("App:Tallyday")->ctrlTallyday($user,$start)) {
|
||||
$view = $this->view("Impossible d'entamer une journée sans avoir terminé les jours précédents", 404);
|
||||
return $this->handleView($view);
|
||||
}
|
||||
|
||||
// Creation du timer
|
||||
$dateof=clone $start;
|
||||
$dateof->setTime(0,0);
|
||||
|
|
|
@ -844,6 +844,9 @@ class TallydayController extends AbstractController
|
|||
|
||||
$datenow=new \DateTime("now");
|
||||
$datenow->setTime ( $datenow->format("H"), $datenow->format("i"), 0 );
|
||||
|
||||
if(!$em->getRepository("App:Tallyday")->ctrlTallyday($this->getUser(),$datenow))
|
||||
return $this->redirectToRoute("app_tallyday",["message"=>"Impossible d'entamer une journée sans avoir terminé les jours précédents"]);
|
||||
|
||||
$data = $em->getRepository($this->entity)->findOneBy(["user"=>$this->getUser(),"datestart"=>$datenow]);
|
||||
if(!$data) {
|
||||
|
@ -874,6 +877,11 @@ class TallydayController extends AbstractController
|
|||
// On recherche le dernier pointage de la journée
|
||||
$datenow=new \DateTime("now");
|
||||
$datenow->setTime ( $datenow->format("H"), $datenow->format("i"), 0 );
|
||||
|
||||
if(!$em->getRepository("App:Tallyday")->ctrlTallyday($this->getUser(),$datenow))
|
||||
return $this->redirectToRoute("app_tallyday",["message"=>"Impossible d'entamer une journée sans avoir terminé les jours précédents"]);
|
||||
|
||||
// Recherche du créneau en cours
|
||||
$data = $em->getRepository($this->entity)->findOneBy(["user"=>$this->getUser(),"dateof"=>$datenow],["datestart"=>"DESC"]);
|
||||
|
||||
// Pas normal = on devrait avoir au minimum un tally si on veut faire un pointage de fin
|
||||
|
@ -957,6 +965,8 @@ class TallydayController extends AbstractController
|
|||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
if(!$em->getRepository("App:Tallyday")->ctrlTallyday($data->getUser(),$data->getDateof()));
|
||||
$form->addError(new FormError("Impossible d'entamer une journée sans avoir terminé les jours précédents"));
|
||||
|
||||
if ($form->get('submit')->isClicked()) {
|
||||
// date début < date fin
|
||||
|
|
|
@ -51,6 +51,19 @@ class TallydayRepository extends ServiceEntityRepository
|
|||
return $datas;
|
||||
}
|
||||
|
||||
public function ctrlTallyday($user,$dateof) {
|
||||
// Controle que l'ensemble des tallyday précédent sont bien complet
|
||||
$qb = $this->createQueryBuilder('tallydate')
|
||||
->Where('tallydate.user=:user')
|
||||
->andWhere('tallydate.dateof<:dateof')
|
||||
->andWhere('tallydate.datestart IS NOT NULL')
|
||||
->andWhere('tallydate.dateend IS NULL')
|
||||
->setParameter('user',$user)
|
||||
->setParameter('dateof',$dateof->format("Y-m-d 0:0:0"));
|
||||
$datas = $qb->getQuery()->getResult();
|
||||
return !($datas);
|
||||
}
|
||||
|
||||
public function getCapitaltimeinterval($user,$getnovalidate=false) {
|
||||
$datenow=new \DateTime('00:00');
|
||||
$datas = $this->_em->getRepository('App:Tallyday')->findBy(["user"=>$user],["datestart"=>"DESC"]);
|
||||
|
|
Loading…
Reference in New Issue