Files
D1041231091-WebGIS-All/05/hapus_penerima.php
T

36 lines
1.9 KiB
PHP

<?php
require_once __DIR__ . '/auth.php';
require_login(true);
require_post();
$id = (int) post('id', 0);
$alasan = clean_text(post('alasan_hapus', post('alasan', '')), 1000);
$penerima = get_penerima_by_id($id);
if (!$penerima) json_response('err', 'Data penerima tidak ditemukan.', [], 404);
// Super admin boleh langsung menghapus marker/pin penerima dari peta.
// Data tidak dihapus permanen agar riwayat penyaluran tetap aman untuk audit.
if ($_SESSION['role'] === 'super_admin') {
$statusBaru = 'dibatalkan';
$hapus = 'disetujui';
$statusLama = $penerima['status_pengajuan'];
$catatan = $alasan ?: 'Marker penerima dihapus oleh super admin.';
$stmt = $koneksi->prepare("UPDATE penerima_bantuan SET status_pengajuan=?, status_hapus=?, alasan_hapus=?, alasan_status=? WHERE id=?");
$stmt->bind_param('ssssi', $statusBaru, $hapus, $catatan, $catatan, $id);
if (!$stmt->execute()) json_response('err', 'Gagal menghapus marker penerima: ' . $koneksi->error);
insert_riwayat_status($id, $statusLama, 'hapus_disetujui', $catatan);
json_response('ok', 'Marker penerima berhasil dihapus oleh super admin.', get_penerima_by_id($id));
}
// Admin rumah ibadah dan penerima hanya mengajukan penghapusan, menunggu persetujuan super admin.
if (!can_manage_penerima($penerima)) json_response('err', 'Akses ditolak.', [], 403);
if ($alasan === '') json_response('err', 'Alasan penghapusan wajib diisi.');
$statusHapus = 'menunggu';
$stmt = $koneksi->prepare("UPDATE penerima_bantuan SET status_hapus=?, alasan_hapus=? WHERE id=?");
$stmt->bind_param('ssi', $statusHapus, $alasan, $id);
if (!$stmt->execute()) json_response('err', 'Gagal mengajukan penghapusan marker penerima: ' . $koneksi->error);
insert_riwayat_status($id, $penerima['status_pengajuan'], 'hapus_menunggu', $alasan);
json_response('ok', 'Pengajuan hapus marker penerima dikirim. Menunggu persetujuan super admin.', get_penerima_by_id($id));
?>