Files
2026-03-24 14:45:06 +01:00

80 lines
3.0 KiB
PHP

<?php
session_start();
require_once("inc/config.inc.php");
require_once("inc/functions.inc.php");
//Überprüfe, dass der User eingeloggt ist
//Der Aufruf von check_user() muss in alle internen Seiten eingebaut sein
$user = check_user();
?>
<?php include 'header.php'; ?>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>Stempelkarten-System</h2>
<?php
// Überprüfen, ob eine Benutzer-ID in der Session vorhanden ist
if (!isset($_SESSION['userid'])) {
die("Kein Benutzer angemeldet.");
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$employee_id = $_POST['employee_id'];
$datum = $_POST['datum'];
$buchungen = $_POST['buchungen'];
$deleted_entries = $_POST['deleted_entries']; // IDs der zu löschenden Einträge
// Überprüfen, ob alle Termineinträge für denselben Tag sind
foreach ($buchungen as $timestamp_id => $buchung) {
if (date('Y-m-d', strtotime($buchung['timestamp_datetime'])) !== $datum) {
die("Fehler: Nicht alle Termineinträge sind für denselben Tag.");
}
}
try {
$pdo->beginTransaction();
// Löschvorgänge durchführen
foreach ($deleted_entries as $deleted_id) {
$delete_query = "DELETE FROM timestamps WHERE timestamp_id = :timestamp_id AND employee_id = :employee_id";
$stmt = $pdo->prepare($delete_query);
$stmt->bindParam(':timestamp_id', $deleted_id, PDO::PARAM_INT);
$stmt->bindParam(':employee_id', $employee_id, PDO::PARAM_INT);
$stmt->execute();
}
// Speichern oder Aktualisieren der Buchungen
foreach ($buchungen as $timestamp_id => $buchung) {
if (strpos($timestamp_id, 'new_') !== false) {
// Neue Buchung hinzufügen
$insert_query = "INSERT INTO timestamps (employee_id, timestamp_type, timestamp_datetime) VALUES (:employee_id, :timestamp_type, :timestamp_datetime)";
$stmt = $pdo->prepare($insert_query);
} else {
// Bestehende Buchung aktualisieren
$update_query = "UPDATE timestamps SET timestamp_type = :timestamp_type, timestamp_datetime = :timestamp_datetime WHERE timestamp_id = :timestamp_id AND employee_id = :employee_id";
$stmt = $pdo->prepare($update_query);
$stmt->bindParam(':timestamp_id', $timestamp_id, PDO::PARAM_INT);
}
$stmt->bindParam(':employee_id', $employee_id, PDO::PARAM_INT);
$stmt->bindParam(':timestamp_type', $buchung['timestamp_type']);
$stmt->bindParam(':timestamp_datetime', $buchung['timestamp_datetime']);
$stmt->execute();
}
$pdo->commit();
echo "Änderungen erfolgreich gespeichert.";
} catch(PDOException $e) {
$pdo->rollBack();
echo "Datenbankfehler: " . $e->getMessage();
}
} else {
die("Ungültige Anfrage.");
}
?>
</div>
</div>
</div>
<?php include 'footer.php'; ?>