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', ]); } $kuesioner = Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->first(); if($kuesioner->status == 0){ return redirect('kuesioner/update/'.encode_id(session('sekolah_id')))->with([ 'message' => 'Menunggu Usulan dari Dinas/Sudin', 'type' => 'error', ]); } if(@$kuesioner){ if(@$kuesioner->status == 1){ $dok = DokumenAdministrasi::where('kuesioner_id',$kuesioner->KuesionerId)->first(); if(@$dok->status == 0){ return redirect('kuesioner/update/'.encode_id(session('sekolah_id')))->with([ 'message' => 'Maaf menunggu verifikasi dokumen oleh Dinas/Sudin', 'type' => 'error', ]); }elseif(@$dok->status == 2){ return redirect('kuesioner/update/'.encode_id(session('sekolah_id')))->with([ 'message' => 'Dokumen ditolak oleh Dinas/Sudin, silahkan upload ulang', 'type' => 'error', ]); } } } $data['title'] = $this->title; $data['route'] = $this->route; $data['kuesioner'] = $kuesioner; $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); $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); } if($key == 'input_upload_files'){ $filePaths = []; if(is_array($value)){ foreach ($value as $file) { $tempPath = storage_path('app/tmp_uploads/' . $file); if (file_exists($tempPath)) { $path = public_path('uploads/kriteria/' . date('Y').'/'.$idSekolah . '/' .decode_id($data['key']) ); if (!File::exists($path)) { File::isDirectory($path) or File::makeDirectory($path, 0777, true, true); } $newPath = 'uploads/kriteria/'.date('Y').'/'.$idSekolah.'/'.decode_id($data['key']).'/'.$file; copy($tempPath, public_path($newPath)); $filePaths[] = $newPath; } } }else{ $tempPath = storage_path('app/tmp_uploads/' . $value); if (file_exists($tempPath)) { $path = public_path('uploads/kriteria/' . date('Y').'/'.$idSekolah . '/' .decode_id($data['key']) ); if (!File::exists($path)) { File::isDirectory($path) or File::makeDirectory($path, 0777, true, true); } $newPath = 'uploads/kriteria/'.date('Y').'/'.$idSekolah.'/'.decode_id($data['key']).'/'.$value; copy($tempPath, public_path($newPath)); $filePaths[] = $newPath; } } $value = $filePaths; } $nilai_kota = Penilaian::where('ms_sekolah_id',$idSekolah) ->where('page_number',decode_id($data['key'])) ->where('skor','!=',0) ->where('tahun',date('Y')) ->where('status',1) //inputan kota ->first(); $nilai_prov = Penilaian::where('ms_sekolah_id',$idSekolah) ->where('page_number',decode_id($data['key'])) ->where('skor','!=',0) ->where('tahun',date('Y')) ->where('status',2) //inputan kota ->first(); $kuesioner = decode_id($data['secure_id']); $penilaian[$key] = Penilaian::updateOrCreate([ 'kuesioner_id' => $kuesioner, 'tahun' => date('Y'), 'ms_sekolah_id' => $sekolah->MsSekolahId, 'npsn' => $sekolah->npsn, 'page_number' => decode_id($data['key']), 'key' => str_replace('input_','',$key), 'status' => $status, ],[ 'kuesioner_id' => $kuesioner, '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'],'nilai_kota' => @$nilai_kota ? @$nilai_kota->skor : 0, 'nilai_prov' => @$nilai_prov ? @$nilai_prov->skor : 0]); } public function kirimData($sekolah_id, $kuesioner_id) { //cek dokumen $keyId = decode_id($kuesioner_id); $dok = DokumenAdministrasi::where('kuesioner_id',$keyId)->first(); if($dok->status == 0){ return response()->json(['status' => false,'message' => 'Dokumen Belum Di Verifikasi','type' => 'error']); }else{ $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']); } } }