First commit
This commit is contained in:
@@ -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']);
|
||||
Reference in New Issue
Block a user