public static function boot() { parent::boot(); static::saved(function ($model) { $targetKerja = TargetKerja::find($model->attributes['target_kerja_id']); // hitung nilai $nilais = []; if ($targetKerja->kuantitas) { // 1. Kuantitas = Realisasi Output / Target Output * 100 $nilais[] = $kuantitas = $model->attributes['kuantitas'] / $targetKerja->kuantitas * 100; } if ($targetKerja->kualitas) { // 2. Kualitas = Realisasi Output / Target Output * 100 $nilais[] = $kualitas = $model->attributes['kualitas'] / $targetKerja->kualitas * 100; } if ($targetKerja->waktu) { // 3. Waktu = (1.76 * Target Waktu - Realisasi Waktu) / Target Waktu * 100 $nilais[] = $waktu = (1.76 * $targetKerja->waktu - $model->attributes['waktu']) / $targetKerja->waktu * 100; } if ($targetKerja->biaya) { // 4. Biaya = (1.76 * Target Biaya - Realisasi Biaya) / Target Biaya * 100 $nilais[] = $biaya = (1.76 * $targetKerja->biaya - $model->attributes['biaya']) / $targetKerja->biaya * 100; } $total_nilai = collect($nilais)->sum(); $score = Score::firstOrNew(['target_kerja_id' => $targetKerja->id]); $score->fill(compact('kuantitas', 'kualitas', 'waktu', 'biaya', 'total_nilai')); $targetKerja->score()->save($score); $nilai = collect($nilais)->average(); $targetKerja->update(compact('nilai')); }); }
public function postEdit(Request $request, $id) { $targetKerja = TargetKerja::with(['penilaian', 'skp'])->where('id', $id)->first(); $model = $targetKerja->penilaian; if ($model == null) { $model = $targetKerja->penilaian()->create([]); } // $model = $this->model->findOrFail($id); $this->validate($request, $model->rules()); $updated = $model->update($request->all()); if ($updated) { return redirect('penilaian/skp/' . $targetKerja->skp->id); } }