38808-vm/view_mail.php
2026-02-27 15:17:13 +00:00

212 lines
10 KiB
PHP

<?php
require_once __DIR__ . '/includes/header.php';
$id = $_GET['id'] ?? 0;
if (!$id) redirect('index.php');
$stmt = db()->prepare("SELECT m.*, u1.full_name as assigned_name, u2.full_name as creator_name
FROM mailbox m
LEFT JOIN users u1 ON m.assigned_to = u1.id
LEFT JOIN users u2 ON m.created_by = u2.id
WHERE m.id = ?");
$stmt->execute([$id]);
$mail = $stmt->fetch();
if (!$mail) redirect('index.php');
$success = '';
$error = '';
// Handle Comment submission
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_comment'])) {
$comment = $_POST['comment'] ?? '';
if ($comment) {
$stmt = db()->prepare("INSERT INTO comments (mail_id, user_id, comment) VALUES (?, ?, ?)");
$stmt->execute([$id, $_SESSION['user_id'], $comment]);
$success = 'تم إضافة التعليق بنجاح';
}
}
// Handle Attachment upload
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['attachment'])) {
$file = $_FILES['attachment'];
if ($file['error'] === 0) {
$upload_dir = 'uploads/attachments/';
if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true);
$file_name = time() . '_' . basename($file['name']);
$target_path = $upload_dir . $file_name;
if (move_uploaded_file($file['tmp_name'], $target_path)) {
$stmt = db()->prepare("INSERT INTO attachments (mail_id, file_path, file_name, file_size) VALUES (?, ?, ?, ?)");
$stmt->execute([$id, $target_path, $file['name'], $file['size']]);
$success = 'تم رفع الملف بنجاح';
} else {
$error = 'فشل في رفع الملف';
}
}
}
$comments = db()->prepare("SELECT c.*, u.full_name FROM comments c LEFT JOIN users u ON c.user_id = u.id WHERE c.mail_id = ? ORDER BY c.created_at DESC");
$comments->execute([$id]);
$mail_comments = $comments->fetchAll();
$attachments = db()->prepare("SELECT * FROM attachments WHERE mail_id = ? ORDER BY created_at DESC");
$attachments->execute([$id]);
$mail_attachments = $attachments->fetchAll();
?>
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">تفاصيل <?= $mail['type'] == 'inbound' ? 'البريد الوارد' : 'البريد الصادر' ?></h1>
<div class="btn-group">
<a href="<?= $mail['type'] ?>.php" class="btn btn-outline-secondary">عودة للقائمة</a>
<a href="<?= $mail['type'] ?>.php?action=edit&id=<?= $mail['id'] ?>" class="btn btn-outline-primary">تعديل البيانات</a>
</div>
</div>
<?php if ($success): ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<?= $success ?>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<div class="row">
<!-- Mail Details -->
<div class="col-md-8">
<div class="card shadow-sm border-0 mb-4">
<div class="card-header bg-white py-3">
<h5 class="mb-0 fw-bold">المعلومات الأساسية</h5>
</div>
<div class="card-body">
<div class="row g-3">
<div class="col-md-4">
<label class="text-muted small">رقم القيد</label>
<p class="fw-bold fs-5 text-primary"><?= $mail['ref_no'] ?></p>
</div>
<div class="col-md-4">
<label class="text-muted small">تاريخ التسجيل</label>
<p class="fw-bold"><?= $mail['date_registered'] ?></p>
</div>
<div class="col-md-4">
<label class="text-muted small">الحالة</label>
<p>
<?php if ($mail['status'] === 'received'): ?>
<span class="badge bg-secondary">تم الاستلام</span>
<?php elseif ($mail['status'] === 'in_progress'): ?>
<span class="badge bg-info text-dark">قيد المعالجة</span>
<?php elseif ($mail['status'] === 'closed'): ?>
<span class="badge bg-success">مكتمل</span>
<?php endif; ?>
</p>
</div>
<div class="col-12">
<label class="text-muted small">الموضوع</label>
<div class="fw-bold">
<?php
if ($mail['type'] == 'outbound') {
echo $mail['subject'];
} else {
echo htmlspecialchars($mail['subject']);
}
?>
</div>
</div>
<div class="col-md-6">
<label class="text-muted small"><?= $mail['type'] == 'inbound' ? 'المرسل' : 'المرسل الداخلي' ?></label>
<p><?= htmlspecialchars($mail['sender'] ?: 'غير محدد') ?></p>
</div>
<div class="col-md-6">
<label class="text-muted small"><?= $mail['type'] == 'inbound' ? 'المستلم الداخلي' : 'الجهة المستلمة' ?></label>
<p><?= htmlspecialchars($mail['recipient'] ?: 'غير محدد') ?></p>
</div>
<div class="col-12">
<label class="text-muted small">الوصف / ملاحظات</label>
<div class="bg-light p-3 rounded border">
<?php
if ($mail['type'] == 'outbound') {
echo $mail['description'] ?: '<span class="text-muted">لا يوجد وصف إضافي</span>';
} else {
echo nl2br(htmlspecialchars($mail['description'] ?: 'لا يوجد وصف إضافي'));
}
?>
</div>
</div>
<div class="col-md-6">
<label class="text-muted small">الموظف المسؤول</label>
<p><?= htmlspecialchars($mail['assigned_name'] ?: 'غير معين') ?></p>
</div>
<div class="col-md-6 text-end">
<label class="text-muted small">بواسطة / التاريخ</label>
<p class="text-muted small"><?= htmlspecialchars($mail['creator_name']) ?> | <?= $mail['created_at'] ?></p>
</div>
</div>
</div>
</div>
<!-- Comments -->
<div class="card shadow-sm border-0 mb-4">
<div class="card-header bg-white py-3">
<h5 class="mb-0 fw-bold">التعليقات والمتابعة</h5>
</div>
<div class="card-body">
<form method="POST" class="mb-4">
<div class="mb-2">
<textarea name="comment" class="form-control" rows="2" placeholder="أضف تعليقاً أو ملاحظة متابعة..." required></textarea>
</div>
<button type="submit" name="add_comment" class="btn btn-sm btn-primary">إرسال تعليق</button>
</form>
<div class="comment-list">
<?php if ($mail_comments): foreach ($mail_comments as $c): ?>
<div class="border-bottom pb-2 mb-2">
<div class="d-flex justify-content-between">
<span class="fw-bold text-primary"><?= htmlspecialchars($c['full_name']) ?></span>
<span class="text-muted small"><?= $c['created_at'] ?></span>
</div>
<p class="mb-0 small"><?= nl2br(htmlspecialchars($c['comment'])) ?></p>
</div>
<?php endforeach; else: ?>
<p class="text-center text-muted small">لا توجد تعليقات بعد</p>
<?php endif; ?>
</div>
</div>
</div>
</div>
<!-- Attachments Side -->
<div class="col-md-4">
<div class="card shadow-sm border-0 mb-4">
<div class="card-header bg-white py-3">
<h5 class="mb-0 fw-bold">المرفقات</h5>
</div>
<div class="card-body">
<form method="POST" enctype="multipart/form-data" class="mb-4">
<div class="mb-2">
<input type="file" name="attachment" class="form-control form-control-sm" required>
</div>
<button type="submit" class="btn btn-sm btn-secondary w-100">رفع ملف</button>
</form>
<div class="list-group list-group-flush">
<?php if ($mail_attachments): foreach ($mail_attachments as $a): ?>
<div class="list-group-item px-0">
<div class="d-flex w-100 justify-content-between align-items-center">
<div class="text-truncate" style="max-width: 200px;">
<i class="fas fa-file me-2 text-muted"></i>
<a href="<?= $a['file_path'] ?>" target="_blank" class="text-decoration-none small"><?= htmlspecialchars($a['file_name']) ?></a>
</div>
<span class="text-muted small"><?= round($a['file_size'] / 1024, 1) ?> KB</span>
</div>
</div>
<?php endforeach; else: ?>
<p class="text-center text-muted small py-3">لا توجد مرفقات</p>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
<?php require_once __DIR__ . '/includes/footer.php'; ?>