program dan basis data ekosistem
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Web;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
use App\Models\Core\Program;
|
||||
use App\Models\Core\LokasiProgram;
|
||||
use App\Models\Wilayah\Provinsi;
|
||||
use App\Models\Pertanian\Komoditas;
|
||||
|
||||
class ProgramLokasiController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
}
|
||||
|
||||
public function create(int $programId)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function getProgram()
|
||||
{
|
||||
$program = Program::select(['id', 'nama', 'sub_domain'])->get();
|
||||
return response()->json(['data' => $program]);
|
||||
}
|
||||
|
||||
public function store(Request $request, int $programId)
|
||||
{
|
||||
$program = Program::find($programId);
|
||||
if (!$program) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Data program tidak ditemukan.'
|
||||
], 404);
|
||||
}
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'provinsi_id' => ['required', 'exists:master_provinsi,id'],
|
||||
'kabupaten_kota_id' => ['nullable', 'exists:master_kabupaten_kota,id'],
|
||||
'kecamatan_id' => ['nullable', 'exists:master_kecamatan,id'],
|
||||
'desa_kelurahan_id' => ['nullable', 'exists:master_desa_kelurahan,id'],
|
||||
|
||||
'default' => ['nullable', 'boolean'],
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => $validator->errors()->first()
|
||||
], 422);
|
||||
}
|
||||
|
||||
LokasiProgram::where('program_id', $programId)->update(['default' => false]);
|
||||
|
||||
LokasiProgram::create([...$validator->validated(),
|
||||
//'default' => $request->has('default'),
|
||||
'program_id' => $programId,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data lokasi program berhasil disimpan.'
|
||||
]);
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$program = Program::find($id);
|
||||
if (!$program) {
|
||||
return redirect()->route('program.index')->with('error', 'Data program tidak ditemukan.');
|
||||
}
|
||||
|
||||
return view('core.program.view', compact('program'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$program = Program::find($id);
|
||||
if (!$program) {
|
||||
return redirect()->route('program.index')->with('error', 'Data program tidak ditemukan.');
|
||||
}
|
||||
|
||||
return view('core.program.edit', compact('program'));
|
||||
}
|
||||
|
||||
public function update(Request $request, int $programId, int $id)
|
||||
{
|
||||
$lokasiProgram = LokasiProgram::where('program_id', $programId)->where('id', $id)->first();
|
||||
if (!$lokasiProgram) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Data lokasi program tidak ditemukan.'
|
||||
], 404);
|
||||
}
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'default' => ['nullable', 'boolean'],
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => $validator->errors()->first()
|
||||
], 422);
|
||||
}
|
||||
|
||||
LokasiProgram::where('program_id', $programId)->update(['default' => false]);
|
||||
$lokasiProgram->update([...$validator->validated(),
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data lokasi program berhasil diperbarui!'
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(int $programId, int $id)
|
||||
{
|
||||
$lokasiProgram = LokasiProgram::where('program_id', $programId)->where('id', $id)->first();
|
||||
if (!$lokasiProgram) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Data lokasi program tidak ditemukan.'
|
||||
], 404);
|
||||
}
|
||||
|
||||
$lokasiProgram->deleted_by = auth()->user()->id;
|
||||
$lokasiProgram->save();
|
||||
$lokasiProgram->delete();
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data lokasi program berhasil dihapus.'
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user