orderBy('created_at', 'desc')->get(); $parameters = Indicator::whereDoesntHave('expertRules')->get(); return view('master-data.aturan.rule_expert', compact('indicators', 'parameters')); } public function store(Request $request) { $customMessage = [ 'indicator.required' => 'Harap pilih indikator', 'indicator.exists' => 'Indikator tidak ditemukan', 'parameter_type.required' => 'Jenis parameter wajib diisi', 'parameter_type.string' => 'Jenis parameter harus berupa teks', 'parameter_type.max' => 'Jenis parameter maksimal 25 karakter', 'description.required' => 'Deskripsi wajib diisi', 'description.string' => 'Deskripsi harus berupa teks', 'description.max' => 'Deskripsi maksimal 40 karakter', 'cf.required' => 'Nilai CF wajib diisi', 'cf.numeric' => 'Nilai CF harus berupa angka', 'cf.max' => 'Nilai CF maksimal 1', ]; $validator = Validator::make($request->all(), [ 'indicator' => 'required|exists:indicators,id', 'parameter_type' => 'required|string|max:25', 'description' => 'required|string|max:40', 'cf' => 'required|numeric|min:-1|max:1', ], $customMessage); if ($validator->fails()) { toast($validator->messages()->all()[0], 'error')->position('top-right')->autoclose(3000); return redirect()->back()->withInput(); } try { $expertRule = new RuleExpert(); $expertRule->indicator_id = $request->indicator; $expertRule->parameter_type = $request->parameter_type; $expertRule->description = $request->description; $expertRule->cf = $request->cf; $expertRule->save(); toast('Data berhasil disimpan', 'success')->position('top-right')->autoclose(3000); return redirect()->back(); } catch (\Throwable $th) { //throw $th; toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000); return redirect()->back(); } } public function update(Request $request, $id) { $customMessage = [ 'parameter_type.required' => 'Jenis parameter wajib diisi', 'parameter_type.string' => 'Jenis parameter harus berupa teks', 'parameter_type.max' => 'Jenis parameter maksimal 25 karakter', 'description.required' => 'Deskripsi wajib diisi', 'description.string' => 'Deskripsi harus berupa teks', 'description.max' => 'Deskripsi maksimal 40 karakter', 'cf.required' => 'Nilai CF wajib diisi', 'cf.numeric' => 'Nilai CF harus berupa angka', 'cf.min' => 'Nilai CF minimal -1', 'cf.max' => 'Nilai CF maksimal 1', ]; $validator = Validator::make($request->all(), [ 'parameter_type' => 'required|string|max:25', 'description' => 'required|string|max:40', 'cf' => 'required|numeric|min:-1|max:1', ], $customMessage); if ($validator->fails()) { toast($validator->messages()->all()[0], 'error')->position('top')->autoclose(3000); return redirect()->back()->withInput(); } try { $expertRule = RuleExpert::find($id); $expertRule->parameter_type = $request->parameter_type; $expertRule->description = $request->description; $expertRule->cf = $request->cf; $expertRule->save(); toast('Data berhasil disimpan', 'success')->position('top-right')->autoclose(3000); return redirect()->back(); } catch (\Throwable $th) { //throw $th; toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000); return redirect()->back(); } } public function destroy($id) { $expertRule = RuleExpert::find($id); try { $expertRule->delete(); toast('Data berhasil dihapus', 'success')->position('top-right')->autoclose(3000); return redirect()->back(); } catch (\Throwable $th) { toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000); return redirect()->back(); } } }