مدیریت مرخصی کارکنان در PHP
مدیریت مرخصی یکی از جنبههای حیاتی در هر سازمانی است. این سیستم به کارفرمایان و کارکنان کمک میکند تا زمان مرخصی خود را بهخوبی سازماندهی کنند و از سوءتفاهمها جلوگیری کنند. در زیر به بررسی ساختار و نحوه پیادهسازی
مدیریت مرخصی کارکنان در PHP
میپردازیم.طراحی پایگاه داده
ابتدا، برای مدیریت مرخصی نیاز به یک پایگاه داده داریم. میتوانیم یک جدول به نام `leaves` بسازیم که شامل اطلاعات زیر باشد:
- id: شناسه یکتا برای هر درخواست مرخصی
- employee_id: شناسه کارمند
- start_date: تاریخ شروع مرخصی
- end_date: تاریخ پایان مرخصی
- leave_type: نوع مرخصی (سالانه، بیماری، بدون حقوق و ...)
- status: وضعیت درخواست (در حال بررسی، تأیید شده، رد شده)
ایجاد فرم درخواست مرخصی
برای دریافت درخواست مرخصی، باید یک فرم HTML بسازیم. این فرم شامل فیلدهایی برای انتخاب نوع مرخصی، تاریخ شروع و پایان، و توضیحات است.
```html
<form action="submit_leave.php" method="POST">
<label for="leave_type">نوع مرخصی:</label>
<select name="leave_type">
<option value="annual">سالانه</option>
<option value="sick">بیماری</option>
<option value="unpaid">بدون حقوق</option>
</select>
<label for="start_date">تاریخ شروع:</label>
<input type="date" name="start_date" required>
<label for="end_date">تاریخ پایان:</label>
<input type="date" name="end_date" required>
<button type="submit">ارسال درخواست</button>
</form>
```
پردازش درخواست مرخصی
در فایل `submit_leave.php`، باید کد PHP را برای پردازش اطلاعات فرم بنویسیم. این کد شامل اتصال به پایگاه داده و ذخیره اطلاعات درخواست مرخصی است.
```php
<?php
$pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
$leave_type = $_POST['leave_type'];
$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];
$employee_id = 1; // شناسه کارمند به صورت مثال
$sql = "INSERT INTO leaves (employee_id, start_date, end_date, leave_type, status) VALUES (?, ?, ?, ?, 'pending')";
$stmt = $pdo->prepare($sql);
$stmt->execute([$employee_id, $start_date, $end_date, $leave_type]);
?>
```
بررسی وضعیت مرخصی
کارمندان باید بتوانند وضعیت درخواستهای مرخصی خود را بررسی کنند. برای این کار، میتوانیم یک صفحه PHP دیگر ایجاد کنیم که درخواستهای مرخصی را از پایگاه داده دریافت کند و وضعیت آنها را نمایش دهد.
```php
<?php
$sql = "SELECT * FROM leaves WHERE employee_id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$employee_id]);
$leaves = $stmt->fetchAll();
foreach ($leaves as $leave) {
echo "نوع مرخصی: " . $leave['leave_type'] . " - وضعیت: " . $leave['status'] . "<br>";
}
?>
```