<?php
// pages/hr/employee_profile.php
require_once __DIR__ . '/../../includes/header.php';

// حماية الصفحة
if (!in_array($_SESSION['role'], ['super_admin', 'hr_manager', 'ceo'])) {
    die("<div class='alert alert-danger'>عذراً، لا تملك صلاحية إدارة ملفات الموظفين.</div>");
}

$emp_id = $_GET['id'] ?? 0;
$current_user_role = $_SESSION['role'];
$msg = "";

// --- 1. معالجة حذف المستند (للـ HR فقط) ---
if (isset($_GET['delete_doc']) && is_numeric($_GET['delete_doc'])) {
    $doc_id = $_GET['delete_doc'];
    $stmt_file = $pdo->prepare("SELECT file_path FROM employee_documents WHERE id = ?");
    $stmt_file->execute([$doc_id]);
    $file_info = $stmt_file->fetch();
    
    if ($file_info) {
        if (file_exists("../../" . $file_info['file_path'])) {
            unlink("../../" . $file_info['file_path']); // حذف الملف الفيزيائي
        }
        $pdo->prepare("DELETE FROM employee_documents WHERE id = ?")->execute([$doc_id]);
        $msg = "<div class='alert alert-success'>تم حذف المستند بنجاح.</div>";
    }
}

// --- 2. معالجة رفع المستندات ---
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['action']) && $_POST['action'] == 'upload_doc') {
    if (isset($_FILES['document']) && $_FILES['document']['error'] == 0) {
        $allowed = ['pdf', 'jpg', 'jpeg', 'png'];
        $ext = strtolower(pathinfo($_FILES['document']['name'], PATHINFO_EXTENSION));
        
        if (in_array($ext, $allowed)) {
            // إنشاء مجلد للمستندات إذا لم يوجد
            $upload_dir = __DIR__ . '/../../assets/uploads/documents/';
            if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true);

            $doc_type = $_POST['doc_type'];
            $new_name = "doc_" . $emp_id . "_" . $doc_type . "_" . time() . "." . $ext;
            
            if (move_uploaded_file($_FILES['document']['tmp_name'], $upload_dir . $new_name)) {
                $db_path = 'assets/uploads/documents/' . $new_name;
                $expiry = !empty($_POST['expiry_date']) ? $_POST['expiry_date'] : NULL;
                
                $stmt = $pdo->prepare("INSERT INTO employee_documents (user_id, doc_type, file_path, expiry_date, uploaded_by) VALUES (?, ?, ?, ?, ?)");
                $stmt->execute([$emp_id, $doc_type, $db_path, $expiry, $_SESSION['id']]);
                
                $msg = "<div class='alert alert-success'>تم رفع المستند ($doc_type) بنجاح!</div>";
            }
        } else {
            $msg = "<div class='alert alert-danger'>صيغة الملف غير مدعومة. المسموح: PDF, JPG, PNG</div>";
        }
    }
}

// --- 3. معالجة تحديث البيانات (الكود السابق) ---
// ... (نفس كود التحديث السابق، تم دمجه في الأسفل لعدم الإطالة) ...
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['action']) && $_POST['action'] == 'update_profile') {
    // ... نفس منطق التحديث السابق ...
    try {
        if ($current_user_role == 'hr_manager') {
            $vip_roles = ['super_admin', 'ceo', 'purchasing', 'hr_manager', 'manager_first', 'manager_youth'];
            $target_role = $pdo->query("SELECT role FROM users WHERE id = $emp_id")->fetchColumn();
            if (isset($_POST['role']) && (in_array($target_role, $vip_roles) || in_array($_POST['role'], $vip_roles)) && $_POST['role'] != $target_role) {
                die("<div class='alert alert-danger'>عذراً، لا تملك صلاحية تعديل هذا الدور القيادي.</div>");
            }
        }
        
        $pdo->beginTransaction();
        $sql_user = "UPDATE users SET full_name_ar = ?, email = ?, role = ? WHERE id = ?";
        $pdo->prepare($sql_user)->execute([$_POST['full_name'], $_POST['email'], $_POST['role'], $emp_id]);
        
        $check = $pdo->query("SELECT id FROM employee_details WHERE user_id = $emp_id")->fetch();
        if (!$check) $pdo->prepare("INSERT INTO employee_details (user_id) VALUES (?)")->execute([$emp_id]);

        $sql_details = "UPDATE employee_details SET job_title=?, employee_number=?, joining_date=?, passport_number=?, passport_expiry=?, visa_expiry=?, labor_card_expiry=?, emirates_id_expiry=?, health_insurance_expiry=?, basic_salary=? WHERE user_id=?";
        $pdo->prepare($sql_details)->execute([$_POST['job_title'], $_POST['employee_number'], $_POST['joining_date'], $_POST['passport_number'], $_POST['passport_expiry'], $_POST['visa_expiry'], $_POST['labor_card_expiry'], $_POST['emirates_id_expiry'], $_POST['health_insurance_expiry'], $_POST['basic_salary'], $emp_id]);

        $pdo->commit();
        $msg = "<div class='alert alert-success'>تم حفظ البيانات بنجاح.</div>";
    } catch (Exception $e) { $pdo->rollBack(); $msg = "<div class='alert alert-danger'>خطأ: " . $e->getMessage() . "</div>"; }
}

// جلب البيانات
$stmt = $pdo->prepare("SELECT u.*, e.* FROM users u LEFT JOIN employee_details e ON u.id = e.user_id WHERE u.id = ?");
$stmt->execute([$emp_id]);
$emp = $stmt->fetch();
if (!$emp) die("<div class='alert alert-danger'>الموظف غير موجود.</div>");

// جلب المستندات
$docs = $pdo->prepare("SELECT * FROM employee_documents WHERE user_id = ? ORDER BY created_at DESC");
$docs->execute([$emp_id]);
$documents = $docs->fetchAll();

// قوائم مساعدة
$all_roles = ['super_admin'=>'مدير النظام','ceo'=>'المدير التنفيذي','purchasing'=>'المشتريات','hr_manager'=>'مدير HR','manager_first'=>'مدير فريق أول','manager_youth'=>'مدير مراحل','staff_first'=>'إداري فريق أول','staff_youth'=>'إداري مراحل','coach'=>'مدرب','admin_staff'=>'موظف إداري','requester'=>'موظف عام'];
$vip_roles = ['super_admin', 'ceo', 'purchasing', 'hr_manager', 'manager_first', 'manager_youth'];
$doc_types_list = ['Emirates ID'=>'الهوية الإماراتية', 'Passport'=>'صورة الجواز', 'Visa'=>'الإقامة', 'Personal Photo'=>'صورة شخصية (4x6)', 'Labor Contract'=>'عقد العمل', 'Education Cert'=>'شهادة دراسية', 'Rent Contract'=>'عقد إيجار', 'Other'=>'أخرى'];
?>

<div class="row mb-4 align-items-center">
    <div class="col-md-6"><h3 class="fw-bold text-primary"><i class="bi bi-folder2-open"></i> ملف الموظف: <?php echo $emp['full_name_ar']; ?></h3></div>
    <div class="col-md-6 text-end"><a href="employees_list.php" class="btn btn-outline-secondary">عودة للقائمة</a></div>
</div>

<?php echo $msg; ?>

<ul class="nav nav-tabs mb-4" id="myTab" role="tablist">
  <li class="nav-item">
      <button class="nav-link active fw-bold" style="color: #007A33 !important;" data-bs-toggle="tab" data-bs-target="#info">
          <i class="bi bi-info-circle"></i> البيانات والوظيفة
      </button>
  </li>
  <li class="nav-item">
      <button class="nav-link fw-bold" style="color: #007A33 !important;" data-bs-toggle="tab" data-bs-target="#docs">
          <i class="bi bi-folder2-open"></i> المستندات والأرشفة 
          <span class="badge bg-danger rounded-pill ms-1"><?php echo count($documents); ?></span>
      </button>
  </li>
</ul>

<div class="tab-content">
    
    <div class="tab-pane fade show active" id="info">
        <form method="POST">
            <input type="hidden" name="action" value="update_profile">
            <div class="row">
                <div class="col-md-4">
                    <div class="card shadow-sm border-0 mb-4">
                        <div class="card-body text-center">
                            <?php $avatar = !empty($emp['profile_pic']) ? "../../" . $emp['profile_pic'] : "../../assets/images/default_user.png"; ?>
                            <img src="<?php echo $avatar; ?>" class="rounded-circle img-thumbnail mb-3" style="width: 120px; height: 120px;">
                            <div class="mb-3 text-start"><label>الاسم</label><input type="text" name="full_name" class="form-control" value="<?php echo $emp['full_name_ar']; ?>" required></div>
                            <div class="mb-3 text-start"><label>الايميل</label><input type="email" name="email" class="form-control" value="<?php echo $emp['email']; ?>"></div>
                            <div class="mb-3 text-start">
                                <label class="text-danger fw-bold">الصلاحية</label>
                                <?php if($current_user_role == 'hr_manager' && in_array($emp['role'], $vip_roles)): ?>
                                    <input type="text" class="form-control bg-light" value="<?php echo $all_roles[$emp['role']]; ?>" readonly>
                                    <input type="hidden" name="role" value="<?php echo $emp['role']; ?>">
                                <?php else: ?>
                                    <select name="role" class="form-select border-danger">
                                        <?php foreach($all_roles as $key=>$val) { 
                                            if($current_user_role=='hr_manager' && in_array($key, $vip_roles) && $key!=$emp['role']) continue;
                                            $sel = ($emp['role']==$key)?'selected':''; echo "<option value='$key' $sel>$val</option>"; 
                                        } ?>
                                    </select>
                                <?php endif; ?>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-md-8">
                    <div class="card shadow-sm border-0 mb-4">
                        <div class="card-header bg-primary text-white">بيانات الوظيفة والرواتب</div>
                        <div class="card-body">
                            <div class="row g-3">
                                <div class="col-6"><label>المسمى</label><input type="text" name="job_title" class="form-control" value="<?php echo $emp['job_title']; ?>"></div>
                                <div class="col-6"><label>الرقم الوظيفي</label><input type="text" name="employee_number" class="form-control" value="<?php echo $emp['employee_number']; ?>"></div>
                                <div class="col-6"><label>تاريخ التعيين</label><input type="date" name="joining_date" class="form-control" value="<?php echo $emp['joining_date']; ?>"></div>
                                <div class="col-6"><label class="text-success fw-bold">الراتب الأساسي</label><input type="number" step="0.01" name="basic_salary" class="form-control" value="<?php echo $emp['basic_salary']; ?>"></div>
                            </div>
                        </div>
                    </div>
                    <div class="card shadow-sm border-0 mb-4 border-start border-warning border-5">
                        <div class="card-header bg-white text-warning fw-bold">انتهاء الوثائق (للتنبيهات)</div>
                        <div class="card-body">
                            <div class="row g-3">
                                <div class="col-4"><label>الجواز</label><input type="date" name="passport_expiry" class="form-control" value="<?php echo $emp['passport_expiry']; ?>"></div>
                                <div class="col-4"><label>الإقامة</label><input type="date" name="visa_expiry" class="form-control" value="<?php echo $emp['visa_expiry']; ?>"></div>
                                <div class="col-4"><label>الهوية</label><input type="date" name="emirates_id_expiry" class="form-control" value="<?php echo $emp['emirates_id_expiry']; ?>"></div>
                                <div class="col-4"><label>بطاقة العمل</label><input type="date" name="labor_card_expiry" class="form-control" value="<?php echo $emp['labor_card_expiry']; ?>"></div>
                                <div class="col-4"><label>التأمين</label><input type="date" name="health_insurance_expiry" class="form-control" value="<?php echo $emp['health_insurance_expiry']; ?>"></div>
                                <div class="col-4"><label>رقم الجواز</label><input type="text" name="passport_number" class="form-control" value="<?php echo $emp['passport_number']; ?>"></div>
                            </div>
                        </div>
                    </div>
                    <div class="text-end"><button type="submit" class="btn btn-success px-5"><i class="bi bi-save"></i> حفظ البيانات</button></div>
                </div>
            </div>
        </form>
    </div>

    <div class="tab-pane fade" id="docs">
        <div class="row">
            <div class="col-md-4">
                <div class="card shadow-sm border-0">
                    <div class="card-header bg-dark text-white fw-bold"><i class="bi bi-cloud-upload"></i> رفع مستند جديد</div>
                    <div class="card-body">
                        <form method="POST" enctype="multipart/form-data">
                            <input type="hidden" name="action" value="upload_doc">
                            <div class="mb-3">
                                <label class="form-label">نوع المستند</label>
                                <select name="doc_type" class="form-select" required>
                                    <option value="" disabled selected>اختر النوع...</option>
                                    <?php foreach($doc_types_list as $en => $ar) echo "<option value='$en'>$ar</option>"; ?>
                                </select>
                            </div>
                            <div class="mb-3">
                                <label class="form-label">تاريخ الانتهاء (اختياري للتنبيه)</label>
                                <input type="date" name="expiry_date" class="form-control">
                            </div>
                            <div class="mb-3">
                                <label class="form-label">الملف (PDF, JPG, PNG)</label>
                                <input type="file" name="document" class="form-control" required>
                            </div>
                            <button type="submit" class="btn btn-primary w-100">رفع وحفظ</button>
                        </form>
                    </div>
                </div>
            </div>
            
            <div class="col-md-8">
                <div class="card shadow-sm border-0">
                    <div class="card-header bg-white fw-bold">الأرشيف الإلكتروني</div>
                    <div class="card-body p-0">
                        <table class="table table-hover align-middle mb-0 text-center">
                            <thead class="table-light"><tr><th>نوع المستند</th><th>تاريخ الرفع</th><th>انتهاء الصلاحية</th><th>معاينة</th><th>حذف</th></tr></thead>
                            <tbody>
                                <?php if(count($documents) > 0): ?>
                                    <?php foreach($documents as $doc): ?>
                                    <tr>
                                        <td class="fw-bold text-primary"><?php echo $doc_types_list[$doc['doc_type']] ?? $doc['doc_type']; ?></td>
                                        <td><?php echo date('Y-m-d', strtotime($doc['created_at'])); ?></td>
                                        <td><?php echo $doc['expiry_date'] ?? '-'; ?></td>
                                        <td><a href="../../<?php echo $doc['file_path']; ?>" target="_blank" class="btn btn-sm btn-outline-dark"><i class="bi bi-eye"></i></a></td>
                                        <td><a href="?id=<?php echo $emp_id; ?>&delete_doc=<?php echo $doc['id']; ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('تأكيد الحذف؟')"><i class="bi bi-trash"></i></a></td>
                                    </tr>
                                    <?php endforeach; ?>
                                <?php else: ?>
                                    <tr><td colspan="5" class="py-4 text-muted">لا توجد مستندات مرفوعة لهذا الموظف.</td></tr>
                                <?php endif; ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<?php require_once __DIR__ . '/../../includes/footer.php'; ?>