<?php
session_start();
require_once '../config/database.php';
require_once '../includes/functions.php';

// Check if user is logged in
if (!isset($_SESSION['user_id'])) {
    header('HTTP/1.1 403 Forbidden');
    exit('غير مصرح لك بالوصول');
}

$db = new Database();
$conn = $db->getConnection();

// Log export activity
logActivity($conn, $_SESSION['user_id'], 'تصدير تقرير الأقسام Excel', 'departments_reports');

// Define departments mapping
$departments = [
    'الدور الرابع' => ['4th floor', '4TH'],
    'الدور الخامس' => ['5th floor', '5TH'], 
    'الدور السادس' => ['6th Floor', '6TH'],
    'الحضانة' => ['NICU', 'NICU'],
    'رعاية اطفال' => ['NICU', 'NICU'], // Same as NICU for now
    'رعاية حرجة' => ['4th ICU', '4ICU'],
    'رعاية مركزة' => ['CICU', 'CICU'],
    'رعاية قلب' => ['CCU', 'CCU']
];

// Set headers for Excel download
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename="departments_report_' . date('Y-m-d_H-i-s') . '.xls"');
header('Cache-Control: max-age=0');
header('Pragma: public');

// Output UTF-8 BOM for proper Arabic display
echo "\xEF\xBB\xBF";
?>
<!DOCTYPE html>
<html dir="rtl" lang="ar">
<head>
    <meta charset="UTF-8">
    <style>
        body {
            font-family: 'Arial', 'Tahoma', sans-serif;
            direction: rtl;
            margin: 0;
            padding: 15px;
            font-size: 10pt;
        }
        
        .department-section {
            margin-bottom: 40px;
            page-break-before: always;
        }
        
        .stats-table {
            width: 100%;
            border-collapse: collapse;
        }
        
        .stats-table td {
            padding: 8px 12px;
            border: 1px solid #bdc3c7;
            font-size: 10pt;
        }
        
        .stats-table .stat-label {
            background-color: #ecf0f1;
            font-weight: bold;
            width: 40%;
            color: #2c3e50;
        }
        
        .stats-table .stat-value {
            background-color: #fff;
            text-align: center;
            font-weight: bold;
            color: #3498db;
            font-size: 11pt;
        }
        
        .data-table {
            border-collapse: collapse;
            width: 100%;
            direction: rtl;
            margin-top: 15px;
        }
        
        .data-table th {
            background-color: #4472C4;
            color: #ffffff;
            font-weight: bold;
            padding: 10px 8px;
            text-align: center;
            border: 1px solid #2e5c8a;
            font-size: 9pt;
            white-space: nowrap;
        }
        
        .data-table td {
            padding: 8px 6px;
            text-align: center;
            border: 1px solid #bdc3c7;
            font-size: 9pt;
        }
        
        .data-table tr:nth-child(odd) td {
            background-color: #ffffff;
        }
        
        .data-table tr:nth-child(even) td {
            background-color: #f2f7ff;
        }
        
        .status-completed {
            background-color: #d1e7dd;
            color: #0f5132;
            font-weight: bold;
            padding: 4px 8px;
        }
        
        .status-pending {
            background-color: #fff3cd;
            color: #664d03;
            font-weight: bold;
            padding: 4px 8px;
        }
        
        .gender-male {
            color: #0d6efd;
            font-weight: bold;
        }
        
        .gender-female {
            color: #d63384;
            font-weight: bold;
        }
        
        .no-data {
            text-align: center;
            padding: 30px;
            color: #6c757d;
            font-style: italic;
            background-color: #f8f9fa;
        }
    </style>
</head>
<body>

<!-- Main Header Table -->
<table>
    <tr><td colspan="13" style="background-color:#1a3a5c; color:#ffffff; font-size:16pt; font-weight:bold; text-align:center; padding:12px;">تقرير الأقسام الشامل</td></tr>
    <tr><td colspan="13" style="background-color:#2e5c8a; color:#ffffff; font-size:10pt; text-align:center; padding:5px;">مستشفى مدينة نصر التخصصي - Nasr City Specialized Hospital | نظام الصيدلة الإكلينيكية المتكامل (ICS) | تاريخ التصدير: <?php echo date('Y-m-d H:i:s'); ?> | المستخدم: <?php echo htmlspecialchars($_SESSION['full_name']); ?></td></tr>
    <tr><td colspan="13" style="height:8px; border:none;"></td></tr>
</table>

<?php
// Initialize totals
$grand_total_reports = 0;
$grand_total_patients = 0;
$grand_total_completed = 0;
$grand_total_pending = 0;

// Loop through each department
foreach ($departments as $dept_name => $dept_info):
    list($unit_name, $unit_code) = $dept_info;
    
    // Get department data
    $stmt = $conn->prepare("
        SELECT 
            ar.id,
            ar.report_date,
            ar.problem_authority,
            ar.intervention_choice,
            ar.status,
            ar.created_at,
            p.patient_name,
            p.mrn,
            p.gender,
            u.unit_name,
            COALESCE(a.antibiotic_name, ar.other_medication_name, 'غير محدد') as antibiotic_name,
            a.category as antibiotic_category,
            usr.full_name as pharmacist_name,
            GROUP_CONCAT(pd.problem_type SEPARATOR ', ') as problem_types
        FROM antibiotic_reports ar
        JOIN patients p ON ar.patient_id = p.id
        JOIN units u ON ar.unit_id = u.id
        LEFT JOIN antibiotics a ON ar.antibiotic_id = a.id
        JOIN users usr ON ar.reporting_pharmacist_id = usr.id
        LEFT JOIN problem_definitions pd ON ar.id = pd.report_id
        WHERE u.unit_name = ? OR u.unit_code = ?
        GROUP BY ar.id
        ORDER BY ar.created_at DESC
    ");
    $stmt->execute([$unit_name, $unit_code]);
    $dept_data = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Calculate department statistics
    $dept_total_reports = count($dept_data);
    $dept_completed_reports = count(array_filter($dept_data, function($r) { return $r['status'] == 'completed'; }));
    $dept_pending_reports = count(array_filter($dept_data, function($r) { return $r['status'] == 'pending'; }));
    $dept_male_patients = count(array_filter($dept_data, function($r) { return $r['gender'] == 'male'; }));
    $dept_female_patients = count(array_filter($dept_data, function($r) { return $r['gender'] == 'female'; }));
    $dept_unique_patients = count(array_unique(array_column($dept_data, 'mrn')));
    
    // Add to grand totals
    $grand_total_reports += $dept_total_reports;
    $grand_total_patients += $dept_unique_patients;
    $grand_total_completed += $dept_completed_reports;
    $grand_total_pending += $dept_pending_reports;
?>

<!-- Department Section -->
<div class="department-section">
    <!-- Department Header Row -->
    <table>
        <tr><td colspan="13" style="background-color:#D9E1F2; color:#1F3864; font-weight:bold; font-size:14pt; text-align:center; padding:10px; border:2px solid #4472C4;"><?php echo $dept_name; ?> (<?php echo $unit_name; ?>)</td></tr>
    </table>
    
    <!-- Department Statistics -->
    <table class="stats-table">
            <tr>
                <td class="stat-label">إجمالي التقارير</td>
                <td class="stat-value"><?php echo $dept_total_reports; ?></td>
                <td class="stat-label">التقارير المكتملة</td>
                <td class="stat-value"><?php echo $dept_completed_reports; ?></td>
            </tr>
            <tr>
                <td class="stat-label">التقارير المعلقة</td>
                <td class="stat-value"><?php echo $dept_pending_reports; ?></td>
                <td class="stat-label">عدد المرضى الفريد</td>
                <td class="stat-value"><?php echo $dept_unique_patients; ?></td>
            </tr>
            <tr>
                <td class="stat-label">مرضى ذكور</td>
                <td class="stat-value"><?php echo $dept_male_patients; ?></td>
                <td class="stat-label">مرضى إناث</td>
                <td class="stat-value"><?php echo $dept_female_patients; ?></td>
            </tr>
            <tr>
                <td class="stat-label">معدل الإكمال</td>
                <td class="stat-value"><?php echo $dept_total_reports > 0 ? round(($dept_completed_reports / $dept_total_reports) * 100, 1) : 0; ?>%</td>
                <td class="stat-label">كود القسم</td>
                <td class="stat-value"><?php echo $unit_code; ?></td>
            </tr>
        </table>
    
    <!-- Department Data Table -->
    <?php if (!empty($dept_data)): ?>
    <table class="data-table">
        <thead>
            <tr>
                <th style="width: 50px;">رقم التقرير</th>
                <th style="width: 80px;">التاريخ</th>
                <th style="width: 120px;">اسم المريض</th>
                <th style="width: 40px;">الجنس</th>
                <th style="width: 80px;">رقم الملف</th>
                <th style="width: 120px;">المضاد الحيوي</th>
                <th style="width: 80px;">فئة المضاد</th>
                <th style="width: 100px;">سلطة المشكلة</th>
                <th style="width: 150px;">نوع المشكلة</th>
                <th style="width: 150px;">التدخل</th>
                <th style="width: 60px;">الحالة</th>
                <th style="width: 100px;">الصيدلي</th>
                <th style="width: 120px;">تاريخ الإنشاء</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($dept_data as $row): ?>
            <tr>
                <td><?php echo htmlspecialchars($row['id']); ?></td>
                <td><?php echo htmlspecialchars($row['report_date']); ?></td>
                <td style="text-align: right;"><?php echo htmlspecialchars($row['patient_name']); ?></td>
                <td class="<?php echo $row['gender'] == 'male' ? 'gender-male' : 'gender-female'; ?>">
                    <?php echo $row['gender'] == 'male' ? 'ذكر' : 'أنثى'; ?>
                </td>
                <td><?php echo htmlspecialchars($row['mrn']); ?></td>
                <td style="text-align: right;"><?php echo htmlspecialchars($row['antibiotic_name']); ?></td>
                <td><?php echo htmlspecialchars($row['antibiotic_category']); ?></td>
                <td><?php 
                    $authorities = [
                        'physicians' => 'الأطباء',
                        'nurses' => 'الممرضات', 
                        'pharmacist' => 'الصيدلي',
                        'other' => 'أخرى'
                    ];
                    echo $authorities[$row['problem_authority']] ?? $row['problem_authority'];
                ?></td>
                <td style="text-align: right;"><?php echo htmlspecialchars($row['problem_types'] ?? '-'); ?></td>
                <td style="text-align: right;"><?php 
                    // Translate intervention choices from JSON to Arabic
                    $interventions = json_decode($row['intervention_choice'], true);
                    if (is_array($interventions)) {
                        $translations = [
                            'drug_discontinuation' => 'إيقاف الدواء',
                            'monitoring' => 'المراقبة',
                            'changing_another_agent' => 'تغيير إلى دواء آخر',
                            'changing_administration_route' => 'تغيير طريقة الإعطاء',
                            'addition_new_drug' => 'إضافة دواء جديد',
                            'change_medication' => 'تغيير الدواء',
                            'patient_own_medication' => 'دواء المريض الخاص',
                            'illegible_abbreviations' => 'اختصارات غير واضحة',
                            'medication_dispensing' => 'صرف الدواء',
                            'illegible_hand_writing' => 'خط يد غير واضح'
                        ];
                        $translated = array_map(function($item) use ($translations) {
                            return $translations[$item] ?? $item;
                        }, $interventions);
                        echo htmlspecialchars(implode(', ', $translated));
                    } else {
                        echo htmlspecialchars($row['intervention_choice'] ?? '-');
                    }
                ?></td>
                <td>
                    <span class="<?php echo $row['status'] == 'completed' ? 'status-completed' : 'status-pending'; ?>">
                        <?php echo $row['status'] == 'completed' ? 'مكتمل' : 'معلق'; ?>
                    </span>
                </td>
                <td style="text-align: right;"><?php echo htmlspecialchars($row['pharmacist_name']); ?></td>
                <td><?php echo htmlspecialchars($row['created_at']); ?></td>
            </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
    <?php else: ?>
    <div class="no-data">
        <p>لا توجد بيانات متاحة لهذا القسم</p>
    </div>
    <?php endif; ?>
</div>

<?php endforeach; ?>

<!-- Summary Section -->
<table>
    <tr><td colspan="4" style="background-color:#D9E1F2; color:#1F3864; font-weight:bold; font-size:12pt; text-align:right; padding:8px 12px; border:2px solid #4472C4;">الملخص العام لجميع الأقسام</td></tr>
</table>
<table class="stats-table">
        <tr>
            <td class="stat-label">إجمالي التقارير في جميع الأقسام</td>
            <td class="stat-value"><?php echo $grand_total_reports; ?></td>
            <td class="stat-label">إجمالي المرضى الفريدين</td>
            <td class="stat-value"><?php echo $grand_total_patients; ?></td>
        </tr>
        <tr>
            <td class="stat-label">إجمالي التقارير المكتملة</td>
            <td class="stat-value"><?php echo $grand_total_completed; ?></td>
            <td class="stat-label">إجمالي التقارير المعلقة</td>
            <td class="stat-value"><?php echo $grand_total_pending; ?></td>
        </tr>
        <tr>
            <td class="stat-label">معدل الإكمال العام</td>
            <td class="stat-value"><?php echo $grand_total_reports > 0 ? round(($grand_total_completed / $grand_total_reports) * 100, 1) : 0; ?>%</td>
            <td class="stat-label">عدد الأقسام المشمولة</td>
            <td class="stat-value"><?php echo count($departments); ?></td>
        </tr>
    </table>
    
    <!-- Footer Table -->
    <table>
        <tr><td colspan="3" style="background-color:#f2f2f2; text-align:center; padding:10px; font-size:9pt; color:#555; border:1px solid #ccc;">البيانات محدثة حتى تاريخ: <?php echo date('Y-m-d H:i:s'); ?> | تم إنشاء التقرير بواسطة: <?php echo htmlspecialchars($_SESSION['full_name']); ?> | الأقسام المشمولة: الدور الرابع، الخامس، السادس، الحضانة، رعاية الأطفال، الرعاية الحرجة، الرعاية المركزة، رعاية القلب</td></tr>
    </table>

</body>
</html>
