Files

126 lines
3.2 KiB
PHP

<?php
session_start();
require_once("inc/config.inc.php");
require_once("inc/functions.inc.php");
require_once("inc/vacation_absence.inc.php");
$user = check_user();
vacationAbsenceEnsureSchema($pdo);
if (!isset($_SESSION['userid'])) {
die("Kein Benutzer angemeldet.");
}
if ($_SESSION['admin'] != 1) {
die("Kein Zugriff.");
}
$admin_id = $_SESSION['userid'];
$message = "";
/* ===== Antrag bearbeiten ===== */
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['vacation_id'])) {
$vacation_id = (int)$_POST['vacation_id'];
$action = $_POST['action'];
$comment_admin = trim((string)($_POST['comment_admin'] ?? ''));
if ($action == "genehmigen") {
$status = "genehmigt";
} elseif ($action == "ablehnen") {
$status = "abgelehnt";
} else {
die("Ungültige Aktion.");
}
$stmt = $pdo->prepare("
UPDATE vacations
SET status = ?,
approved_by = ?,
approved_at = NOW()
WHERE id = ?
");
$stmt->execute([$status, $admin_id, $vacation_id]);
$message = "Antrag erfolgreich aktualisiert.";
}
/* ===== Offene Anträge laden ===== */
$stmt = $pdo->prepare("
SELECT v.*, u.vorname, u.nachname
FROM vacations v
JOIN users u ON u.id = v.user_id
WHERE v.status = 'beantragt'
ORDER BY v.start_date ASC
");
$stmt->execute();
$antraege = $stmt->fetchAll();
?>
<?php include 'header.php'; ?>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>Abwesenheitsanträge genehmigen</h2>
<?php if ($message): ?>
<div class="alert alert-success"><?php echo htmlspecialchars($message); ?></div>
<?php endif; ?>
<?php if (count($antraege) == 0): ?>
<div class="alert alert-info">Keine offenen Anträge.</div>
<?php else: ?>
<table class="table table-bordered table-striped">
<tr>
<th>Mitarbeiter</th>
<th>Grund</th>
<th>Von</th>
<th>Bis</th>
<th>Tage</th>
<th>Kommentar</th>
<th>Aktion</th>
</tr>
<?php foreach ($antraege as $a): ?>
<tr>
<td><?php echo htmlspecialchars($a['vorname'] . " " . $a['nachname']); ?></td>
<td><?php echo htmlspecialchars(vacationAbsenceReasonLabel($a['absence_reason'] ?? 'urlaub')); ?></td>
<td><?php echo htmlspecialchars((string)$a['start_date']); ?></td>
<td><?php echo htmlspecialchars((string)$a['end_date']); ?></td>
<td><?php echo (int)$a['days']; ?></td>
<td><?php echo htmlspecialchars((string)($a['comment_user'] ?? '')); ?></td>
<td>
<form method="post" style="display:inline;">
<input type="hidden" name="vacation_id" value="<?php echo (int)$a['id']; ?>">
<input type="hidden" name="action" value="genehmigen">
<button type="submit" class="btn btn-success btn-sm">
Genehmigen
</button>
</form>
<form method="post" style="display:inline;">
<input type="hidden" name="vacation_id" value="<?php echo (int)$a['id']; ?>">
<input type="hidden" name="action" value="ablehnen">
<button type="submit" class="btn btn-danger btn-sm">
Ablehnen
</button>
</form>
</td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
</div>
</div>
</div>
<?php include 'footer.php'; ?>