<?php
require_once __DIR__ . '/../includes/functions.php';
require_role('admin');

$admin = current_user();
$claim_id = (int)($_GET['id'] ?? 0);

$stmt = $pdo->prepare("
    SELECT c.*, r.name AS row_name, u.full_name, u.personnel_code, ru.full_name AS reviewer_name,
           d.full_name AS dependent_name, d.relation AS dependent_relation
    FROM claims c
    JOIN insurance_rows r ON r.id = c.row_id
    JOIN users u ON u.id = c.user_id
    LEFT JOIN users ru ON ru.id = c.reviewed_by
    LEFT JOIN dependents d ON d.id = c.dependent_id
    WHERE c.id = ?
");
$stmt->execute([$claim_id]);
$claim = $stmt->fetch();

if (!$claim || !in_array($claim['status'], ['approved', 'paid'])) {
    $_SESSION['flash_error'] = 'این درخواست هنوز تایید نشده یا یافت نشد.';
    header('Location: ' . base_url('admin/dashboard.php'));
    exit;
}

$relationLabels = ['spouse' => 'همسر', 'father' => 'پدر', 'mother' => 'مادر', 'child' => 'فرزند'];
$company_name = get_setting($pdo, 'company_name', APP_NAME);

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['mark_paid'])) {
    verify_csrf();
    $stmt2 = $pdo->prepare("UPDATE claims SET status = 'paid', paid_at = NOW() WHERE id = ?");
    $stmt2->execute([$claim_id]);
    log_activity($pdo, 'mark_paid', 'ثبت پرداخت', $claim_id);
    $claim['status'] = 'paid';
    $_SESSION['flash_success'] = 'درخواست به‌عنوان پرداخت‌شده ثبت شد.';
}

$page_title = 'فرم پرداخت';
include __DIR__ . '/../includes/header.php';
?>

<div class="no-print d-flex justify-content-between mb-3">
  <a href="dashboard.php" class="btn btn-outline-secondary btn-sm">بازگشت</a>
  <div>
    <?php if ($claim['status'] === 'approved'): ?>
      <form method="post" class="d-inline">
        <?= csrf_field() ?>
        <button type="submit" name="mark_paid" value="1" class="btn btn-primary btn-sm" onclick="return confirm('آیا پرداخت این مبلغ انجام شده است؟')">ثبت به‌عنوان پرداخت‌شده</button>
      </form>
    <?php endif; ?>
    <button onclick="window.print()" class="btn btn-success btn-sm">چاپ فرم</button>
  </div>
</div>

<div class="card p-5" id="printArea">
  <div class="text-center mb-4">
    <h4><?= htmlspecialchars($company_name) ?></h4>
    <h6 class="text-muted">فرم تایید پرداخت هزینه درمانی</h6>
  </div>

  <table class="table table-bordered">
    <tr><th class="w-25">شماره درخواست</th><td>#<?= fa_num($claim['id']) ?></td></tr>
    <tr><th>نام و نام خانوادگی کارمند</th><td><?= htmlspecialchars($claim['full_name']) ?></td></tr>
    <tr><th>کد پرسنلی</th><td><?= htmlspecialchars($claim['personnel_code'] ?? '-') ?></td></tr>
    <?php if ($claim['is_dependent']): ?>
    <tr><th>برای فرد تبعی</th><td><?= htmlspecialchars($claim['dependent_name']) ?> (<?= $relationLabels[$claim['dependent_relation']] ?? '' ?>)</td></tr>
    <?php endif; ?>
    <tr><th>ردیف درمانی</th><td><?= htmlspecialchars($claim['row_name']) ?></td></tr>
    <tr><th>مرکز درمانی</th><td><?= htmlspecialchars($claim['medical_center'] ?? '-') ?></td></tr>
    <tr><th>تاریخ انجام خدمت</th><td><?= htmlspecialchars($claim['service_date'] ?? '-') ?></td></tr>
    <tr><th>شماره فیش/فاکتور</th><td><?= htmlspecialchars($claim['receipt_number'] ?? '-') ?></td></tr>
    <tr><th>تاریخ ثبت درخواست</th><td><?= to_jalali_string($claim['created_at']) ?></td></tr>
    <tr><th>مبلغ درخواستی</th><td><?= format_amount($claim['amount_requested']) ?></td></tr>
    <tr><th>مبلغ تایید‌شده (طبق سقف)</th><td><?= format_amount($claim['amount_approved']) ?></td></tr>
    <tr><th>فرانشیز (<?= fa_num($claim['franchise_percent']) ?>٪)</th><td>- <?= format_amount($claim['franchise_amount']) ?></td></tr>
    <?php if ($claim['is_dependent']): ?>
    <tr><th>سهم پرداختی شرکت برای فرد تبعی</th><td><?= fa_num(get_setting($pdo, 'dependent_share_percent', 50)) ?>٪</td></tr>
    <?php endif; ?>
    <tr><th>مبلغ نهایی قابل پرداخت</th><td class="fs-5 fw-bold"><?= format_amount($claim['payable_amount']) ?></td></tr>
    <?php if ($claim['cap_limited']): ?>
    <tr><th>توضیح</th><td class="text-danger">مبلغ با توجه به رسیدن به سقف مجاز، محدود شده است.</td></tr>
    <?php endif; ?>
    <tr><th>یادداشت بررسی‌کننده</th><td><?= nl2br(htmlspecialchars($claim['admin_note'] ?? '-')) ?></td></tr>
    <tr><th>تایید‌کننده</th><td><?= htmlspecialchars($claim['reviewer_name'] ?? '-') ?></td></tr>
    <tr><th>تاریخ تایید</th><td><?= to_jalali_string($claim['reviewed_at']) ?></td></tr>
    <tr><th>وضعیت پرداخت</th><td><span class="badge <?= status_badge_class($claim['status']) ?>"><?= status_label($claim['status']) ?></span>
        <?= $claim['paid_at'] ? ' - تاریخ پرداخت: ' . to_jalali_string($claim['paid_at']) : '' ?>
    </td></tr>
  </table>

  <div class="row mt-5 text-center">
    <div class="col-6">
      <div style="border-top:1px solid #333; margin-top:60px; padding-top:5px;">امضای مدیر/مالی</div>
    </div>
    <div class="col-6">
      <div style="border-top:1px solid #333; margin-top:60px; padding-top:5px;">امضای مسئول پرداخت</div>
    </div>
  </div>
</div>

<?php include __DIR__ . '/../includes/footer.php'; ?>
