diff --git a/install.php b/install.php.bak similarity index 100% rename from install.php rename to install.php.bak diff --git a/overdue_report.php b/overdue_report.php index d5de9a9..f36fbc0 100644 --- a/overdue_report.php +++ b/overdue_report.php @@ -9,22 +9,23 @@ $type_filter = $_GET['type'] ?? ''; $user_filter = $_GET['user_id'] ?? ''; $params = []; -$where = ["due_date < CURDATE()", "status != 'closed'", "type != 'internal'"]; +$where = ["m.due_date < CURDATE()", "s.name != 'closed'", "m.type != 'internal'"]; if ($type_filter) { - $where[] = "type = ?"; + $where[] = "m.type = ?"; $params[] = $type_filter; } if ($user_filter) { - $where[] = "assigned_to = ?"; + $where[] = "m.assigned_to = ?"; $params[] = $user_filter; } $where_clause = implode(" AND ", $where); -$sql = "SELECT m.*, u.full_name as assigned_name +$sql = "SELECT m.*, u.full_name as assigned_name, s.name as status_name, s.color as status_color FROM mailbox m LEFT JOIN users u ON m.assigned_to = u.id + LEFT JOIN mailbox_statuses s ON m.status_id = s.id WHERE $where_clause ORDER BY m.due_date ASC"; @@ -34,6 +35,19 @@ $overdue_items = $stmt->fetchAll(); // Fetch all users for filter $users = db()->query("SELECT id, full_name FROM users ORDER BY full_name")->fetchAll(); + +function getStatusBadgeForReport($item) { + $status_name = $item['status_name'] ?? 'غير معروف'; + $status_color = $item['status_color'] ?? '#6c757d'; + + // Translation for default statuses + $display_name = $status_name; + if ($status_name == 'received') $display_name = 'تم الاستلام'; + if ($status_name == 'in_progress') $display_name = 'قيد المعالجة'; + if ($status_name == 'closed') $display_name = 'مكتمل'; + + return '' . htmlspecialchars($display_name) . ''; +} ?>
| رقم المرجع | النوع | الموضوع | الموظف المسؤول | +الحالة | تاريخ الاستحقاق | الأيام المتأخرة | الإجراءات | @@ -90,7 +105,7 @@ $users = db()->query("SELECT id, full_name FROM users ORDER BY full_name")->fetc|||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| لا توجد مهام متأخرة حالياً. | +لا توجد مهام متأخرة حالياً. | |||||||||||||
| = htmlspecialchars($item['ref_no']) ?> | += htmlspecialchars($item['ref_no']) ?> | = $item['type'] == 'inbound' ? 'وارد' : 'صادر' ?> @@ -107,6 +122,7 @@ $users = db()->query("SELECT id, full_name FROM users ORDER BY full_name")->fetc | = htmlspecialchars($item['subject']) ?> | = htmlspecialchars($item['assigned_name'] ?? 'غير معين') ?> | += getStatusBadgeForReport($item) ?> | = $item['due_date'] ?> | = $diff ?> يوم |
@@ -123,4 +139,4 @@ $users = db()->query("SELECT id, full_name FROM users ORDER BY full_name")->fetc
-
+
\ No newline at end of file
diff --git a/scripts/send_reminders.php b/scripts/send_reminders.php
index 8e78f39..a1a9ff6 100644
--- a/scripts/send_reminders.php
+++ b/scripts/send_reminders.php
@@ -12,23 +12,26 @@ $due_tomorrow = db()->query("
SELECT m.*, u.email, u.full_name
FROM mailbox m
JOIN users u ON m.assigned_to = u.id
+ JOIN mailbox_statuses s ON m.status_id = s.id
WHERE m.due_date = DATE_ADD(CURDATE(), INTERVAL 1 DAY)
- AND m.status != 'closed'
+ AND s.name != 'closed'
")->fetchAll();
foreach ($due_tomorrow as $task) {
if (!empty($task['email'])) {
$subject = "تذكير: موعد نهائي لمهمة غداً - " . $task['ref_no'];
$html = "
- تذكير بموعد نهائي-عزيزي " . htmlspecialchars($task['full_name']) . "، -هذا تذكير بأن المهمة التالية مستحقة غداً: -
يرجى متابعة المهمة وإغلاقها في الوقت المحدد. +
+
";
$res = MailService::sendMail($task['email'], $subject, $html);
if ($res['success']) {
@@ -45,23 +48,26 @@ $overdue = db()->query("
SELECT m.*, u.email, u.full_name
FROM mailbox m
JOIN users u ON m.assigned_to = u.id
+ JOIN mailbox_statuses s ON m.status_id = s.id
WHERE m.due_date < CURDATE()
- AND m.status != 'closed'
+ AND s.name != 'closed'
")->fetchAll();
foreach ($overdue as $task) {
if (!empty($task['email'])) {
$subject = "تنبيه: مهمة متأخرة! - " . $task['ref_no'];
$html = "
- تذكير بموعد نهائي+عزيزي " . htmlspecialchars($task['full_name']) . "، +هذا تذكير بأن المهمة التالية مستحقة غداً: +
يرجى متابعة المهمة وإغلاقها في الوقت المحدد. +تنبيه: مهمة متأخرة-عزيزي " . htmlspecialchars($task['full_name']) . "، -هذه المهمة قد تجاوزت الموعد النهائي المحدد: -
يرجى معالجة هذه المهمة في أقرب وقت ممكن. +
+
";
$res = MailService::sendMail($task['email'], $subject, $html);
if ($res['success']) {
@@ -72,4 +78,4 @@ foreach ($overdue as $task) {
}
}
-echo "[" . date('Y-m-d H:i:s') . "] Reminder process finished." . PHP_EOL;
+echo "[" . date('Y-m-d H:i:s') . "] Reminder process finished." . PHP_EOL;
\ No newline at end of file
تنبيه: مهمة متأخرة+عزيزي " . htmlspecialchars($task['full_name']) . "، +هذه المهمة قد تجاوزت الموعد النهائي المحدد: +
يرجى معالجة هذه المهمة في أقرب وقت ممكن. + | ||||||