Files
D1041231091-WebGIS-All/05/edit_program_bantuan.php

37 lines
1.9 KiB
PHP

<?php
require_once __DIR__ . '/auth.php';
require_login(true);
require_post();
require_role(['super_admin','admin_rumah_ibadah'], true);
$id = (int) post('id', 0);
$stmt = $koneksi->prepare("SELECT * FROM program_bantuan WHERE id=? LIMIT 1");
$stmt->bind_param('i', $id);
$program = fetch_all_stmt($stmt)[0] ?? null;
if (!$program) json_response('err', 'Program tidak ditemukan.');
if ($_SESSION['role'] === 'admin_rumah_ibadah') {
if (!is_admin_rumah_ibadah_id((int)$program['rumah_ibadah_id'], (int)$_SESSION['user_id'], true)) {
json_response('err', 'Akses ditolak. Program ini bukan milik rumah ibadah yang dikelola akun Anda.', [], 403);
}
}
$jenis = post('jenis_bantuan');
$status = post('status_program', 'aktif');
if (!valid_enum($jenis, ['zakat','sembako','uang_tunai','lainnya']) || !valid_enum($status, ['aktif','selesai','dibatalkan'])) json_response('err', 'Pilihan tidak valid.');
$nama = clean_text(post('nama_program'), 150);
$deskripsi = clean_text(post('deskripsi'), 1500);
$bulan = (int) post('bulan');
$tahun = (int) post('tahun');
$target = (int) post('target_frekuensi', 1);
$nominalInput = post('nominal', '');
$nominal = $nominalInput === '' ? null : (int) $nominalInput;
$jumlah_item = clean_text(post('jumlah_item', ''), 100);
if ($nama==='' || $bulan<1 || $bulan>12 || $tahun<2000 || $target<1) json_response('err', 'Data program tidak valid.');
if ($nominal !== null && $nominal < 0) json_response('err', 'Nominal tidak boleh minus.');
$stmt = $koneksi->prepare("UPDATE program_bantuan SET nama_program=?, jenis_bantuan=?, deskripsi=?, bulan=?, tahun=?, target_frekuensi=?, nominal=?, jumlah_item=?, status_program=? WHERE id=?");
$stmt->bind_param('sssiiiissi', $nama, $jenis, $deskripsi, $bulan, $tahun, $target, $nominal, $jumlah_item, $status, $id);
if (!$stmt->execute()) json_response('err', 'Gagal mengubah program: ' . $koneksi->error);
json_response('ok', 'Program bantuan berhasil diubah.', ['id' => $id]);
?>