<?php
/** @var array<string,mixed> $report */
/** @var array<string,mixed> $hospital */
$summary = is_array($report['summary'] ?? null) ? $report['summary'] : [];
$patients = is_array($report['patients'] ?? null) ? $report['patients'] : [];
$units = is_array($report['units'] ?? null) ? $report['units'] : [];
$companies = is_array($report['companies'] ?? null) ? $report['companies'] : [];
$isAr = current_lang() === 'ar';
$tr = static fn(string $en, string $ar): string => $isAr ? $ar : $en;
$maxUnitRevenue = 0.0;
foreach ($units as $unit) {
    $maxUnitRevenue = max($maxUnitRevenue, (float)($unit['daily_revenue'] ?? 0));
}
$totalRevenue = (float)($summary['daily_revenue'] ?? 0);
$topCompanies = array_slice($companies, 0, 5);
$exportFilename = strtoupper((string)$hospitalCode) . '_Daily_Revenue_' . date('Y-m-d') . '.xlsx';
$methodLabelsAr = [
    'nhic_over_30' => 'سعر ثابت للتأمين الوطني — أكثر من 30 يومًا',
    'nhic_30_or_less' => 'سعر ثابت للتأمين الوطني — 30 يومًا أو أقل',
    'tcs_1_3' => 'شريحة TCS — الأيام 1–3',
    'tcs_4_8' => 'شريحة TCS — الأيام 4–8',
    'tcs_9_plus' => 'شريحة TCS — اليوم 9 فأكثر',
    'cash_patient_share_per_los' => 'حصة المريض ÷ مدة الإقامة',
];
?>

<section class="idr-hero executive-hero" data-idr-root>
    <div class="idr-hero-copy">
        <span class="overline light"><?= e($tr('Live inpatient financial view', 'المشهد المالي الحي للمرضى المنومين')) ?></span>
        <h2><?= e($tr('Daily inpatient revenue — every patient currently in a room.', 'الإيراد اليومي للمرضى المنومين — لكل مريض موجود حاليًا في غرفته.')) ?></h2>
        <p><?= e($tr(
            'One daily view of occupancy, length of stay and net revenue using the approved payer rules and accumulated visit shares.',
            'صورة يومية موحدة للإشغال ومدة الإقامة وصافي الإيراد وفق قواعد جهات الدفع المعتمدة والحصص المتراكمة للزيارة.'
        )) ?></p>
        <div class="idr-hero-meta">
            <span><b><?= e($tr('Branch', 'الفرع')) ?></b><strong><?= e((string)($hospital['name'] ?? strtoupper((string)$hospitalCode))) ?></strong></span>
            <span><b><?= e($tr('Snapshot', 'وقت اللقطة')) ?></b><strong><?= e((string)($summary['generated_at'] ?? date('Y-m-d H:i:s'))) ?></strong></span>
        </div>
    </div>
    <div class="idr-hero-action">
        <span><?= e($tr('Professional finance workbook', 'ملف مالي احترافي')) ?></span>
        <strong><?= e($exportFilename) ?></strong>
        <small><?= e($tr('Manual-style daily sheet + executive summary + unit totals', 'ورقة يومية مألوفة + ملخص تنفيذي + إجمالي لكل وحدة')) ?></small>
        <a class="btn idr-export-btn" href="<?= e(url_to('inpatient-daily-revenue-export')) ?>">
            <?= e($tr('Export Professional Excel', 'تصدير ملف Excel الاحترافي')) ?>
        </a>
    </div>
</section>

<?php if (($errorMessage ?? '') !== ''): ?>
    <section class="surface-card idr-alert" role="alert">
        <strong><?= e($tr('Daily revenue is temporarily unavailable', 'الإيراد اليومي غير متاح مؤقتًا')) ?></strong>
        <p><?= e((string)$errorMessage) ?></p>
    </section>
<?php endif; ?>

<section class="idr-kpi-grid" aria-label="<?= e($tr('Daily inpatient revenue indicators', 'مؤشرات الإيراد اليومي للمرضى المنومين')) ?>">
    <article class="idr-kpi-card idr-kpi-primary">
        <span><?= e($tr('Patients in rooms', 'المرضى الموجودون في الغرف')) ?></span>
        <strong><?= e((string)($summary['patient_count'] ?? 0)) ?></strong>
        <small><?= e($tr('Current active inpatient census', 'التعداد الحالي للمرضى المنومين')) ?></small>
    </article>
    <article class="idr-kpi-card">
        <span><?= e($tr('Total daily revenue', 'إجمالي الإيراد اليومي')) ?></span>
        <strong><?= e(money_number($totalRevenue)) ?> <em>SR</em></strong>
        <small><?= e($tr('Calculated for the current active census', 'محسوب للتعداد الحالي النشط')) ?></small>
    </article>
    <article class="idr-kpi-card">
        <span><?= e($tr('Average per patient', 'المتوسط لكل مريض')) ?></span>
        <strong><?= e(money_number((float)($summary['average_revenue'] ?? 0))) ?> <em>SR</em></strong>
        <small><?= e($tr('Daily revenue average', 'متوسط الإيراد اليومي')) ?></small>
    </article>
    <article class="idr-kpi-card">
        <span><?= e($tr('Automatic coverage', 'نسبة الحساب التلقائي')) ?></span>
        <strong><?= e(number_format((float)($summary['automatic_pct'] ?? 0), 1)) ?>%</strong>
        <small><?= e((string)($summary['automatic_count'] ?? 0)) ?> <?= e($tr('calculated automatically', 'تم حسابهم تلقائيًا')) ?></small>
    </article>
    <article class="idr-kpi-card <?= ((int)($summary['review_count'] ?? 0) > 0) ? 'idr-kpi-attention' : '' ?>">
        <span><?= e($tr('Needs review', 'يحتاج إلى مراجعة')) ?></span>
        <strong><?= e((string)($summary['review_count'] ?? 0)) ?></strong>
        <small><?= e($tr('Visits with missing or unusual accumulated shares', 'زيارات بها حصص متراكمة مفقودة أو غير معتادة')) ?></small>
    </article>
</section>

<section class="idr-decision-grid">
    <article class="surface-card idr-rule-panel">
        <div class="section-head compact">
            <span class="overline"><?= e($tr('Approved calculation rules', 'قواعد الحساب المعتمدة')) ?></span>
            <h2><?= e($tr('How today’s value is decided', 'كيف يتم تحديد قيمة اليوم')) ?></h2>
        </div>
        <div class="idr-rule-list">
            <div class="idr-rule-item">
                <span class="idr-rule-code">365</span>
                <div>
                    <strong><?= e($tr('Center for National Health Insurance', 'CENTER FOR NATIONAL HEALTH INSURANCE')) ?></strong>
                    <p><?= e($tr('Total LOS ≤ 30 days: 4,746.87 SR · Total LOS > 30 days: 2,373.00 SR', 'إجمالي مدة الإقامة ≤ 30 يومًا: 4,746.87 ريال · أكثر من 30 يومًا: 2,373.00 ريال')) ?></p>
                </div>
            </div>
            <div class="idr-rule-item">
                <span class="idr-rule-code">170</span>
                <div>
                    <strong>TCS</strong>
                    <p><?= e($tr('LOS 1–3: 2,250 SR · LOS 4–8: 1,950 SR · LOS 9+: 1,750 SR', 'مدة الإقامة 1–3: 2,250 ريال · 4–8: 1,950 ريال · 9 فأكثر: 1,750 ريال')) ?></p>
                </div>
            </div>
            <div class="idr-rule-item">
                <span class="idr-rule-code">1</span>
                <div>
                    <strong><?= e($tr('Cash', 'نقدي')) ?></strong>
                    <p><?= e($tr('Accumulated patient share ÷ LOS from visit start date', 'إجمالي حصة المريض المتراكمة ÷ مدة الإقامة من تاريخ بداية الزيارة')) ?></p>
                </div>
            </div>
            <div class="idr-rule-item">
                <span class="idr-rule-code">+</span>
                <div>
                    <strong><?= e($tr('Other insurance payers', 'بقية شركات التأمين')) ?></strong>
                    <p><?= e($tr('Accumulated company share ÷ LOS from visit start date', 'إجمالي حصة الشركة المتراكمة ÷ مدة الإقامة من تاريخ بداية الزيارة')) ?></p>
                </div>
            </div>
        </div>
    </article>

    <article class="surface-card idr-payer-mix">
        <div class="section-head compact">
            <span class="overline"><?= e($tr('Payer concentration', 'تركيز جهات الدفع')) ?></span>
            <h2><?= e($tr('Who contributes today’s revenue?', 'من يساهم في إيراد اليوم؟')) ?></h2>
        </div>
        <div class="idr-payer-bars">
            <?php foreach ($topCompanies as $company): ?>
                <?php
                    $value = (float)($company['daily_revenue'] ?? 0);
                    $pct = $totalRevenue > 0 ? min(100, ($value / $totalRevenue) * 100) : 0;
                ?>
                <div class="idr-payer-row">
                    <div class="idr-payer-label">
                        <span><?= e((string)($company['financlassid'] ?? '')) ?> — <?= e((string)($company['financial_class'] ?? '')) ?></span>
                        <strong><?= e(money_number($value)) ?> SR</strong>
                    </div>
                    <div class="idr-bar-track"><i style="width:<?= e(number_format($pct, 2, '.', '')) ?>%"></i></div>
                    <small><?= e((string)($company['patients'] ?? 0)) ?> <?= e($tr('patients', 'مرضى')) ?> · <?= e(number_format($pct, 1)) ?>%</small>
                </div>
            <?php endforeach; ?>
            <?php if ($topCompanies === []): ?>
                <p class="idr-empty-copy"><?= e($tr('No payer data is available for this snapshot.', 'لا تتوفر بيانات جهات دفع لهذه اللقطة.')) ?></p>
            <?php endif; ?>
        </div>
    </article>
</section>

<section class="surface-card idr-unit-card">
    <div class="section-head compact idr-section-split">
        <div>
            <span class="overline"><?= e($tr('Revenue by care area', 'الإيراد حسب منطقة الرعاية')) ?></span>
            <h2><?= e($tr('Daily revenue and occupancy by unit', 'الإيراد اليومي والإشغال حسب الوحدة')) ?></h2>
        </div>
        <span class="idr-section-note"><?= e($tr('Sorted by daily revenue', 'مرتب حسب الإيراد اليومي')) ?></span>
    </div>
    <div class="idr-unit-chart">
        <?php foreach ($units as $unit): ?>
            <?php
                $unitRevenue = (float)($unit['daily_revenue'] ?? 0);
                $width = $maxUnitRevenue > 0 ? max(2, ($unitRevenue / $maxUnitRevenue) * 100) : 0;
                $beds = (int)($unit['beds'] ?? 0);
                $count = (int)($unit['patients'] ?? 0);
                $occupancy = $beds > 0 ? ($count / $beds) * 100 : 0;
            ?>
            <div class="idr-unit-row">
                <div class="idr-unit-name">
                    <strong><?= e((string)($unit['unit_name'] ?? '')) ?></strong>
                    <span><?= e((string)$count) ?>/<?= e((string)$beds) ?> <?= e($tr('beds occupied', 'أسرة مشغولة')) ?> · <?= e(number_format($occupancy, 1)) ?>%</span>
                </div>
                <div class="idr-unit-bar"><i style="width:<?= e(number_format($width, 2, '.', '')) ?>%"></i></div>
                <strong class="idr-unit-value"><?= e(money_number($unitRevenue)) ?> SR</strong>
            </div>
        <?php endforeach; ?>
        <?php if ($units === []): ?>
            <p class="idr-empty-copy"><?= e($tr('No unit data is available for this snapshot.', 'لا تتوفر بيانات وحدات لهذه اللقطة.')) ?></p>
        <?php endif; ?>
    </div>
</section>

<section class="surface-card idr-table-card">
    <div class="idr-table-toolbar">
        <div>
            <span class="overline"><?= e($tr('Patient-level detail', 'تفاصيل كل مريض')) ?></span>
            <h2><?= e($tr('Current inpatients and calculated daily revenue', 'المرضى المنومون حاليًا والإيراد اليومي المحسوب')) ?></h2>
        </div>
        <div class="idr-table-controls">
            <input type="search" placeholder="<?= e($tr('Search patient, room or payer', 'بحث بالمريض أو الغرفة أو جهة الدفع')) ?>" data-idr-search>
            <select data-idr-status>
                <option value="all"><?= e($tr('All statuses', 'كل الحالات')) ?></option>
                <option value="calculated"><?= e($tr('Calculated', 'محسوب')) ?></option>
                <option value="review"><?= e($tr('Needs review', 'يحتاج مراجعة')) ?></option>
            </select>
        </div>
    </div>

    <div class="idr-table-wrap">
        <table class="idr-table">
            <thead>
                <tr>
                    <th><?= e($tr('Patient', 'المريض')) ?></th>
                    <th><?= e($tr('Location', 'الموقع')) ?></th>
                    <th><?= e($tr('Financial class', 'الفئة المالية')) ?></th>
                    <th><?= e($tr('LOS', 'مدة الإقامة')) ?></th>
                    <th><?= e($tr('Total LOS', 'إجمالي مدة الإقامة')) ?></th>
                    <th><?= e($tr('Accumulated share', 'الحصة المتراكمة')) ?></th>
                    <th><?= e($tr('Daily revenue', 'الإيراد اليومي')) ?></th>
                    <th><?= e($tr('Calculation', 'طريقة الحساب')) ?></th>
                    <th><?= e($tr('Status', 'الحالة')) ?></th>
                </tr>
            </thead>
            <tbody data-idr-table-body>
                <?php foreach ($patients as $patient): ?>
                    <?php
                        $needsReview = !empty($patient['needs_review']);
                        $shareValue = ((int)($patient['financlassid'] ?? 0) === 1)
                            ? (float)($patient['patient_share_total'] ?? 0)
                            : (float)($patient['company_share_total'] ?? 0);
                        $searchText = strtolower(trim(implode(' ', [
                            (string)($patient['patient_name'] ?? ''),
                            (string)($patient['patientid'] ?? ''),
                            (string)($patient['room'] ?? ''),
                            (string)($patient['bed'] ?? ''),
                            (string)($patient['financial_class'] ?? ''),
                            (string)($patient['unit_name'] ?? ''),
                        ])));
                        $methodCode = (string)($patient['method_code'] ?? '');
                        $methodLabelAr = $methodLabelsAr[$methodCode] ?? 'حصة الشركة ÷ مدة الإقامة';
                    ?>
                    <tr data-idr-row data-status="<?= $needsReview ? 'review' : 'calculated' ?>" data-search="<?= e($searchText) ?>">
                        <td>
                            <strong><?= e((string)($patient['patient_name'] ?? '')) ?></strong>
                            <small>#<?= e((string)($patient['patientid'] ?? '')) ?> · <?= e((string)($patient['attending_doctor'] ?? '')) ?></small>
                        </td>
                        <td>
                            <strong><?= e((string)($patient['room'] ?? '')) ?> / <?= e((string)($patient['bed'] ?? '')) ?></strong>
                            <small><?= e((string)($patient['unit_name'] ?? '')) ?></small>
                        </td>
                        <td>
                            <strong><?= e((string)($patient['financlassid'] ?? '')) ?></strong>
                            <small><?= e((string)($patient['financial_class'] ?? '')) ?></small>
                        </td>
                        <td><strong><?= e((string)($patient['los'] ?? 0)) ?></strong></td>
                        <td><strong><?= e((string)($patient['total_los'] ?? 0)) ?></strong></td>
                        <td><strong><?= e(money_number($shareValue)) ?> SR</strong></td>
                        <td class="idr-revenue-cell"><strong><?= e(money_number((float)($patient['daily_revenue'] ?? 0))) ?> SR</strong></td>
                        <td><span class="idr-method-pill"><?= e($tr(
                            (string)($patient['method_label'] ?? ''),
                            $methodLabelAr
                        )) ?></span></td>
                        <td>
                            <span class="idr-status <?= $needsReview ? 'review' : 'ok' ?>">
                                <?= e($needsReview ? $tr('Needs review', 'يحتاج مراجعة') : $tr('Calculated', 'محسوب')) ?>
                            </span>
                            <?php if ($needsReview && (string)($patient['review_reason'] ?? '') !== ''): ?>
                                <small><?= e($tr((string)$patient['review_reason'], 'لم يتم العثور على حصة متراكمة صالحة للزيارة النشطة.')) ?></small>
                            <?php endif; ?>
                        </td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
    <div class="idr-table-footer">
        <span data-idr-visible-count><?= e((string)count($patients)) ?></span>
        <span><?= e($tr('patients shown', 'مريض معروض')) ?></span>
    </div>
</section>
