join('symptoms', 'rules.symptom_id', '=', 'symptoms.id') ->select('rules.code', 'symptoms.code as codes' , 'diseases.name as disease_name', 'symptoms.name as symptom_name') ->get(); $rules2 = Symptom::all(); $diseases = Disease::all(); $rulesByDisease = []; foreach ($diseases as $disease) { $rulesByDisease[$disease->id] = Rule::where('disease_id', $disease->id)->pluck('symptom_id')->toArray(); } return view('admin.rule.rule', compact('rules', 'rules2', 'diseases', 'rulesByDisease')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create(Request $request) { } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $data = $request->validate([ 'rules' => 'required|array', 'rules.*.code' => 'required|string', 'rules.*.disease_id' => 'required|integer', 'rules.*.symptom_id' => 'required|integer', ]); $errors = []; foreach ($data['rules'] as $ruleData) { $ruleData['code'] = str_replace('G', 'R', $ruleData['code']); $existingRule = Rule::where('disease_id', $ruleData['disease_id']) ->where('symptom_id', $ruleData['symptom_id']) ->first(); if ($existingRule) { $errors[] = "The symptom_id {$ruleData['symptom_id']} already exists for disease_id {$ruleData['disease_id']}."; continue; } $rule = new Rule(); $rule->code = $ruleData['code']; $rule->disease_id = $ruleData['disease_id']; $rule->symptom_id = $ruleData['symptom_id']; $rule->save(); } if (count($errors) > 0) { return response()->json(['success' => false, 'message' => 'Rules gagal disimpan.', 'errors' => $errors]); } else { return response()->json(['success' => true, 'message' => 'Rules berhasil disimpan.']); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function deleteUnchecked(Request $request) { $uncheckedSymptoms = $request->input('unchecked_symptoms'); try { foreach ($uncheckedSymptoms as $symptom) { Rule::where('disease_id', $symptom['disease_id']) ->where('symptom_id', $symptom['symptom_id']) ->delete(); } return response()->json(['message' => 'Unchecked symptoms data successfully deleted'], 200); } catch (\Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } }