feat: created file for admin page; included repair kits as option for entry with functionality
This commit is contained in:
@@ -6,37 +6,72 @@ require 'db.php';
|
||||
// Prüfen ob das Formular abgeschickt wurde
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
|
||||
if ($dbhandle->connect_error) {
|
||||
die("Verbindung fehlgeschlagen: " . $dbhandle->connect_error);
|
||||
}
|
||||
|
||||
// Daten holen & absichern
|
||||
$clientid = $_SESSION['user']['id']; // Discord-ID
|
||||
$clientname = $_SESSION['user']['nickname']; // Server-Nickname
|
||||
$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']);
|
||||
$kennzeichen = $dbhandle->real_escape_string($_POST['kennzeichen']);
|
||||
|
||||
// Eintrag speichern
|
||||
$stmt = $dbhandle->prepare("INSERT INTO contracts (user_id, service, preis, modell, kennzeichen) VALUES (?, ?, ?, ?, ?)");
|
||||
$stmt->bind_param("isiss", $clientid, $service, $preis, $modell, $kennzeichen);
|
||||
if ($service === "repkits") {
|
||||
$result = $dbhandle->query("SELECT repkits FROM settings");
|
||||
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()) {
|
||||
$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 {
|
||||
$meldung = "❌ Fehler: " . htmlspecialchars($stmt->error);
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$dbhandle->close();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@@ -47,7 +82,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
</head>
|
||||
<body>
|
||||
<?php include "header.php"?>
|
||||
<div id="formdiv">3
|
||||
<div id="formdiv">
|
||||
<div class="form-group">
|
||||
<?php if (isset($meldung)): ?>
|
||||
<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="Carplay">Carplay</option>
|
||||
<option value="Tuning">Tuning</option>
|
||||
<option value="repkits">Reparatur-Kits</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -86,11 +122,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
<script>
|
||||
document.getElementById('service').addEventListener('change', function () {
|
||||
const preisField = document.getElementById('preis');
|
||||
if (this.value === 'Carplay') {
|
||||
preisField.value = 3000;
|
||||
const preisLabel = document.querySelector("label[for='name']");
|
||||
const modellGroup = document.querySelector("input[name='modell']").parentNode;
|
||||
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 {
|
||||
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>
|
||||
|
||||
Reference in New Issue
Block a user