Dateien nach "/" hochladen
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
|
||||
include "functions.php";
|
||||
include "header.php";
|
||||
include "headerline.php";
|
||||
include "nav.php";
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<main class="col-md-9 ms-sm-auto col-lg-10 px-md-4">
|
||||
<br>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Anzeigenamen aktualisieren</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>Anzeigenamen aktualisieren</h2>
|
||||
|
||||
<?php
|
||||
|
||||
if(checkKaffeelisteAccess($conn, $mailadress)){
|
||||
|
||||
if(checkKaffeelisteAdmin($conn, $mailadress)){
|
||||
|
||||
// SQL-Abfrage für alle Mitarbeiter
|
||||
$sqlMitarbeiter = "SELECT MitarbeiterID, Name FROM kl_Mitarbeiter ORDER BY Name";
|
||||
$stmtMitarbeiter = sqlsrv_query($conn, $sqlMitarbeiter);
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
echo "Hallo " . getUserName($conn,$mailadress) . "!<br><br>Hier kannst du deinen Anzeigenamen anpassen.<br>Dieser wird auf der Kaffeeliste und E-Mail genutzt.<br>";
|
||||
// SQL-Abfrage für alle Mitarbeiter
|
||||
$sqlMitarbeiter = "SELECT MitarbeiterID, Name FROM kl_Mitarbeiter WHERE Email ='" . $mailadress . "'";
|
||||
$stmtMitarbeiter = sqlsrv_query($conn, $sqlMitarbeiter);
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Funktion zum Aktualisieren des Anzeigenamens
|
||||
function aktualisiereAnzeigenamen($mitarbeiterID, $neuerName, $conn) {
|
||||
try {
|
||||
$sql = "UPDATE kl_Mitarbeiter SET Name = ? WHERE MitarbeiterID = ?";
|
||||
$params = array($neuerName, $mitarbeiterID);
|
||||
|
||||
$stmt = sqlsrv_query($conn, $sql, $params);
|
||||
|
||||
if ($stmt === false) {
|
||||
throw new Exception(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
||||
return true; // Erfolgreich aktualisiert
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage(); // Fehlermeldung zurückgeben
|
||||
}
|
||||
}
|
||||
|
||||
// Überprüfen, ob das Formular abgesendet wurde
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["aktion"]) && $_POST["aktion"] == "aktualisieren") {
|
||||
$mitarbeiterID = $_POST["mitarbeiterID"];
|
||||
$neuerName = $_POST["neuerName"];
|
||||
|
||||
$ergebnis = aktualisiereAnzeigenamen($mitarbeiterID, $neuerName, $conn);
|
||||
|
||||
if ($ergebnis === true) {
|
||||
echo "Anzeigename erfolgreich aktualisiert.";
|
||||
} else {
|
||||
echo "Fehler: $ergebnis";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
|
||||
<label for="mitarbeiterID">Mitarbeiter auswählen:</label><br>
|
||||
<select name="mitarbeiterID" id="mitarbeiterID">
|
||||
<?php
|
||||
while ($row = sqlsrv_fetch_array($stmtMitarbeiter, SQLSRV_FETCH_ASSOC)) {
|
||||
$mitarbeiterID = $row['MitarbeiterID'];
|
||||
$name = $row['Name'];
|
||||
echo "<option value='{$mitarbeiterID}'>{$name}</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<br>
|
||||
|
||||
<label for="neuerName">Neuer Anzeigename: (maximal 20 Zeichen)</label><br>
|
||||
<input type="text" name="neuerName" id="neuerName" maxlength="20" required>
|
||||
<br><br>
|
||||
|
||||
<input type="hidden" name="aktion" value="aktualisieren">
|
||||
<button type="submit">Anzeigename aktualisieren</button>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php include "footer.php"; ?>
|
||||
@@ -0,0 +1,161 @@
|
||||
<?php
|
||||
|
||||
include "functions.php";
|
||||
include "header.php";
|
||||
include "headerline.php";
|
||||
include "nav.php";
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<!-- Banner -->
|
||||
<section id="banner">
|
||||
<div class="content">
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
// Verarbeitung des Formulars, wenn es gesendet wurde
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// Kosten pro Strich übernehmen:
|
||||
$kostenproStrich = $_POST["kostenproStrich"];
|
||||
|
||||
// Iteriere über alle Mitarbeiter
|
||||
foreach ($_POST["anzahlStriche"] as $mitarbeiterID => $anzahlStriche) {
|
||||
// Validierung könnte hier hinzugefügt werden
|
||||
$anzahlStriche = (int)$anzahlStriche;
|
||||
$kostenproStrich = floatval($kostenproStrich);
|
||||
$kosten = floatval($anzahlStriche * $kostenproStrich);
|
||||
$datum = date("Y-d-m H:i:s"); // Das aktuelle Datum verwenden
|
||||
if($anzahlStriche != 0){
|
||||
// SQL-Abfrage zum Einfügen der Daten
|
||||
$sql = "INSERT INTO kl_Kaffeeverbrauch (MitarbeiterID, AnzahlStriche, Kosten, KostenproStrich, Datum) VALUES (?, ?, ?, ?, ?)";
|
||||
$params = array($mitarbeiterID, $anzahlStriche, $kosten, $kostenproStrich, $datum);
|
||||
|
||||
$stmt = sqlsrv_query($conn, $sql, $params);
|
||||
|
||||
if ($stmt === false) {
|
||||
die(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "Einträge erfolgreich hinzugefügt.";
|
||||
}elseif($_SERVER["REQUEST_METHOD"] == "GET" AND isset($_GET["action"])){
|
||||
|
||||
if($_GET["action"] == "vorderseite"){
|
||||
|
||||
$sqlMitarbeiter = "SELECT M.MitarbeiterID, M.Name, M.Email
|
||||
FROM kl_Mitarbeiter M
|
||||
JOIN kl_Kaffeeverbrauch V ON M.MitarbeiterID = V.MitarbeiterID
|
||||
WHERE V.Datum >= DATEADD(DAY, -100, (SELECT MAX(Datum) FROM kl_Kaffeeverbrauch WHERE Datum < CAST(GETDATE() AS DATE))) AND M.aktiv = 1
|
||||
GROUP BY M.MitarbeiterID, M.Name, M.Email
|
||||
HAVING SUM(V.AnzahlStriche) >= 10
|
||||
ORDER BY Name;";
|
||||
|
||||
}elseif( $_GET["action"] == "rueckseite"){
|
||||
|
||||
$sqlMitarbeiter = "SELECT M.MitarbeiterID, M.Name, M.Email
|
||||
FROM kl_Mitarbeiter M
|
||||
LEFT JOIN kl_Kaffeeverbrauch V ON M.MitarbeiterID = V.MitarbeiterID AND V.Datum >= DATEADD(DAY, -100, (SELECT MAX(Datum) FROM kl_Kaffeeverbrauch))
|
||||
WHERE M.aktiv = 1
|
||||
GROUP BY M.MitarbeiterID, M.Name, M.Email
|
||||
HAVING COALESCE(SUM(V.AnzahlStriche), 0) < 10
|
||||
ORDER BY M.Name;";
|
||||
}elseif($_GET["action"] == "alle"){
|
||||
// Mitarbeiter aus der Datenbank abrufen und nach Namen sortieren
|
||||
$sqlMitarbeiter = "SELECT MitarbeiterID, Name FROM kl_Mitarbeiter WHERE aktiv = 1 ORDER BY Name";
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
// Mitarbeiter aus der Datenbank abrufen und nach Namen sortieren
|
||||
$sqlMitarbeiter = "SELECT MitarbeiterID, Name FROM kl_Mitarbeiter WHERE aktiv = 1 ORDER BY Name";
|
||||
|
||||
|
||||
}
|
||||
$stmtMitarbeiter = sqlsrv_query($conn, $sqlMitarbeiter);
|
||||
|
||||
// Kosten pro Strich auslesen
|
||||
$sqlKostenproStrich = "SELECT KostenproStrich FROM kl_config ";
|
||||
$stmtKostenproStrich = sqlsrv_query($conn, $sqlKostenproStrich);
|
||||
$row = sqlsrv_fetch_array($stmtKostenproStrich, SQLSRV_FETCH_ASSOC);
|
||||
$KostenproStrichtemp = $row["KostenproStrich"];
|
||||
$KostenproStrich = number_format($KostenproStrichtemp, 2, '.', '');
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Kaffeeliste - Anzahl der Striche für alle Mitarbeiter</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>Anzahl der Striche für alle Mitarbeiter</h2>
|
||||
<ul class="actions">
|
||||
<li>
|
||||
<form action="stricheintragen.php" method="get">
|
||||
<input type="hidden" name="action" value="vorderseite">
|
||||
<button type="submit">Vorderseite</button>
|
||||
</form>
|
||||
</li>
|
||||
<li>
|
||||
<form action="stricheintragen.php" method="get">
|
||||
<input type="hidden" name="action" value="rueckseite">
|
||||
<button type="submit">Rückseite</button>
|
||||
</form>
|
||||
</li>
|
||||
<li>
|
||||
<form action="stricheintragen.php" method="get">
|
||||
<input type="hidden" name="action" value="alle">
|
||||
<button type="submit">Alle</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
|
||||
<?php
|
||||
|
||||
echo "<label for='kostenproStrich'>Kosten pro Strich:</label>
|
||||
<input type='number' name='kostenproStrich' step='0.01' value='" . $KostenproStrich . "'><br>";
|
||||
|
||||
echo "<table>";
|
||||
echo " <tr>
|
||||
<th>Mitarbeiter</th>
|
||||
<th>Anzahl Striche</th>
|
||||
</tr>";
|
||||
|
||||
// Iteriere über alle Mitarbeiter
|
||||
while ($row = sqlsrv_fetch_array($stmtMitarbeiter, SQLSRV_FETCH_ASSOC)) {
|
||||
$mitarbeiterID = $row["MitarbeiterID"];
|
||||
$mitarbeiterName = $row["Name"];
|
||||
echo "<tr>";
|
||||
|
||||
// Formularfeld für die Anzahl der Striche
|
||||
echo "<td><label for='anzahlStriche[$mitarbeiterID]'>$mitarbeiterName:</label></td>";
|
||||
echo "<td><input type='number' name='anzahlStriche[$mitarbeiterID]' ></td>";
|
||||
echo "</tr>";
|
||||
|
||||
}
|
||||
echo "</table>";
|
||||
|
||||
?>
|
||||
|
||||
<button type="submit">Eintragen</button>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php include "footer.php"; ?>
|
||||
@@ -0,0 +1,213 @@
|
||||
<?php
|
||||
|
||||
include "functions.php";
|
||||
include "header.php";
|
||||
include "headerline.php";
|
||||
include "nav.php";
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<!-- Banner -->
|
||||
<section id="banner">
|
||||
<div class="content">
|
||||
|
||||
<?php
|
||||
|
||||
if(checkKaffeelisteAdmin($conn, $mailadress)){
|
||||
|
||||
|
||||
// Sichere Entgegennahme
|
||||
$userId = filter_input(INPUT_GET, 'user_id', FILTER_VALIDATE_INT);
|
||||
|
||||
if ($userId === null) {
|
||||
http_response_code(400);
|
||||
exit('Fehlender Parameter');
|
||||
}
|
||||
if ($userId === false) {
|
||||
http_response_code(400);
|
||||
exit('Ungültige Benutzer-ID');
|
||||
}
|
||||
|
||||
echo "<h2>Auswertung</h2>";
|
||||
echo "Hallo " . getUserName($conn,$mailadress) . "!<br><br>";
|
||||
// Funktion zum Berechnen der Gesamtausgabe und Gesamtstriche pro Mitarbeiter
|
||||
function berechneGesamtausgabe($email, $conn) {
|
||||
// MitarbeiterID anhand der E-Mail-Adresse abrufen
|
||||
$sqlMitarbeiterID = "SELECT MitarbeiterID FROM kl_Mitarbeiter WHERE Email = ?";
|
||||
$stmtMitarbeiterID = sqlsrv_query($conn, $sqlMitarbeiterID, array($email));
|
||||
$rowMitarbeiterID = sqlsrv_fetch_array($stmtMitarbeiterID, SQLSRV_FETCH_ASSOC);
|
||||
|
||||
if (!$rowMitarbeiterID) {
|
||||
return null; // Mitarbeiter nicht gefunden
|
||||
}
|
||||
|
||||
$mitarbeiterID = $rowMitarbeiterID["MitarbeiterID"];
|
||||
// Gesamteinzahlung pro Mitarbeiter
|
||||
$sqleinzahlung = "SELECT SUM(Betrag) AS Gesamteinzahlung FROM kl_Einzahlungen WHERE MitarbeiterID = ?";
|
||||
$stmteinzahlung = sqlsrv_query($conn, $sqleinzahlung, array($mitarbeiterID));
|
||||
$roweinzahlung = sqlsrv_fetch_array($stmteinzahlung, SQLSRV_FETCH_ASSOC);
|
||||
$gesamteinzahlung = $roweinzahlung['Gesamteinzahlung'];
|
||||
|
||||
// Gesamtausgabe für Kaffeeverbrauch pro Mitarbeiter
|
||||
$sqlAusgabe = "SELECT SUM(AnzahlStriche) AS Gesamtstriche, SUM(Kosten) AS Gesamtausgabe FROM kl_Kaffeeverbrauch WHERE MitarbeiterID = ?";
|
||||
$stmtAusgabe = sqlsrv_query($conn, $sqlAusgabe, array($mitarbeiterID));
|
||||
$rowAusgabe = sqlsrv_fetch_array($stmtAusgabe, SQLSRV_FETCH_ASSOC);
|
||||
$gesamtausgabe = $rowAusgabe['Gesamtausgabe'];
|
||||
$gesamtstriche = $rowAusgabe['Gesamtstriche'];
|
||||
$aktuellerStand = $gesamteinzahlung - $gesamtausgabe;
|
||||
|
||||
// Gesamteinzahlung pro Mitarbeiter und Aktuellem Jahr
|
||||
$sqleinzahlung = "SELECT SUM(Betrag) AS Gesamteinzahlung FROM kl_Einzahlungen WHERE MitarbeiterID = ? AND FORMAT(Datum, 'yyyy') = FORMAT(GETDATE(), 'yyyy') ";
|
||||
$stmteinzahlung = sqlsrv_query($conn, $sqleinzahlung, array($mitarbeiterID));
|
||||
$roweinzahlung = sqlsrv_fetch_array($stmteinzahlung, SQLSRV_FETCH_ASSOC);
|
||||
$yeareinzahlung = $roweinzahlung['Gesamteinzahlung'];
|
||||
|
||||
// Gesamtausgabe für Kaffeeverbrauch pro Mitarbeiter und Aktuellem Jahr
|
||||
$sqlAusgabe = "SELECT SUM(AnzahlStriche) AS Gesamtstriche, SUM(Kosten) AS Gesamtausgabe FROM kl_Kaffeeverbrauch WHERE MitarbeiterID = ? AND FORMAT(Datum, 'yyyy') = FORMAT(GETDATE(), 'yyyy')";
|
||||
$stmtAusgabe = sqlsrv_query($conn, $sqlAusgabe, array($mitarbeiterID));
|
||||
$rowAusgabe = sqlsrv_fetch_array($stmtAusgabe, SQLSRV_FETCH_ASSOC);
|
||||
$yearausgabe = $rowAusgabe['Gesamtausgabe'];
|
||||
$yearstriche = $rowAusgabe['Gesamtstriche'];
|
||||
|
||||
return array('Jahresausgabe' => $yearausgabe, 'Jahresstriche' => $yearstriche, 'Jahreseinzahlung' => $yeareinzahlung, 'Gesamtausgabe' => $gesamtausgabe, 'Gesamtstriche' => $gesamtstriche, 'Gesamteinzahlung' => $gesamteinzahlung, 'aktuellerStand' => $aktuellerStand);
|
||||
#return array('Gesamtausgabe' => $gesamtausgabe, 'Gesamtstriche' => $gesamtstriche, 'Gesamteinzahlung' => $gesamteinzahlung, 'aktuellerStand' => $aktuellerStand);
|
||||
|
||||
}
|
||||
function AusgabeletztenEinzahlungen($email, $conn) {
|
||||
// MitarbeiterID anhand der E-Mail-Adresse abrufen
|
||||
$sqlMitarbeiterID = "SELECT TOP 20 MitarbeiterID FROM kl_Mitarbeiter WHERE Email = ?";
|
||||
$stmtMitarbeiterID = sqlsrv_query($conn, $sqlMitarbeiterID, array($email));
|
||||
$rowMitarbeiterID = sqlsrv_fetch_array($stmtMitarbeiterID, SQLSRV_FETCH_ASSOC);
|
||||
|
||||
if (!$rowMitarbeiterID) {
|
||||
return null; // Mitarbeiter nicht gefunden
|
||||
}
|
||||
$mitarbeiterID = $rowMitarbeiterID["MitarbeiterID"];
|
||||
// Gesamteinzahlung pro Mitarbeiter
|
||||
$sqleinzahlung = "SELECT Betrag,Datum FROM kl_Einzahlungen WHERE MitarbeiterID = ? ORDER BY Datum DESC ";
|
||||
$stmteinzahlung = sqlsrv_query($conn, $sqleinzahlung, array($mitarbeiterID));
|
||||
$ausgabe = "<h4>Letzte Einzahlungen</h4><table><tr><th style='width:120'>Datum</th><th>Einzahlung</th></tr>";
|
||||
while ($row = sqlsrv_fetch_array($stmteinzahlung, SQLSRV_FETCH_ASSOC)) {
|
||||
$ausgabe .= "<tr><td>" . date_format($row["Datum"],"d.m.Y") . "</td><td>" . number_format($row["Betrag"], 2, ',', '') . "€</td></tr>";
|
||||
}
|
||||
$ausgabe .= "</table>";
|
||||
return $ausgabe;
|
||||
}
|
||||
|
||||
function AusgabeletztenStriche($email, $conn) {
|
||||
// MitarbeiterID anhand der E-Mail-Adresse abrufen
|
||||
$sqlMitarbeiterID = "SELECT TOP 20 MitarbeiterID FROM kl_Mitarbeiter WHERE Email = ?";
|
||||
$stmtMitarbeiterID = sqlsrv_query($conn, $sqlMitarbeiterID, array($email));
|
||||
$rowMitarbeiterID = sqlsrv_fetch_array($stmtMitarbeiterID, SQLSRV_FETCH_ASSOC);
|
||||
|
||||
if (!$rowMitarbeiterID) {
|
||||
return null; // Mitarbeiter nicht gefunden
|
||||
}
|
||||
$mitarbeiterID = $rowMitarbeiterID["MitarbeiterID"];
|
||||
// Gesamteinzahlung pro Mitarbeiter
|
||||
$sqleinzahlung = "SELECT AnzahlStriche,Kosten,Datum FROM kl_Kaffeeverbrauch WHERE MitarbeiterID = ? ORDER BY Datum DESC ";
|
||||
$stmteinzahlung = sqlsrv_query($conn, $sqleinzahlung, array($mitarbeiterID));
|
||||
$ausgabe = "<h4>Letzte Striche</h4><table ><tr><th style='width:120'>Datum</th><th>Striche</th><th>Kosten</th></tr>";
|
||||
while ($row = sqlsrv_fetch_array($stmteinzahlung, SQLSRV_FETCH_ASSOC)) {
|
||||
$ausgabe .= "<tr><td>" . date_format($row["Datum"],"d.m.Y") . "</td><td>" . $row["AnzahlStriche"] . "</td><td>" . number_format($row["Kosten"], 2, ',', '') . "€</td></tr>";
|
||||
}
|
||||
$ausgabe .= "</table>";
|
||||
return $ausgabe;
|
||||
}
|
||||
|
||||
$sqlMitglieder = "SELECT MitarbeiterID, Name, Email FROM kl_Mitarbeiter WHERE MitarbeiterID = $userId";
|
||||
$stmtMitglieder = sqlsrv_query($conn, $sqlMitglieder);
|
||||
|
||||
|
||||
while ($row = sqlsrv_fetch_array($stmtMitglieder, SQLSRV_FETCH_ASSOC)) {
|
||||
$mitarbeiterID = $row['MitarbeiterID'];
|
||||
$name = $row['Name'];
|
||||
$email = $row['Email'];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Berechne Gesamtausgabe und Gesamtstriche für den Mitarbeiter
|
||||
$result = berechneGesamtausgabe($email, $conn);
|
||||
|
||||
if ($result !== null) {
|
||||
|
||||
echo "<h2>Gesamtausgabe und Gesamtstriche</h2>";
|
||||
echo "<p>Name: $name</p>";
|
||||
echo "<p>E-Mail: $email</p>";
|
||||
echo "Gesamtausgabe: " . number_format($result['Gesamtausgabe'], 2, ',', '') . " €<br>";
|
||||
echo "Gesamtstriche: {$result['Gesamtstriche']}<br>";
|
||||
echo "<p>Gesamteinzahlung: " . number_format($result['Gesamteinzahlung'], 2, ',', '') . " €<br>";
|
||||
$aktuellerstand = number_format($result['aktuellerStand'], 2, ',', '.');
|
||||
if($result['aktuellerStand'] > 0){
|
||||
echo "<p><b>Aktueller Stand: {$aktuellerstand} € (Guthaben)</p>";
|
||||
}elseif($result['aktuellerStand'] < 0){
|
||||
echo "<p><b>Aktueller Stand: {$aktuellerstand} € (Schulden)</p>";
|
||||
}else{
|
||||
echo "<p><b>Aktueller Stand: {$aktuellerstand} €</p>";
|
||||
}
|
||||
echo "</b>";
|
||||
echo "<h2>Jahresübersicht</h2>";
|
||||
echo "Ausgabe im aktuellem Jahr: " . number_format($result['Jahresausgabe'], 2, ',', '') . " €<br>";
|
||||
echo "Gesamtstriche im aktuellem Jahr: {$result['Jahresstriche']}<br>";
|
||||
echo "<p>Gesamteinzahlung im aktuellem Jahr: " . number_format($result['Jahreseinzahlung'], 2, ',', '') . " €<br>";
|
||||
|
||||
$sqlconfig = "SELECT paypaluse,paypallink FROM kl_config";
|
||||
$stmtconfig = sqlsrv_query($conn, $sqlconfig, array($email));
|
||||
$rowconfig = sqlsrv_fetch_array($stmtconfig, SQLSRV_FETCH_ASSOC);
|
||||
|
||||
if($rowconfig["paypaluse"] == 1){
|
||||
echo "<h2>Paypal-Einzahlungen</h2>";
|
||||
echo '<b>Bezahle immer über die Freunde-Funktion von Paypal. Ansonsten stellen wir 20% des Betrags als Gebühr in Rechnung.</b><br>';
|
||||
|
||||
$paypallink = trim($rowconfig["paypallink"]);
|
||||
echo "<br>";
|
||||
if($result['aktuellerStand'] < 0){
|
||||
|
||||
echo '<form action="' . $paypallink .'' . $aktuellerstand . '" target="_blank" ><button type="submit">'. $aktuellerstand . ' € bezahlen</button></form>';
|
||||
|
||||
|
||||
}
|
||||
echo'<ul class="actions">
|
||||
<li>';
|
||||
echo '<form action="' . $paypallink .'5" target="_blank" ><button type="submit">5,00 € einzahlen</button></form>';
|
||||
echo '</li><li>';
|
||||
echo '<form action="' . $paypallink .'10" target="_blank" ><button type="submit">10,00 € einzahlen</button></form>';
|
||||
echo '</li><li>';
|
||||
echo '<form action="' . $paypallink .'15" target="_blank" ><button type="submit">15,00 € einzahlen</button></form>';
|
||||
echo '</li></ul>';
|
||||
|
||||
}
|
||||
echo "<br>";
|
||||
echo "<br>";
|
||||
echo AusgabeletztenEinzahlungen($email, $conn);
|
||||
echo "<br>";
|
||||
echo AusgabeletztenStriche($email, $conn);
|
||||
?>
|
||||
<br><br>
|
||||
|
||||
<!-- Formular mit Button zum Anpassen des Namens -->
|
||||
<form action="namenanpassen.php" method="get">
|
||||
<button type="submit">Namensanpassung</button>
|
||||
</form>
|
||||
<?php
|
||||
} else {
|
||||
echo "<p>Mitarbeiter mit der E-Mail-Adresse $email wurde nicht gefunden.</p>";
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
echo "<h2>Sie haben keine Zugang zu dieser Webseite</h2>";
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php include "footer.php";
|
||||
|
||||
?>
|
||||
+342
@@ -0,0 +1,342 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
include "functions.php";
|
||||
include "header.php";
|
||||
include "headerline.php";
|
||||
include "nav.php";
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<!-- Banner -->
|
||||
<section id="banner">
|
||||
<div class="content">
|
||||
<style>
|
||||
/* Hartes Reset für Inputs nur im Umfrage-Formular */
|
||||
html body form#coffeeSurvey input[type="checkbox"],
|
||||
html body form#coffeeSurvey input[type="radio"]{
|
||||
all: revert !important; /* setzt ALLES zurück */
|
||||
appearance: auto !important;
|
||||
-webkit-appearance: auto !important;
|
||||
|
||||
display: inline-block !important;
|
||||
position: static !important;
|
||||
opacity: 1 !important;
|
||||
visibility: visible !important;
|
||||
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
margin: 0 6px 0 0 !important;
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
html body form#coffeeSurvey label{
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
<?php
|
||||
|
||||
$geschlossen = true;
|
||||
|
||||
if(checkKaffeelisteAccess($conn, $mailadress)){
|
||||
|
||||
echo "<h2>Kaffeeliste</h2>";
|
||||
echo "Hallo " . getUserName($conn,$mailadress) . "!<br><br>";
|
||||
|
||||
|
||||
// Beispiel: falls $conn nicht global ist, musst du es wie in deiner Seite erzeugen.
|
||||
if (!isset($conn)) {
|
||||
die("DB Verbindung (\$conn) fehlt.");
|
||||
}
|
||||
|
||||
function h($s) { return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); }
|
||||
|
||||
$errors = [];
|
||||
$success = false;
|
||||
|
||||
$emailNorm = mb_strtolower(trim((string)$mailadress));
|
||||
if ($emailNorm === '' || !filter_var($emailNorm, FILTER_VALIDATE_EMAIL)) {
|
||||
$errors[] = "Keine gültige E-Mail im System gefunden (Variable \$mailadress).";
|
||||
}
|
||||
|
||||
// Options
|
||||
$drinks = [
|
||||
'espresso' => 'Espresso',
|
||||
'crema' => 'Café Crema',
|
||||
'cappuccino' => 'Cappuccino',
|
||||
'latte' => 'Latte Macchiato',
|
||||
'americano' => 'Americano',
|
||||
'decaf' => 'Entkoffeiniert',
|
||||
'other' => 'Andere',
|
||||
];
|
||||
|
||||
$problems = [
|
||||
'forget' => 'Vergesse Eintrag',
|
||||
'empty' => 'Kaffee leer',
|
||||
'water' => 'Wasser auffüllen',
|
||||
'too_little' => 'zu wenig Kaffeeausgabe',
|
||||
'too_much' => 'zu viel Kaffeeausgabe',
|
||||
'none' => 'Kein Problem',
|
||||
'other' => 'Sonstiges',
|
||||
];
|
||||
|
||||
$improvements = [
|
||||
'easier_entry' => 'Einfacherer Eintrag',
|
||||
'overview' => 'Übersicht über Kosten/Verbrauch',
|
||||
'more_mails' => 'Mehr Info-Mails',
|
||||
'adjust_amount' => 'Menge der Kaffeeausgabe anpassen',
|
||||
'other' => 'Sonstiges',
|
||||
];
|
||||
|
||||
function post($k, $def='') { return $_POST[$k] ?? $def; }
|
||||
function postArr($k) { $v = $_POST[$k] ?? []; return is_array($v) ? $v : []; }
|
||||
|
||||
// Schon abgestimmt?
|
||||
$alreadyVoted = true;
|
||||
if (!$errors) {
|
||||
$sqlChk = "SELECT 1 FROM dbo.CoffeeSurveyVotedEmails WHERE EmailNorm = ?";
|
||||
$stmtChk = sqlsrv_query($conn, $sqlChk, [$emailNorm]);
|
||||
if ($stmtChk === false) {
|
||||
$errors[] = "DB-Fehler (Vote-Check): " . print_r(sqlsrv_errors(), true);
|
||||
} else {
|
||||
$alreadyVoted = (sqlsrv_fetch_array($stmtChk, SQLSRV_FETCH_NUMERIC) !== null);
|
||||
}
|
||||
}
|
||||
|
||||
// POST Handling
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !$errors) {
|
||||
if ($alreadyVoted) {
|
||||
$errors[] = "Du hast bereits abgestimmt.";
|
||||
} else {
|
||||
|
||||
$q1 = (int)post('q1_listease', 0); // 1 sehr einfach .. 5 sehr schwierig
|
||||
$q2 = (int)post('q2_listsat', 0); // 1 sehr zufrieden .. 5 sehr unzufrieden
|
||||
$q3 = (int)post('q3_quality', 0);
|
||||
$q4 = (int)post('q4_websat', 0);
|
||||
|
||||
$q5 = postArr('q5_drinks'); // array
|
||||
$q5_other = trim((string)post('q5_drinks_other',''));
|
||||
|
||||
$q6 = trim((string)post('q6_newvarieties',''));
|
||||
|
||||
$q7 = (string)post('q7_problem','');
|
||||
$q7_other = trim((string)post('q7_problem_other',''));
|
||||
|
||||
$q8 = postArr('q8_improvements');
|
||||
$q8_other = trim((string)post('q8_improvements_other',''));
|
||||
|
||||
$q9 = trim((string)post('q9_betterideas',''));
|
||||
|
||||
// Validate scales
|
||||
foreach ([1=>$q1,2=>$q2,3=>$q3,4=>$q4] as $idx=>$val) {
|
||||
if ($val < 1 || $val > 5) $errors[] = "Bitte bei Frage {$idx} einen Wert von 1 bis 5 wählen.";
|
||||
}
|
||||
|
||||
// Validate drinks
|
||||
$allowedDrinks = array_keys($drinks);
|
||||
$q5 = array_values(array_unique(array_filter($q5, fn($v)=>in_array($v,$allowedDrinks,true))));
|
||||
if (count($q5) === 0) $errors[] = "Bitte bei Frage 5 mindestens eine Kaffeesorte auswählen.";
|
||||
if (in_array('other',$q5,true) && $q5_other === '') $errors[] = "Bitte bei Frage 5 'Andere' kurz beschreiben.";
|
||||
|
||||
// Validate problem
|
||||
if (!array_key_exists($q7, $problems)) $errors[] = "Bitte bei Frage 7 eine Option wählen.";
|
||||
if ($q7 === 'other' && $q7_other === '') $errors[] = "Bitte bei Frage 7 'Sonstiges' kurz beschreiben.";
|
||||
|
||||
// Validate improvements
|
||||
$allowedImp = array_keys($improvements);
|
||||
$q8 = array_values(array_unique(array_filter($q8, fn($v)=>in_array($v,$allowedImp,true))));
|
||||
if (count($q8) === 0) $errors[] = "Bitte bei Frage 8 mindestens eine Verbesserung auswählen.";
|
||||
if (in_array('other',$q8,true) && $q8_other === '') $errors[] = "Bitte bei Frage 8 'Sonstiges' kurz beschreiben.";
|
||||
|
||||
if (!$errors) {
|
||||
$q5_csv = implode(',', $q5);
|
||||
$q8_csv = implode(',', $q8);
|
||||
|
||||
// Transaction (sqlsrv)
|
||||
sqlsrv_begin_transaction($conn);
|
||||
|
||||
// 1) Sperre (E-Mail) eintragen
|
||||
$sqlEmail = "INSERT INTO dbo.CoffeeSurveyVotedEmails (EmailNorm) VALUES (?)";
|
||||
$stmtEmail = sqlsrv_query($conn, $sqlEmail, [$emailNorm]);
|
||||
|
||||
if ($stmtEmail === false) {
|
||||
sqlsrv_rollback($conn);
|
||||
$errors[] = "Speichern fehlgeschlagen (E-Mail-Sperre). " . print_r(sqlsrv_errors(), true);
|
||||
} else {
|
||||
// 2) Antworten speichern (ohne E-Mail)
|
||||
$sqlIns = "
|
||||
INSERT INTO dbo.CoffeeSurveyResponses
|
||||
(Q1_ListEase, Q2_ListSatisfaction, Q3_CoffeeQuality, Q4_WebsiteSatisfaction,
|
||||
Q5_Drinks, Q5_DrinksOther, Q6_NewVarieties,
|
||||
Q7_ListProblem, Q7_ListProblemOther,
|
||||
Q8_Improvements, Q8_ImprovementsOther,
|
||||
Q9_BetterIdeas)
|
||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
|
||||
";
|
||||
$params = [
|
||||
$q1, $q2, $q3, $q4,
|
||||
$q5_csv, ($q5_other !== '' ? $q5_other : null), ($q6 !== '' ? $q6 : null),
|
||||
$q7, ($q7_other !== '' ? $q7_other : null),
|
||||
$q8_csv, ($q8_other !== '' ? $q8_other : null),
|
||||
($q9 !== '' ? $q9 : null),
|
||||
];
|
||||
|
||||
$stmtIns = sqlsrv_query($conn, $sqlIns, $params);
|
||||
|
||||
if ($stmtIns === false) {
|
||||
sqlsrv_rollback($conn);
|
||||
$errors[] = "Speichern fehlgeschlagen (Antworten). " . print_r(sqlsrv_errors(), true);
|
||||
} else {
|
||||
sqlsrv_commit($conn);
|
||||
$success = true;
|
||||
$alreadyVoted = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if ($success): ?>
|
||||
<p><b>Danke!</b> Deine Antwort wurde gespeichert.</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($alreadyVoted && !$success && !$errors): ?>
|
||||
<p><h2><b>Hinweis:</b> Du hast bereits abgestimmt.</h2></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($errors): ?>
|
||||
<div style="border:1px solid #cc0000; padding:10px; margin:10px 0;">
|
||||
<b>Bitte korrigieren:</b>
|
||||
<ul>
|
||||
<?php foreach ($errors as $e): ?>
|
||||
<li><?php echo h($e); ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
|
||||
<?php if ($geschlossen):
|
||||
echo "<p><b>Danke!</b> Umfrage abgeschlossen.</p>";
|
||||
|
||||
else:
|
||||
?>
|
||||
<form id="coffeeSurvey" method="post" action="<?php echo h($_SERVER["PHP_SELF"]); ?>">
|
||||
|
||||
<label for="q1_listease">Wie einfach ist die Kaffeeliste für dich zu benutzen?</label><br>
|
||||
<select name="q1_listease" id="q1_listease" required>
|
||||
<option value="">Bitte wählen</option>
|
||||
<?php for ($i=1;$i<=5;$i++): ?>
|
||||
<?php
|
||||
$text = ($i===1) ? "1 (sehr einfach)" : (($i===5) ? "5 (sehr schwierig)" : (string)$i);
|
||||
$sel = ((string)post('q1_listease','') === (string)$i) ? "selected" : "";
|
||||
?>
|
||||
<option value="<?php echo $i; ?>" <?php echo $sel; ?>><?php echo h($text); ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<br><br>
|
||||
|
||||
<label for="q2_listsat">Wie zufrieden bist du mit der Kaffeeliste insgesamt?</label><br>
|
||||
<select name="q2_listsat" id="q2_listsat" required>
|
||||
<option value="">Bitte wählen</option>
|
||||
<?php for ($i=1;$i<=5;$i++): ?>
|
||||
<?php
|
||||
$text = ($i===1) ? "1 (sehr zufrieden)" : (($i===5) ? "5 (sehr unzufrieden)" : (string)$i);
|
||||
$sel = ((string)post('q2_listsat','') === (string)$i) ? "selected" : "";
|
||||
?>
|
||||
<option value="<?php echo $i; ?>" <?php echo $sel; ?>><?php echo h($text); ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<br><br>
|
||||
|
||||
<label for="q3_quality">Wie zufrieden bist du mit der Kaffeequalität insgesamt?</label><br>
|
||||
<select name="q3_quality" id="q3_quality" required>
|
||||
<option value="">Bitte wählen</option>
|
||||
<?php for ($i=1;$i<=5;$i++): ?>
|
||||
<?php
|
||||
$text = ($i===1) ? "1 (sehr zufrieden)" : (($i===5) ? "5 (sehr unzufrieden)" : (string)$i);
|
||||
$sel = ((string)post('q3_quality','') === (string)$i) ? "selected" : "";
|
||||
?>
|
||||
<option value="<?php echo $i; ?>" <?php echo $sel; ?>><?php echo h($text); ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<br><br>
|
||||
|
||||
<label for="q4_websat">Wie zufrieden bist du mit der Webseite der Kaffeeliste insgesamt?</label><br>
|
||||
<select name="q4_websat" id="q4_websat" required>
|
||||
<option value="">Bitte wählen</option>
|
||||
<?php for ($i=1;$i<=5;$i++): ?>
|
||||
<?php
|
||||
$text = ($i===1) ? "1 (sehr zufrieden)" : (($i===5) ? "5 (sehr unzufrieden)" : (string)$i);
|
||||
$sel = ((string)post('q4_websat','') === (string)$i) ? "selected" : "";
|
||||
?>
|
||||
<option value="<?php echo $i; ?>" <?php echo $sel; ?>><?php echo h($text); ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<br><br>
|
||||
|
||||
<label>Welche Kaffeearten/Sorten trinkst du am häufigsten? (Mehrfachauswahl)</label><br>
|
||||
<?php foreach ($drinks as $val => $label): ?>
|
||||
<?php $checked = in_array($val, postArr('q5_drinks'), true) ? "checked" : ""; ?>
|
||||
<input type="checkbox" name="q5_drinks[]" value="<?php echo h($val); ?>" <?php echo $checked; ?>>
|
||||
<?php echo h($label); ?><br>
|
||||
<?php endforeach; ?>
|
||||
<br>
|
||||
<label for="q5_drinks_other">Andere (Text):</label><br>
|
||||
<input type="text" name="q5_drinks_other" id="q5_drinks_other" value="<?php echo h((string)post('q5_drinks_other','')); ?>">
|
||||
<br><br>
|
||||
|
||||
<label for="q6_newvarieties">Welche zusätzlichen Sorten würdest du dir wünschen? (Freitext)</label><br>
|
||||
<textarea name="q6_newvarieties" id="q6_newvarieties" rows="3"><?php echo h((string)post('q6_newvarieties','')); ?></textarea>
|
||||
<br><br>
|
||||
|
||||
<label for="q7_problem">Was ist dein häufigstes Problem mit der Kaffeeliste?</label><br>
|
||||
<select name="q7_problem" id="q7_problem" required>
|
||||
<option value="">Bitte wählen</option>
|
||||
<?php foreach ($problems as $val => $label): ?>
|
||||
<?php $sel = ((string)post('q7_problem','') === (string)$val) ? "selected" : ""; ?>
|
||||
<option value="<?php echo h($val); ?>" <?php echo $sel; ?>><?php echo h($label); ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<br><br>
|
||||
|
||||
<label for="q7_problem_other">Sonstiges (Text):</label><br>
|
||||
<input type="text" name="q7_problem_other" id="q7_problem_other" value="<?php echo h((string)post('q7_problem_other','')); ?>">
|
||||
<br><br>
|
||||
|
||||
<label>Welche Verbesserungen wünschst du dir für die Kaffeeliste? (Mehrfachauswahl)</label><br>
|
||||
<?php foreach ($improvements as $val => $label): ?>
|
||||
<?php $checked = in_array($val, postArr('q8_improvements'), true) ? "checked" : ""; ?>
|
||||
<input type="checkbox" name="q8_improvements[]" value="<?php echo h($val); ?>" <?php echo $checked; ?>>
|
||||
<?php echo h($label); ?><br>
|
||||
<?php endforeach; ?>
|
||||
<br>
|
||||
<label for="q8_improvements_other">Sonstiges (Text):</label><br>
|
||||
<input type="text" name="q8_improvements_other" id="q8_improvements_other" value="<?php echo h((string)post('q8_improvements_other','')); ?>">
|
||||
<br><br>
|
||||
|
||||
|
||||
<label for="q9_betterideas">Was kann die Kaffeeliste noch besser machen? (Freitext)</label><br>
|
||||
<textarea name="q9_betterideas" id="q9_betterideas" rows="4"><?php echo h((string)post('q9_betterideas','')); ?></textarea>
|
||||
<br><br>
|
||||
|
||||
<input type="hidden" name="aktion" value="umfrage_absenden">
|
||||
<button type="submit" <?php echo $alreadyVoted ? 'disabled' : ''; ?>>Umfrage absenden</button>
|
||||
</form>
|
||||
<?php
|
||||
endif;?>
|
||||
|
||||
<?php
|
||||
|
||||
}else{
|
||||
echo "<h2>Sie haben keine Zugang zu dieser Webseite</h2>";
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php include "footer.php";
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user