144 lines
4.3 KiB
PHP
144 lines
4.3 KiB
PHP
<?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.'
|
|
]);
|
|
}
|
|
} |