feat: add controllers and routes for anggota, bantuan, permohonan transfer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\ActivityLog;
|
||||
use App\Models\RiwayatBantuan;
|
||||
use App\Models\RumahMiskin;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BantuanController extends Controller
|
||||
{
|
||||
public function index(string $idRumah)
|
||||
{
|
||||
RumahMiskin::findOrFail($idRumah);
|
||||
$bantuan = RiwayatBantuan::where('id_rumah', $idRumah)
|
||||
->with(['ibadah:id,nama', 'pencatat:id,name'])
|
||||
->orderByDesc('tanggal_bantuan')
|
||||
->get()
|
||||
->map(fn($b) => [
|
||||
'id' => $b->id,
|
||||
'jenis_bantuan' => $b->jenis_bantuan,
|
||||
'keterangan' => $b->keterangan,
|
||||
'tanggal_bantuan' => $b->tanggal_bantuan->format('d/m/Y'),
|
||||
'ibadah_nama' => $b->ibadah?->nama,
|
||||
'pencatat_nama' => $b->pencatat?->name ?? 'Sistem',
|
||||
]);
|
||||
return response()->json($bantuan);
|
||||
}
|
||||
|
||||
public function store(Request $request, string $idRumah)
|
||||
{
|
||||
RumahMiskin::findOrFail($idRumah);
|
||||
$validated = $request->validate([
|
||||
'jenis_bantuan' => 'required|string|max:255',
|
||||
'keterangan' => 'nullable|string',
|
||||
'tanggal_bantuan' => 'required|date',
|
||||
'ibadah_id' => 'nullable|integer|exists:rumah_ibadah,id',
|
||||
]);
|
||||
$bantuan = RiwayatBantuan::create([
|
||||
'id_rumah' => $idRumah,
|
||||
'dicatat_oleh' => auth()->id(),
|
||||
...$validated,
|
||||
]);
|
||||
ActivityLog::record('create', "Catat bantuan: {$bantuan->jenis_bantuan} → {$idRumah}", 'bantuan', $bantuan->id);
|
||||
return response()->json(['success' => true, 'data' => $bantuan]);
|
||||
}
|
||||
|
||||
public function destroy(string $idRumah, int $id)
|
||||
{
|
||||
$bantuan = RiwayatBantuan::where('id_rumah', $idRumah)->findOrFail($id);
|
||||
$jenis = $bantuan->jenis_bantuan;
|
||||
$bantuan->delete();
|
||||
ActivityLog::record('delete', "Hapus riwayat bantuan: {$jenis} ({$idRumah})", 'bantuan', $id);
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user