This commit is contained in:
2026-05-13 14:01:56 +07:00
24 changed files with 11114 additions and 25 deletions
@@ -61,6 +61,8 @@ class KolomBasisDataController extends Controller
'relasi_kolom_id' => ['nullable', 'string'],
'relasi_kolom_label' => ['nullable', 'string'],
'enum_opsi' => ['nullable', 'json'],
'is_active' => ['nullable', 'boolean'],
'is_browse' => ['nullable', 'boolean'],
]);
if (!empty($validated['enum_opsi'])) {
@@ -139,6 +141,8 @@ class KolomBasisDataController extends Controller
'relasi_kolom_id' => ['nullable', 'string'],
'relasi_kolom_label' => ['nullable', 'string'],
'enum_opsi' => ['nullable', 'json'],
'is_active' => ['nullable', 'boolean'],
'is_browse' => ['nullable', 'boolean'],
]);
$kolom->update([...$validated,
@@ -44,7 +44,10 @@ class ValueBasisDataController extends Controller
if (!$tabel) {
abort(404, 'Data tabel tidak ditemukan.');
}
$kolom = KolomBasisData::where('tabel_id', $tabelId)->get();
$kolom = KolomBasisData::where('tabel_id', $tabelId)
->where('is_active', true)
->where('is_browse', true)
->get();
if ($kolom->isEmpty()) {
abort(404, 'Data kolom tidak ditemukan untuk tabel ini.');
}
@@ -162,7 +165,8 @@ class ValueBasisDataController extends Controller
if (!$tabel) {
abort(404, 'Data tabel tidak ditemukan.');
}
$kolom = KolomBasisData::where('tabel_id', $tabelId)->get();
$kolom = KolomBasisData::where('tabel_id', $tabelId)
->where('is_active', true)->get();
if ($kolom->isEmpty()) {
abort(404, 'Data kolom tidak ditemukan untuk tabel ini.');
}
@@ -210,7 +214,8 @@ class ValueBasisDataController extends Controller
if (!$tabel) {
abort(404, 'Data tabel tidak ditemukan.');
}
$kolom = KolomBasisData::where('tabel_id', $tabelId)->get();
$kolom = KolomBasisData::where('tabel_id', $tabelId)
->where('is_active', true)->get();
if ($kolom->isEmpty()) {
abort(404, 'Data kolom tidak ditemukan untuk tabel ini.');
}
@@ -278,7 +283,8 @@ class ValueBasisDataController extends Controller
if (!$tabel) {
abort(404, 'Data tabel tidak ditemukan.');
}
$kolom = KolomBasisData::where('tabel_id', $tabelId)->get();
$kolom = KolomBasisData::where('tabel_id', $tabelId)
->where('is_active', true)->get();
if ($kolom->isEmpty()) {
abort(404, 'Data kolom tidak ditemukan untuk tabel ini.');
}
@@ -334,7 +340,8 @@ class ValueBasisDataController extends Controller
if (!$tabel) {
abort(404, 'Data tabel tidak ditemukan.');
}
$kolom = KolomBasisData::where('tabel_id', $tabelId)->get();
$kolom = KolomBasisData::where('tabel_id', $tabelId)
->where('is_active', true)->get();
if ($kolom->isEmpty()) {
abort(404, 'Data kolom tidak ditemukan untuk tabel ini.');
}
@@ -396,7 +403,8 @@ class ValueBasisDataController extends Controller
if (!$tabel) {
abort(404, 'Data tabel tidak ditemukan.');
}
$kolom = KolomBasisData::where('tabel_id', $tabelId)->get();
$kolom = KolomBasisData::where('tabel_id', $tabelId)
->where('is_active', true)->get();
if ($kolom->isEmpty()) {
abort(404, 'Data kolom tidak ditemukan untuk tabel ini.');
}
@@ -0,0 +1,148 @@
<?php
namespace App\Http\Controllers\Web\Program;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Program\KelompokBelajarTani;
class KelompokBelajarTaniController extends Controller
{
public function index(Request $request)
{
$title = 'Kelompok Belajar Tani';
// SUMMARY CARD
$summary = ([
'total_kelompok' => KelompokBelajarTani::count(),
'aktif' => KelompokBelajarTani::where('status', 'aktif')->count(),
'nonaktif' => KelompokBelajarTani::where('status', 'nonaktif')->count(),
]);
// QUERY
$query = KelompokBelajarTani::query();
// SEARCH
if ($request->filled('search')) {
$search = $request->search;
$query->where(function ($q) use ($search) {
$q->where('nama_kelompok', 'ilike', "%{$search}%")
->orWhere('deskripsi', 'ilike', "%{$search}%");
});
}
// FILTER STATUS
if ($request->filled('status')) {
$query->where('status', $request->status);
}
// PAGINATION
$perPage = $request->input('per_page', 10);
$kelompok = $query->latest()->paginate($perPage);
return view('program.kelompokbelajar.index', compact(
'title',
'summary',
'kelompok'
));
}
public function create()
{
return view('program.kelompokbelajar.add');
}
public function store(Request $request)
{
$validated = $request->validate([
'nama_kelompok' => 'required|string|max:255',
'status' => 'required|string',
'deskripsi' => 'nullable|string',
], [
'nama_kelompok.required' => 'Nama kelompok wajib diisi.',
'nama_kelompok.string' => 'Nama kelompok harus berupa teks.',
'nama_kelompok.max' => 'Nama kelompok maksimal 255 karakter.',
'status.required' => 'Status wajib diisi.',
'status.string' => 'Status harus berupa teks.',
'deskripsi.string' => 'Deskripsi harus berupa teks.',
]);
KelompokBelajarTani::create([
'nama_kelompok' => $request->nama_kelompok,
'status' => $request->status,
'deskripsi' => $request->deskripsi,
'created_by' => auth()->user()->id,
'updated_by' => auth()->user()->id,
]);
return response()->json([
'status' => 'success',
'message' => 'Kelompok Belajar Tani berhasil disimpan.'
]);
}
public function edit($id)
{
$kelompok = KelompokBelajarTani::findOrFail($id);
return view('program.kelompokbelajar.edit', compact(
'kelompok'
));
}
public function update(Request $request, $id)
{
$validated = $request->validate([
'nama_kelompok' => 'required|string|max:255',
'status' => 'required|string',
'deskripsi' => 'nullable|string',
]);
$kelompok = KelompokBelajarTani::findOrFail($id);
$kelompok->update([
'nama_kelompok' => $request->nama_kelompok,
'status' => $request->status,
'deskripsi' => $request->deskripsi,
'updated_by' => auth()->user()->id,
]);
return response()->json([
'status' => 'success',
'message' => 'Data Kelompok Belajar Tani berhasil diperbarui.'
]);
}
public function destroy($id)
{
$kelompok = KelompokBelajarTani::findOrFail($id);
$kelompok->update([
'deleted_by' => auth()->user()->id
]);
$kelompok->delete();
return response()->json([
'status' => 'success',
'message' => 'Data Kelompok Belajar Tani berhasil dihapus.'
]);
}
public function show($id)
{
$kelompok = KelompokBelajarTani::findOrFail($id);
return response()->json([
'status' => 'success',
'data' => $kelompok
]);
}
}