161 lines
7.7 KiB
PHP
161 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 = '';
|
|
|
|
// Add employee logic
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_employee'])) {
|
|
$name = $_POST['name'] ?? '';
|
|
$phone = $_POST['phone'] ?? '';
|
|
$salary = $_POST['salary'] ?? 0.00;
|
|
|
|
if (!empty($name)) {
|
|
$stmt = $db->prepare("INSERT INTO employees (name, phone, salary) VALUES (?, ?, ?)");
|
|
if ($stmt->execute([$name, $phone, $salary])) {
|
|
$msg = 'تم إضافة الموظف بنجاح!';
|
|
}
|
|
}
|
|
}
|
|
|
|
// Delete employee logic
|
|
if (isset($_GET['delete'])) {
|
|
$stmt = $db->prepare("DELETE FROM employees WHERE id = ?");
|
|
if ($stmt->execute([$_GET['delete']])) {
|
|
$msg = 'تم حذف الموظف بنجاح!';
|
|
}
|
|
}
|
|
|
|
$employees = $db->query("SELECT * FROM employees ORDER BY 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 active" href="employees.php">الموظفين</a></li>
|
|
<li class="nav-item"><a class="nav-link" 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">
|
|
<h1 class="h2 fw-bold mb-0">قائمة الموظفين</h1>
|
|
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addEmployeeModal">إضافة موظف جديد</button>
|
|
</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>تاريخ الانضمام</th>
|
|
<th class="pe-4 text-center">إجراءات</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php if (empty($employees)): ?>
|
|
<tr><td colspan="5" 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-primary 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 echo htmlspecialchars($emp['phone']); ?></td>
|
|
<td><?php echo number_format($emp['salary'], 2); ?> ج.م</td>
|
|
<td class="text-muted"><?php echo date('Y-m-d', strtotime($emp['created_at'])); ?></td>
|
|
<td class="pe-4 text-center">
|
|
<a href="employees.php?delete=<?php echo $emp['id']; ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('هل أنت متأكد من حذف هذا الموظف؟')">
|
|
<i class="fas fa-trash"></i> حذف
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
|
|
<!-- Add Employee Modal -->
|
|
<div class="modal fade" id="addEmployeeModal" tabindex="-1">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form action="employees.php" method="POST" class="needs-validation" novalidate>
|
|
<div class="modal-header">
|
|
<h5 class="modal-title fw-bold">إضافة موظف جديد</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="mb-3">
|
|
<label class="form-label small fw-bold">اسم الموظف</label>
|
|
<input type="text" name="name" class="form-control" required placeholder="أدخل اسم الموظف">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label small fw-bold">رقم الهاتف</label>
|
|
<input type="text" name="phone" class="form-control" placeholder="010XXXXXXXX">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label small fw-bold">الراتب الأساسي</label>
|
|
<div class="input-group">
|
|
<input type="number" step="0.01" name="salary" class="form-control" placeholder="0.00" value="0.00">
|
|
<span class="input-group-text">ج.م</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-light" data-bs-dismiss="modal">إلغاء</button>
|
|
<button type="submit" name="add_employee" class="btn btn-primary fw-bold">إضافة الموظف</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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>
|