beginTransaction(); if ($action === 'add') { $stmt = db()->prepare("INSERT INTO mailbox (type, ref_no, date_registered, sender, recipient, subject, description, status, assigned_to, created_by) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([$type, $ref_no, $date_registered, $sender, $recipient, $subject, $description, $status, $assigned_to, $_SESSION['user_id']]); $mail_id = db()->lastInsertId(); $success = 'تمت إضافة البريد الصادر بنجاح'; } elseif ($action === 'edit') { $mail_id = $id; $stmt = db()->prepare("UPDATE mailbox SET ref_no = ?, date_registered = ?, sender = ?, recipient = ?, subject = ?, description = ?, status = ?, assigned_to = ? WHERE id = ? AND type = 'outbound'"); $stmt->execute([$ref_no, $date_registered, $sender, $recipient, $subject, $description, $status, $assigned_to, $mail_id]); $success = 'تم تحديث البيانات بنجاح'; } // Handle Attachments if (!empty($_FILES['attachments']['name'][0])) { $upload_dir = 'uploads/attachments/'; if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true); foreach ($_FILES['attachments']['name'] as $key => $name) { if ($_FILES['attachments']['error'][$key] === 0) { $file_name = time() . '_' . basename($name); $target_path = $upload_dir . $file_name; if (move_uploaded_file($_FILES['attachments']['tmp_name'][$key], $target_path)) { $stmt = db()->prepare("INSERT INTO attachments (mail_id, file_path, file_name, file_size) VALUES (?, ?, ?, ?)"); $stmt->execute([$mail_id, $target_path, $name, $_FILES['attachments']['size'][$key]]); } } } } db()->commit(); } catch (PDOException $e) { db()->rollBack(); if ($e->getCode() == 23000) { $error = 'رقم القيد مستخدم مسبقاً'; } else { $error = 'حدث خطأ: ' . $e->getMessage(); } } } else { $error = 'يرجى ملء الحقول المطلوبة (رقم القيد، الموضوع)'; } } // Delete action if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['id'])) { $id = $_GET['id']; $stmt = db()->prepare("DELETE FROM mailbox WHERE id = ? AND type = 'outbound'"); $stmt->execute([$id]); $success = 'تم حذف البريد بنجاح'; } $search = $_GET['search'] ?? ''; $query = "SELECT * FROM mailbox WHERE type = 'outbound'"; $params = []; if ($search) { $query .= " AND (ref_no LIKE ? OR recipient LIKE ? OR subject LIKE ?)"; $params = ["%$search%", "%$search%", "%$search%"]; } $query .= " ORDER BY created_at DESC"; $stmt = db()->prepare($query); $stmt->execute($params); $mails = $stmt->fetchAll(); $users_list = db()->query("SELECT id, full_name FROM users ORDER BY full_name")->fetchAll(); // Handle Deep Link for Edit $deepLinkData = null; if (isset($_GET['action']) && $_GET['action'] === 'edit' && isset($_GET['id'])) { $stmt = db()->prepare("SELECT * FROM mailbox WHERE id = ? AND type = 'outbound'"); $stmt->execute([$_GET['id']]); $deepLinkData = $stmt->fetch(); } ?>

البريد الصادر

رقم القيد التاريخ الموضوع المستلم الخارجى الحالة الإجراءات
تم الاستلام قيد المعالجة مكتمل
لا يوجد بريد صادر مسجل حالياً