'Parameter id_kemiskinan wajib diisi']); exit(); } $db = getDB(); $stmt = $db->prepare("SELECT * FROM riwayat_bantuan WHERE id_kemiskinan = ? ORDER BY tanggal DESC, created_at DESC"); $stmt->bind_param('i', $id_kemiskinan); $stmt->execute(); $result = $stmt->get_result(); $data = []; while ($row = $result->fetch_assoc()) { $data[] = $row; } echo json_encode($data); $db->close(); exit(); } // POST: Tambah riwayat bantuan baru if ($method === 'POST') { $body = json_decode(file_get_contents('php://input'), true); $id_kemiskinan = isset($body['id_kemiskinan']) ? (int)$body['id_kemiskinan'] : 0; $pemberi = isset($body['pemberi']) ? trim($body['pemberi']) : ''; $jenis_bantuan = isset($body['jenis_bantuan']) ? trim($body['jenis_bantuan']) : ''; $tanggal = isset($body['tanggal']) ? trim($body['tanggal']) : ''; $keterangan = isset($body['keterangan']) ? trim($body['keterangan']) : ''; if (!$id_kemiskinan || !$pemberi || !$jenis_bantuan || !$tanggal) { http_response_code(400); echo json_encode(['error' => 'id_kemiskinan, pemberi, jenis_bantuan, dan tanggal wajib diisi']); exit(); } $db = getDB(); try { $db->begin_transaction(); // 1. Insert ke riwayat_bantuan $stmt = $db->prepare("INSERT INTO riwayat_bantuan (id_kemiskinan, pemberi, jenis_bantuan, tanggal, keterangan) VALUES (?, ?, ?, ?, ?)"); $stmt->bind_param('issss', $id_kemiskinan, $pemberi, $jenis_bantuan, $tanggal, $keterangan); $stmt->execute(); $id_riwayat = $db->insert_id; // 2. Update status_bantuan di tabel data_kemiskinan menjadi 'Sudah' $stmtUpdate = $db->prepare("UPDATE data_kemiskinan SET status_bantuan = 'Sudah' WHERE id = ?"); $stmtUpdate->bind_param('i', $id_kemiskinan); $stmtUpdate->execute(); $db->commit(); echo json_encode([ 'success' => true, 'message' => 'Berhasil menambahkan catatan bantuan', 'id' => $id_riwayat, 'status_bantuan' => 'Sudah' ]); } catch (Exception $e) { $db->rollback(); http_response_code(500); echo json_encode(['error' => 'Gagal menyimpan data: ' . $e->getMessage()]); } $db->close(); exit(); } // DELETE: Hapus catatan bantuan if ($method === 'DELETE') { $id = isset($_GET['id']) ? (int)$_GET['id'] : 0; $id_kemiskinan = isset($_GET['id_kemiskinan']) ? (int)$_GET['id_kemiskinan'] : 0; if (!$id) { http_response_code(400); echo json_encode(['error' => 'Parameter id wajib diisi']); exit(); } $db = getDB(); try { $db->begin_transaction(); $stmt = $db->prepare("DELETE FROM riwayat_bantuan WHERE id = ?"); $stmt->bind_param('i', $id); $stmt->execute(); // Cek apakah masih ada bantuan lain $stmtCek = $db->prepare("SELECT COUNT(*) AS total FROM riwayat_bantuan WHERE id_kemiskinan = ?"); $stmtCek->bind_param('i', $id_kemiskinan); $stmtCek->execute(); $res = $stmtCek->get_result()->fetch_assoc(); $count = $res['total']; $status_baru = 'Sudah'; if ($count == 0) { $stmtUpdate = $db->prepare("UPDATE data_kemiskinan SET status_bantuan = 'Belum' WHERE id = ?"); $stmtUpdate->bind_param('i', $id_kemiskinan); $stmtUpdate->execute(); $status_baru = 'Belum'; } $db->commit(); echo json_encode(['success' => true, 'status_bantuan' => $status_baru]); } catch (Exception $e) { $db->rollback(); http_response_code(500); echo json_encode(['error' => 'Gagal menghapus data']); } $db->close(); exit(); } http_response_code(405); echo json_encode(['error' => 'Method tidak diizinkan']);