mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Merge branch 'feature-17728/featureCheckPausenfehlerBeiVorzeitigemAbschicken' into feature-17517/AdaptierungenZeiterfassungenSprint177
This commit is contained in:
@@ -875,5 +875,78 @@ or not exists
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Check, if there is a blocking PausenError
|
||||||
|
*
|
||||||
|
* @param string $uid User uid.
|
||||||
|
* @param string $datumday Day to be check in the format "Y-m-d".
|
||||||
|
* @return boolean True if there is a Pausen error.
|
||||||
|
*/
|
||||||
|
public function checkPausenErrors($uid, $datumday)
|
||||||
|
{
|
||||||
|
$tagesbeginn = '';
|
||||||
|
$tagesende = '';
|
||||||
|
$pausesumme = '00:00';
|
||||||
|
$tagessaldo = '';
|
||||||
|
$elsumme = '00:00';
|
||||||
|
$pflichtpause = false;
|
||||||
|
$blockingError = false;
|
||||||
|
$datum = new datum();
|
||||||
|
|
||||||
|
$this->getListeUserFromTo($uid, $datumday, $datumday, null);
|
||||||
|
|
||||||
|
foreach ($this->result as $row)
|
||||||
|
{
|
||||||
|
$datumtag = $datum->formatDatum($row->datum, 'Y-m-d');
|
||||||
|
|
||||||
|
if (($tagesbeginn == '' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format = 'Y-m-d H:i:s')) > $datum->mktime_fromtimestamp($datum->formatDatum($row->start, $format = 'Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe')
|
||||||
|
$tagesbeginn = $datum->formatDatum($row->start, 'H:i');
|
||||||
|
|
||||||
|
if (($tagesende == '' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format = 'Y-m-d H:i:s')) < $datum->mktime_fromtimestamp($datum->formatDatum($row->ende, $format = 'Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe')
|
||||||
|
$tagesende = $datum->formatDatum($row->ende, 'H:i');
|
||||||
|
|
||||||
|
if ($row->aktivitaet_kurzbz == "Pause")
|
||||||
|
$pausesumme = $row->diff;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tagessaldo = $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format = 'Y-m-d H:i:s')) - $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format = 'Y-m-d H:i:s')) - 3600;
|
||||||
|
|
||||||
|
list($h1, $m1) = explode(':', $pausesumme);
|
||||||
|
$pausesumme = $h1 * 3600 + $m1 * 60;
|
||||||
|
|
||||||
|
list($h2, $m2) = explode(':', $elsumme);
|
||||||
|
$elsumme = $h2 * 3600 + $m2 * 60;
|
||||||
|
|
||||||
|
|
||||||
|
if ($datum->formatDatum($datumday, 'Y-m-d') >= '2019-11-06')
|
||||||
|
{
|
||||||
|
$pausesumme = $pausesumme;
|
||||||
|
}
|
||||||
|
elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pflichtpause == false && $elsumme == 0)
|
||||||
|
{
|
||||||
|
$pausesumme = $tagessaldo - 18000;
|
||||||
|
}
|
||||||
|
elseif ($tagessaldo > 18000 && $pflichtpause == false && $elsumme == 0)
|
||||||
|
{
|
||||||
|
$pausesumme = $pausesumme + 1800;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($elsumme > 0)
|
||||||
|
{
|
||||||
|
$pausesumme = $pausesumme + $elsumme;
|
||||||
|
$pflichtpause = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tagessaldo = $tagessaldo - $pausesumme;
|
||||||
|
|
||||||
|
//check if blocking error
|
||||||
|
if (($tagessaldo > 19800 && $pausesumme < 1800) || ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000))
|
||||||
|
{
|
||||||
|
$blockingError = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $blockingError;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
Reference in New Issue
Block a user