111 lines
4.6 KiB
PHP
111 lines
4.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Modules\Usulan;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Kuesioner;
|
|
use App\Models\Master\FormKriteria;
|
|
use App\Models\Penilaian;
|
|
|
|
class KriteriaController extends Controller
|
|
{
|
|
protected $title = 'Pemenuhan Kriteria';
|
|
protected $template = 'modules.usulan.kriteria';
|
|
protected $route = 'modules.usulan.kriteria';
|
|
|
|
public function index()
|
|
{
|
|
permission('is_read', $this->route, 'module',true);
|
|
|
|
$data['title'] = $this->title;
|
|
$data['route'] = $this->route;
|
|
$data['page'] = FormKriteria::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->toArray();
|
|
|
|
return view($this->template.'.form',$data);
|
|
}
|
|
public function store(Request $request)
|
|
{
|
|
// dd();
|
|
$data = $request['data'];
|
|
$_value = [];
|
|
|
|
foreach ($data as $key => $value) {
|
|
if (strpos($key, 'input_') === 0) {
|
|
$_value[$key] = $value;
|
|
|
|
if($key == 'input_unsur_warga_partisipasi'){
|
|
$skor = hitungSkor(str_replace('input_','','input_unsur_warga_partisipasi'),$value,$data['input_lainnya']);
|
|
}elseif($key == 'input_jumlah_timbulan'){
|
|
$sebelum = $data['input_jumlah_timbulan'];
|
|
$sekarang = $data['input_ratarata_jumlah_timbulan'];
|
|
$pengurangan = $sebelum - $sekarang;
|
|
$persentase = $sebelum > 0 ? ($pengurangan / $sebelum) * 100 : 0;
|
|
if($persentase > 80){
|
|
$skor = 5;
|
|
}elseif(($persentase > 60) || ($persentase <= 80)){
|
|
$skor = 4;
|
|
}elseif(($persentase > 40) || ($persentase <= 60)){
|
|
$skor = 3;
|
|
}elseif(($persentase > 20) || ($persentase <= 40)){
|
|
$skor = 2;
|
|
}else{
|
|
$skor = 1;
|
|
}
|
|
}elseif($key == 'input_jumlah_pohon'){
|
|
$pohon = $data['input_jumlah_pohon'];
|
|
$warga = $data['input_jumlah_warga_sekolah'];
|
|
$persentase = $warga > 0 ? ($pohon / $warga) * 100 : 0;
|
|
|
|
if($persentase > 80){
|
|
$skor = 5;
|
|
}elseif(($persentase > 60) || ($persentase <= 80)){
|
|
$skor = 4;
|
|
}elseif(($persentase > 40) || ($persentase <= 60)){
|
|
$skor = 3;
|
|
}elseif(($persentase > 20) || ($persentase <= 40)){
|
|
$skor = 2;
|
|
}else{
|
|
$skor = 1;
|
|
}
|
|
|
|
}elseif($key == 'input_kondisi_kebersihan'){
|
|
$kebersihan = $data['input_kondisi_kebersihan'];
|
|
$drainase = $data['input_kondisi_drainase'];
|
|
|
|
if ($kebersihan == "Bersih" && $drainase == "Bersih") {
|
|
$skor = 3; // Lingkungan bersih dan drainase berfungsi
|
|
} elseif (($kebersihan == "Bersih" && $drainase == "Kurang Bersih") || ($kebersihan == "Kurang Bersih" && $drainase == "Bersih")) {
|
|
$skor = 2; // Salah satu kondisi kurang baik
|
|
} else {
|
|
$skor = 1; // Lingkungan kurang bersih dan drainase tidak berfungsi
|
|
}
|
|
}else{
|
|
$skor = hitungSkor(str_replace('input_','',$key),$value);
|
|
}
|
|
|
|
$penilaian[$key] = Penilaian::updateOrCreate([
|
|
'tahun' => date('Y'),
|
|
'ms_sekolah_id' => session('sekolah_id'),
|
|
'npsn' => session('npsn'),
|
|
'page_number' => decode_id($data['key']),
|
|
'key' => str_replace('input_','',$key),
|
|
],[
|
|
'user_id' => auth()->user()->id,
|
|
'ms_sekolah_id' => session('sekolah_id'),
|
|
'npsn' => session('npsn'),
|
|
'page_number' => decode_id($data['key']),
|
|
'key' => str_replace('input_','',$key),
|
|
'value' => json_encode($value),
|
|
'status' => 0,
|
|
'skor' => $skor,
|
|
'tahun' => date('Y'),
|
|
'created_by' => auth()->user()->id,
|
|
]);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|