bugfix helferübersicht, header-headers, back-links helferübersicht

This commit is contained in:
Karsten Siegmund 2024-03-27 11:03:09 +01:00
parent 40b19effe1
commit c42016474f
7 changed files with 156 additions and 132 deletions

View File

@ -27,7 +27,7 @@ if ($AdminStatus != 1) {
</script>
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';">
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'AdminHelferUebersicht.php';">
<b>&larrhk;</b>
</button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
@ -37,28 +37,29 @@ if ($AdminStatus != 1) {
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
// wird nie gesetzt
//if (isset($_POST['InfoMeineSchichtID'])) {
function SchichtInfo($SchichtID,&$Was,&$Wo,&$Dauer,&$Leiter,&$LeiterHandy,&$LeiterEmail,&$Info){
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link, $SchichtID);
$zeile = DetailSchicht($db_link, $SchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
}
// wird nur mit anderer Datei DetailsSchichten.php verwendet, nicht hier
@ -94,50 +95,50 @@ function SchichtInfo($SchichtID,&$Was,&$Wo,&$Dauer,&$Leiter,&$LeiterHandy,&$Leit
//}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
function HelferAuswahlButton($db_link, $AliasHelferID)
{
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelferID" id="AliasHelferID" onchange="submit()">';
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($AliasHelferID != $zeile['HelferID']) {
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</optionen>";
}
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
echo '</select></form>';
}
if (isset($_POST['AliasHelferID'])) {
$AliasHelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
} else {
function HelferAuswahlButton($db_link, $AliasHelferID)
{
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelferID" id="AliasHelferID" onchange="submit()">';
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($AliasHelferID != $zeile['HelferID']) {
echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>";
} else {
echo "<option value='" . $zeile['HelferID'] . "' selected='selected'>" . $zeile['Name'] . "</optionen>";
}
}
echo '</select></form>';
}
if (isset($_POST['AliasHelferID'])) {
$AliasHelferID = $_POST['AliasHelferID'];
} elseif (isset($_SESSION["AliasHelferID"])) {
$AliasHelferID = $_SESSION["AliasHelferID"];
} else {
HelferAuswahlButton($db_link, $AliasHelferID);
echo "<p>Erst Helfer auswählen</p>";
exit;
}
HelferAuswahlButton($db_link, $AliasHelferID);
echo "<p>Erst Helfer auswählen</p>";
exit;
}
HelferAuswahlButton($db_link, $AliasHelferID);
$_SESSION["AliasHelferID"] = $AliasHelferID;
$AdminID = $_SESSION["AdminID"];
$_SESSION["AliasHelferID"] = $AliasHelferID;
$AdminID = $_SESSION["AdminID"];
$db_erg = Helferdaten($db_link, $AliasHelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$AliasHelferLevel = $zeile['HelferLevel'];
}
$db_erg = Helferdaten($db_link, $AliasHelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$AliasHelferLevel = $zeile['HelferLevel'];
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
?>
<form method="post" action="AdminAlleSchichten.php#Info">
@ -263,11 +264,13 @@ if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Dienste
$alleHelferLevel = array(1, 2);
foreach ($alleHelferLevel as $HelferLevelIteration) {
$meine = "";
if($HelferLevelIteration == $AliasHelferLevel) { $meine = " &leftarrow; mein Level";}
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelIteration);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link,$HelferLevelIteration);
echo "<tr><th colspan='5'>&nbsp;&nbsp; &rightarrow; Schichten $HelferLevelName[$HelferLevelIteration] (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine</th></tr>";
$meine = "";
if ($HelferLevelIteration == $AliasHelferLevel) {
$meine = " &leftarrow; mein Level";
}
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelIteration);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevelIteration);
echo "<tr><th colspan='5'>&nbsp;&nbsp; &rightarrow; Schichten $HelferLevelName[$HelferLevelIteration] (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine</th></tr>";
}
@ -296,23 +299,23 @@ if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Dienste
if ($Was != $OldWas) { // Header ausgeben, wenn der Dienst nicht mehr der selbe ist
// + in <span> becomes - when rows are opened
echo "<tr class='header'><th colspan='5' style='width:100%'><span>+</span> ";
$SchichtID=$zeile['SchichtID'];
$DienstID=$zeile['DienstID'];
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $AliasHelferLevel,$DienstID);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link,$AliasHelferLevel,$DienstID);
$SchichtID = $zeile['SchichtID'];
$DienstID = $zeile['DienstID'];
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $AliasHelferLevel, $DienstID);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $AliasHelferLevel, $DienstID);
echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) <!-- Abfrage $AliasHelferLevel, $DienstID -->";
echo "</th>";
echo "</tr>";
SchichtInfo($SchichtID,$InfoWas,$InfoWo,$InfoDauer,$Leiter,$LeiterHandy,$LeiterEmail,$Info);
if(true){
echo "<tr><td colspan=5 style='background:lightblue'>";
echo "<b>Beschreibung:</b> $Info <br><br>";
echo "<b>Ort:</b> $InfoWo <br>";
SchichtInfo($SchichtID, $InfoWas, $InfoWo, $InfoDauer, $Leiter, $LeiterHandy, $LeiterEmail, $Info);
if (true) {
echo "<tr><td colspan=5 style='background:lightblue'>";
echo "<b>Beschreibung:</b> $Info <br><br>";
echo "<b>Ort:</b> $InfoWo <br>";
//echo "<b>Dauer:</b> $InfoDauer<br>"; // verschieden je nach Einzelschicht
echo "<b>Ansprechparter:</b>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo "$LeiterEmail";
echo "</td></td></tr>\n";
echo "<b>Ansprechparter:</b>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo "$LeiterEmail";
echo "</td></td></tr>\n";
}
$OldWas = $Was;
}

View File

@ -92,7 +92,7 @@ function outputHelperInformation($HelferUeberschrift, $OldAliasHelferID, $dauer,
echo "</div></th>";
echo "$EinzelDienstStundenZeile</td></tr>\n ";
}
echo "<tr class='header infoheader'><th>Accountdaten</th><th>Schichten</th><th>Schichten Ändern</th></tr>";
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile["Name"];
$HelferLevel = $zeile["HelferLevel"];
@ -103,7 +103,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
}
$dauer = 0;
$EinzelDienstStundenZeile = "";
$HelferUeberschrift = " <tr class='header'> <th width='15%'> <form id='form_" . $AliasHelferID . "' method='post' action='AdminUserdaten.php'><input type='hidden' name='AliasHelferID' value='" . $AliasHelferID . "'/><div onclick=\"document.getElementById('form_" . $AliasHelferID . "').submit();\"/><img style='vertical-align:middle;width:30px;height:30px;' src='Bilder/PfeilRechts.jpeg'>$HelferName (Lvl:$HelferLevel) </div></form>";
$HelferUeberschrift = " <tr class='header'> <th width='15%'> <form id='form_" . $AliasHelferID . "' method='post' action='AdminUserdaten.php'><input type='hidden' name='AliasHelferID' value='" . $AliasHelferID . "'/><div onclick=\"document.getElementById('form_" . $AliasHelferID . "').submit();\"/><img style='vertical-align:middle;width:30px;height:30px;' src='Bilder/PfeilRechts.jpeg'>&nbsp;$HelferName (Lvl:$HelferLevel) </div></form>";
$OldHelferName = $HelferName;
$OldAliasHelferID = $AliasHelferID;
$i += 1;

View File

@ -23,7 +23,7 @@ if ($AdminStatus != 1) {
<meta name="viewport" content="width=480" />
</head>
<body>
<div><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> <h4 style="display: inline;">Admin: Schichten editieren -
<div><button name="BackHelferdaten" value="1" onclick="window.location.href = 'AdminHelferUebersicht.php';"><b>&larrhk;</b></button> <h4 style="display: inline;">Admin: Schichten editieren -
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
</h4>
<div style="width: 100%;">

View File

@ -128,7 +128,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
<table class="commontable">
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button> Helferdaten</th>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'AdminHelferUebersicht.php';"><b>&larrhk;</b></button> Helferdaten</th>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<form method="post">
<tr>

View File

@ -31,26 +31,27 @@ require '_login.php';
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
// wird nie gesetzt
//if (isset($_POST['InfoMeineSchichtID'])) {
function SchichtInfo($SchichtID,&$Was,&$Wo,&$Dauer,&$Leiter,&$LeiterHandy,&$LeiterEmail,&$Info){
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
function SchichtInfo($SchichtID, &$Was, &$Wo, &$Dauer, &$Leiter, &$LeiterHandy, &$LeiterEmail, &$Info)
{
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
$zeile = DetailSchicht($db_link, $SchichtID);
$zeile = DetailSchicht($db_link, $SchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
$db_link->close();
}
// wird nur mit anderer Datei DetailsSchichten.php verwendet, nicht hier
@ -86,18 +87,18 @@ function SchichtInfo($SchichtID,&$Was,&$Wo,&$Dauer,&$Leiter,&$LeiterHandy,&$Leit
//}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
$ZeitBereich = 0;
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
?>
<form method="post" action="AlleSchichten.php">
@ -221,12 +222,14 @@ if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Dienste
$alleHelferLevel = array(1, 2);
foreach ($alleHelferLevel as $HelferLevelIteration) {
$meine = "";
if($HelferLevelIteration == $HelferLevel) { $meine = " &leftarrow; mein Level";}
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelIteration);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link,$HelferLevelIteration);
$meine = "";
if ($HelferLevelIteration == $HelferLevel) {
$meine = " &leftarrow; mein Level";
}
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevelIteration);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevelIteration);
// $HelferLevelName wird in konfiguration.php gesetzt. TODO: Array aus Datenbank mit bestehender Funktion in _login.php oder SQL.php auslesen.
echo "<tr class='infoheader'><th colspan='5' >&nbsp;&nbsp; &rightarrow; Schichten $HelferLevelName[$HelferLevelIteration] (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine</th></tr>";
echo "<tr class='infoheader'><th colspan='5' >&nbsp;&nbsp; &rightarrow; Schichten $HelferLevelName[$HelferLevelIteration] (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine</th></tr>";
}
@ -255,23 +258,23 @@ if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Dienste
if ($Was != $OldWas) { // Header ausgeben, wenn der Dienst nicht mehr der selbe ist
// + in <span> becomes - when rows are opened
echo "<tr class='header'><th colspan='5' style='width:100%'><span>+</span> ";
$SchichtID=$zeile['SchichtID'];
$DienstID=$zeile['DienstID'];
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevel,$DienstID);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link,$HelferLevel,$DienstID);
$SchichtID = $zeile['SchichtID'];
$DienstID = $zeile['DienstID'];
$iAlleSchichtenCount = AlleSchichtenCount($db_link, $HelferLevel, $DienstID);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link, $HelferLevel, $DienstID);
echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) <!-- Abfrage $HelferLevel, $DienstID -->";
echo "</th>";
echo "</tr>";
SchichtInfo($SchichtID,$InfoWas,$InfoWo,$InfoDauer,$Leiter,$LeiterHandy,$LeiterEmail,$Info);
if(true){
echo "<tr><td colspan=5 style='background:lightblue'>";
echo "<b>Beschreibung:</b> $Info <br><br>";
echo "<b>Ort:</b> $InfoWo <br>";
SchichtInfo($SchichtID, $InfoWas, $InfoWo, $InfoDauer, $Leiter, $LeiterHandy, $LeiterEmail, $Info);
if (true) {
echo "<tr><td colspan=5 style='background:lightblue'>";
echo "<b>Beschreibung:</b> $Info <br><br>";
echo "<b>Ort:</b> $InfoWo <br>";
//echo "<b>Dauer:</b> $InfoDauer<br>"; // verschieden je nach Einzelschicht
echo "<b>Ansprechparter:</b>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo "$LeiterEmail";
echo "</td></td></tr>\n";
echo "<b>Ansprechparter:</b>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo "$LeiterEmail";
echo "</td></td></tr>\n";
}
$OldWas = $Was;
}

View File

@ -193,16 +193,16 @@ function AlleSchichten($db_link, $Sort, $HelferLevel = 1)
function AlleSchichtenCount($db_link, $HelferLevel = -1, $DienstID = -1)
{
$nurDienst="";
if( $DienstID != -1 ) {
$nurDienst = "";
if ($DienstID != -1) {
$nurDienst = " and Dienst.DienstID = $DienstID";
}
$nurHelferLevel="";
if( $HelferLevel != -1 ) {
$nurHelferLevel = "";
if ($HelferLevel != -1) {
$nurHelferLevel = " and HelferLevel = $HelferLevel ";
}
$sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID $nurHelferLevel $nurDienst";
$sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID $nurHelferLevel $nurDienst";
$db_erg = mysqli_query($db_link, $sql);
@ -220,12 +220,12 @@ $sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst W
function AlleBelegteSchichtenCount($db_link, $HelferLevel = -1, $DienstID = -1)
{
$nurDienst="";
if( $DienstID != -1 ) {
$nurDienst = "";
if ($DienstID != -1) {
$nurDienst = " and Dienst.DienstID = $DienstID";
}
$nurHelferLevel="";
if( $HelferLevel != -1 ) {
$nurHelferLevel = "";
if ($HelferLevel != -1) {
$nurHelferLevel = " and HelferLevel = $HelferLevel ";
}
@ -771,9 +771,27 @@ function DeleteSchicht($db_link, $SchichtID, $Rekursiv)
function AlleHelferSchichtenUebersicht($db_link)
{
$sql = "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was";
$sql = $sql . " UNION ALL ";
$sql = $sql . "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,'-' as Was,0 as Dauer from Helfer,EinzelSchicht where not exists(select 1 from EinzelSchicht where Helfer.HelferID=EinzelSchicht.HelferID)";
$sql = '
SELECT
Helfer.HelferID AS AliasHelferID, -- Alias für HelferID
Helfer.HelferLevel,
Name,
Email,
Handy,
Was,
COALESCE(SUM(Dauer)/10000, 0) AS Dauer
FROM
Helfer
LEFT JOIN
EinzelSchicht ON Helfer.HelferID = EinzelSchicht.HelferID
LEFT JOIN
Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID
LEFT JOIN
Dienst ON Schicht.DienstID = Dienst.DienstID
GROUP BY
Helfer.HelferID,
Was';
$db_erg = mysqli_query($db_link, $sql);
if (! $db_erg) {
echo "AlleHelferSchichtenUebersicht ungueltige Abfrage";

View File

@ -76,7 +76,7 @@ if ($success == 1 && $email != "") {
error_log("2email: " . $HelferEmail . ",level: " . $helfer_level . ",success: " . $success);
// Helfer Anlegen, wenn er nicht existiert
if (! HelferIstVorhanden($db_link, $HelferEmail)) {
error_log( $HelferEmail . " nicht vorhanden, lege an");
error_log($HelferEmail . " nicht vorhanden, lege an");
error_log("CreateHelfer(db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);");
$db_erg = CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel);
}