Anzeige (belegt/total) pro dienst. HelferLevel Korrekturen

This commit is contained in:
Karsten Siegmund 2024-03-25 22:42:02 +01:00
parent 023223ea72
commit 698db1235e
3 changed files with 216 additions and 142 deletions

View File

@ -4,6 +4,7 @@ require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht
require '_login.php';
if ($AdminStatus != 1) {
@ -14,7 +15,7 @@ if ($AdminStatus != 1) {
?>
<!doctype html>
<html>
<head>
<head>
<title><?php echo EVENTNAME ?> Alle Schichten</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
@ -24,12 +25,15 @@ if ($AdminStatus != 1) {
<script src="js/helferdb.js" type="text/javascript"></script>
<script> collapse_table_rows();
</script>
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<div style="width: 100%;">
<?php
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';">
<b>&larrhk;</b>
</button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<h1> Alle Schichten / Schichten hinzuf&uuml;gen </h1>
<div style="width: 100%;">
<?php
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
@ -37,12 +41,15 @@ if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
if (isset($_POST['InfoMeineSchichtID'])) {
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
// 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>";
$zeile = DetailSchicht($db_link, $InfoMeineSchichtID);
$zeile = DetailSchicht($db_link, $SchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
@ -51,40 +58,42 @@ if (isset($_POST['InfoMeineSchichtID'])) {
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if (isset($_GET['InfoAlleSchichtID'])) {
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
unset($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link, $InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID);
$x = 0;
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x] = $zeile['Handy'];
$x++;
$db_link->close();
}
}
// wird nur mit anderer Datei DetailsSchichten.php verwendet, nicht hier
//if (isset($_GET['InfoAlleSchichtID'])) {
// $InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
// unset($InfoMeineSchichtID);
// //echo "<b>". $SchichtID . "</b><br>";
//
// $zeile = DetailSchicht($db_link, $InfoAlleSchichtID);
//
// $Was = $zeile['Was'];
// $Wo = $zeile['Wo'];
// $Dauer = $zeile['Dauer'];
// $Leiter = $zeile['Name'];
// $LeiterHandy = $zeile['Handy'];
// $LeiterEmail = $zeile['Email'];
// $Info = $zeile['Info'];
//
//
//
// // Beteiligte Helfer Holen
// $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID);
//
//
// $x = 0;
//
// while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
// $MitHelferID[$x] = $zeile['HelferID'];
// $MitHelfer[$x] = $zeile['Name'];
// $MitHelferHandy[$x] = $zeile['Handy'];
// $x++;
// }
//}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
@ -122,6 +131,7 @@ $AdminID = $_SESSION["AdminID"];
$db_erg = Helferdaten($db_link, $AliasHelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$AliasHelferLevel = $zeile['HelferLevel'];
}
// Helferliste Anzeigen
@ -130,8 +140,6 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
?>
<form method="post" action="AdminAlleSchichten.php#Info">
<?php
@ -153,7 +161,6 @@ if (isset($_POST['plusschicht'])) {
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
//die('<div class="Helfer wurde angelegt.</div>');
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
@ -165,10 +172,12 @@ if (isset($_POST['plusschicht'])) {
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
// Mich aus Schicht entfernen
$messages = [];
$SchichtID = $_POST['minusschicht'];
// Nutzer hat hier zuletzt etwas geaenndert und wir klappen das deshalb auf:
$_SESSION["SchichtIdAktiv"] = $SchichtID;
if (empty($messages)) {
// Helfer aus Schicht entfernen
@ -197,9 +206,9 @@ if (isset($_POST['minusschicht'])) {
echo '<table class="commontable"><tr class="header"><th onclick="window.location.href=\'AdminMeineSchichten.php\'">';
echo '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">' . "Dienstplan von $HelferName: ";
echo $zeile['Anzahl'];
echo " Schichten insgesamt ";
echo " Schichten, ";
echo $zeile['Dauer'] / 3600;
echo " Stunden";
echo " Stunden)";
echo '</th></tr></table><br><br>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
@ -207,7 +216,8 @@ $addschicht = $_SESSION["addschicht"];
$dienstsort = $_SESSION["dienstsort"];
//addschicht und dienst-sort sollten wohl nach Diensten bzw Tagen sortieren
//addschicht wird gerade nie gesetzt, dienst-sort damit auch nicht
if (isset($_POST['addschicht']) && $_POST['addschicht'] == '1') {
$addschicht = '1';
$dienstsort = '1';
@ -231,27 +241,35 @@ if ($addschicht == '0') {
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
if ($addschicht != '0') {
if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Diensten sortieren, macht es aber nicht
echo '<table class="commontable">';
require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "AdminAlleSchichten.php");
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, -1);
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $AliasHelferLevel);
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
echo '</table>';
echo "<button type='button' onclick='expand_all_table_rows();'>Alles Ausklappen</button>";
//echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
// "Alle Schichten der Con"
echo '<table class="commontable">';
echo "<tr class='header'>";
echo "<th colspan='7'>Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
echo "<th colspan='5'>Alle Schichten der Con (Besetzt/Gesamt) " . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . "</th></tr>";
$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>";
}
echo "</tr>";
$OldTag = "";
$OldWas = "";
@ -260,10 +278,10 @@ if ($addschicht != '0') {
//print_r($MeineDienste);
echo '</table>';
// Tabelle mit allen Diensten und Schichten
echo '<table class="commontable collapsible">';
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($dienstsort == '1') {
if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt
$Tag = $zeile['Tag'];
if ($Tag != $OldTag) {
@ -275,18 +293,27 @@ if ($addschicht != '0') {
} else {
$Was = $zeile['Was'];
if ($Was != $OldWas) {
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='7' style='width:100%'><span>+</span> ";
echo $Was;
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);
echo "$Was ($iBelegteSchichtenCount/$iAlleSchichtenCount) <!-- Abfrage $AliasHelferLevel, $DienstID -->";
echo "</th>";
/*
echo "<th style='width:100px'>". "Von" . "</th>";
echo "<th style='width:130px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
echo "<th style='width:90px'>". "Add" . "</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>";
//echo "<b>Dauer:</b> $InfoDauer<br>"; // verschieden je nach Einzelschicht
echo "<b>Ansprechparter:</b>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo "$LeiterEmail";
echo "</td></td></tr>\n";
}
$OldWas = $Was;
}
}
@ -307,13 +334,13 @@ if ($addschicht != '0') {
// Meine Schichten gruen einfaerben
if (in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = 'Meine!';
$regtext = '<br><center>Meine!</center>';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" ';
$regtext = '';
}
if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
if (isset($_SESSION["SchichtIdAktiv"]) && $_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
$rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something
}
@ -328,9 +355,11 @@ if ($addschicht != '0') {
echo "<td>" . $Bis . "</td>";
echo "<td bgcolor='" . $Color . "'>" . $zeile['Ist'] . "/";
echo "" . $zeile['Soll'] . "</td>";
// buttons sind in der selben Zelle
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='" . $zeile['SchichtID'] . "'>+</button>" . "";
echo "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</td>";
// durch space:nowrap wird ein Umbruch zwischen den Buttons verhindert
// in Kombi mit width:1% wird immer der minimale Platz für die Spalte belegt
// width:200px oder max-width:200px hat zu viel weissem Platz rechts und enge links gefuehrt
echo "<td style='width:10%;white-space:nowrap'><button name='plusschicht' value='" . $zeile['SchichtID'] . "'>+</button>";
echo "&nbsp;&nbsp;<button name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</td>";
echo "</tr>\n";
}
echo "</table>";

View File

@ -1,31 +1,33 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
// Login
require_once 'konfiguration.php';
SESSION_START();
require 'SQL.php';
$db_link = ConnectDB();
// zeigt login-Seite an, wenn keine Session besteht
require '_login.php';
?>
<!doctype html>
<html>
<head>
<title>Helfer <?php echo EVENTNAME ?> Alle Schichten</title>
<head>
<title><?php echo EVENTNAME ?> Alle Schichten</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
<script src="js/jquery-3.7.1.min.js" type="text/javascript"></script>
<script src="js/helferdb.js" type="text/javascript"></script>
<script> collapse_table_rows();
</script>
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<h1> Alle Schichten / Schichten hinzuf&uuml;gen </h1>
<div style="width: 100%;">
<?php
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';">
<b>&larrhk;</b>
</button>
<?php echo "<b>" . EVENTNAME . "</b>"; ?>
<h1> Alle Schichten / Schichten hinzuf&uuml;gen </h1>
<div style="width: 100%;">
<?php
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
@ -33,12 +35,13 @@ if (isset($_POST['CloseInfo'])) {
unset($InfoMeineSchichtID);
unset($InfoAlleSchichtID);
}
if (isset($_POST['InfoMeineSchichtID'])) {
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
unset($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
// wird nie gesetzt
//if (isset($_POST['InfoMeineSchichtID'])) {
function SchichtInfo($SchichtID,&$Was,&$Wo,&$Dauer,&$Leiter,&$LeiterHandy,&$LeiterEmail,&$Info){
$db_link = ConnectDB();
// $InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
$zeile = DetailSchicht($db_link, $InfoMeineSchichtID);
$zeile = DetailSchicht($db_link, $SchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
@ -47,40 +50,42 @@ if (isset($_POST['InfoMeineSchichtID'])) {
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if (isset($_GET['InfoAlleSchichtID'])) {
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
unset($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link, $InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID);
$x = 0;
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x] = $zeile['Handy'];
$x++;
$db_link->close();
}
}
// wird nur mit anderer Datei DetailsSchichten.php verwendet, nicht hier
//if (isset($_GET['InfoAlleSchichtID'])) {
// $InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
// unset($InfoMeineSchichtID);
// //echo "<b>". $SchichtID . "</b><br>";
//
// $zeile = DetailSchicht($db_link, $InfoAlleSchichtID);
//
// $Was = $zeile['Was'];
// $Wo = $zeile['Wo'];
// $Dauer = $zeile['Dauer'];
// $Leiter = $zeile['Name'];
// $LeiterHandy = $zeile['Handy'];
// $LeiterEmail = $zeile['Email'];
// $Info = $zeile['Info'];
//
//
//
// // Beteiligte Helfer Holen
// $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID);
//
//
// $x = 0;
//
// while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
// $MitHelferID[$x] = $zeile['HelferID'];
// $MitHelfer[$x] = $zeile['Name'];
// $MitHelferHandy[$x] = $zeile['Handy'];
// $x++;
// }
//}
// Auswahl Tag oberhalb der Dienstetabelle
if (isset($_GET['ZeitBereich'])) {
$ZeitBereich = $_GET['ZeitBereich'];
} else {
@ -126,7 +131,7 @@ if (isset($_POST['plusschicht'])) {
}
if (isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
// Mich aus Schicht entfernen
$messages = [];
$SchichtID = $_POST['minusschicht'];
@ -142,7 +147,6 @@ if (isset($_POST['minusschicht'])) {
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
}
echo '</ul></div>';
}
}
@ -170,7 +174,8 @@ $addschicht = $_SESSION["addschicht"];
$dienstsort = $_SESSION["dienstsort"];
//addschicht und dienst-sort sollten wohl nach Diensten bzw Tagen sortieren
//addschicht wird gerade nie gesetzt, dienst-sort damit auch nicht
if (isset($_POST['addschicht']) && $_POST['addschicht'] == '1') {
$addschicht = '1';
$dienstsort = '1';
@ -195,13 +200,13 @@ if ($addschicht == '0') {
}
if ($addschicht != '0') {
if ($addschicht != '0') { // addschicht soll Darstellung nach Tagen oder Diensten sortieren, macht es aber nicht
echo '<table class="commontable">';
require('_zeitbereich.php');
$Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, "AlleSchichten.php");
$MeinVon = $Bereich['MeinVon'];
$MeinBis = $Bereich['MeinBis'];
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, -1);
$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel);
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
@ -212,9 +217,17 @@ if ($addschicht != '0') {
// "Alle Schichten der Con"
echo '<table class="commontable">';
echo "<tr class='header'>";
echo "<th colspan='7'>Alle Schichten der Con (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ")</th></tr>";
echo "<th colspan='5'>Alle Schichten der Con (Besetzt/Gesamt) " . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . "</th></tr>";
$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);
echo "<tr><th colspan='5'>&nbsp;&nbsp; &rightarrow; Schichten $HelferLevelName[$HelferLevelIteration] (Besetzt/Gesamt) (" . $iBelegteSchichtenCount . "/" . $iAlleSchichtenCount . ") $meine</th></tr>";
}
echo "</tr>";
$OldTag = "";
$OldWas = "";
@ -226,7 +239,7 @@ if ($addschicht != '0') {
// Tabelle mit allen Diensten und Schichten
echo '<table class="commontable collapsible">';
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
if ($dienstsort == '1') {
if ($dienstsort == '1') { // dienst-sort wird momentan nie gesetzt, also immer else-Teil ausgeführt
$Tag = $zeile['Tag'];
if ($Tag != $OldTag) {
@ -238,12 +251,27 @@ if ($addschicht != '0') {
} else {
$Was = $zeile['Was'];
if ($Was != $OldWas) {
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='7' style='width:100%'><span>+</span> ";
echo $Was;
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);
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>";
//echo "<b>Dauer:</b> $InfoDauer<br>"; // verschieden je nach Einzelschicht
echo "<b>Ansprechparter:</b>" . $Leiter . ", ";
echo $LeiterHandy . ", ";
echo "$LeiterEmail";
echo "</td></td></tr>\n";
}
$OldWas = $Was;
}
}
@ -264,13 +292,13 @@ if ($addschicht != '0') {
// Meine Schichten gruen einfaerben
if (in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = 'Meine!';
$regtext = '<br><center>Meine!</center>';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'dbinfo="SchichtID:' . $zeile['SchichtID'] . ';helferlvl:' . $HelferLevel . '" ';
$regtext = '';
}
if ($_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
if (isset($_SESSION["SchichtIdAktiv"]) && $_SESSION["SchichtIdAktiv"] == $zeile['SchichtID']) {
$rowstyle = $rowstyle . " target='active' "; // dont collapse when the user did something
}
@ -285,9 +313,11 @@ if ($addschicht != '0') {
echo "<td>" . $Bis . "</td>";
echo "<td bgcolor='" . $Color . "'>" . $zeile['Ist'] . "/";
echo "" . $zeile['Soll'] . "</td>";
// buttons sind in der selben Zelle
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='" . $zeile['SchichtID'] . "'>+</button>" . "";
echo "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</td>";
// durch space:nowrap wird ein Umbruch zwischen den Buttons verhindert
// in Kombi mit width:1% wird immer der minimale Platz für die Spalte belegt
// width:200px oder max-width:200px hat zu viel weissem Platz rechts und enge links gefuehrt
echo "<td style='width:10%;white-space:nowrap'><button name='plusschicht' value='" . $zeile['SchichtID'] . "'>+</button>";
echo "&nbsp;&nbsp;<button name='minusschicht' value='" . $zeile['SchichtID'] . "'>&ndash;</button> $regtext" . "</td>";
echo "</tr>\n";
}
echo "</table>";

View File

@ -191,11 +191,18 @@ function AlleSchichten($db_link, $Sort, $HelferLevel = 1)
return $db_erg;
}
function AlleSchichtenCount($db_link, $HelferLevel = 1)
function AlleSchichtenCount($db_link, $HelferLevel = -1, $DienstID = -1)
{
$nurDienst="";
if( $DienstID != -1 ) {
$nurDienst = " and Dienst.DienstID = $DienstID";
}
$nurHelferLevel="";
if( $HelferLevel != -1 ) {
$nurHelferLevel = " and HelferLevel = $HelferLevel ";
}
//$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel";
$sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
$sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID $nurHelferLevel $nurDienst";
$db_erg = mysqli_query($db_link, $sql);
@ -211,11 +218,19 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1)
}
function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1)
function AlleBelegteSchichtenCount($db_link, $HelferLevel = -1, $DienstID = -1)
{
$nurDienst="";
if( $DienstID != -1 ) {
$nurDienst = " and Dienst.DienstID = $DienstID";
}
$nurHelferLevel="";
if( $HelferLevel != -1 ) {
$nurHelferLevel = " and HelferLevel = $HelferLevel ";
}
$sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
$sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID $nurHelferLevel $nurDienst";
$db_erg = mysqli_query($db_link, $sql);
@ -242,7 +257,7 @@ function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1)
$sql_helferlevel = "";
}
$sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= '" . $Von . "' and Von <'" . $Bis . "' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von";
$sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll, Dienst.DienstID from Dienst,SchichtUebersicht where Von >= '" . $Von . "' and Von <'" . $Bis . "' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von";
error_log("AlleSchichtenImZeitbereich sql " . $sql);
$db_erg = mysqli_query($db_link, $sql);