<?php $title = "Schicht Hinzufügen"; $header = "Neue Schichten erfassen"; include ("./inc/header.php"); include ("./inc/funktion_user.php"); echo "Hallo ".$_SESSION['Nick'].",<br>\n"; // erstellt ein Array der Reume $sql = "SELECT `RID`, `Name` FROM `Room` ORDER BY `Name`"; $Erg = mysql_query($sql, $con); $rowcount = mysql_num_rows($Erg); for ($i=0; $i<$rowcount; $i++) { $Room[$i]["RID"] = mysql_result($Erg, $i, "RID"); $Room[$i]["Name"] = mysql_result($Erg, $i, "Name"); } // erstellt ein Aray der Engeltypen $sql = "SELECT `TID`, `Name` FROM `EngelType` ORDER BY `Name`"; $Erg = mysql_query($sql, $con); $rowcount = mysql_num_rows($Erg); for ($i=0; $i<$rowcount; $i++) { $EngelType[$i]["TID"] = mysql_result($Erg, $i, "TID"); $EngelType[$i]["Name"] = mysql_result($Erg, $i, "Name").Get_Text("inc_schicht_engel"); } if (!IsSet($_GET["action"])) $_GET["action"] = "new"; $Time = time()+3600+3600; switch( $_GET["action"]) { case 'new': ?> Hier kannst du neue Schichten eintragen. Dazu musst du den Anfang und das Ende der Schichten eintragen. Über die Länge der Schichten errechnet sich dadurch die Anzahl dieser. Dadurch können gleich mehrere Schichten auf einmal erfasst werden: <form action="<? echo $_SERVER['SCRIPT_NAME']; ?>" > <table> <tr> <td align="right">Name:</td> <td><input type="text" name="SchichtName" size="50" value="--???--"></td> </tr> <tr> <td align="right">Ort:</td> <td><select name="RID"> <? foreach ($Room As $RTemp) echo "\t<option value=\"". $RTemp["RID"]. "\">". $RTemp["Name"]. "</option>\n"; ?> </select></td> </tr> <tr><td><u>Zeit:</u></td></tr> <tr> <td align="right">Month.Jahr:</td> <td><input type="ext" name="MonthJahr" size="7" value="<?echo gmdate("Y-m", $Time)?>"></td> </tr> <tr> <td align="right">Beginn:</td> <td>Date<input type="text" name="SDatum" size="5" value="<?echo gmdate("d", $Time)?>"> Time<input type="text" name="STime" size="5" value="10"></td> </tr> <tr> <td align="right">More then One</td> <td><input type="checkbox" name="MoreThenOne" value="ON" checked></td> </tr> <tr> <td align="right">End:</td> <td>Date<input type="text" name="EDatum" size="5" value="<?echo gmdate("d", $Time)?>"> Time<input type="text" name="ETime" size="5" value="12"></td> </tr> <tr> <td align="right">Länge in h:</td> <td><input type="text" name="len" size="5" value="2"></td> </tr> <tr> <td align="right">Sonderschichten ein:</td> <td><input type="checkbox" name="NachtON" value="ON"></td> </tr> <tr> <td align="right">Sonder in h (Time;Time):</td> <td><input type="text" name="len_night" size="50" value="0;4;8;10;12;14;16;18;20;22;24"></td> </tr> <tr><td><u>Anzahl Engel je Type:</u></td></tr> <? foreach ($EngelType As $TTemp) { echo " <tr><td align=\"right\">". $TTemp["Name"]. ":</td>\n"; echo " <td><input type=\"text\" name=\"EngelType". $TTemp["TID"]. "\" size=\"5\" value=\"0\"></td>\n"; } ?> </table> <br> <input type="hidden" name="OnlyShow" value="ON"> <input type="hidden" name="action" value="newsave"> <input type="submit" value="zeig mal Gabriel!"> </form> <? break; // Ende new case 'newsave': if (isset($_GET["SDatum"]) && ($_GET["len"] > 0)) { $lenOrg = $_GET["len"]; if( !isset($_GET["NachtON"])) $_GET["NachtON"] = "OFF"; if( $_GET["NachtON"] == "ON" ) { $lenArrayDummy = explode( ";", $_GET["len_night"]); foreach ( $lenArrayDummy as $Temp ) { if( isset($Temp2) ) { $lenArray[$Temp2] = $Temp-$Temp2; } $Temp2 = $Temp; }//foreach }//IF( $NachtON == "ON" ) echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "\t<td valign=\"top\" align=\"center\">Start</td>\n"; echo "\t<td valign=\"top\" align=\"center\">End</td>\n"; echo "\t<td valign=\"top\" align=\"center\">len</td>\n"; echo "\t<td valign=\"top\" align=\"center\">RID</td>\n"; echo "\t<td valign=\"top\" align=\"center\">Beschreibung</td>\n"; echo "\t<td valign=\"top\" align=\"center\">Entry 'Shifts'</td>\n"; echo "\t<td valign=\"top\" align=\"center\">SID</td>\n"; echo "\t<td valign=\"top\" align=\"center\">Entrys</td>\n"; echo "</tr>\n"; $DateEnd = $_GET["SDatum"]; $TimeEnd = $_GET["STime"]; $len=0; do { // define Start time $Date = $DateEnd; $Time = $TimeEnd; $_DateS = $_GET["MonthJahr"]. "-". $Date. " ". $Time. ":00:00"; // define End time if( $_GET["NachtON"] == "ON" ) { $_GET["len"] = $lenArray[$Time]; } $TimeEnd = $Time+ $_GET["len"]; //Tagesüberschreitung while( $TimeEnd >= 24 ) { $TimeEnd -= 24; $DateEnd += 1; } //ist schischt zu lang dan verkürzen if( $DateEnd > $_GET["EDatum"] || ($DateEnd == $_GET["EDatum"] && $TimeEnd >= $_GET["ETime"]) ) { $_GET["len"] -= ($DateEnd- $_GET["EDatum"])*24; $_GET["len"] -= ($TimeEnd- $_GET["ETime"]); // -(-) ->> + $DateEnd = $_GET["EDatum"]; $TimeEnd = $_GET["ETime"]; } $_DateE = $_GET["MonthJahr"]. "-". $DateEnd. " ". $TimeEnd. ":00:00"; if( $_DateS != $_DateE ) CreateNewEntry(); if( $_GET["MoreThenOne"]!="ON" ) break; if( $DateEnd == $_GET["EDatum"] && $TimeEnd >= $_GET["ETime"] ) break; } while( true ); echo "</table>"; if( $_GET["OnlyShow"]=="ON" ) { echo "<form action=\"". $_SERVER['SCRIPT_NAME']. "\">"; echo "\n\t<Input type=\"hidden\" name=\"SchichtName\" value=\"". $_GET["SchichtName"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"MonthJahr\" value=\"". $_GET["MonthJahr"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"SDatum\" value=\"". $_GET["SDatum"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"STime\" value=\"". $_GET["STime"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"MoreThenOne\" value=\"". $_GET["MoreThenOne"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"EDatum\" value=\"". $_GET["EDatum"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"ETime\" value=\"". $_GET["ETime"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"len\" value=\"". $lenOrg. "\">"; echo "\n\t<input type=\"hidden\" name=\"RID\" value=\"". $_GET["RID"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"NachtON\" value=\"". $_GET["NachtON"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"len_night\" value=\"". $_GET["len_night"]. "\">"; echo "\n\t<input type=\"hidden\" name=\"OnlyShow\" value=\"OFF\">"; foreach ($EngelType As $TTemp) { $Temp = "EngelType".$TTemp["TID"]; echo "\n\t<input type=\"hidden\" name=\"". $Temp. "\" value=\"". $_GET[$Temp]. "\">"; } echo "\n\t<input type=\"hidden\" name=\"action\" value=\"newsave\">"; echo "\n\t<input type=\"submit\" value=\"mach mal Gabriel!\">"; echo "\n</form>"; } //if } //IF break; case 'engeldel': break; } // end switch function CreateNewEntry() { global $con, $_DateS, $_DateE, $EngelType, $DEBUG; foreach ($EngelType As $TTemp) { $Temp = "EngelType".$TTemp["TID"]; global $$Temp; } echo "<tr>\n"; echo "\t<td>$_DateS</td>\n"; echo "\t<td>$_DateE</td>\n"; echo "\t<td>". $_GET["len"]. "</td>\n"; echo "\t<td>". $_GET["RID"]. "</td>\n"; echo "\t<td>". $_GET["SchichtName"]. "</td>\n"; // Ist eintarg schon vorhanden? $SQL = "SELECT SID FROM `Shifts` "; $SQL .= "WHERE (". "`DateS` = '". $_DateS. "' AND ". "`DateE` = '". $_DateE. "' AND ". "`RID` = '". $_GET["RID"]. "');"; $Erg = mysql_query($SQL, $con); if( mysql_num_rows($Erg) != 0 ) echo "\t<td>exists</td>"; elseif( $_GET["OnlyShow"] == "OFF" ) { //Suchet nach letzter SID $SQLin = "SELECT `SID` FROM `Shifts` ". "WHERE NOT (`FromPentabarf` = 'Y') ". "ORDER BY `SID` DESC"; $Ergin = mysql_query($SQLin, $con); if( mysql_num_rows( $Ergin) > 0) $newSID = mysql_result( $Ergin, 0, 0)+1; else $newSID = 10000; // erstellt Eintrag in Shifts für die algemeine schicht $SQL = "INSERT INTO `Shifts` (`SID`, `DateS`, `DateE`, `Len`, `RID`, `Man`) VALUES ('$newSID', "; $SQL .= "'". $_DateS. "', '". $_DateE. "', "; $SQL .= "'". $_GET["len"]. "', '". $_GET["RID"]. "', "; $SQL .= "'". $_GET["SchichtName"]. "');"; $Erg = mysql_query($SQL, $con); $SQLFail = "\n\t<br>[".$SQL. "]"; if ($Erg == 1) echo "\t<td>pass</td>\n"; else echo "\t<td>fail <br>\n<u>". mysql_error($con). "</u>$SQLFail</td>\n"; } else echo "\t<td>only show</td>\n"; // sucht SID von eingetragennen schiten $SQL = "SELECT SID FROM `Shifts` "; $SQL .= "WHERE (". "`DateS` = '". $_DateS. "' AND ". "`DateE` = '". $_DateE. "' AND ". "`Len` = '". $_GET["len"]. "' AND ". "`RID` = '". $_GET["RID"]. "');"; $Erg = mysql_query($SQL, $con); if( mysql_num_rows($Erg) == 0 ) echo "\t<td>?</td>"; else { $SID = mysql_result($Erg, 0, "SID"); echo "\t<td>". $SID. "</td>"; } // erstellt für jeden Engeltypen die eintrage in 'ShiftEntry' echo "\t<td>"; foreach ($EngelType As $TTemp) { $Temp = "EngelType".$TTemp["TID"]; if( $_GET[$Temp] > 0 ) { $i = 0; echo $_GET[$Temp]. " ".$TTemp["Name"]. "<br>\t"; while( $i++ < $_GET[$Temp] ) { if( $_GET["OnlyShow"] == "OFF" ) { $SQL = "INSERT INTO `ShiftEntry` (`SID`, `TID`) VALUES ("; $SQL .= "'". $SID. "', "; $SQL .= "'". $TTemp["TID"]. "');"; $Erg = mysql_query($SQL, $con); if( $DEBUG ) $SQLFail = "\n\t<br>[".$SQL. "]"; if ($Erg == 1) echo "'pass' "; else echo "'fail' <u>". mysql_error($con). "</u>$SQLFail</td>\n"; } else echo "+"; } echo "<br>"; } // IF $$TEMP } // FOREACH echo "</td>"; echo "</tr>\n"; } include ("./inc/footer.php"); ?>