sekolah_adiwiyata/app/Http/Controllers/Modules/Usulan/KriteriaController.php

147 lines
6.1 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);
if(Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->count() == 0){
return redirect('kuesioner/update/'.encode_id(session('sekolah_id')))->with([
'message' => 'Maaf anda belum melakukan isi kuesioner, silahkan isi terlebih dahulu',
'type' => 'error',
]);
}
if(Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->value('status') == 0){
return redirect('kuesioner/update/'.encode_id(session('sekolah_id')))->with([
'message' => 'Maaf usulan anda belum diverifikasi oleh Dinas',
'type' => 'error',
]);
}
$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 resume()
{
// 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.'.resume',$data);
}
public function progress()
{
// 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.'.progress',$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),
],[
'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,
]);
}
}
return response()->json(['status' => true,'data' => $_value,'message' => 'Berhasil Update Data','page' => $data['key']]);
}
}