engelsystem/www-ssl_old/admin/shiftadd.php

351 lines
11 KiB
PHP
Raw Blame History

<?php
require_once ('../bootstrap.php');
$title = "Schicht Hinzufügen";
$header = "Neue Schichten erfassen";
include ("includes/header.php");
$Time = time() + 3600 + 3600;
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");
}
// sesion mit stanadrt werten bef<65>llen
if (!isset ($_SESSION['shiftadd.php']['SchichtName'])) {
$_SESSION['shiftadd.php']['SchichtName'] = "--???--";
$_SESSION['shiftadd.php']['RID'] = "";
$_SESSION['shiftadd.php']['MonthJahr'] = gmdate("Y-m", $Time);
$_SESSION['shiftadd.php']['SDatum'] = gmdate("d", $Time);
$_SESSION['shiftadd.php']['STime'] = "10";
$_SESSION['shiftadd.php']['MoreThenOne'] = "ON";
$_SESSION['shiftadd.php']['EDatum'] = gmdate("d", $Time);
$_SESSION['shiftadd.php']['ETime'] = "12";
$_SESSION['shiftadd.php']['len'] = "2";
$_SESSION['shiftadd.php']['NachtON'] = "OFF";
$_SESSION['shiftadd.php']['len_night'] = "00-04-08-10-12-14-16-18-20-22-24";
}
// wenn werte <20>bergeben in sesion eintragen
if (!isset ($_GET["NachtON"]))
$_GET["NachtON"] = "OFF";
if (!isset ($_GET["MoreThenOne"]))
$_GET["MoreThenOne"] = "OFF";
if (isset ($_GET["SchichtName"])) {
foreach ($_GET as $k => $v) {
$_SESSION['shiftadd.php'][$k] = $v;
}
}
if (!IsSet ($_GET["action"]))
$_GET["action"] = "new";
switch ($_GET["action"]) {
case 'new' :
?>
Hier kannst du neue Schichten eintragen. Dazu musst du den Anfang und das Ende der Schichten eintragen.
&Uuml;ber die L&auml;nge der Schichten errechnet sich dadurch die Anzahl dieser. Dadurch k&ouml;nnen gleich
mehrere Schichten auf einmal erfasst werden:
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" >
<table>
<tr>
<td align="right">Name:</td>
<td><input type="text" name="SchichtName" size="50" value="<?php echo $_SESSION["shiftadd.php"]["SchichtName"]; ?>"></td>
</tr>
<tr>
<td align="right">Ort:</td>
<td><select name="RID">
<?php
foreach ($Room As $RTemp) {
echo "\t<option value=\"" . $RTemp["RID"] . "\"";
if ($RTemp["RID"] == $_SESSION["shiftadd.php"]["RID"])
echo " SELECTED";
echo ">" . $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="<?php echo $_SESSION["shiftadd.php"]["MonthJahr"]; ?>"></td>
</tr>
<tr>
<td align="right">Beginn:</td>
<td>Date<input type="text" name="SDatum" size="5" value="<?php echo $_SESSION["shiftadd.php"]["SDatum"]; ?>">
Time<input type="text" name="STime" size="5" value="<?php echo $_SESSION["shiftadd.php"]["STime"]; ?>"></td>
</tr>
<tr>
<td align="right">More then One</td>
<td><input type="checkbox" name="MoreThenOne" value="ON" <?php
if ($_SESSION["shiftadd.php"]["MoreThenOne"] == "ON")
echo " CHECKED";
?>></td>
</tr>
<tr>
<td align="right">End:</td>
<td>Date<input type="text" name="EDatum" size="5" value="<?php echo $_SESSION["shiftadd.php"]["EDatum"]; ?>">
Time<input type="text" name="ETime" size="5" value="<?php echo $_SESSION["shiftadd.php"]["ETime"]; ?>"></td>
</tr>
<tr>
<td align="right">L&auml;nge in h:</td>
<td><input type="text" name="len" size="5" value="<?php echo $_SESSION["shiftadd.php"]["len"]; ?>"></td>
</tr>
<tr>
<td align="right">Sonderschichten ein:</td>
<td><input type="checkbox" name="NachtON" value="ON" <?php
if ($_SESSION["shiftadd.php"]["NachtON"] == "ON")
echo " CHECKED";
?>></td>
</tr>
<tr>
<td align="right">Sonder in h (Time;Time):</td>
<td><input type="text" name="len_night" size="50" value="<?php echo $_SESSION["shiftadd.php"]["len_night"]; ?>"></td>
</tr>
<tr><td><u>Anzahl Engel je Type:</u></td></tr>
<?php
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=\"";
if (isset ($_SESSION["shiftadd.php"]["EngelType" . $TTemp["TID"]]))
echo $_SESSION["shiftadd.php"]["EngelType" . $TTemp["TID"]];
else
echo "0";
echo "\"></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>
<?php
break; // Ende new
case 'newsave' :
if (isset ($_GET["SDatum"]) && ($_GET["len"] > 0)) {
$lenOrg = $_GET["len"];
if ($_GET["NachtON"] == "ON") {
$lenArrayDummy = explode("-", $_GET["len_night"]);
foreach ($lenArrayDummy as $Temp) {
if (isset ($Temp2))
$lenArray[intval($Temp2)] = intval($Temp) - intval($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 = intval($_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") {
if (!isset ($lenArray[$Time]))
die("Zeit $Time h nicht definiert.");
$_GET["len"] = $lenArray[$Time];
if ($_GET["len"] < 1)
die("len <1");
}
$TimeEnd = $Time + $_GET["len"];
//Tages<65>berschreitung
while ($TimeEnd >= 24) {
$TimeEnd -= 24;
$DateEnd += 1;
}
//ist schischt zu lang dan verk<72>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 >= intval($_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") {
// erstellt Eintrag in Shifts f<>r die algemeine schicht
$SQL = "INSERT INTO `Shifts` ( `DateS`, `DateE`, `Len`, `RID`, `Man`) VALUES ( ";
$SQL .= "'" . $_DateS . "', '" . $_DateE . "', ";
$SQL .= "'" . $_GET["len"] . "', '" . $_GET["RID"] . "', ";
$SQL .= "'" . $_GET["SchichtName"] . "');";
$Erg = db_query($SQL, "create shift");
$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 ("includes/footer.php");
?>