<?php
// تفعيل عرض الأخطاء لغرض التطوير
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$pageTitle = 'إضافة موظف جديد';
include '../../includes/header.php';

checkLogin();
if (!hasPermission('add_employee')) {
    $_SESSION['error_message'] = 'ليس لديك صلاحية لإضافة موظفين.';
    header('Location: index.php');
    exit();
}

$db = getDB();
$errors = [];

// إعداد مجلدات الرفع
$upload_dir = 'uploads/attachments/';
if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true);

$profile_picture_dir = 'uploads/profile_pictures/';
if (!is_dir($profile_picture_dir)) mkdir($profile_picture_dir, 0777, true);

// جلب المواقع المسجلة مسبقاً
$locations_result = $db->select("SELECT DISTINCT location_of_work FROM employees WHERE location_of_work IS NOT NULL AND location_of_work != '' ORDER BY location_of_work ASC");
$locations = array_column($locations_result, 'location_of_work');

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $full_name = trim($_POST['full_name']);
    $phone_number = trim($_POST['phone_number']); // الحقل الجديد
    $date_of_birth = trim($_POST['date_of_birth']);
    $national_id_number = trim($_POST['national_id_number']);
    $date_hired = trim($_POST['date_hired']);
    $notes = trim($_POST['notes']);
    $marital_status = trim($_POST['marital_status']);
    $gender = trim($_POST['gender']);
    $salary = trim($_POST['salary']);
    $home_address = trim($_POST['home_address']);

    // معالجة المنصب الوظيفي
    $position_input = trim($_POST['position']);
    $position = ($position_input === 'other_position') ? trim($_POST['new_position']) : $position_input;

    // معالجة موقع العمل
    $location_input = trim($_POST['location_of_work']);
    $location_of_work = ($location_input === 'other') ? trim($_POST['new_location_of_work']) : $location_input;

    // --- التحقق الإجباري من جميع الحقول (Server-side) ---
    if (empty($full_name)) $errors[] = 'الاسم الكامل مطلوب.';
    if (preg_match('/[0-9]/', $full_name)) $errors[] = 'الاسم الكامل يجب أن يحتوي على حروف فقط.';
    
    if (empty($phone_number)) $errors[] = 'رقم الهاتف مطلوب.';
    if (!ctype_digit($phone_number)) $errors[] = 'رقم الهاتف يجب أن يحتوي على أرقام فقط.';

    if (empty($position)) $errors[] = 'المنصب الوظيفي مطلوب.';
    if (empty($date_of_birth)) $errors[] = 'تاريخ الميلاد مطلوب.';
    if (empty($national_id_number)) $errors[] = 'رقم الهوية مطلوب.';
    if (empty($date_hired)) $errors[] = 'تاريخ التعيين مطلوب.';
    if (empty($location_of_work)) $errors[] = 'موقع العمل مطلوب.';
    if (empty($home_address)) $errors[] = 'عنوان السكن مطلوب.';
    if (empty($marital_status)) $errors[] = 'الحالة الزوجية مطلوبة.';
    if (empty($gender)) $errors[] = 'نوع الجنس مطلوب.';
    if (empty($salary) || !is_numeric($salary)) $errors[] = 'الراتب مطلوب ويجب أن يكون رقماً.';

    // رفع صورة الملف الشخصي إذا لم توجد أخطاء
    $profile_picture_path = null;
    if (empty($errors)) {
        // التحقق من رفع الملف قبل البدء
        if(isset($_FILES['profile_picture']) && $_FILES['profile_picture']['error'] === UPLOAD_ERR_OK) {
            $file_name = uniqid('profile_') . '_' . basename($_FILES['profile_picture']['name']);
            $destination = $profile_picture_dir . $file_name;
            if (move_uploaded_file($_FILES['profile_picture']['tmp_name'], $destination)) {
                $profile_picture_path = $destination;
            }
        }

        // رفع المرفقات
        $attachments = ['attachment1' => null, 'attachment2' => null, 'attachment3' => null];
        for ($i = 1; $i <= 3; $i++) {
            $key = 'attachment' . $i;
            if(isset($_FILES[$key]) && $_FILES[$key]['error'] === UPLOAD_ERR_OK) {
                $file_name = uniqid('attach_') . '_' . basename($_FILES[$key]['name']);
                $dest = $upload_dir . $file_name;
                if (move_uploaded_file($_FILES[$key]['tmp_name'], $dest)) {
                    $attachments[$key] = $dest;
                }
            }
        }

        try {
            // إضافة phone_number في الاستعلام
            $query = "INSERT INTO `employees` (full_name, phone_number, position, date_of_birth, national_id_number, date_hired, salary, notes, location_of_work, home_address, marital_status, gender, profile_picture, attachment1, attachment2, attachment3) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
            $params = [
                $full_name, $phone_number, $position, $date_of_birth, $national_id_number, $date_hired, 
                $salary, $notes, $location_of_work, $home_address, $marital_status, 
                $gender, $profile_picture_path, 
                $attachments['attachment1'], 
                $attachments['attachment2'], 
                $attachments['attachment3']
            ];
            
            if ($db->insert($query, $params)) {
                $_SESSION['success_message'] = 'تم إضافة الموظف بنجاح!';
                echo "<script>window.location.href='index.php';</script>";
                exit();
            }
        } catch (Exception $e) {
            $errors[] = 'خطأ في قاعدة البيانات: ' . $e->getMessage();
        }
    }
}
?>

<div class="content-area">
    <div class="page-header mb-4">
        <div class="d-flex justify-content-between align-items-center">
            <div>
                <h2 class="page-title">إضافة موظف جديد</h2>
                <p class="text-danger fw-bold">* جميع الحقول في هذه الصفحة إجبارية.</p>
            </div>
            <a href="index.php" class="btn btn-outline-secondary"><i class="fas fa-arrow-right me-2"></i>العودة</a>
        </div>
    </div>

    <?php if (!empty($errors)): ?>
        <div class="alert alert-danger">
            <ul class="mb-0"><?php foreach ($errors as $error) echo "<li>$error</li>"; ?></ul>
        </div>
    <?php endif; ?>

    <div class="card shadow-sm border-0">
        <div class="card-body p-4">
            <form action="add_employee.php" method="POST" enctype="multipart/form-data">
                <div class="row g-3">
                    <div class="col-md-6">
                        <label class="form-label">صورة الموظف *</label>
                        <input type="file" class="form-control" name="profile_picture" accept="image/*" required>
                    </div>
                    <div class="col-md-6">
                        <label class="form-label">الاسم الكامل (حروف فقط) *</label>
                        <input type="text" class="form-control" name="full_name" required oninput="this.value = this.value.replace(/[0-9]/g, '')">
                    </div>

                    <div class="col-md-6">
                        <label class="form-label">رقم الهاتف (أرقام فقط) *</label>
                        <input type="text" class="form-control" name="phone_number" required oninput="this.value = this.value.replace(/[^0-9]/g, '')" inputmode="numeric">
                    </div>

                    <div class="col-md-6">
                        <label class="form-label">المنصب الوظيفي *</label>
                        <select class="form-select" id="position" name="position" required>
                            <option value="">اختر المنصب...</option>
<option value="ممرض">ممرض</option>
<option value="صيدلاني">صيدلاني</option>
                            <option value="كيميائي">كيميائي</option>
                            <option value="إحصائي">إحصائي</option>
                            <option value="إداري">إداري</option>
                            <option value="موظف">موظف</option>
                            <option value="متابع">متابع</option>
                            <option value="other_position">أخرى (إدخال يدوي)...</option>
                        </select>
                    </div>
                    
                    <div class="col-md-6" id="new_position_container" style="display:none;">
                        <label class="form-label text-primary">أدخل المنصب الوظيفي الجديد *</label>
                        <input type="text" class="form-control border-primary" id="new_position" name="new_position">
                    </div>

                    <div class="col-md-3">
                        <label class="form-label">تاريخ الميلاد *</label>
                        <input type="date" class="form-control" name="date_of_birth" required>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">رقم الهوية *</label>
                        <input type="text" class="form-control" name="national_id_number" required>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">تاريخ التعيين *</label>
                        <input type="date" class="form-control" name="date_hired" required>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label">الراتب *</label>
                        <input type="number" step="0.01" class="form-control" name="salary" required>
                    </div>

                    <div class="col-md-6">
                        <label class="form-label">موقع العمل *</label>
                        <select class="form-select" id="location_of_work" name="location_of_work" required>
                            <option value="">اختر الموقع...</option>
                            <?php foreach ($locations as $loc): ?>
                                <option value="<?php echo htmlspecialchars($loc); ?>"><?php echo htmlspecialchars($loc); ?></option>
                            <?php endforeach; ?>
                            <option value="other">أخرى...</option>
                        </select>
                    </div>
                    <div class="col-md-6" id="new_location_container" style="display:none;">
                        <label class="form-label text-primary">أدخل الموقع الجديد *</label>
                        <input type="text" class="form-control border-primary" id="new_location_of_work" name="new_location_of_work">
                    </div>

                    <div class="col-md-12">
                        <label class="form-label">عنوان السكن *</label>
                        <input type="text" class="form-control" name="home_address" required>
                    </div>

                    <div class="col-md-6">
                        <label class="form-label">الحالة الزوجية *</label>
                        <select class="form-select" name="marital_status" required>
                            <option value="">اختر...</option>
                            <option value="single">أعزب</option>
                            <option value="married">متزوج</option>
                            <option value="divorced">مطلق</option>
                            <option value="widowed">أرمل</option>
                        </select>
                    </div>
                    <div class="col-md-6">
                        <label class="form-label">الجنس *</label>
                        <select class="form-select" name="gender" required>
                            <option value="">اختر...</option>
                            <option value="male">ذكر</option>
                            <option value="female">أنثى</option>
                        </select>
                    </div>

                    <div class="col-md-12">
                        <label class="form-label">ملاحظات (أدخل "لا يوجد" إذا لم تتوفر ملاحظات) *</label>
                        <textarea class="form-control" name="notes" rows="2" required></textarea>
                    </div>

                    <hr class="my-4">
                    <h5>المرفقات (إجبارية) *</h5>
                    <div class="col-md-4"><label>مرفق 1 *</label><input type="file" class="form-control" name="attachment1" ></div>
                    <div class="col-md-4"><label>مرفق 2 *</label><input type="file" class="form-control" name="attachment2" ></div>
                    <div class="col-md-4"><label>مرفق 3 *</label><input type="file" class="form-control" name="attachment3" ></div>

                    <div class="col-12 text-start mt-4">
                        <button type="submit" class="btn btn-primary btn-lg px-5">
                            <i class="fas fa-save me-2"></i> حفظ بيانات الموظف
                        </button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // التحكم بحقل المنصب الوظيفي
    const posSelect = document.getElementById('position');
    const posContainer = document.getElementById('new_position_container');
    const posInput = document.getElementById('new_position');

    posSelect.addEventListener('change', function() {
        if (this.value === 'other_position') {
            posContainer.style.display = 'block';
            posInput.setAttribute('required', 'required');
        } else {
            posContainer.style.display = 'none';
            posInput.removeAttribute('required');
        }
    });

    // التحكم بحقل موقع العمل
    const locSelect = document.getElementById('location_of_work');
    const locContainer = document.getElementById('new_location_container');
    const locInput = document.getElementById('new_location_of_work');

    locSelect.addEventListener('change', function() {
        if (this.value === 'other') {
            locContainer.style.display = 'block';
            locInput.setAttribute('required', 'required');
        } else {
            locContainer.style.display = 'none';
            locInput.removeAttribute('required');
        }
    });
});
</script>

<?php include '../../includes/footer.php'; ?>