summaryrefslogtreecommitdiff
path: root/includes/sys_shift.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/sys_shift.php')
-rw-r--r--includes/sys_shift.php454
1 files changed, 0 insertions, 454 deletions
diff --git a/includes/sys_shift.php b/includes/sys_shift.php
deleted file mode 100644
index 728e7a83..00000000
--- a/includes/sys_shift.php
+++ /dev/null
@@ -1,454 +0,0 @@
-<?php
-
-
-/**
- * Shiftlänge ausrechnen, kommt im Format 12:23h zurück
- */
-function shift_length($shift) {
- $length = round(($shift['end'] - $shift['start']) / (60 * 60), 0) . ":";
- $length .= str_pad((($shift['end'] - $shift['start']) % (60 * 60)) / 60, 2, "0", STR_PAD_LEFT) . "h";
- return $length;
-}
-
-function load_shift_basics() {
- global $VeranstaltungsTageMax, $Room, $RoomID, $EngelType, $EngelTypeID, $TID2Name, $Veranstaltungstage;
-
- // erstellt ein Array der Räume
- $rooms = sql_select("SELECT `RID`, `Name` FROM `Room` WHERE `Show`='Y' ORDER BY `Number`, `Name`");
- foreach ($rooms as $i => $r) {
- $Room[$i] = array (
- 'RID' => $r['RID'],
- 'Name' => $r['Name']
- );
- $RoomID[$r['RID']] = $r['Name'];
- }
-
- // erstellt ein Array der Engeltypen
- $engel_types = sql_select("SELECT * FROM `EngelType` ORDER BY `name`");
- foreach ($engel_types as $engel_type) {
- $EngelType[$i] = array (
- 'id' => $engel_type['id'],
- 'name' => $engel_type['name'] . Get_Text("inc_schicht_engel")
- );
- $EngelTypeID[$engel_type['id']] = $engel_type['name'] . Get_Text("inc_schicht_engel");
- $TID2Name[$engel_type['id']] = $engel_type['name'];
- }
-
- // Erste Schicht suchen
- $Pos = 0;
- $first_shift = sql_select("SELECT `DateS` FROM `Shifts` ORDER BY `DateS` LIMIT 1");
- if (count($first_shift) > 0) {
- do {
- // Startdatum einlesen und link ausgeben
- $DateS = substr($first_shift[0]['DateS'], 0, 10);
- $VeranstaltungsTage[$Pos++] = $DateS;
-
- // auslesen den endes und eventuelle weitere tage ausgeben
- $last_shift = sql_select("SELECT MAX(`DateE`) FROM `Shifts` WHERE ( (`DateS` like '" . sql_escape($DateS) . "%') AND NOT (`DateE` like '%00:00:00'))");
- $DateE = substr($last_shift[0]['DateE'], 0, 10);
-
- if (strlen($DateE) == 0)
- $DateE = $DateS;
- else
- while ($DateS != $DateE) {
- $DateS = DatumUm1TagErhoehen($DateS);
- $VeranstaltungsTage[$Pos++] = $DateS;
- }
-
- // suchen den nächsten eintrag
- $first_shift = sql_select("SELECT `DateS` FROM `Shifts` " . "WHERE (`DateS` > '" . sql_escape($DateE) . " 23:59:59' ) " . "ORDER BY `DateS` " . "LIMIT 1");
- } while (count($first_shift) > 0);
- }
-
- $VeranstaltungsTageMax = $Pos -1;
-}
-
-/*#######################################################
-# gibt die engelschischten aus #
-#######################################################*/
-function ausgabe_Feld_Inhalt($SID, $Man) {
- // gibt, nach �bergabe der der SchichtID (SID) und der RaumBeschreibung,
- // die eingetragenden und und offenden Schichteint�ge zur�ck
- global $EngelType, $EngelTypeID, $TID2Name, $con, $debug, $gmdateOffset;
-
- $Spalten = "";
-
- if (!isset ($_GET["Icon"]))
- $_GET["Icon"] = 1;
-
- ///////////////////////////////////////////////////////////////////
- // Schow Admin Page
- ///////////////////////////////////////////////////////////////////
- $Spalten .= funktion_isLinkAllowed_addLink_OrEmpty("admin/schichtplan.php?action=change&SID=$SID", "edit<br />\n");
-
- ///////////////////////////////////////////////////////////////////
- // Ausgabe des Schichtnamens
- ///////////////////////////////////////////////////////////////////
- $SQL = "SELECT `URL` FROM `Shifts` WHERE (`SID` = '$SID');";
- $Erg = mysql_query($SQL, $con);
- if (mysql_result($Erg, 0, 0) != "")
- $Spalten .= "<a href=\"" . mysql_result($Erg, 0, 0) . "\" target=\"_black\"><u>$Man:</u></a><br />";
- else
- $Spalten .= "<u>" .
- $Man . ":</u><br />";
-
- ///////////////////////////////////////////////////////////////////
- // SQL abfrage f�r die ben�tigten schichten
- ///////////////////////////////////////////////////////////////////
- $SQL = "SELECT * FROM `ShiftEntry` WHERE (`SID` = '" . sql_escape($SID) . "') ORDER BY `TID`, `UID` DESC ;";
- $Erg = mysql_query($SQL, $con);
-
- $Anzahl = mysql_num_rows($Erg);
- $Feld = 0;
- $Temp_TID_old = -1;
- for ($i = 0; $i < $Anzahl; $i++) {
- if (isset ($Temp[$Feld]["TID"]))
- $Temp_TID_old = $Temp[$Feld]["TID"];
- if (isset ($Temp[$Feld]["UID"]))
- $Temp_UID_old = $Temp[$Feld]["UID"];
-
- $Temp_TID = mysql_result($Erg, $i, "TID");
-
- // wenn sich der Type �ndert wird zumn�sten feld geweckselt
- if ($Temp_TID_old != $Temp_TID)
- $Feld++;
-
- $Temp[$Feld]["TID"] = $Temp_TID;
- $Temp[$Feld]["UID"] = mysql_result($Erg, $i, "UID");
-
- // sonderfall ersten durchlauf
- if ($i == 0) {
- $Temp_TID_old = $Temp[$Feld]["TID"];
- $Temp_UID_old = $Temp[$Feld]["UID"];
- }
-
- // ist es eine zu vergeben schicht?
- if ($Temp[$Feld]["UID"] == 0) {
- if (isset ($Temp[$Feld]["free"]))
- $Temp[$Feld]["free"]++;
- else
- $Temp[$Feld]["free"] = 1;
- } else
- $Temp[$Feld]["Engel"][] = $Temp[$Feld]["UID"];
- } // FOR
-
- ///////////////////////////////////////////////////////////////////
- // Aus gabe der Schicht
- ///////////////////////////////////////////////////////////////////
- if (isset ($Temp))
- if (count($Temp))
- foreach ($Temp as $TempEntry => $TempValue) {
- if (!isset ($TempValue["free"]))
- $TempValue["free"] = 0;
-
- // ausgabe EngelType
- $Spalten .= $EngelTypeID[$TempValue["TID"]] . " ";
-
- // ausgabe Eingetragener Engel
- if (isset ($TempValue["Engel"]))
- if (count($TempValue["Engel"]) > 0) {
- if (count($TempValue["Engel"]) == 1)
- $Spalten .= Get_Text("inc_schicht_ist") . ":<br />\n";
- else
- $Spalten .= Get_Text("inc_schicht_sind") . ":<br />\n";
-
- foreach ($TempValue["Engel"] as $TempEngelEntry => $TempEngelID) {
- if (funktion_isLinkAllowed("admin/user.php") === TRUE) {
- // add color, wenn Engel "Gekommen"
- $TempText = ((UIDgekommen($TempEngelID) == "1") ? "<span style=\"color: blue;\">" : "<span style=\"color: red;\">") .
- UID2Nick($TempEngelID) . "</span>";
- } else {
- $TempText = UID2Nick($TempEngelID);
- }
-
- // add link to user
- $TempText = funktion_isLinkAllowed_addLink_OrLinkText("admin/userChangeNormal.php?enterUID=$TempEngelID&Type=Normal", $TempText);
-
- $Spalten .= "&nbsp;&nbsp;" . $TempText .
- (($_GET["Icon"] == 1) ? DisplayAvatar($TempEngelID) : "") .
- "<br />\n";
-
- }
- $Spalten = substr($Spalten, 0, strlen($Spalten) - 7);
- }
-
- // ausgabe ben�tigter Engel
- ////////////////////////////
- //in vergangenheit
- $SQLtime = "SELECT `DateE` FROM `Shifts` WHERE (`SID`='" . sql_escape($SID) . "' AND `DateE` >= '" .
- gmdate("Y-m-d H:i:s", time() + $gmdateOffset) . "')";
- $Ergtime = mysql_query($SQLtime, $con);
- if (mysql_num_rows($Ergtime) > 0) {
- //wenn keien rechte definiert sind
- if (!isset ($_SESSION['CVS'][$TID2Name[$TempValue["TID"]]]))
- $_SESSION['CVS'][$TID2Name[$TempValue["TID"]]] = "Y";
-
- if ($_SESSION['CVS'][$TID2Name[$TempValue["TID"]]] == "Y")
- if ($TempValue["free"] > 0) {
- $Spalten .= "<br />\n&nbsp;&nbsp;<a href=\"./schichtplan_add.php?SID=$SID&TID=" .
- $TempValue["TID"] . "\">";
- $Spalten .= $TempValue["free"];
- if ($TempValue["free"] != 1)
- $Spalten .= Get_Text("inc_schicht_weitere") .
- " " . Get_Text("inc_schicht_Engel") .
- Get_Text("inc_schicht_wird");
- else
- $Spalten .= Get_Text("inc_schicht_weiterer") .
- " " . Get_Text("inc_schicht_Engel") .
- Get_Text("inc_schicht_werden");
- $Spalten .= Get_Text("inc_schicht_noch_gesucht");
- $Spalten .= "</a>";
- }
- } else {
- if (isset ($TempValue["free"]))
- if ($TempValue["free"] > 0)
- $Spalten .= "<br />\n&nbsp;&nbsp;<h3><a>Fehlen noch: " .
- $TempValue["free"] . "</a></h3>";
- }
- $Spalten .= "<br />\n";
-
- } // FOREACH
- return $Spalten;
-} // function Ausgabe_Feld_Inhalt
-
-/*#######################################################
-# gibt die engelschischten Druckergerecht aus #
-#######################################################*/
-function Ausgabe_Feld_Inhalt_Druck($RID, $Man) {
- // gibt, nach �bergabe der der SchichtID (SID) und der RaumBeschreibung,
- // die eingetragenden und und offenden Schichteint�ge zur�ck
-
-} // function Ausgabe_Feld_Inhalt
-
-/*#######################################################
-# Ausgabe der Raum Spalten #
-#######################################################*/
-function CreateRoomShifts($raum) {
- global $Spalten, $ausdatum, $con, $debug, $GlobalZeileProStunde, $error_messages;
-
- /////////////////////////////////////////////////////////////
- // beginnt die erste schicht vor dem heutigen tag und geht dar�ber hinaus
- /////////////////////////////////////////////////////////////
- $SQLSonder = "SELECT `SID`, `DateS`, `DateE` , `Len`, `Man` FROM `Shifts` " .
- "WHERE ((`RID` = '" . sql_escape($raum) . "') AND (`DateE` > '$ausdatum 23:59:59') AND " .
- "(`DateS` < '" . sql_escape($ausdatum) . " 00:00:00') ) ORDER BY `DateS`;";
- $ErgSonder = mysql_query($SQLSonder, $con);
- if ((mysql_num_rows($ErgSonder) > 1)) {
- if (funktion_isLinkAllowed("admin/schichtplan.php") === TRUE) {
- echo "<h1>" . Get_Text("pub_schichtplan_colision") . "</h1> ";
- for ($i = 0; $i < mysql_num_rows($ErgSonder); $i++) {
- echo "<a href=\"./../admin/schichtplan.php?action=change&SID=" .
- mysql_result($ErgSonder, $i, "SID") . "\">" .
- mysql_result($ErgSonder, $i, "DateS") .
- " '" . mysql_result($ErgSonder, $i, "Man") . "' (RID $raum) (00-24)" .
- "</a><br />\n";
- }
- }
- }
- elseif ((mysql_num_rows($ErgSonder) == 1)) {
- $Spalten[0] .= "<td valign=\"top\" rowspan=\"" . (24 * $GlobalZeileProStunde) . "\">\n" .
- "<h3>&uarr;&uarr;&uarr;</h3>" .
- Ausgabe_Feld_Inhalt(mysql_result($ErgSonder, 0, "SID"), mysql_result($ErgSonder, 0, "Man")) .
- "<h3>&darr;&darr;&darr;</h3>" .
- "\n</td>\n";
- return;
- }
-
- $ZeitZeiger = 0;
-
- /////////////////////////////////////////////////////////////
- // beginnt die erste schicht vor dem heutigen tag?
- /////////////////////////////////////////////////////////////
- $SQLSonder = "SELECT `SID`, `DateS`, `DateE` , `Len`, `Man` FROM `Shifts` " .
- "WHERE ((`RID` = '" . sql_escape($raum) . "') AND (`DateE` > '" . sql_escape($ausdatum) . " 00:00:00') AND " .
- "(`DateS` < '" . sql_escape($ausdatum) . " 00:00:00') ) ORDER BY `DateS`;";
-
- $ErgSonder = mysql_query($SQLSonder, $con);
- if ((mysql_num_rows($ErgSonder) > 1)) {
- if (funktion_isLinkAllowed("admin/schichtplan.php") === TRUE) {
- echo "<h1>" . Get_Text("pub_schichtplan_colision") . "</h1> ";
- for ($i = 0; $i < mysql_num_rows($ErgSonder); $i++) {
- echo "<a href=\"./../admin/schichtplan.php?action=change&SID=" .
- mysql_result($ErgSonder, $i, "SID") . "\">" .
- mysql_result($ErgSonder, $i, "DateS") .
- " '" . mysql_result($ErgSonder, $i, "Man") . "' (RID $raum) (00-xx)" .
- "</a><br />\n";
- }
- }
- }
- elseif ((mysql_num_rows($ErgSonder) == 1)) {
- $ZeitZeiger = substr(mysql_result($ErgSonder, 0, "DateE"), 11, 2) + (substr(mysql_result($ErgSonder, 0, "DateE"), 14, 2) / 60);
- $Spalten[0] .= "<td valign=\"top\" rowspan=\"" . ($ZeitZeiger * $GlobalZeileProStunde) . "\">\n" .
- "<h3>&uarr;&uarr;&uarr;</h3>" .
- Ausgabe_Feld_Inhalt(mysql_result($ErgSonder, 0, "SID"), mysql_result($ErgSonder, 0, "Man")) .
- "\n</td>\n";
- }
-
- /////////////////////////////////////////////////////////////
- // gibt die schichten f�r den tag aus
- /////////////////////////////////////////////////////////////
- $SQL = "SELECT `SID`, `DateS`, `Len`, `Man` FROM `Shifts` " .
- "WHERE ((`RID` = '" . sql_escape($raum) . "') and " .
- "(`DateS` >= '" . sql_escape($ausdatum) . ' ' . sql_escape($ZeitZeiger) . ":00:00') and " .
- "(`DateS` like '" . sql_escape($ausdatum) . "%')) ORDER BY `DateS`;";
- $Erg = mysql_query($SQL, $con);
- for ($i = 0; $i < mysql_num_rows($Erg); ++ $i) {
- $ZeitPos = substr(mysql_result($Erg, $i, "DateS"), 11, 2) + (substr(mysql_result($Erg, $i, "DateS"), 14, 2) / 60);
- $len = mysql_result($Erg, $i, "Len");
-
- if ($len <= 0)
- array_push($error_messages, "Error in shift denition SID=" . mysql_result($Erg, $i, "SID") . " Len=$len");
-
- if ($ZeitZeiger < $ZeitPos) {
- $Spalten[$ZeitZeiger * $GlobalZeileProStunde] .= "<td valign=\"top\" rowspan=\"" . (($ZeitPos - $ZeitZeiger) * $GlobalZeileProStunde) . "\">&nbsp;</td>\n";
-
- $ZeitZeiger += $ZeitPos - $ZeitZeiger;
- }
- if ($ZeitZeiger == $ZeitPos) {
- //sonderfall wenn die schicht �ber dei 24 stunden hinaus geht
- // (eintrag abk�rzen, pfeiel ausgeben)
- $Spalten[$ZeitZeiger * $GlobalZeileProStunde] .= "<td valign=\"top\" rowspan=\"" .
- ((($len + $ZeitZeiger) ? $len : 24 - $len + $ZeitZeiger) * $GlobalZeileProStunde) .
- "\">\n" .
- "" .
- Ausgabe_Feld_Inhalt(mysql_result($Erg, $i, "SID"), mysql_result($Erg, $i, "Man")) .
- ((($ZeitZeiger + $len) > 24) ? "<h3>&darr;&darr;&darr;</h3>" : "") .
- "\n</td>\n";
- $ZeitZeiger += $len;
- } else {
- echo "<h1>" . Get_Text("pub_schichtplan_colision") . "</h1> ";
- echo "<a href=\"./../admin/schichtplan.php?action=change&SID=" .
- mysql_result($Erg, $i, "SID") . "\">" .
- mysql_result($Erg, $i, "DateS") .
- " '" . mysql_result($Erg, $i, "Man") . "' " .
- " (" . mysql_result($Erg, $i, "SID") . " R$raum) (xx-xx)</a><br /><br />";
- }
- }
- if ($ZeitZeiger < 24)
- $Spalten[($ZeitZeiger * $GlobalZeileProStunde)] .= "<td valign=\"top\" rowspan=\"" .
- ((24 - $ZeitZeiger) * $GlobalZeileProStunde) .
- "\">&nbsp;</td>\n";
-} // function CreateRoomShifts
-
-/*#######################################################
-# Ausgabe der freien schichten #
-#######################################################*/
-function showEmptyShifts() {
- global $con, $debug, $RoomID, $gmdateOffset;
-
- echo "<table border=\"1\">\n";
- echo "<tr>\n";
- echo "<th>" . Get_Text("inc_schicht_date") . "</th>\n";
- echo "<th>" . Get_Text("inc_schicht_time") . "</th>\n";
- echo "<th>" . Get_Text("inc_schicht_room") . "</th>\n";
- echo "<th>" . Get_Text("inc_schicht_commend") . "</th>\n";
- echo "</tr>\n";
-
- $sql = "SELECT `SID`, `DateS`, `Man`, `RID` FROM `Shifts` " .
- "WHERE (`Shifts`.`DateS`>='" . gmdate("Y-m-d H:i:s", time() + $gmdateOffset) . "') " .
- "ORDER BY `DateS`, `RID`;";
- $Erg = mysql_query($sql, $con);
-
- $angezeigt = 0;
- for ($i = 0;($i < mysql_num_rows($Erg)) && ($angezeigt < 15); $i++)
- if (isset ($RoomID[mysql_result($Erg, $i, "RID")]))
- if ($RoomID[mysql_result($Erg, $i, "RID")] != "") {
- $Sql2 = "SELECT `UID` FROM `ShiftEntry` " .
- "WHERE `SID`=" . mysql_result($Erg, $i, "SID") . " AND " .
- "`UID`='0';";
- $Erg2 = mysql_query($Sql2, $con);
-
- if (mysql_num_rows($Erg2) > 0) {
- $angezeigt++;
- echo "<tr>\n";
- echo "<td>" . substr(mysql_result($Erg, $i, "DateS"), 0, 10) . "</td>\n";
- echo "<td>" . substr(mysql_result($Erg, $i, "DateS"), 11) . "</td>\n";
- echo "<td>" . $RoomID[mysql_result($Erg, $i, "RID")] . "</td>\n";
- echo "<td>" .
- ausgabe_Feld_Inhalt(mysql_result($Erg, $i, "SID"), mysql_result($Erg, $i, "Man")) .
- "</td>\n";
- echo "</tr>\n";
- }
- }
-
- echo "</table>\n";
-
-} //function showEmptyShifts
-
-/*#######################################################
-# Gibt die anzahl der Schichten im Raum zur�ck #
-#######################################################*/
-function SummRoomShifts($raum) {
- global $ausdatum, $con, $debug, $GlobalZeileProStunde;
-
- $SQLSonder = "SELECT `SID`, `DateS`, `Len`, `Man` FROM `Shifts` " .
- "WHERE ((`RID` = '" . sql_escape($raum) . "') AND (`DateE` >= '$ausdatum 00:00:00') AND " .
- "(`DateS` <= '$ausdatum 23:59:59') ) ORDER BY `DateS`;";
-
- $ErgSonder = mysql_query($SQLSonder, $con);
-
- return mysql_num_rows($ErgSonder);
-}
-
-function DatumUm1TagErhoehen($Datum) {
- $Jahr = substr($Datum, 0, 4);
- $Monat = substr($Datum, 5, 2);
- $Tag = substr($Datum, 8, 2);
-
- $Tag++;
-
- switch ($Monat) {
- case 1 :
- $Mmax = 31;
- break;
- case 2 :
- $Mmax = 28;
- break;
- case 3 :
- $Mmax = 31;
- break;
- case 4 :
- $Mmax = 30;
- break;
- case 5 :
- $Mmax = 31;
- break;
- case 6 :
- $Mmax = 30;
- break;
- case 7 :
- $Mmax = 31;
- break;
- case 8 :
- $Mmax = 31;
- break;
- case 9 :
- $Mmax = 30;
- break;
- case 10 :
- $Mmax = 31;
- break;
- case 11 :
- $Mmax = 30;
- break;
- case 12 :
- $Mmax = 31;
- break;
- }
-
- if ($Tag > $Mmax) {
- $Tag = 1;
- $Monat++;
- }
-
- if ($Monat > 12) {
- $Monat = 1;
- $Jahr++;
- }
-
- $Tag = strlen($Tag) == 1 ? "0" . $Tag : $Tag;
- $Monat = strlen($Monat) == 1 ? "0" . $Monat : $Monat;
-
- return ("$Jahr-$Monat-$Tag");
-}
-?>