80 lines
2.9 KiB
PHP
80 lines
2.9 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'; ?>
|