From d02f117e66f7de3d13c5a4194b55f44b868ca0ea Mon Sep 17 00:00:00 2001 From: arieeefajar Date: Wed, 2 Apr 2025 22:45:55 +0700 Subject: [PATCH] fix(assessment-history): fix function show detail data --- app/Http/Controllers/AssessmentHistoryController.php | 7 +++++-- app/Models/EvaluationDetail.php | 2 +- app/Models/Indicator.php | 5 +++++ app/Models/Rule.php | 2 +- public/assets/js/pages/customJs/assessment/index.js | 12 +++++------- resources/views/assessment/index.blade.php | 2 +- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/AssessmentHistoryController.php b/app/Http/Controllers/AssessmentHistoryController.php index 33373d9..6a8dae4 100644 --- a/app/Http/Controllers/AssessmentHistoryController.php +++ b/app/Http/Controllers/AssessmentHistoryController.php @@ -9,14 +9,17 @@ class AssessmentHistoryController extends Controller { public function index() { - $evaluations = Evaluation::with('land', 'evaluationDetails.indicator')->orderBy('created_at', 'desc')->get(); + $evaluations = Evaluation::with(['land', 'evaluationDetails.indicator.rules' => function ($query) { + $query->whereHas('indicator.evaluationDetails', function ($subquery) { + $subquery->whereColumn('rule.cf', 'evaluation_details.cf_e'); + }); + }])->orderBy('created_at', 'desc')->get(); return view('assessment.index', compact('evaluations')); } public function officer() { $evaluations = Evaluation::with('land', 'evaluationDetails.indicator.rules')->where('user_id', auth()->user()->id)->orderBy('created_at', 'desc')->get(); - // dd($evaluations); return view('assessment.officer', compact('evaluations')); } } diff --git a/app/Models/EvaluationDetail.php b/app/Models/EvaluationDetail.php index 18388fa..2a13dd6 100644 --- a/app/Models/EvaluationDetail.php +++ b/app/Models/EvaluationDetail.php @@ -20,6 +20,6 @@ public function evaluation() public function indicator() { - return $this->belongsTo(Indicator::class); + return $this->belongsTo(Indicator::class, 'indicator_id', 'id'); } } diff --git a/app/Models/Indicator.php b/app/Models/Indicator.php index 7e62ee2..94ed3f6 100644 --- a/app/Models/Indicator.php +++ b/app/Models/Indicator.php @@ -17,4 +17,9 @@ public function rules() { return $this->hasMany(Rule::class, 'indicator_id', 'id'); } + + public function evaluationDetails() + { + return $this->hasMany(EvaluationDetail::class, 'indicator_id', 'id'); + } } diff --git a/app/Models/Rule.php b/app/Models/Rule.php index cf62568..67719e4 100644 --- a/app/Models/Rule.php +++ b/app/Models/Rule.php @@ -14,6 +14,6 @@ class Rule extends Model public function indicator() { - return $this->belongsTo(Indicator::class); + return $this->belongsTo(Indicator::class, 'indicator_id', 'id'); } } diff --git a/public/assets/js/pages/customJs/assessment/index.js b/public/assets/js/pages/customJs/assessment/index.js index eedda06..e732b4b 100644 --- a/public/assets/js/pages/customJs/assessment/index.js +++ b/public/assets/js/pages/customJs/assessment/index.js @@ -1,19 +1,17 @@ function detailData(data) { - console.log(data); - - // Ambil elemen tbody tabel let tbody = document.querySelector("#detailTable tbody"); - // Kosongkan tabel sebelum menambahkan data baru tbody.innerHTML = ""; - // Pastikan data adalah array atau objek iterable if (Array.isArray(data)) { data.forEach((item) => { + const parameterTypes = item.indicator.rules + .map((rule) => rule.parameter_type) + .join(", "); let row = ` ${item.indicator.name} - ${item.md_value.toFixed(2)} + ${parameterTypes} `; tbody.innerHTML += row; @@ -22,7 +20,7 @@ function detailData(data) { let row = ` ${data.indicator.name} - ${data.md_value.toFixed(2)} + ${parameterTypes} `; tbody.innerHTML += row; diff --git a/resources/views/assessment/index.blade.php b/resources/views/assessment/index.blade.php index a4c3fcb..d73369e 100644 --- a/resources/views/assessment/index.blade.php +++ b/resources/views/assessment/index.blade.php @@ -213,7 +213,7 @@ class="fw-medium link-primary">#VZ2101 Indikator - MD Value + Nilai