199 lines
8.6 KiB
PHP
199 lines
8.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\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_adiwiyata.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' => 'Menunggu Usulan dari Dinas/Sudin',
|
|
'type' => 'error',
|
|
]);
|
|
}
|
|
|
|
if(Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->value('status') == 1){
|
|
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']);
|
|
}
|
|
}
|