192 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			8.2 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\Master\Sekolah;
 | 
						|
use App\Models\Penilaian;
 | 
						|
use App\Models\KuesionerLog;
 | 
						|
use App\Models\DokumenAdministrasi;
 | 
						|
 | 
						|
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($id)
 | 
						|
    {
 | 
						|
        $keyId = decode_id($id);
 | 
						|
        // permission('is_read', $this->route, 'module',true);
 | 
						|
 | 
						|
        $data['title']          = $this->title;
 | 
						|
        $data['route']          = $this->route;   
 | 
						|
        $data['secure_id']          = $id;   
 | 
						|
        $data['page']           = FormKriteria::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->toArray(); 
 | 
						|
        $data['log']            = KuesionerLog::where('ms_sekolah_id',$keyId)->orderBy('created_at','ASC')->get();
 | 
						|
        $data['kuesioner']      = Kuesioner::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first();
 | 
						|
        $data['dok']            = DokumenAdministrasi::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first();
 | 
						|
        $data['penilaian']      = Penilaian::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->toArray();
 | 
						|
 | 
						|
        return view($this->template.'.progress',$data);
 | 
						|
    }
 | 
						|
    public function store(Request $request)
 | 
						|
    {
 | 
						|
        // dd($request['sekolah']);
 | 
						|
        $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);
 | 
						|
                }
 | 
						|
 | 
						|
                if(session('group_alias') == 'sekolah'){
 | 
						|
                    $status = 0;
 | 
						|
                }elseif(session('group_alias') == 'penilai_kota'){
 | 
						|
                    $status = 1;
 | 
						|
                }elseif(session('group_alias') == 'penilai_provinsi'){
 | 
						|
                    $status = 2;
 | 
						|
                }
 | 
						|
 | 
						|
                if(@$request['sekolah']){
 | 
						|
                    $idSekolah = decode_id(@$request['sekolah']);
 | 
						|
                    $sekolah = Sekolah::find($idSekolah);
 | 
						|
                }else{
 | 
						|
                    $idSekolah = session('sekolah_id');
 | 
						|
                    $sekolah = Sekolah::find($idSekolah);
 | 
						|
                }
 | 
						|
 | 
						|
                $penilaian[$key] = Penilaian::updateOrCreate([
 | 
						|
                    'tahun'         => date('Y'),
 | 
						|
                    'ms_sekolah_id' => $sekolah->MsSekolahId,
 | 
						|
                    'npsn'          => $sekolah->npsn,
 | 
						|
                    'page_number'   => decode_id($data['key']),
 | 
						|
                    'key'           => str_replace('input_','',$key),
 | 
						|
                    'status'        => $status,
 | 
						|
                ],[
 | 
						|
                    'ms_sekolah_id' => $sekolah->MsSekolahId,
 | 
						|
                    'npsn'          => $sekolah->npsn,
 | 
						|
                    'page_number'   => decode_id($data['key']),
 | 
						|
                    'key'           => str_replace('input_','',$key),
 | 
						|
                    'value'         => json_encode($value),
 | 
						|
                    'skor'          => $skor,
 | 
						|
                    'tahun'         => date('Y'),
 | 
						|
                    'created_by'    => auth()->user()->id,
 | 
						|
                ]);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return response()->json(['status' => true,'data' => $_value,'message' => 'Berhasil Update Data','page' => $data['key']]);
 | 
						|
        
 | 
						|
        
 | 
						|
    }
 | 
						|
 | 
						|
    public function kirimData($sekolah_id, $kuesioner_id)
 | 
						|
    {
 | 
						|
        $keyId = decode_id($kuesioner_id);
 | 
						|
        $kuesioner = Kuesioner::find($keyId);
 | 
						|
        $kuesioner->status = 3;
 | 
						|
        $kuesioner->save();
 | 
						|
 | 
						|
        $log = new KuesionerLog;
 | 
						|
        $log->kuesioner_id   = $kuesioner->KuesionerId;
 | 
						|
        $log->ms_sekolah_id  = $kuesioner->ms_sekolah_id;
 | 
						|
        $log->npsn           = $kuesioner->npsn;
 | 
						|
        $log->ms_group_id    = session('group_id');
 | 
						|
        $log->step           = 'kirim_kelengkapan_data';
 | 
						|
        $log->status         = 3;
 | 
						|
        $log->created_by     = auth()->user()->id;
 | 
						|
        $log->save();
 | 
						|
 | 
						|
        return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']);    
 | 
						|
    }
 | 
						|
}
 |