program dan basis data ekosistem
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
<?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\KomoditasProgram;
|
||||
use App\Models\Wilayah\Provinsi;
|
||||
use App\Models\Pertanian\Komoditas;
|
||||
|
||||
class ProgramKomoditasController extends Controller
|
||||
{
|
||||
|
||||
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(), [
|
||||
'komoditas_id' => [
|
||||
'required',
|
||||
'exists:master_komoditas,id',
|
||||
Rule::unique('core_program_komoditas')
|
||||
->where(fn ($query) => $query->where('program_id', $programId))->whereNull('deleted_at'),
|
||||
],
|
||||
'default' => ['nullable', 'boolean'],
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => $validator->errors()->first()
|
||||
], 422);
|
||||
}
|
||||
|
||||
KomoditasProgram::where('program_id', $programId)->update(['default' => false]);
|
||||
|
||||
KomoditasProgram::create([...$validator->validated(),
|
||||
'program_id' => $programId,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data komoditas program berhasil disimpan.'
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request, int $programId, int $id)
|
||||
{
|
||||
$komoditasProgram = KomoditasProgram::where('program_id', $programId)->where('id', $id)->first();
|
||||
if (!$komoditasProgram) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Data komoditas 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);
|
||||
}
|
||||
|
||||
KomoditasProgram::where('program_id', $programId)->update(['default' => false]);
|
||||
$komoditasProgram->update([...$validator->validated(),
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data komoditas program berhasil diperbarui.'
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(int $programId, int $id)
|
||||
{
|
||||
$komoditasProgram = KomoditasProgram::where('program_id', $programId)->where('id', $id)->first();
|
||||
if (!$komoditasProgram) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Data komoditas program tidak ditemukan.'
|
||||
], 404);
|
||||
}
|
||||
|
||||
$komoditasProgram->deleted_by = auth()->user()->id;
|
||||
$komoditasProgram->save();
|
||||
$komoditasProgram->delete();
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data komoditas program berhasil dihapus.'
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user