39311-vm/attendance.php
2026-03-25 13:56:27 +00:00

149 lines
7.7 KiB
PHP

<?php
session_start();
require_once 'db/config.php';
// Simple login check
if (!isset($_SESSION['user'])) {
header('Location: login.php');
exit;
}
$db = db();
$msg = '';
$today = date('Y-m-d');
// Attendance toggle logic
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$emp_id = $_POST['employee_id'] ?? 0;
$action = $_POST['action'] ?? '';
if ($action === 'check_in') {
$stmt = $db->prepare("INSERT INTO attendance (employee_id, date, check_in) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE check_in = ?");
if ($stmt->execute([$emp_id, $today, date('H:i:s'), date('H:i:s')])) {
$msg = 'تم تسجيل الحضور بنجاح!';
}
} elseif ($action === 'check_out') {
$stmt = $db->prepare("UPDATE attendance SET check_out = ? WHERE employee_id = ? AND date = ?");
if ($stmt->execute([date('H:i:s'), $emp_id, $today])) {
$msg = 'تم تسجيل الانصراف بنجاح!';
}
}
}
// Fetch all employees and their today's attendance
$employees = $db->query("SELECT e.*, a.check_in, a.check_out FROM employees e LEFT JOIN attendance a ON e.id = a.employee_id AND a.date = '$today' ORDER BY e.id DESC")->fetchAll();
$project_name = $_SERVER['PROJECT_NAME'] ?? 'نظام الموارد البشرية';
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>تسجيل الحضور - <?php echo htmlspecialchars($project_name); ?></title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.rtl.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container">
<a class="navbar-brand fw-bold" href="index.php"><?php echo htmlspecialchars($project_name); ?></a>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="index.php">لوحة التحكم</a></li>
<li class="nav-item"><a class="nav-link" href="employees.php">الموظفين</a></li>
<li class="nav-item"><a class="nav-link active" href="attendance.php">الحضور</a></li>
<li class="nav-item"><a class="nav-link" href="payroll.php">الرواتب</a></li>
</ul>
</div>
</div>
</nav>
<main class="container py-5 fade-in">
<div class="d-flex justify-content-between align-items-center mb-4">
<div>
<h1 class="h2 fw-bold mb-0">سجل الحضور والغياب</h1>
<p class="text-muted mb-0">تاريخ اليوم: <?php echo date('Y-m-d'); ?></p>
</div>
</div>
<?php if ($msg): ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<?php echo $msg; ?>
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
<?php endif; ?>
<div class="card border-0 shadow-sm">
<div class="table-responsive">
<table class="table table-hover mb-0 align-middle">
<thead class="bg-light">
<tr>
<th class="ps-4">الموظف</th>
<th>وقت الحضور</th>
<th>وقت الانصراف</th>
<th class="pe-4 text-center">إجراءات</th>
</tr>
</thead>
<tbody>
<?php if (empty($employees)): ?>
<tr><td colspan="4" class="text-center py-5 text-muted">لا يوجد موظفين مسجلين حالياً</td></tr>
<?php else: ?>
<?php foreach ($employees as $emp): ?>
<tr>
<td class="ps-4 fw-bold">
<div class="d-flex align-items-center">
<div class="rounded-circle bg-success text-white p-2 me-3 text-center" style="width: 40px; height: 40px; line-height: 24px;">
<?php echo mb_substr($emp['name'], 0, 1, 'UTF-8'); ?>
</div>
<?php echo htmlspecialchars($emp['name']); ?>
</div>
</td>
<td>
<?php if ($emp['check_in']): ?>
<span class="badge bg-success py-2 px-3"><?php echo date('H:i', strtotime($emp['check_in'])); ?></span>
<?php else: ?>
<span class="text-muted small">--:--</span>
<?php endif; ?>
</td>
<td>
<?php if ($emp['check_out']): ?>
<span class="badge bg-primary py-2 px-3"><?php echo date('H:i', strtotime($emp['check_out'])); ?></span>
<?php else: ?>
<span class="text-muted small">--:--</span>
<?php endif; ?>
</td>
<td class="pe-4 text-center">
<form action="attendance.php" method="POST" style="display:inline-block;">
<input type="hidden" name="employee_id" value="<?php echo $emp['id']; ?>">
<?php if (!$emp['check_in']): ?>
<button type="submit" name="action" value="check_in" class="btn btn-sm btn-success">
<i class="fas fa-sign-in-alt"></i> تسجيل حضور
</button>
<?php elseif (!$emp['check_out']): ?>
<button type="submit" name="action" value="check_out" class="btn btn-sm btn-primary">
<i class="fas fa-sign-out-alt"></i> تسجيل انصراف
</button>
<?php else: ?>
<button type="button" class="btn btn-sm btn-secondary" disabled>
<i class="fas fa-check-double"></i> تم الانتهاء
</button>
<?php endif; ?>
</form>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
</main>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>