correction fuseau & affichage rapport mensuel

This commit is contained in:
afornerot 2022-09-22 14:12:55 +02:00
parent 2878f31113
commit ed91a16b2b
2 changed files with 13 additions and 20 deletions

View File

@ -137,6 +137,8 @@ class TallydayController extends AbstractController
$users = $em->getRepository("App:User")->findBy([],["firstname"=>"ASC","lastname"=>"ASC"]); $users = $em->getRepository("App:User")->findBy([],["firstname"=>"ASC","lastname"=>"ASC"]);
foreach($users as $user) { foreach($users as $user) {
if($user->hasRole("ROLE_USER")) { if($user->hasRole("ROLE_USER")) {
$dates[$user->getId()] = [ $dates[$user->getId()] = [
"id"=>$user->getId(), "id"=>$user->getId(),
"avatar"=>$user->getAvatar(), "avatar"=>$user->getAvatar(),

View File

@ -65,38 +65,29 @@ class TallydayRepository extends ServiceEntityRepository
} }
public function getCapitaltimeinterval($user,$getnovalidate=false) { public function getCapitaltimeinterval($user,$getnovalidate=false) {
// Calculer les jours travaillés sur la base du fuseau Paris
date_default_timezone_set("Europe/Paris");
$datas = $this->_em->getRepository('App:Tallyday')->findBy(["user"=>$user],["datestart"=>"DESC"]); $datas = $this->_em->getRepository('App:Tallyday')->findBy(["user"=>$user],["datestart"=>"DESC"]);
$tbdays=[]; $tbdays=[];
// Cumuler les temps de travail sans fuseau
$datenow=new \DateTime('00:00'); $datenow=new \DateTime('00:00');
$ework = new \DateTime('00:00', new \DateTimeZone('UTC'));
$i=0;
foreach($datas as $data) { foreach($datas as $data) {
if($data->getDateof()<$datenow) { if($data->getDateof()<$datenow) {
$iddayweek=$data->getDateof()->format("w"); $iddayweek=$data->getDateof()->format("w");
if($iddayweek>=1&&$iddayweek<=5) { if($iddayweek>=1&&$iddayweek<=5) {
if(!in_array($data->getDateof(),$tbdays)) array_push($tbdays,$data->getDateof()); if(!in_array($data->getDateof(),$tbdays)) array_push($tbdays,$data->getDateof());
} }
if($data->getDateof()==$datenow&&($getnovalidate||$data->getValidateuser()||$data->getValidatemaster())) {
$iddayweek=$data->getDateof()->format("w");
if($iddayweek>=1&&$iddayweek<=5) {
if(!in_array($data->getDateof(),$tbdays)) array_push($tbdays,$data->getDateof());
}
}
}
}
// Cumuler les temps de travail sans fuseau
date_default_timezone_set("UTC");
$datenow=new \DateTime('00:00');
$ework = clone $datenow;
foreach($datas as $data) {
if($data->getDateof()<$datenow) {
$ework->add($data->getTimeday()); $ework->add($data->getTimeday());
} }
if($data->getDateof()==$datenow&&($getnovalidate||$data->getValidateuser()||$data->getValidatemaster())) { if($data->getDateof()==$datenow&&($getnovalidate||$data->getValidateuser()||$data->getValidatemaster())) {
$iddayweek=$data->getDateof()->format("w");
if($iddayweek>=1&&$iddayweek<=5) {
if(!in_array($data->getDateof(),$tbdays)) array_push($tbdays,$data->getDateof());
}
$ework->add($data->getTimeday()); $ework->add($data->getTimeday());
} }
} }
@ -109,12 +100,12 @@ class TallydayRepository extends ServiceEntityRepository
// Nbday worked // Nbday worked
$nbdaywork=count($tbdays); $nbdaywork=count($tbdays);
$etowork = clone $datenow;
$etowork = new \DateTime('00:00', new \DateTimeZone('UTC'));
$etowork->add(new \DateInterval("PT".($nbdaywork*7)."H")); $etowork->add(new \DateInterval("PT".($nbdaywork*7)."H"));
$interval = $etowork->diff($ework); $interval = $etowork->diff($ework);
date_default_timezone_set("Europe/Paris");
return $interval; return $interval;
} }