From 9fcd60d0245e02aefddd222542c1a46ef88529d2 Mon Sep 17 00:00:00 2001 From: Florian Pesth Date: Thu, 14 Mar 2024 05:32:37 +0100 Subject: [PATCH] Helferschicht zuweisen --- html/SQL.php | 36 ++++++++++++++++++++---------------- html/testPDO.php | 22 ++++++++++++++++------ 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 6b7082a..7a412dd 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -289,14 +289,14 @@ function AlleSchichtenCount($HelferLevel = 1) } -function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) +function AlleBelegteSchichtenCount($HelferLevel = 1) { $db = DB::getInstance(); $db->prepare(__METHOD__,"select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $db_erg = $db->execute(__METHOD__,["helferlevel" => $Helferlevel]); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel]); $db->onErrorDie(__METHOD__); $zeile = $db->fetchAll(__METHOD__); - return $zeile['Anzahl']; + return $zeile[0]['Anzahl']; } @@ -420,8 +420,8 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) } -// FIXME -function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) +// ok (?) +function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) { $db = DB::getInstance(); @@ -430,22 +430,26 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID JOIN Dienst ON Schicht.DienstID = Dienst.DienstID JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID - WHERE EinzelSchicht.HelferID = $HelferID - AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) + WHERE EinzelSchicht.HelferID = :helferid + AND ( Schicht.SchichtID = :schichtid OR EinzelSchicht.EinzelSchichtID = :einzelschichtid) "); //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $db->execute(__METHOD__,[ + "helferid" => $HelferID, + "schichtid" => $SchichtId, + "einzelschichtid" => $EinzelSchichtId + ]); + $zeile = $db->fetchAll(__METHOD__); - if (mysqli_num_rows($db_erg) > 1) { + if (is_array($zeile) && count($zeile) > 1) { echo "HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegeben\n
"; // Fehler geht ins normale Error-Management, nicht ins Logfile error_log(date('Y-m-d H:i') . " HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegben.\n", 0); - } elseif (mysqli_num_rows($db_erg) == 1) { - $row = mysqli_fetch_assoc($db_erg); - $Von = $row["Von"]; - $Bis = $row["Bis"]; - $Was = $row["Was"]; - $HelferName = $row["Name"]; + } elseif (is_array($zeile) && (count($zeile) == 1)) { + $Von = $zeile[0]["Von"]; + $Bis = $zeile[0]["Bis"]; + $Was = $zeile[0]["Was"]; + $HelferName = $zeile[0]["Name"]; } else { echo "Es wurde keine Zeile zurueckgegeben."; } @@ -483,7 +487,7 @@ function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) $db->onErrorDie(__METHOD__,'new_einzelschicht'); - LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); + LogSchichtEingabe($HelferID, $SchichtId, -1, "eingetragen", $AdminID); return $db_erg; } diff --git a/html/testPDO.php b/html/testPDO.php index 406f7ec..549fe4b 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -182,15 +182,16 @@ function TestAlleSchichtenCount(){ else echo "AlleSchichtenCount ok\n"; } +// ok function TestAlleBelegteSchichtenCount(){ $dbl = old\ConnectDB(); - $erg_old = old\AlleBelegteSchichtenCount($dbl, $HelferLevel = 1); - $erg_new = AlleBelegteSchichtenCount($HelferLevel = 1); + $erg_old = old\AlleBelegteSchichtenCount($dbl, 2); + $erg_new = AlleBelegteSchichtenCount(2); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleBelegteSchichtenCount returns".var_export($erg_old, true)."\n"; echo "New AlleBelegteSchichtenCount returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleBelegteSchichtenCount ok"; + else echo "AlleBelegteSchichtenCount ok\n"; } function TestAlleSchichtenImZeitbereich(){ @@ -270,15 +271,22 @@ function TestLogSchichtEingabe(){ else echo "LogSchichtEingabe ok"; } +// ok function TestHelferSchichtZuweisen(){ $dbl = old\ConnectDB(); - $erg_old = old\HelferSchichtZuweisen($dbl, $HelferID, $SchichtId, $AdminID = 0); - $erg_new = HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0); + HelferLogin("max2@example.com", "hola234", 0); + $helfer1 = $_SESSION; + HelferLogin("max3@example.com", "hola531", 0); + $helfer2 = $_SESSION; + $dienste = GetDienste(); + $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); + $erg_old = old\HelferSchichtZuweisen($dbl, $helfer1['HelferID'], $schichten[0]['SchichtID'],0); + $erg_new = HelferSchichtZuweisen($helfer2['HelferID'], $schichten[0]['SchichtID'],0); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old HelferSchichtZuweisen returns".var_export($erg_old, true)."\n"; echo "New HelferSchichtZuweisen returns '".var_export($erg_new, true)."'\n"; } - else echo "HelferSchichtZuweisen ok"; + else echo "HelferSchichtZuweisen ok\n"; } function TestHelferVonSchichtLoeschen(){ @@ -557,4 +565,6 @@ TestChangeSchicht(); TestGetSchichtenForDienstForDay(); TestAlleSchichten(); TestAlleSchichtenCount(); +TestHelferSchichtZuweisen(); +TestAlleBelegteSchichtenCount(); ?>