diff --git a/html/SQL.php b/html/SQL.php
index c595682..7aed3b9 100644
--- a/html/SQL.php
+++ b/html/SQL.php
@@ -14,348 +14,297 @@ function ConnectDB()
return $db_link;
}
-function CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) #stmt
+function CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1)
{
+ $HelferName = mysqli_real_escape_string($db_link, $HelferName);
+ $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail);
+ $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy);
+ // level: Teilnehmer/Dauerhelfer/(Teamleiter)
+ $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel);
$HelferPasswort = "€" . $HelferPasswort . "ß";
$PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT);
- // Prepared Statement erstellen
- $sql = "INSERT INTO Helfer (Name, Email, Handy, Status, BildFile, DoReport, Passwort, HelferLevel)
- VALUES (?, ?, ?, 1, '', 0, ?, ?)";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- error_log("Fehler beim Vorbereiten des Statements: " . mysqli_error($db_link));
- return false;
- }
- // Parameter binden (ssssi = 4 Strings + 1 Integer)
- mysqli_stmt_bind_param($stmt, "ssssi", $HelferName, $HelferEmail, $HelferHandy, $PasswortHash, $HelferLevel);
-
- // Query ausführen
- $success = mysqli_stmt_execute($stmt);
-
- if (!$success) {
- error_log("Fehler beim Einfügen: " . mysqli_stmt_error($stmt));
- }
-
- $db_erg = $success ? $stmt : false;
- mysqli_stmt_close($stmt);
+ // Neuen Helfer anlegen
+ $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel) VALUES ('$HelferName','$HelferEmail','$HelferHandy',1,'',0,'$PasswortHash','$HelferLevel')";
+ $db_erg = mysqli_query($db_link, $sql);
error_log(date('Y-m-d H:i') . " CreateHelfer: $HelferName angelegt mit Email $HelferEmail Handy $HelferHandy \n", 3, LOGFILE);
-
return $db_erg;
}
-
-// Testet fuer urllogin, ob Helfer bereits existiert
-function HelferIstVorhanden($db_link, $Email)#stmt
+// testet fuer urllogin, ob Helfer bereits existiert
+function HelferIstVorhanden($db_link, $Email)
{
- $sql = "SELECT COUNT(HelferID) AS Anzahl FROM Helfer WHERE Email = ?";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- error_log("Fehler beim Vorbereiten des Statements: " . mysqli_error($db_link));
- return false;
- }
- mysqli_stmt_bind_param($stmt, "s", $Email);
- mysqli_stmt_execute($stmt);
-
- $result = mysqli_stmt_get_result($stmt);
- $zeile = mysqli_fetch_array($result, MYSQLI_ASSOC);
- mysqli_stmt_close($stmt);
- return $zeile['Anzahl'] ?? 0;
+ $Email = mysqli_real_escape_string($db_link, $Email);
+ $sql = "SELECT count(HelferID) as Anzahl FROM Helfer Where Email = '" . $Email . "'";
+ $db_erg = mysqli_query($db_link, $sql);
+ $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
+ return $zeile['Anzahl'];
}
-
//TODO: pruefen, ob Helfer bereits eingeloggt
-function HelferLogin($db_link, $HelferEmail, $HelferPasswort, $HelferStatus)#stmt
+function HelferLogin($db_link, $HelferEmail, $HelferPasswort, $HelferStatus)
{
- $sql = "SELECT HelferID, Admin, Name, Passwort, HelferLevel FROM Helfer WHERE Email = ?";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- error_log("Fehler beim Vorbereiten des Statements: " . mysqli_error($db_link));
- die('Login ungültige Abfrage');
- }
- mysqli_stmt_bind_param($stmt, "s", $HelferEmail);
- if (!mysqli_stmt_execute($stmt)) {
- error_log("Login execute fehlgeschlagen: " . mysqli_stmt_error($stmt));
- die('Login: Fehler beim Ausführen der Abfrage.');
- }
- mysqli_stmt_execute($stmt);
+ $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail);
+ $HelferStatus = mysqli_real_escape_string($db_link, $HelferStatus);
- $result = mysqli_stmt_get_result($stmt);
-
- while ($zeile = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
+ //echo "Test
";
+ // Helfer Suchen
+ $sql = "Select HelferID,Admin,Name,Passwort,HelferLevel From Helfer Where Email='" . $HelferEmail . "'";
+ //echo $sql;
+ $db_erg = mysqli_query($db_link, $sql);
+ if (! $db_erg) {
+ echo "Login ungueltige Abfrage";
+ die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ }
+ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferPasswort = "€" . $HelferPasswort . "ß";
-
+ //echo "".$HelferPasswort."
";
+ //echo "".$zeile['Passwort']."
";
if (password_verify($HelferPasswort, $zeile['Passwort'])) {
$_SESSION["HelferID"] = $zeile['HelferID'];
$_SESSION["HelferName"] = $zeile['Name'];
- // TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist
- // TODO done - test ob nichts kaputt geht
- $_SESSION["AdminStatus"] = $zeile['Admin'];
- if( $_SESSION["AdminStatus"] == 1) {
- $_SESSION["AdminID"] = $zeile['HelferID'];
- }
- $_SESSION["HelferLevel"] = $zeile['HelferLevel'];
-
- mysqli_stmt_close($stmt);
- return 1;
+ //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist
+ $_SESSION["AdminID"] = $zeile['HelferID'];
+ $_SESSION["AdminStatus"] = $zeile['Admin'];
+ $_SESSION["HelferLevel"] = $zeile['HelferLevel'];
+ return 1;
} else {
echo "Falsches Passwort
";
- mysqli_stmt_close($stmt);
- return 0;
+ return 0;
}
}
-
- mysqli_stmt_close($stmt);
- return 0;
}
-
// Liste der Helfer fuer Admin-Seite
//TODO: HelferLevel
-
-function HelferListe($db_link)#stmt
-{
- $sql = "SELECT HelferID, Name FROM Helfer";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- echo "Helferliste ungültige Abfrage";
- die('Ungültige Abfrage: ' . mysqli_error($db_link));
- }
- mysqli_stmt_execute($stmt);
- $result = mysqli_stmt_get_result($stmt);
-
- // Ergebniszeiger zurückgeben, um kompatibel zu bleiben
- return $result;
-}
-
-
-function Helferdaten($db_link, $HelferID)#stmt
+function HelferListe($db_link)
{
- $sql = "SELECT * FROM Helfer Where HelferID = ?";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- echo "Helferdaten: Fehler beim Vorbereiten des Statements
\n";
- die('Prepare failed: ' . mysqli_error($db_link));
+ $sql = "SELECT HelferID,Name FROM Helfer";
+ $db_erg = mysqli_query($db_link, $sql);
+ if (! $db_erg) {
+ echo "Helferliste ungueltige Abfrage";
+ die('Unueltige Abfrage: ' . mysqli_error($db_link));
}
- mysqli_stmt_bind_param($stmt, "i", $HelferID);
- if (!mysqli_stmt_execute($stmt)) {
- echo "Helferdaten: Fehler bei der Ausführung
\n";
- die('Execution failed: ' . mysqli_stmt_error($stmt));
- }
- $db_erg = mysqli_stmt_get_result($stmt);
+
return $db_erg;
}
-
-function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferLevel, $HelferIsAdmin = -1, $AdminID = 0)#stmt
-{
- $result = false;
-
- if ($HelferNewPasswort == "") {
- if ($HelferIsAdmin == -1) {
- $sql = "UPDATE Helfer SET Name = ?, Email = ?, Handy = ?, HelferLevel = ? WHERE HelferId = ?";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- die("Prepare failed: " . mysqli_error($db_link));
- }
- mysqli_stmt_bind_param($stmt, "ssssi", $HelferName, $HelferEmail, $HelferHandy, $HelferLevel, $HelferID);
- } else {
- $sql = "UPDATE Helfer SET Name = ?, Email = ?, Handy = ?, Admin = ?, HelferLevel = ? WHERE HelferId = ?";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- die("Prepare failed: " . mysqli_error($db_link));
- }
- mysqli_stmt_bind_param($stmt, "ssssii", $HelferName, $HelferEmail, $HelferHandy, $HelferIsAdmin, $HelferLevel, $HelferID);
- }
-
- if (!mysqli_stmt_execute($stmt)) {
- die("Execute failed: " . mysqli_stmt_error($stmt));
- }
-
- $result = true;
- echo "
Helferdaten geändert";
-
- $log_prefix = ($AdminID != 0) ? "(Admin $AdminID) " : "";
- error_log(date('Y-m-d H:i') . " {$log_prefix}Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Admin: $HelferIsAdmin\n", 3, LOGFILE);
-
- mysqli_stmt_close($stmt);
- } else {
- $HelferNewPasswort = "€" . $HelferNewPasswort . "ß";
- $PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT);
-
- if ($HelferIsAdmin == -1) {
- $sql = "UPDATE Helfer SET Name = ?, Email = ?, Handy = ?, HelferLevel = ?, Passwort = ? WHERE HelferId = ?";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) {
- die("Prepare failed: " . mysqli_error($db_link));
- }
- mysqli_stmt_bind_param($stmt, "sssssi", $HelferName, $HelferEmail, $HelferHandy, $HelferLevel, $PasswortHash, $HelferID);
- } else {
- $sql = "UPDATE Helfer SET Name = ?, Email = ?, Handy = ?, HelferLevel = ?, Passwort = ?, Admin = ? WHERE HelferId = ?";
- $stmt = mysqli_prepare($db_link, $sql);
- if (!$stmt) { die("Prepare failed: " . mysqli_error($db_link)); }
- mysqli_stmt_bind_param($stmt, "ssssssi", $HelferName, $HelferEmail, $HelferHandy, $HelferLevel, $PasswortHash, $HelferIsAdmin, $HelferID);
- }
-
- if (!mysqli_stmt_execute($stmt)) { die("HelferdatenAendern failed: " . mysqli_stmt_error($stmt)); }
-
- $result = true;
- echo "Passwort geändert";
-
- $log_prefix = ($AdminID != 0) ? "(Admin $AdminID) " : "";
- error_log(date('Y-m-d H:i') . " {$log_prefix}Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE);
-
- mysqli_stmt_close($stmt);
- }
-
- return $result;
-}
-
-function AlleSchichten($db_link, $Sort, $HelferLevel = 1)#stmt
-{
- $sql = "SELECT SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,";
- $sql .= "DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') AS Tag,Soll ";
- $sql .= "FROM Dienst,SchichtUebersicht WHERE Dienst.DienstID=SchichtUebersicht.DienstID AND Dienst.Helferlevel=? ";
- $sql .= ($Sort == '1')
- ? " ORDER BY Von"
- : " ORDER BY Was,Von";
-
- $stmt = mysqli_prepare($db_link,$sql);
- if (!$stmt) { die("Alleschichten prepare failed " . mysqli_error($db_link)); }
-
- mysqli_stmt_bind_param($stmt, "i", $HelferLevel);
- if(!mysqli_stmt_execute($stmt)){die ( "AlleSchichten fehlgeschlagen. sort: $Sort err: " . mysqli_stmt_error($stmt));}
-
- $result = mysqli_stmt_get_result($stmt);
- return $result;
-}
-
-function AlleSchichtenCount($db_link, $HelferLevel = 1)#stmt
-{
- $sql = "SELECT SUM(Soll) as Anzahl, HelferLevel
- FROM SchichtUebersicht,Dienst
- WHERE SchichtUebersicht.DienstID=Dienst.DienstID AND HelferLevel=?";
-
- $stmt = mysqli_prepare($db_link,$sql);
- if(!$stmt) { die("AlleSchichtenCount prepare failed: " . mysqli_error($db_link)); }
-
- mysqli_stmt_bind_param($stmt, "i", $HelferLevel);
- if(!mysqli_stmt_execute($stmt)){die("AlleSchichtenCount execute failed: " . mysqli_error($db_link));}
-
- $result = mysqli_stmt_get_result($stmt);
-
- $zeile = mysqli_fetch_array($result, MYSQLI_ASSOC);
- return $zeile['Anzahl'];
-}
-
-
-function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1)#stmt
-{
- $sql = "SELECT Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst ";
- $sql .= "Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=?";
-
- $stmt = mysqli_prepare($db_link,$sql);
- if(!$stmt){ die("AlleBelegteSchichtenCount prepare failed " . mysqli_error($db_link)); }
-
- mysqli_stmt_bind_param($stmt, "i", $HelferLevel);
- if(!mysqli_stmt_execute($stmt)){ die("AlleBelegteSchichtenCount execute failed: " . mysqli_stmt_error($stmt)); }
- $result = mysqli_stmt_get_result($stmt);
-
- $zeile = mysqli_fetch_array($result, MYSQLI_ASSOC);
- return $zeile['Anzahl'];
-}
-
-
-function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1)#stmt
-{
- error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel");
- // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
- # bei -1 nicht in Suche einschliessen
- $sql_helferlevel = ($HelferLevel == -1)
- ? ""
- : "and Dienst.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 >= ? and Von < ? and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel
- ORDER BY Was,Von";
- $stmt = mysqli_prepare($db_link, $sql);
- error_log("AlleSchichtenImZeitbereich sql " . $sql);
- if(!$stmt) { die("AlleSchichtenImZeitbereich prepare failed " . mysqli_error($db_link)); }
-
- if ($Helferlevel == -1)
- {
- mysqli_stmt_bind_param($stmt, "ii", $Von, $Bis);
- } else {
- mysqli_stmt_bind_param($stmt, "iii", $Von, $Bis, $HelferLevel);
- }
- if(!mysqli_stmt_execute($stmt)) { die ( "AlleSchichtenImZeitbereich query failed: " . mysqli_stmt_error($stmt));}
-
- $result = mysqli_stmt_get_result($stmt);
- return $result ?: null;
-}
-
-
-function AlleSchichtenEinesHelfers($db_link, $HelferID)#stmt
+function Helferdaten($db_link, $HelferID)
{
$HelferID = mysqli_real_escape_string($db_link, $HelferID);
- $sql = "SELECT EinzelSchicht.SchichtID ,EinzelSchichtID,Was,
- DATE_FORMAT(Von,'%a %H:%i') AS Ab,
- DATE_FORMAT(Bis,'%a %H:%i') AS Bis
- FROM EinzelSchicht,Schicht,Dienst
- WHERE EinzelSchicht.SchichtID=Schicht.SchichtID and
- Schicht.DienstID = Dienst.DienstID and HelferID=?
- ORDER BY Von";
- $stmt = mysqli_prepare($db_link,$sql);
- if(!$stmt) { die("AlleSchichtenEinesHelfers prepare failed " . mysqli_error($db_link));}
- mysqli_stmt_bind_param($stmt, "i", $HelferID);
- if(!mysqli_stmt_execute($stmt){ die("AlleSchichtenEinesHelfers execute failed HelferId $HelferID" . mysqli_stmt_error($stmt));}
- $result = mysqli_smt_get_result($stmt);
- return $result;
-}
-
-function HelferLoeschen($db_link, $HelferID, $AdminID)#stmt
-{
- $result = Helferdaten($db_link, $HelferID);
- $HelferName = "(unbekannt)";
- while ($zeile = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
- $HelferName = $zeile['Name'];
+ $sql = "SELECT * FROM Helfer Where HelferID =" . $HelferID;
+ $db_erg = mysqli_query($db_link, $sql);
+ if (! $db_erg) {
+ echo "Helferdaten ungueltige Abfrage
\n";
+ echo "sql:$sql
\n";
+ die('Ungueltige Abfrage: ' . mysqli_error($db_link));
}
- $result = AlleSchichtenEinesHelfers($db_link, $HelferID);
- $AnzahlHelferschichten = mysqli_num_rows($result);
+ return $db_erg;
+}
- if ($AnzahlHelferschichten > 0) {
+
+
+function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferLevel, $HelferIsAdmin = -1, $AdminID = 0)
+{
+
+ $HelferID = mysqli_real_escape_string($db_link, $HelferID);
+ $HelferName = mysqli_real_escape_string($db_link, $HelferName);
+ $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail);
+ $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy);
+ $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel);
+
+ if ($HelferNewPasswort == "") {
+ //$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID;
+ if ($HelferIsAdmin == -1) {
+ $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',HelferLevel='$HelferLevel' Where HelferId=" . $HelferID;
+ } else {
+ $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Admin=$HelferIsAdmin,HelferLevel='$HelferLevel' Where HelferId=" . $HelferID;
+ }
+ //echo $sql;
+ $db_erg = mysqli_query($db_link, $sql);
+ echo "Helferdaten geändert";
+ if ($AdminID != 0) {
+ error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Admin: $HelferIsAdmin\n", 3, LOGFILE);
+ } else {
+ error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Admin: $HelferIsAdmin\n", 3, LOGFILE);
+ }
+ } else {
+ $HelferNewPasswort = "€" . $HelferNewPasswort . "ß";
+ $PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT);
+ if ($HelferIsAdmin == -1) {
+ $sql = "UPDATE Helfer SET Name='" . $HelferName . "',Email='" . $HelferEmail . "',Handy='" . $HelferHandy . "',HelferLevel='$HelferLevel',Passwort='" . $PasswortHash . "' Where HelferId=" . $HelferID;
+ } else {
+ $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',$HelferLevel='$HelferLevel',Passwort='$PasswortHash',Admin=$HelferIsAdmin Where HelferId=" . $HelferID;
+ }
+ //echo $sql;
+ $db_erg = mysqli_query($db_link, $sql);
+ echo "Passwort geändert";
+ if ($AdminID != 0) {
+ error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE);
+ } else {
+ error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE);
+ }
+ }
+
+ if (! $db_erg) {
+ echo "HelferdatenAendern ungueltiges Statement";
+ echo $sql;
+ die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ }
+
+
+ return $db_erg;
+}
+
+
+
+
+function AlleSchichten($db_link, $Sort, $HelferLevel = 1)
+{
+
+ $Sort = mysqli_real_escape_string($db_link, $Sort);
+
+ if ($Sort == '1') {
+ $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 Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Von";
+ } else {
+ $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 Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Was,Von";
+ }
+
+ $db_erg = mysqli_query($db_link, $sql);
+
+ if (! $db_erg) {
+ echo "AlleSchichten ungueltige Abfrage";
+ echo $Sort;
+ die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ }
+
+
+ return $db_erg;
+}
+
+function AlleSchichtenCount($db_link, $HelferLevel = 1)
+{
+
+ //$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";
+
+
+ $db_erg = mysqli_query($db_link, $sql);
+
+ if (! $db_erg) {
+ echo "AlleSchichtenCount ungueltige Abfrage";
+ echo $Sort;
+ die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ }
+
+ $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
+ return $zeile['Anzahl'];
+}
+
+
+function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1)
+{
+
+ $sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel";
+
+
+ $db_erg = mysqli_query($db_link, $sql);
+
+ if (! $db_erg) {
+ echo "AlleSchichtenCount ungueltige Abfrage";
+ echo $Sort;
+ die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ }
+
+ $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC);
+ return $zeile['Anzahl'];
+}
+
+
+function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1)
+{
+ error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel");
+ // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden
+ $Von = mysqli_real_escape_string($db_link, $Von);
+ $Bis = mysqli_real_escape_string($db_link, $Bis);
+ $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel);
+ $sql_helferlevel = "and Dienst.HelferLevel=$HelferLevel";
+ if ($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";
+ error_log("AlleSchichtenImZeitbereich sql " . $sql);
+ $db_erg = mysqli_query($db_link, $sql);
+
+ if (! $db_erg) {
+ echo "AlleSchichtenImZeitbereich ungueltige Abfrage
";
+ echo $sql;
+ die('
Ungueltige Abfrage: ' . mysqli_error($db_link));
+ }
+
+
+ return $db_erg;
+}
+
+
+function AlleSchichtenEinesHelfers($db_link, $HelferID)
+{
+
+ $HelferID = mysqli_real_escape_string($db_link, $HelferID);
+
+ $sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID . " order by Von";
+
+ $db_erg = mysqli_query($db_link, $sql);
+
+ if (! $db_erg) {
+ echo "AlleSchichtenEinesHelfers ungueltige Abfrage";
+ echo $HelferID;
+ die('Ungueltige Abfrage: ' . mysqli_error($db_link));
+ }
+
+
+ return $db_erg;
+}
+
+function HelferLoeschen($db_link, $HelferID, $AdminID)
+{
+
+ $HelferID = mysqli_real_escape_string($db_link, $HelferID);
+
+
+ $db_erg = Helferdaten($db_link, $HelferID);
+ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
+ $HelferName = $zeile['Name'];
+ //echo "HelferName=$HelferName
";
+ }
+
+ $db_erg = AlleSchichtenEinesHelfers($db_link, $HelferID);
+
+ $AnzahlHelferschichten = mysqli_num_rows($db_erg);
+ if ($AnzahlHelferschichten == 0) {
+ $sql = "Delete from Helfer where HelferID='$HelferID'";
+ $db_erg = mysqli_query($db_link, $sql);
+ if (! $db_erg) {
+ echo "Helfer $HelferName konnte nicht gelöscht werden
";
+ echo "$sql
";
+ return -2;
+ } else {
+ echo "Helfer $HelferName (HelferID:$HelferID) wurde erfolgreich geloescht
";
+ error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helfer loeschen: Name: $HelferName (HelferID:$HelferID)\n", 3, LOGFILE);
+ return 1;
+ }
+ } else {
echo "Helfer $HelferName hat noch $AnzahlHelferschichten Schichten. Bitte erst die Schichten löschen
";
return -1;
}
-
- $stmt = mysqli_prepare($db_link, "DELETE FROM Helfer WHERE HelferID = ?");
- if (!$stmt) {
- echo "Helfer $HelferName konnte nicht gelöscht werden
";
- die("HelferLoeschen prepare failed: " . mysqli_error($db_link));
- }
-
- mysqli_stmt_bind_param($stmt, "i", $HelferID);
- if (!mysqli_stmt_execute($stmt)) {
- echo "Helfer $HelferName konnte nicht gelöscht werden
";
- die("HelferLoeschen execute failed: " . mysqli_stmt_error($stmt));
- }
-
- echo "Helfer $HelferName (HelferID:$HelferID) wurde erfolgreich gelöscht
";
- error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helfer gelöscht: Name: $HelferName (HelferID:$HelferID)\n", 3, LOGFILE);
-
- return 1;
}
function SchichtIdArrayEinesHelfers($db_link, $HelferID)
@@ -381,6 +330,10 @@ function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID)
// TODO: fix GETDATE() array to string conversion
$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID . " and Bis>'" . date("Y-m-d H:i:s") . "' order by Von";
+
+ //$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von";
+
+ //echo $sql;
$db_erg = mysqli_query($db_link, $sql);
if (! $db_erg) {