diff options
Diffstat (limited to 'www-ssl/admin/shiftadd.php')
-rwxr-xr-x | www-ssl/admin/shiftadd.php | 329 |
1 files changed, 329 insertions, 0 deletions
diff --git a/www-ssl/admin/shiftadd.php b/www-ssl/admin/shiftadd.php new file mode 100755 index 00000000..8b2f6451 --- /dev/null +++ b/www-ssl/admin/shiftadd.php @@ -0,0 +1,329 @@ +<?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"); +?> |