First commit

This commit is contained in:
2026-06-09 19:02:22 +07:00
commit c2c0774b3b
36 changed files with 10493 additions and 0 deletions
+129
View File
@@ -0,0 +1,129 @@
<?php
// ============================================================
// api_bantuan.php CRUD Riwayat Bantuan Kemiskinan
// ============================================================
require_once 'config.php';
$method = $_SERVER['REQUEST_METHOD'];
// GET: Ambil riwayat bantuan berdasarkan id_kemiskinan
if ($method === 'GET') {
$id_kemiskinan = isset($_GET['id_kemiskinan']) ? (int)$_GET['id_kemiskinan'] : 0;
if (!$id_kemiskinan) {
http_response_code(400);
echo json_encode(['error' => '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']);