Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
<table class='tabelle'>
<tr class='topline'>
<th>Datum / Zeit</th><th>Name</th>
</tr>
<?php
error_reporting(E_ALL & ~E_NOTICE);
if(!$include){
echo "nicht innerhalb einer anderen Seite geöffnet!";
exit;
}
/* if($userarray['userid'] != 'kirstaedter' && $userarray['userid'] != 'ziebarth'){
echo "derzeit in wartung";
exit;
} */
//Feiertag-Funktion, abgewandelt vom Kalender
function feiertag($datum){
global $dbc;
$tag = $datum->format('d');
$monat = $datum->format('m');
$jahr = $datum->format('Y');
//abfrage, um mehrere DB Querys zu verhindern
if(empty($feiertage)){
// Feste Feiertage werden nach dem Schema ddmm eingetragen
$feiertage[] = "0101"; // Neujahrstag
$feiertage[] = "0105"; // Tag der Arbeit
$feiertage[] = "0310"; // Tag der Deutschen Einheit
$feiertage[] = "2512"; // Erster Weihnachtstag
$feiertage[] = "2612"; // Zweiter Weihnachtstag
// Bewegliche Feiertage berechnen
$tage = 60 * 60 * 24;
$ostersonntag = easter_date($jahr);
$feiertage[] = date("dm", $ostersonntag - 2 * $tage); // Karfreitag
$feiertage[] = date("dm", $ostersonntag + 1 * $tage); // Ostermontag
$feiertage[] = date("dm", $ostersonntag + 39 * $tage); // Himmelfahrt
$feiertage[] = date("dm", $ostersonntag + 50 * $tage); // Pfingstmontag
//freie Tage FHI aus Datenbank nehmen
$getfree = $dbc->query("select daymon from feiertag where year = $jahr;");
foreach($getfree as $free){
$feiertage[] = $free['daymon'];
}
}
// Prüfen, ob Feiertag
$code = $tag.$monat;
return in_array($code, $feiertage);
}
$heute = new DateTime;
$datum = new DateTime;
$missed_year = $heute->format('Y');
$datum->modify('-30 days');
$datumstr = $datum->format('Y-m-d');
//mitarbeiter zeiten bis 30 tage zurück holen
$getbefore = $dbc->query("select distinct date(datumzeit) as datum, maID from zeit
where date(datumzeit) >= '$datumstr' order by datum, maID;");
foreach($getbefore as $before){
$wasthere[$before['datum']][] = $before['maID'];
}
//print_r($wasthere);
//alle an Gleitzeit teilnehmenden MA holen
$getma = $dbc->query("select * from mitarbeiter where gleitzeit = 1;");
foreach($getma as $ma){
$allma[$ma['maID']] = $ma;
}
//azmodelle holen
$getaz = $dbc->query("select * from az_data_copy az join az_time azt on az.azdID = azt.azdID order by maID, az.azdID desc, datum_ab;");
foreach($getaz as $az){
$allaz[$az['maID']][$az['azdID']][$az['tag']] = $az;
}
//alle kalendereinträge bis 30 tage zurück holen für abgleich auf urlaub
$getkalender = $dbc->query("select maID, datum, zt_op from kalender k
join zeittyp zt on zt.zt_ID = k.typ
where year(datum) = $missed_year
and datum >= $datumstr
order by k_id asc, datum;");
foreach($getkalender as $kalender){
$ereignis[$kalender['maID']][$kalender['datum']] = $kalender['zt_op'];
}
//rückwärts von heute an durch die daten und mitarbeiter gehen und nach fehlenden zeiten suchen
while ($datum < $heute){
$datumstr = $heute->format('Y-m-d');
$wochentag = $heute->format('N');
foreach($allma as $id=>$ma){
$anwesenheit = false;
if(!feiertag($heute)){
foreach($allaz[$id] as $azid=>$maaz){
if(!empty($maaz[$wochentag]['datum_ab']) && $maaz[$wochentag]['datum_ab'] <= $datumstr && $maaz[$wochentag]['wochenarbeit']) $anwesenheit = true;
break;
}
if($anwesenheit && !empty($wasthere[$datumstr]) && !in_array($id, $wasthere[$datumstr]) && $ereignis[$id][$datumstr] == ''){ //alle tage ohne zeiten und ohne kalendereintrag
$abwesend[$datumstr][] = $ma;
}
}
}
$heute->modify('-1 day'); //rückwärts damit die anzeige nachher absteigend sortiert ist
}
foreach($abwesend as $fehldatum=>$fehltag){
$formatiert = new DateTime($fehldatum);
$formatiert = $formatiert->format('d.m.Y');
echo "<tr class='topline'>";
echo "<th>$formatiert</th><th></th>
</tr>";
$switch = false;
foreach($fehltag as $fehl){
$linecolor = $switch ? "line2" : "line1";
$switch = !$switch;
echo "<tr class='$linecolor'><td class='centered'>⟶</td><td><a href='index.php?ma=$fehl[maID]'>$fehl[nachname], $fehl[vorname]</a></td></tr>";
}
echo "</tr>";
}
?>
</table>