مدیریت مرخصی در کد منبع PHP و دیتابیس SQLite3
مدیریت مرخصی یکی از اجزای حیاتی در سیستمهای منابع انسانی است. این سیستمها به کارمندان اجازه میدهند تا درخواستهای مرخصی خود را ثبت کنند و مدیران بتوانند این درخواستها را بررسی و تأیید کنند. در ادامه، به تفصیل به مراحل و نکات کلیدی در طراحی چنین سیستمی با استفاده از PHP و SQLite3 میپردازیم.
طراحی پایگاه داده
ابتدا باید پایگاه داده را طراحی کنیم. برای این کار، یک دیتابیس SQLite3 ایجاد میکنیم که شامل جداول زیر باشد:
- جدول کاربران: اطلاعات کارمندان شامل شناسه، نام، و نوع کاربر (مدیر یا کارمند).
- جدول مرخصیها: شامل شناسه مرخصی، شناسه کارمند، تاریخ شروع، تاریخ پایان، و وضعیت (در انتظار، تأیید شده، رد شده).
```sql
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
role TEXT NOT NULL
);
CREATE TABLE leaves (
id INTEGER PRIMARY KEY,
user_id INTEGER,
start_date TEXT NOT NULL,
end_date TEXT NOT NULL,
status TEXT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id)
);
```
ایجاد فرم درخواست مرخصی
در مرحله بعد، باید یک فرم PHP برای ثبت درخواست مرخصی ایجاد کنیم. این فرم شامل فیلدهایی برای تاریخ شروع، تاریخ پایان و نوع مرخصی است.
```php
<form action="submit_leave.php" method="post">
<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`، باید دادهها را به دیتابیس ذخیره کنیم. با استفاده از PDO یک اتصال به SQLite3 برقرار میکنیم و سپس درخواست را ثبت میکنیم.
```php
$pdo = new PDO('sqlite:leaves.db');
$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];
$user_id = 1; // شناسه کاربر را به صورت داینامیک بگیرید
$stmt = $pdo->prepare("INSERT INTO leaves (user_id, start_date, end_date, status) VALUES (?, ?, ?, 'در انتظار')");
$stmt->execute([$user_id, $start_date, $end_date]);
```
نمایش درخواستهای مرخصی
برای نمایش درخواستهای مرخصی، باید یک صفحه جدید ایجاد کنیم که وضعیت هر درخواست را به همراه جزئیات نمایش دهد.
```php
$stmt = $pdo->query("SELECT * FROM leaves");
$leaves = $stmt->fetchAll();
foreach ($leaves as $leave) {
echo "شناسه: " . $leave['id'] . " - تاریخ شروع: " . $leave['start_date'] . " - تاریخ پایان: " . $leave['end_date'] . " - وضعیت: " . $leave['status'] . "<br>";
}
```
نتیجهگیری
با پیادهسازی این مراحل، شما میتوانید یک سیستم مدیریت مرخصی ساده اما کارا ایجاد کنید که به کارمندان و مدیران اجازه میدهد به راحتی درخواستهای مرخصی را مدیریت کنند. با این حال، میتوانید قابلیتهای بیشتری مانند ارسال اعلانها یا گزارشگیریهای پیشرفته را به سیستم اضافه کنید.
این روش، تنها یک راهنمای ابتدایی است. برای بهینهسازی بیشتر، میتوانید از فریمورکهای PHP یا ORM ها استفاده کنید.