351 lines
11 KiB
PHP
351 lines
11 KiB
PHP
<?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.
|
||
Über die Länge der Schichten errechnet sich dadurch die Anzahl dieser. Dadurch kö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ä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");
|
||
?>
|