%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php
/**
* Halaman Lacak / Cek Status Permohonan berdasarkan Nomor Resi.
*/
require_once __DIR__ . '/config/config.php';
require_once __DIR__ . '/includes/queries.php';
$resi = get_param('resi');
$result = null;
$notFound = false;
if ($resi !== '') {
$result = get_permohonan_by_resi($resi);
$notFound = $result === null;
}
$pageTitle = 'Lacak Permohonan — ' . APP_NAME_SHORT;
$activeNav = '';
require __DIR__ . '/partials/head.php';
require __DIR__ . '/partials/navbar.php';
// Urutan langkah status untuk timeline.
$statusUrut = ['verifikasi' => 1, 'diproses' => 2, 'selesai' => 3];
$currentStep = $result ? ($statusUrut[$result['status']] ?? 0) : 0;
$ditolak = $result && $result['status'] === 'ditolak';
?>
<section class="relative overflow-hidden bg-gradient-to-br from-mateng-green to-mateng-blue text-white py-14">
<?php require __DIR__ . '/partials/sekda-header.php'; ?>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<nav class="text-sm text-green-100 mb-3">
<a href="<?= e(url('index.php')) ?>" class="hover:underline">Beranda</a><span class="mx-2">/</span><span>Lacak Permohonan</span>
</nav>
<h1 class="text-3xl md:text-4xl font-extrabold mb-2">Lacak Status Permohonan</h1>
<p class="text-green-50 max-w-2xl">Masukkan Nomor Resi yang Anda terima saat mengajukan permohonan informasi.</p>
</div>
</section>
<main class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-10 w-full">
<form method="get" action="<?= e(url('cek-status.php')) ?>" class="bg-white rounded-2xl border border-slate-100 shadow-sm p-2 flex items-center mb-8">
<i class="fas fa-receipt text-slate-400 ml-4 text-lg"></i>
<input type="text" name="resi" value="<?= e($resi) ?>" placeholder="Masukkan Nomor Resi, contoh: REQ-260626-XXXXX" class="w-full px-4 py-3 outline-none text-slate-700 bg-transparent" required>
<button type="submit" class="bg-mateng-green hover:bg-green-700 text-white px-6 py-3 rounded-xl font-bold transition-colors shrink-0">Lacak</button>
</form>
<?php if ($notFound): ?>
<div class="bg-amber-50 border border-amber-200 text-amber-700 rounded-xl p-5 flex items-start gap-3">
<i class="fas fa-circle-exclamation mt-0.5"></i>
<div>
<p class="font-semibold">Permohonan tidak ditemukan.</p>
<p class="text-sm">Pastikan Nomor Resi yang Anda masukkan benar (contoh: <code>REQ-260626-AB12C</code>).</p>
</div>
</div>
<?php elseif ($result): ?>
<div class="bg-white rounded-2xl border border-slate-100 shadow-sm overflow-hidden">
<!-- Ringkasan -->
<div class="p-6 sm:p-8 border-b border-slate-100">
<div class="flex flex-wrap items-center justify-between gap-3 mb-5">
<div>
<p class="text-xs text-slate-500 uppercase tracking-wide mb-1">Nomor Resi</p>
<p class="text-xl font-bold text-slate-900"><?= e($result['no_resi']) ?></p>
</div>
<?= badge_status($result['status']) ?>
</div>
<dl class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-3 text-sm">
<div><dt class="text-slate-400">Nama Pemohon</dt><dd class="font-medium text-slate-800"><?= e($result['nama']) ?></dd></div>
<div><dt class="text-slate-400">Tanggal Pengajuan</dt><dd class="font-medium text-slate-800"><?= e(tanggal_id($result['created_at'], true)) ?></dd></div>
<div><dt class="text-slate-400">Kategori</dt><dd class="font-medium text-slate-800"><?= e($result['kategori_nama'] ?? '-') ?></dd></div>
<div><dt class="text-slate-400">Cara Memperoleh</dt><dd class="font-medium text-slate-800 capitalize"><?= e($result['cara_memperoleh']) ?> / <?= e($result['cara_terima']) ?></dd></div>
<div class="sm:col-span-2"><dt class="text-slate-400">Rincian Informasi</dt><dd class="font-medium text-slate-800"><?= e($result['rincian_informasi']) ?></dd></div>
</dl>
</div>
<!-- Timeline status -->
<?php if (!$ditolak): ?>
<div class="p-6 sm:p-8 border-b border-slate-100">
<div class="flex items-center justify-between relative">
<?php
$steps = [
['Verifikasi', 'fa-hourglass-half'],
['Diproses', 'fa-spinner'],
['Selesai', 'fa-check-circle'],
];
foreach ($steps as $i => $st):
$n = $i + 1;
$active = $n <= $currentStep; ?>
<div class="flex flex-col items-center text-center flex-1 relative z-10">
<div class="w-12 h-12 rounded-full flex items-center justify-center text-lg <?= $active ? 'bg-mateng-green text-white' : 'bg-slate-100 text-slate-400' ?>">
<i class="fas <?= $st[1] ?>"></i>
</div>
<span class="text-xs mt-2 font-medium <?= $active ? 'text-mateng-green' : 'text-slate-400' ?>"><?= $st[0] ?></span>
</div>
<?php if ($i < count($steps) - 1): ?>
<div class="flex-1 h-1 -mx-2 <?= ($n < $currentStep) ? 'bg-mateng-green' : 'bg-slate-100' ?>"></div>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<!-- Tanggapan PPID -->
<div class="p-6 sm:p-8">
<h3 class="font-bold text-slate-800 mb-3">Tanggapan PPID</h3>
<?php if (!empty($result['tanggapan'])): ?>
<div class="bg-slate-50 border border-slate-200 rounded-xl p-4 text-sm text-slate-700 leading-relaxed whitespace-pre-line"><?= e($result['tanggapan']) ?></div>
<?php
$adaFileTanggapan = !empty($result['file_tanggapan']) && is_file(UPLOAD_PATH . '/tanggapan/' . $result['file_tanggapan']);
if ($adaFileTanggapan): ?>
<a href="<?= e(url('unduh-tanggapan.php?resi=' . urlencode($result['no_resi']))) ?>" class="inline-flex items-center gap-2 mt-4 bg-mateng-green hover:bg-green-700 text-white text-sm font-semibold px-5 py-2.5 rounded-lg transition-colors">
<i class="fas fa-download"></i> Unduh Dokumen Tanggapan
</a>
<?php endif; ?>
<?php else: ?>
<p class="text-sm text-slate-500 italic">Belum ada tanggapan. Permohonan Anda sedang dalam antrean proses oleh petugas PPID.</p>
<?php endif; ?>
<?php if ($result['status'] === 'selesai'):
$testi = get_testimoni_by_resi($result['no_resi']); ?>
<div class="mt-6 pt-6 border-t border-slate-100">
<?php if ($testi): ?>
<div class="bg-green-50 border border-green-100 rounded-xl p-4 flex items-center gap-3">
<?= render_stars((int) $testi['rating'], 'text-lg') ?>
<span class="text-sm text-green-800">Terima kasih, Anda telah memberi penilaian untuk permohonan ini.</span>
</div>
<?php else: ?>
<div class="bg-gradient-to-br from-mateng-green/5 to-mateng-blue/5 border border-mateng-green/20 rounded-xl p-5 flex flex-col sm:flex-row sm:items-center gap-4">
<div class="flex-grow">
<p class="font-semibold text-slate-800"><i class="fas fa-star text-mateng-gold mr-1"></i> Sudah menerima informasi?</p>
<p class="text-sm text-slate-500">Bantu kami meningkatkan layanan dengan memberi penilaian & testimoni.</p>
</div>
<a href="<?= e(url('penilaian.php?resi=' . urlencode($result['no_resi']))) ?>" class="shrink-0 bg-mateng-green hover:bg-green-700 text-white text-sm font-semibold px-5 py-2.5 rounded-lg transition-colors text-center">
Beri Penilaian
</a>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
<?php if ($result['status'] === 'selesai' || $ditolak): ?>
<div class="mt-6 pt-6 border-t border-slate-100 text-sm text-slate-500">
Tidak puas dengan tanggapan?
<a href="<?= e(url('keberatan.php?resi=' . urlencode($result['no_resi']))) ?>" class="text-mateng-blue font-semibold hover:underline">Ajukan Keberatan <i class="fas fa-arrow-right text-xs"></i></a>
</div>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
</main>
<?php require __DIR__ . '/partials/footer.php'; ?>