<?php /*####################################################### # 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 /////////////////////////////////////////////////////////////////// if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) { $Spalten.= "<a href=\"./../admin/schichtplan.php?action=change&SID=$SID\">edit</a><br>\n\t\t"; } /////////////////////////////////////////////////////////////////// // Ausgabe des Schischtnamens /////////////////////////////////////////////////////////////////// $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` = '$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\t\t"; else $Spalten.= Get_Text("inc_schicht_sind"). ":<br>\n\t\t"; foreach( $TempValue["Engel"] as $TempEngelEntry=> $TempEngelID ) { if( $_SESSION['CVS'][ "admin/user.php" ] == "Y" ) $Spalten.= " <a href=\"./../admin/user.php?enterUID=$TempEngelID&Type=Normal\">"; if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) { if( UIDgekommen( $TempEngelID ) == "1") $Spalten.= " <span style=\"color: blue;\">". UID2Nick( $TempEngelID ). ($_GET["Icon"]==1? DisplayAvatar( $TempEngelID ): ""). "</span><br>\n\t\t"; else $Spalten.= " <span style=\"color: red;\">". UID2Nick( $TempEngelID ). ($_GET["Icon"]==1? DisplayAvatar( $TempEngelID ): ""). "</span><br>\n\t\t"; } else $Spalten.= " ". UID2Nick( $TempEngelID ). ($_GET["Icon"]==1? DisplayAvatar( $TempEngelID ): ""). "<br>\n\t\t"; if( $_SESSION['CVS'][ "admin/user.php" ] == "Y" ) $Spalten.= " </a>"; } $Spalten = substr( $Spalten, 0, strlen($Spalten)-7 ); } // ausgabe benötigter Engel //////////////////////////// //in vergangenheit $SQLtime = "SELECT `DateE` FROM `Shifts` WHERE (`SID`='$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\t\t <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\t\t <h3><a>Fehlen noch: ". $TempValue["free"]. "</a></h3>"; } $Spalten.= "<br>\n\t\t"; } // 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` = '$raum') AND (`DateE` > '$ausdatum 23:59:59') AND ". "(`DateS` < '$ausdatum 00:00:00') ) ORDER BY `DateS`;"; $ErgSonder = mysql_query($SQLSonder, $con); if( (mysql_num_rows( $ErgSonder) > 1) ) { if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) { echo "<h1>". Get_Text("pub_schichtplan_colision"). "</h1> "; echo "<a href=\"./../admin/schichtplan.php?action=change&SID=". mysql_result($ErgSonder, 0, "SID"). "\">". mysql_result($ErgSonder, 0, "DateS"). " '". mysql_result($ErgSonder, 0, "Man")."' (RID $raum) (00-24)". "</a><br>\n\t\t"; } } elseif( (mysql_num_rows( $ErgSonder) == 1) ) { $Spalten[0].= "\t\t<td valign=\"top\" rowspan=\"". (24 * $GlobalZeileProStunde). "\">\n". "\t\t\t<h3>↑↑↑</h3>". Ausgabe_Feld_Inhalt( mysql_result($ErgSonder, 0, "SID"), mysql_result($ErgSonder, 0, "Man") ). "\t\t\t<h3>↓↓↓</h3>". "\n\t\t</td>\n"; return; } $ZeitZeiger = 0; ///////////////////////////////////////////////////////////// // beginnt die erste schicht vor dem heutigen tag? ///////////////////////////////////////////////////////////// $SQLSonder = "SELECT `SID`, `DateS`, `DateE` , `Len`, `Man` FROM `Shifts` ". "WHERE ((`RID` = '$raum') AND (`DateE` > '$ausdatum 00:00:00') AND ". "(`DateS` < '$ausdatum 00:00:00') ) ORDER BY `DateS`;"; $ErgSonder = mysql_query($SQLSonder, $con); if( (mysql_num_rows( $ErgSonder) > 1) ) { if( $_SESSION['CVS'][ "admin/schichtplan.php" ] == "Y" ) { echo "<h1>". Get_Text("pub_schichtplan_colision"). "</h1> "; echo "<a href=\"./../admin/schichtplan.php?action=change&SID=". mysql_result($ErgSonder, 0, "SID"). "\">". mysql_result($ErgSonder, 0, "DateS"). " '". mysql_result($ErgSonder, 0, "Man")."' (RID $raum) (00-xx)". "</a><br>\n\t\t"; } } 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].= "\t\t<td valign=\"top\" rowspan=\"". ($ZeitZeiger * $GlobalZeileProStunde). "\">\n". "\t\t\t<h3>↑↑↑</h3>". Ausgabe_Feld_Inhalt( mysql_result($ErgSonder, 0, "SID"), mysql_result($ErgSonder, 0, "Man") ). "\n\t\t</td>\n"; } ///////////////////////////////////////////////////////////// // gibt die schichten für den tag aus ///////////////////////////////////////////////////////////// $SQL = "SELECT `SID`, `DateS`, `Len`, `Man` FROM `Shifts` ". "WHERE ((`RID` = '$raum') and ". "(`DateS` >= '$ausdatum $ZeitZeiger:00:00') and ". "(`DateS` like '$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].= "\t\t<td valign=\"top\" rowspan=\"". ( ($ZeitPos - $ZeitZeiger ) * $GlobalZeileProStunde ). "\"> </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].= "\t\t<td valign=\"top\" rowspan=\"". ( ( ($len+$ZeitZeiger)? $len : 24-$len+$ZeitZeiger) * $GlobalZeileProStunde). "\">\n". "\t\t\t". Ausgabe_Feld_Inhalt( mysql_result($Erg, $i, "SID"), mysql_result($Erg, $i, "Man") ). (( ($ZeitZeiger+$len) > 24)? "\t\t\t<h3>↓↓↓</h3>" : ""). "\n\t\t</td>\n"; $ZeitZeiger += $len; } else { echo Get_Text("pub_schichtplan_colision"). " ". mysql_result($Erg, $i, "DateS"). " '". mysql_result($Erg, $i, "Man"). "' ". " (". mysql_result($Erg, $i, "SID"). " R$raum) (xx-xx)<br><br>"; } } if( $ZeitZeiger < 24 ) $Spalten[($ZeitZeiger * $GlobalZeileProStunde)].= "\t\t<td valign=\"top\" rowspan=\"". ((24 - $ZeitZeiger) * $GlobalZeileProStunde ). "\"> </td>\n"; } // function CreateRoomShifts /*####################################################### # Ausgabe der freien schichten # #######################################################*/ function showEmptyShifts( ) { global $con, $DEBUG, $RoomID, $gmdateOffset; echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "\t<th>". Get_Text("inc_schicht_date"). "</th>\n"; echo "\t<th>". Get_Text("inc_schicht_time"). "</th>\n"; echo "\t<th>". Get_Text("inc_schicht_room"). "</th>\n"; echo "\t<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 "\t<td>". substr(mysql_result( $Erg, $i, "DateS"), 0, 10). "</td>\n"; echo "\t<td>". substr(mysql_result( $Erg, $i, "DateS"), 11). "</td>\n"; echo "\t<td>". $RoomID[mysql_result( $Erg, $i, "RID")]. "</td>\n"; echo "\t<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` = '$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); } ?>