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
<?php session_start(); ?>
<?php
include('dbconnect.php');
//Feiertag-Funktion
function feiertag($tag, $monat, $jahr){
global $dbc;
//empty um wiederholte DB abfrage 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[] = "2412"; // Weihnachten
$feiertage[] = "2512"; // Erster Weihnachtstag
$feiertage[] = "2612"; // Zweiter Weihnachtstag
$feiertage[] = "3112"; // Neujahr
// 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){
$bruecke[] = $free['daymon'];
}
}
// Prüfen, ob Feiertag
$code = $tag.$monat;
if(in_array($code, $bruecke)){
return 2;
}elseif(in_array($code, $feiertage)){
return 1;
}else{
return 0;
}
}
//unbedingt deutsche Sprache auf Server nachrüsten mit:
//sudo locale-gen de_DE.UTF-8
//sudo update-locale LANG=de_DE.UTF-8
//sudo service apache2 restart
//wortlaut im setlocale() befehl MUSS korrekt sein! (s.u.)
setlocale(LC_TIME, 'de_DE.UTF8');
//session_start();
if(!$_SESSION['userid']){
session_destroy();
include('login.php');
exit;
}
if(!$_SESSION['userarray']['admin'] && $_SESSION['userarray']['maID'] != $_SESSION['infoarray']['maID'] &&
!in_array($_SESSION['infoarray']['agID'], $_SESSION['userarray']['ag_array'])){
echo "<h3>keine Rechte, diese Seite einzusehen!</h3>";
exit;
}
if(isset($_GET['jahr'])){
$jahr = $_GET['jahr'];
}else{
$jahr = new DateTime();
$jahr = $jahr->format('Y');
}
$maID = $_SESSION['infoarray']['maID'];
$name = $_SESSION['infoarray']['nachname'] . ", " . $_SESSION['infoarray']['vorname'];
$getazm = "select * from az_data_copy data where maID = '$maID' order by azdID desc, datum_ab desc;";
$azm = $dbc->query($getazm);
foreach($azm as $az){
$getazt = $dbc->query("select * from az_time where azdID = $az[azdID];");
foreach($getazt as $aztline){
$azt[$aztline['azdID']][$aztline['tag']] = $aztline;
}
}
//print_r($azt);
$getkalender = "select datum, typ, zt_bez, status from kalender k
join zeittyp zt on k.typ = zt.zt_ID
where maID = '$maID' and year(datum) = $jahr order by datum, k_id asc;";
$reskalender = $dbc->query($getkalender);
foreach($reskalender as $kalendereintrag){
$kalender[$kalendereintrag['datum']] = $kalendereintrag;
}
if($_SESSION['userarray']['admin'] && isset($_GET['berechnen'])){
exec("./urlaubrun.php $jahr $maID");
header("Location: kalender.php");
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>timerec | Kalender</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen">
<link rel="stylesheet" type="text/css" href="print.css" media="print">
<link rel="shortcut icon" href="favicon.ico">
</head>
<body>
<?php
echo "<div id='headline'>
<a href='index.php?ma=".$_SESSION['infoarray']['maID']."'><button id='home'><< Menü</button></a>
<div id='back'><a href='kalender.php?jahr=".($jahr-1)."'><button><<<</button></a></div>
Jahreskalender <b>$jahr</b> für $name
<div id='forward'><a href='kalender.php?jahr=".($jahr+1)."'><button>>>></button></a></div>
</div>
<h2 id='ueberschrift' style='display: none'>Jahreskalender <strong>$jahr</strong> für $name</h2>";
echo "<div id='kalender'>";
echo "<table>";
echo "<tr>";
echo "<th>&nbsp</th>";
for($i = 1; $i <= 31; $i++){ //Kopfzeile Tage nummerieren
echo "<th>$i</th>";
}
echo "</tr>";
$genehmigt = 0; //genehmigte Tage zählen
for($m = 1; $m <= 12; $m++){ //vertikale Achse: Monatsweise Zeilen erzeugen
echo "<tr>";
$date = new DateTime("$jahr-$m-01");
$monat = strftime('%B', $date->getTimestamp());
if($m < 10) $m = "0$m"; //<10 zweistellig machen
echo "<th>$monat</th>";
for($t = 1; $t <= 31; $t++){ //pro Monat 31 Tage auflisten
if($t < 10) $t = "0$t"; //<10 zweistellig machen
$datestring = "$jahr-$m-$t";
$date = new DateTime($datestring);
$heute = new DateTime();
$heute = $heute->format('Y-m-d');
if($heute == $datestring){
$highlight = 'highlight';
}else{
$highlight = '';
}
$wochentag = $date->format('N');
if(!checkdate($m, $t, $jahr)){ //Nicht vorhandene Tage werden blau
$dark = "dark";
}else{
$dark = "";
}
foreach($azm as $az){ //AZ-Modelle des MA durchlaufen und für dieses Datum geltendes verwenden
$az_ab = new DateTime($az['datum_ab']);
if($az_ab <= $date){
break;
}else{
$az = NULL;
}
}
$feiertag = feiertag($t, $m, $jahr);
//Debug:
//echo "<script>console.log('tag: $t.$m.$jahr -- $feiertag');</script>";
if(!isset($azt[$az['azdID']][$wochentag])){ //arbeitsfreie Tage werden grau / rot
$disabled = 'disabled';
$bruecke = false;
}elseif($feiertag){
$disabled = 'disabled';
if($feiertag == 2){
$data = "B";
$bruecke = true;
}else{
$bruecke = false;
}
}else{
$disabled = "";
$bruecke = false;
}
if(in_array($datestring, array_keys($kalender))){ //Eintrag zu aktuellem Tag vorhanden?
//erweiterbar
$data = mb_substr($kalender[$datestring]["zt_bez"], 0,1, "UTF-8");
switch($kalender[$datestring]["status"]){
case "genehmigt":
$farbe = "green";
if($kalender[$datestring]["typ"] == 10) $genehmigt++; //genehmigte Tage zählen //nur bei Urlaub zählen, nicht bei Gleittag!
break;
case "geprüft":
$farbe = "light-green";
break;
case "abgelehnt":
$farbe = "red";
break;
case "beantragt":
$farbe = "yellow";
break;
default:
$farbe = "";
}
}elseif(!$bruecke){
$data = "";
$farbe = "";
}
//eigentliche Zelle wird hier erst geschrieben
echo "<td class='cell $farbe $dark $disabled $highlight'><a class='hiddenlink' href='buchen.php?datum=$datestring'>&nbsp&nbsp$data&nbsp&nbsp</a></td>";
}
echo "</tr>";
}
echo "</table>";
$geturlaub = $dbc->query("select tage from urlaub where maID = $maID and jahr = $jahr;");
$anspruch = $geturlaub->fetch_array()[0];
$verbleibend = $anspruch - $genehmigt;
echo "<span class='abstand_oben'>Urlaub gesamt: <strong>$anspruch</strong></span><br>";
echo "<span class='abstand_oben'>Urlaub genehmigt: <strong>$genehmigt</strong></span><br>";
echo "<span class='abstand_oben'>Urlaub verbleibend: <strong>$verbleibend</strong></span>";
if($_SESSION['userarray']['admin']){
echo "<br><br><form id='neuladen' action='' method='get'><button name='berechnen' value='true'>Übertrag neu berechnen</button></form><br>";
}
echo "<div id='legende'>
<h3>Legende</h3>
<span class='green'>&nbsp</span> ---> genehmigt
<span class='light-green'>&nbsp</span> ---> geprüft
<span class='yellow'>&nbsp</span> ---> beantragt
<span class='red'>&nbsp</span> ---> abgelehnt
<span class='disabled'>&nbsp</span> ---> arbeitsfreier Tag
<span class='dark'>&nbsp</span> ---> Tag existiert nicht
</div>
</div>";
?>
</body> </html>