%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
/**
* Admin: detail & proses pengajuan keberatan.
*/
require_once dirname(__DIR__) . '/config/config.php';
require_once dirname(__DIR__) . '/includes/auth.php';
require_once dirname(__DIR__) . '/includes/queries.php';
require_central();
$id = (int) get_param('id', '0');
$stmt = db()->prepare(
'SELECT kb.*, a.nama AS petugas_nama
FROM keberatan kb
LEFT JOIN admin_users a ON a.id = kb.diproses_oleh
WHERE kb.id = ? LIMIT 1'
);
$stmt->execute([$id]);
$k = $stmt->fetch();
if (!$k) {
set_flash('error', 'Keberatan tidak ditemukan.');
redirect('admin/keberatan.php');
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
csrf_verify();
$newStatus = post_param('status');
$tanggapan = post_param('tanggapan');
if (!in_array($newStatus, ['baru', 'diproses', 'selesai'], true)) {
set_flash('error', 'Status tidak valid.');
redirect('admin/keberatan-detail.php?id=' . $id);
}
$upd = db()->prepare('UPDATE keberatan SET status = ?, tanggapan = ?, diproses_oleh = ? WHERE id = ?');
$upd->execute([$newStatus, $tanggapan, current_admin()['id'], $id]);
set_flash('success', 'Keberatan berhasil diperbarui.');
redirect('admin/keberatan-detail.php?id=' . $id);
}
$alasanLabel = [
'ditolak' => 'Permohonan informasi ditolak',
'tidak_ditanggapi' => 'Permohonan tidak ditanggapi',
'tidak_sesuai' => 'Informasi yang diberikan tidak sesuai',
'biaya_tidak_wajar' => 'Pengenaan biaya tidak wajar',
'keterlambatan' => 'Penyampaian informasi melebihi jangka waktu',
'lainnya' => 'Alasan lainnya',
];
// Permohonan terkait (jika ada).
$permohonan = $k['no_resi_permohonan'] ? get_permohonan_by_resi($k['no_resi_permohonan']) : null;
$pageTitle = 'Detail Keberatan ' . $k['no_resi'];
$activeMenu = 'keberatan';
require __DIR__ . '/partials/head.php';
?>
<div class="mb-6">
<a href="<?= e(url('admin/keberatan.php')) ?>" class="text-sm text-slate-500 hover:text-mateng-green inline-flex items-center gap-2 mb-3"><i class="fas fa-arrow-left"></i> Kembali ke daftar</a>
<h2 class="text-2xl font-bold text-slate-900">Keberatan <?= e($k['no_resi']) ?></h2>
</div>
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<div class="lg:col-span-2 space-y-6">
<div class="bg-white border border-slate-100 rounded-xl shadow-sm p-6">
<h3 class="font-bold text-slate-800 mb-4 flex items-center gap-2"><i class="fas fa-gavel text-mateng-gold"></i> Rincian Keberatan</h3>
<dl class="space-y-4 text-sm">
<div class="grid grid-cols-2 gap-4">
<div><dt class="text-slate-400 mb-0.5">Nama Pengaju</dt><dd class="font-medium text-slate-800"><?= e($k['nama']) ?></dd></div>
<div><dt class="text-slate-400 mb-0.5">Email</dt><dd class="font-medium text-slate-800"><?= e($k['email']) ?></dd></div>
<div><dt class="text-slate-400 mb-0.5">No. HP</dt><dd class="font-medium text-slate-800"><?= e($k['no_hp'] ?: '-') ?></dd></div>
<div><dt class="text-slate-400 mb-0.5">Resi Permohonan</dt><dd class="font-medium text-slate-800"><?= e($k['no_resi_permohonan'] ?: '-') ?></dd></div>
</div>
<div><dt class="text-slate-400 mb-0.5">Alasan Keberatan</dt><dd class="font-medium text-slate-800"><?= e($alasanLabel[$k['alasan']] ?? $k['alasan']) ?></dd></div>
<div><dt class="text-slate-400 mb-0.5">Uraian</dt><dd class="font-medium text-slate-800 whitespace-pre-line"><?= e($k['uraian']) ?></dd></div>
<div><dt class="text-slate-400 mb-0.5">Tanggal Pengajuan</dt><dd class="font-medium text-slate-800"><?= e(tanggal_id($k['created_at'], true)) ?></dd></div>
</dl>
</div>
<?php if ($permohonan): ?>
<div class="bg-white border border-slate-100 rounded-xl shadow-sm p-6">
<h3 class="font-bold text-slate-800 mb-4 flex items-center gap-2"><i class="fas fa-link text-mateng-blue"></i> Permohonan Terkait</h3>
<p class="text-sm text-slate-600 mb-2"><strong><?= e($permohonan['no_resi']) ?></strong> — <?= e($permohonan['nama']) ?></p>
<p class="text-sm text-slate-500 mb-3"><?= e(excerpt($permohonan['rincian_informasi'], 120)) ?></p>
<a href="<?= e(url('admin/permohonan-detail.php?id=' . $permohonan['id'])) ?>" class="text-sm text-mateng-blue hover:underline font-medium">Lihat permohonan <i class="fas fa-arrow-right text-xs"></i></a>
</div>
<?php endif; ?>
</div>
<div>
<form method="post" class="bg-white border border-slate-100 rounded-xl shadow-sm p-6 sticky top-4">
<?= csrf_field() ?>
<h3 class="font-bold text-slate-800 mb-4 flex items-center gap-2"><i class="fas fa-tasks text-mateng-green"></i> Proses Keberatan</h3>
<div class="mb-4">
<label class="block text-sm font-medium text-slate-700 mb-1.5">Status</label>
<select name="status" class="w-full rounded-lg border border-slate-300 px-4 py-2.5 outline-none focus:border-mateng-green focus:ring-4 focus:ring-green-100 bg-white">
<?php foreach (['baru' => 'Baru', 'diproses' => 'Diproses', 'selesai' => 'Selesai'] as $key => $label): ?>
<option value="<?= e($key) ?>" <?= $k['status'] === $key ? 'selected' : '' ?>><?= e($label) ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="mb-5">
<label class="block text-sm font-medium text-slate-700 mb-1.5">Tanggapan Atasan PPID</label>
<textarea name="tanggapan" rows="6" class="w-full rounded-lg border border-slate-300 px-4 py-2.5 outline-none focus:border-mateng-green focus:ring-4 focus:ring-green-100" placeholder="Tulis tanggapan atas keberatan..."><?= e($k['tanggapan']) ?></textarea>
</div>
<button type="submit" class="w-full bg-mateng-green hover:bg-green-700 text-white font-bold py-3 rounded-lg transition-colors flex items-center justify-center gap-2"><i class="fas fa-save"></i> Simpan</button>
</form>
</div>
</div>
<?php require __DIR__ . '/partials/foot.php'; ?>