feat: created file for admin page; included repair kits as option for entry with functionality

This commit is contained in:
Ioannis20x
2025-07-08 11:58:26 +02:00
parent c632854cca
commit f64500c9a0
2 changed files with 59 additions and 14 deletions

View File

@@ -6,37 +6,72 @@ require 'db.php';
// Prüfen ob das Formular abgeschickt wurde // Prüfen ob das Formular abgeschickt wurde
if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if ($dbhandle->connect_error) { if ($dbhandle->connect_error) {
die("Verbindung fehlgeschlagen: " . $dbhandle->connect_error); die("Verbindung fehlgeschlagen: " . $dbhandle->connect_error);
} }
// Daten holen & absichern
$clientid = $_SESSION['user']['id']; // Discord-ID $clientid = $_SESSION['user']['id']; // Discord-ID
$clientname = $_SESSION['user']['nickname']; // Server-Nickname $clientname = $_SESSION['user']['nickname']; // Server-Nickname
$service = $dbhandle->real_escape_string($_POST['Services']); $service = $dbhandle->real_escape_string($_POST['Services']);
$preis = $dbhandle->real_escape_string($_POST['preis']); $menge = intval($_POST['preis']); // Anzahl für Reparaturkits
$modell = $dbhandle->real_escape_string($_POST['modell']); $modell = $dbhandle->real_escape_string($_POST['modell']);
$kennzeichen = $dbhandle->real_escape_string($_POST['kennzeichen']); $kennzeichen = $dbhandle->real_escape_string($_POST['kennzeichen']);
// Eintrag speichern if ($service === "repkits") {
$stmt = $dbhandle->prepare("INSERT INTO contracts (user_id, service, preis, modell, kennzeichen) VALUES (?, ?, ?, ?, ?)"); $result = $dbhandle->query("SELECT repkits FROM settings");
$stmt->bind_param("isiss", $clientid, $service, $preis, $modell, $kennzeichen); if ($result && $row = $result->fetch_assoc()) {
$aktuellerBestand = intval($row['repkits']);
$neuerBestand = $aktuellerBestand + $menge;
if ($neuerBestand < 0) {
$meldung = "❌ Fehler: Nicht genug Reparaturkits im Lager!";
} else {
// Lagerbestand aktualisieren
$update = $dbhandle->prepare("UPDATE settings SET repkits = ?");
$update->bind_param("i", $neuerBestand);
if ($update->execute()) {
$meldung = "✅ Lagerbestand aktualisiert! Neuer Bestand: $neuerBestand Kits.";
// Log-Eintrag
$aktion = ($menge > 0) ? "ADD" : "REMOVE";
$log = $dbhandle->prepare("INSERT INTO service_log (user_id, service, menge, aktion) VALUES (?, ?, ?, ?)");
$log->bind_param("isis", $clientid, $service, $menge, $aktion);
$log->execute();
$log->close();
} else {
$meldung = "❌ Fehler beim Lager-Update: " . htmlspecialchars($update->error);
}
$update->close();
}
} else {
$meldung = "❌ Fehler: Lager nicht gefunden.";
}
}
else {
// Auftrag speichern
$stmt = $dbhandle->prepare("INSERT INTO contracts (user_id, service, preis, modell, kennzeichen) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("isiss", $clientid, $service, $menge, $modell, $kennzeichen);
if ($stmt->execute()) { if ($stmt->execute()) {
$meldung = "✅ Eintrag erfolgreich gespeichert!"; $meldung = "✅ Eintrag erfolgreich gespeichert!";
// Log-Eintrag
$aktion = "ADD";
$log = $dbhandle->prepare("INSERT INTO service_log (user_id, service, menge, modell, kennzeichen, aktion) VALUES (?, ?, ?, ?, ?, ?)");
$log->bind_param("isisss", $clientid, $service, $menge, $modell, $kennzeichen, $aktion);
$log->execute();
$log->close();
} else { } else {
$meldung = "❌ Fehler: " . htmlspecialchars($stmt->error); $meldung = "❌ Fehler: " . htmlspecialchars($stmt->error);
} }
$stmt->close(); $stmt->close();
$dbhandle->close(); }
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@@ -47,7 +82,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
</head> </head>
<body> <body>
<?php include "header.php"?> <?php include "header.php"?>
<div id="formdiv">3 <div id="formdiv">
<div class="form-group"> <div class="form-group">
<?php if (isset($meldung)): ?> <?php if (isset($meldung)): ?>
<p style="color: lime; font-weight: bold; text-align: center;"><?php echo $meldung; ?></p> <p style="color: lime; font-weight: bold; text-align: center;"><?php echo $meldung; ?></p>
@@ -62,6 +97,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
<option value="Reparatur">Reparatur</option> <option value="Reparatur">Reparatur</option>
<option value="Carplay">Carplay</option> <option value="Carplay">Carplay</option>
<option value="Tuning">Tuning</option> <option value="Tuning">Tuning</option>
<option value="repkits">Reparatur-Kits</option>
</select> </select>
</div> </div>
@@ -86,11 +122,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
<script> <script>
document.getElementById('service').addEventListener('change', function () { document.getElementById('service').addEventListener('change', function () {
const preisField = document.getElementById('preis'); const preisLabel = document.querySelector("label[for='name']");
if (this.value === 'Carplay') { const modellGroup = document.querySelector("input[name='modell']").parentNode;
preisField.value = 3000; const kennzeichenGroup = document.querySelector("input[name='kennzeichen']").parentNode;
if (this.value === 'repkits') {
preisLabel.textContent = "Menge (+/-):";
modellGroup.style.display = "none";
kennzeichenGroup.style.display = "none";
document.getElementById('preis').placeholder = "+5 oder -3";
} else { } else {
preisField.value = ''; // Lösche den Wert, falls etwas anderes gewählt wird preisLabel.textContent = "Preis:";
modellGroup.style.display = "block";
kennzeichenGroup.style.display = "block";
document.getElementById('preis').placeholder = "0";
} }
}); });
</script> </script>