diff --git a/app/Helpers/custom.php b/app/Helpers/custom.php index e8b4c64..c7a2e01 100644 --- a/app/Helpers/custom.php +++ b/app/Helpers/custom.php @@ -8,6 +8,56 @@ use App\Models\Penilaian; use App\Models\User; use App\Models\master\MasterGroup; +if (!function_exists('getNilai')) { + /** + * @param $val + * + * @return string + */ + function getNilai($type,$page_number,$sekolah_id) + { + if($type == 'sekolah'){ + $nilai = Penilaian::where('ms_sekolah_id',$sekolah_id) + ->where('page_number',$page_number) + ->where('skor','!=',0) + ->where('tahun',date('Y')) + ->where('status',0) //inputan sekolah + ->first(); + }elseif($type == 'kota'){ + $nilai = Penilaian::where('ms_sekolah_id',$sekolah_id) + ->where('page_number',$page_number) + ->where('skor','!=',0) + ->where('tahun',date('Y')) + ->where('status',1) //inputan sekolah + ->first(); + }elseif($type == 'provinsi'){ + $nilai = Penilaian::where('ms_sekolah_id',$sekolah_id) + ->where('page_number',$page_number) + ->where('skor','!=',0) + ->where('tahun',date('Y')) + ->where('status',2) //inputan sekolah + ->first(); + } + + return @$nilai ? @$nilai->skor : 0; + } +} + +if (!function_exists('status_kuesioner')) { + /** + * @param $val + * + * @return string + */ + function status_kuesioner() + { + //0 = Belum di Verifikasi Dinas + //1 = Sudah di Verifikasi Dinas + //2 = Ditolak Oleh Dinas + //3 = selesai kelengkapan data + } +} + if (!function_exists('group')) { /** * @param $val @@ -41,9 +91,25 @@ if (!function_exists('checkPenilaian')) { * * @return string */ - function checkPenilaian($page_number) + function checkPenilaian($page_number,$sekolah_id = null) { - $penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',session('sekolah_id'))->first(); + if(@$sekolah_id){ + $idSekolah = @$sekolah_id; + }else{ + $idSekolah = session('sekolah_id'); + } + + if(session('group_alias') == 'sekolah'){ + $penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',0)->first(); + }elseif(session('group_alias') == 'penilai_kota'){ + $penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',1)->first(); + }elseif(session('group_alias') == 'penilai_provinsi'){ + $penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',2)->first(); + }else{ + $penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first(); + } + + // $penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first(); return @$penilaian ? true : false; } } @@ -393,13 +459,33 @@ if (!function_exists('formKriteria')) { * * @return string */ - function formKriteria($page_number) + function formKriteria($page_number,$sekolah_id = null) { $kriteria = FormKriteria::where('page_number',$page_number)->get(); $html = ''; + if(@$sekolah_id){ + $idSekolah = @$sekolah_id; + }else{ + $idSekolah = session('sekolah_id'); + } foreach($kriteria as $keyKriteria => $data){ - $penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',session('sekolah_id'))->first(); + if(session('group_alias') == 'sekolah'){ + + $penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->where('status',0)->first(); + + }elseif(session('group_alias') == 'penilai_kota'){ + + $penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->where('status',1)->first(); + + }elseif(session('group_alias') == 'penilai_provinsi'){ + + $penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->where('status',2)->first(); + + }else{ + $penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->first(); + } + // dd(); @@ -460,7 +546,7 @@ if (!function_exists('formKriteria')) { $html .= ''; if($data->active_lainnya == 1){ - $lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',session('sekolah_id'))->first(); + $lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first(); $valueLainnya = json_decode(@$lainnya->value); // dd($valueLainnya); @@ -478,19 +564,34 @@ if (!function_exists('formKriteria')) { } } - $link = Penilaian::where('key','link_grdive')->where('page_number',$page_number)->where('ms_sekolah_id',session('sekolah_id'))->first(); + $link = Penilaian::where('key','link_grdive')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first(); $valueLink = json_decode(@$link->value); - $html .= '
'; - $html .= ''; - $html .= '
'; - $html .= '
Link Google Drive (folder/File penyimpanan bukti)
'; - $html .= '
'; - $html .= ''; - $html .= 'Contoh link : https://example.com'; + $catatan = Penilaian::where('key','catatan')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first(); + $valueCatatan = json_decode(@$catatan->value); + + if(session('group_alias') == 'sekolah'){ + $html .= '
'; + $html .= ''; + $html .= '
'; + $html .= '
Link Google Drive (folder/File penyimpanan bukti)
'; + $html .= '
'; + $html .= ''; + $html .= 'Contoh link : https://example.com'; + $html .= '
'; $html .= '
'; $html .= '
'; - $html .= '
'; + }else{ + $html .= '
'; + $html .= ''; + $html .= '
'; + $html .= '
Catatan
'; + $html .= '
'; + $html .= ''; + $html .= '
'; + $html .= '
'; + $html .= '
'; + } return $html; } @@ -682,6 +783,30 @@ if (!function_exists('permission')) { } } +if (!function_exists('access')) { + /** + * @param $access + * @param $key + * + * @return bool + */ + function access($access, $key) + { + if (session('group_alias') != 'administrator') { + $query = MasterAccessMenu::where($access, 1)->where('module', $key)->where('ms_group_id', session('group_id'))->count(); + if ($query > 0) { + return true; + } else if (session('group_alias') == 'administrator') { + return true; + } else { + return false; + } + } else { + return true; + } + } +} + if (!function_exists('activeMenuClass')) { /** * Helper to grab the application version. diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php index b27b689..8864171 100644 --- a/app/Http/Controllers/AjaxController.php +++ b/app/Http/Controllers/AjaxController.php @@ -8,15 +8,66 @@ use App\Models\Master\Provinsi; use App\Models\Master\Kabupaten; use App\Models\Master\Kecamatan; use App\Models\Master\Sekolah; +use App\Models\Penilaian; class AjaxController extends Controller { + public function sekolahNpsn(Request $request) + { + if ($request->ajax()) { + $query = $request->get('query'); + if(@$request->get('tingkat_sekolah')){ + $data = Sekolah::where('ms_tingkat_sekolah_id',$request->get('tingkat_sekolah'))->where('npsn', 'LIKE', "%{$query}%")->orderBy('npsn','ASC')->limit(20)->get(); + }else{ + $data = Sekolah::where('npsn', 'LIKE', "%{$query}%")->orderBy('npsn','ASC')->limit(20)->get(); + } + // Sesuaikan dengan model & kolom yang diinginkan + // dd($data); + + return response()->json($data); + } + } public function getForm(Request $request) { - $data = formKriteria($request->page); - $title = FormKriteria::select('kategori')->where('page_number',$request->page)->first(); + if(@$request->sekolah){ + $sekolahId = decode_id($request->sekolah); + }else{ + $sekolahId = session('sekolah_id'); + } - return response()->json(['status' => true, 'data' => $data,'title' => $title->kategori]); + $data = formKriteria($request->page,$sekolahId); + $title = FormKriteria::select('kategori')->where('page_number',$request->page)->first(); + $nilai_sekolah = Penilaian::where('ms_sekolah_id',$sekolahId) + ->where('page_number',$request->page) + ->where('skor','!=',0) + ->where('tahun',date('Y')) + ->where('status',0) //inputan sekolah + ->first(); + + $nilai_kota = Penilaian::where('ms_sekolah_id',$sekolahId) + ->where('page_number',$request->page) + ->where('skor','!=',0) + ->where('tahun',date('Y')) + ->where('status',1) //inputan kota + ->first(); + + $nilai_prov = Penilaian::where('ms_sekolah_id',$sekolahId) + ->where('page_number',$request->page) + ->where('skor','!=',0) + ->where('tahun',date('Y')) + ->where('status',2) //inputan kota + ->first(); + + return response()->json( + [ + 'status' => true, + 'data' => $data, + 'title' => $title->kategori, + 'nilai_sekolah' => @$nilai_sekolah ? @$nilai_sekolah->skor : 0, + 'nilai_kota' => @$nilai_kota ? @$nilai_kota->skor : 0, + 'nilai_prov' => @$nilai_prov ? @$nilai_prov->skor : 0, + ] + ); } public function getKabupaten(Request $request) { diff --git a/app/Http/Controllers/Auth/CustomRegisterController.php b/app/Http/Controllers/Auth/CustomRegisterController.php index ed90cdd..b169042 100644 --- a/app/Http/Controllers/Auth/CustomRegisterController.php +++ b/app/Http/Controllers/Auth/CustomRegisterController.php @@ -25,16 +25,18 @@ class CustomRegisterController extends Controller public function post_register(Request $request) { + // dd($request->all()); try { Validator::make($request->all(), [ 'email' => 'required|unique:users|email', // 'name' => 'required|max:50', - 'provinsi' => 'required', - 'kabupaten' => 'required', - 'kecamatan' => 'required', - 'sekolah' => 'required', + // 'provinsi' => 'required', + // 'kabupaten' => 'required', + // 'kecamatan' => 'required', + // 'sekolah' => 'required', // 'tingkat_sekolah' => 'required', // 'status_sekolah' => 'required', + 'npsn' => 'required', 'alamat_sekolah' => 'required', 'kontak_person' => 'required', 'telp' => 'required', @@ -56,7 +58,13 @@ class CustomRegisterController extends Controller ]); } - $sekolah = Sekolah::find(decode_id($request->sekolah)); + $sekolah = Sekolah::where('npsn',$request->npsn)->first(); + if(!@$sekolah){ + return redirect('register')->with([ + 'message' => 'Maaf data sekolah tidak ditemukan, periksa kembali NPSN anda', + 'type' => "error" + ]); + } $user = new User; $user->email = $request->email; @@ -66,14 +74,12 @@ class CustomRegisterController extends Controller $user->ms_group_id = 2; $user->save(); - - $profile = new Profile; $profile->user_id = $user->id; - $profile->ms_provinsi_id = decode_id($request->provinsi); - $profile->ms_kabupaten_id = decode_id($request->kabupaten); - $profile->ms_kecamatan_id = decode_id($request->kecamatan); - $profile->ms_sekolah_id = decode_id($request->sekolah); + $profile->ms_provinsi_id = $sekolah->ms_provinsi_id; + $profile->ms_kabupaten_id = $sekolah->ms_kabupaten_id; + $profile->ms_kecamatan_id = $sekolah->ms_kecamatan_id; + $profile->ms_sekolah_id = $sekolah->MsSekolahId; $profile->npsn = $sekolah->npsn; $profile->ms_tingkat_sekolah_id = $sekolah->ms_tingkat_sekolah_id; $profile->status_sekolah = $sekolah->status; diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 45f9dc2..2d7d843 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -37,19 +37,19 @@ class HomeController extends Controller $data['title'] = 'Dashboard'; $data['group'] = session('group_alias'); if(session('group_alias') == 'sekolah'){ - $data['kuesioner'] = Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->first(); - $data['profile'] = ProfileSekolah::where('ms_sekolah_id',session('sekolah_id'))->first(); - $data['page'] = FormKriteria::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->count(); + $data['kuesioner'] = Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->first(); + $data['profile'] = ProfileSekolah::where('ms_sekolah_id',session('sekolah_id'))->first(); + $data['page'] = FormKriteria::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->count(); $data['penilaian'] = Penilaian::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->count(); return view($this->template.'.sekolah', $data); }else{ $data['usulan'] = Kuesioner::where('tahun',date('Y'))->get(); - $data['total_usulan_kab'] = Kuesioner::where('tahun',date('Y'))->where('level',0)->count(); - $data['total_usulan_prov'] = Kuesioner::where('tahun',date('Y'))->where('level',1)->count(); - $data['total_usulan_nasional'] = Kuesioner::where('tahun',date('Y'))->where('level',2)->count(); - $data['total_usulan_mandiri'] = Kuesioner::where('tahun',date('Y'))->where('level',3)->count(); - $data['route'] = 'modules'; + $data['total_usulan_kab'] = Kuesioner::where('tahun',date('Y'))->where('level',0)->count(); + $data['total_usulan_prov'] = Kuesioner::where('tahun',date('Y'))->where('level',1)->count(); + $data['total_usulan_nasional'] = Kuesioner::where('tahun',date('Y'))->where('level',2)->count(); + $data['total_usulan_mandiri'] = Kuesioner::where('tahun',date('Y'))->where('level',3)->count(); + $data['route'] = 'modules'; return view($this->template.'.admin', $data); } } diff --git a/app/Http/Controllers/KuesionerController.php b/app/Http/Controllers/KuesionerController.php index 521d203..8d03999 100644 --- a/app/Http/Controllers/KuesionerController.php +++ b/app/Http/Controllers/KuesionerController.php @@ -51,7 +51,7 @@ class KuesionerController extends Controller if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ $action .= ''; - if(session('group_alias') != 'sekolah'){ + if(session('group_alias') == 'dinas'){ if($row->status == 0){ $action .= ''; $action .= ''; diff --git a/app/Http/Controllers/Modules/Usulan/AdministrasiController.php b/app/Http/Controllers/Modules/Usulan/AdministrasiController.php index 0793c19..8e16806 100644 --- a/app/Http/Controllers/Modules/Usulan/AdministrasiController.php +++ b/app/Http/Controllers/Modules/Usulan/AdministrasiController.php @@ -4,8 +4,173 @@ namespace App\Http\Controllers\Modules\Usulan; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use App\Models\Master\Provinsi; +use App\Models\Kuesioner; +use App\Models\DokumenAdministrasi; class AdministrasiController extends Controller { - // + private $template = 'modules.usulan.administrasi'; + private $route = 'modules.usulan.administrasi'; + private $title = 'Usulan Adiwiyata - Dokumen Administrasi'; + + public function index() + { + $data['route'] = $this->route; + $data['title'] = $this->title; + $data['provinsi'] = Provinsi::where('kode_wilayah','010000')->get(); + + return view($this->template.'.index',$data); + } + + public function grid(Request $request) + { + if(session('group_alias') == 'sekolah'){ + $kuesioner = Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->orderBy('created_at','DESC')->get(); + }else{ + $kuesioner = Kuesioner::where('tahun',date('Y'))->orderBy('created_at','DESC')->get(); + } + + foreach ($kuesioner as $key => $row) { + + $action = ''; + + // if((access('is_create', $this->route.'.*')) || (access('is_update', $this->route.'.*'))){ + // $action .= ''; + // } + + if(($row->level+1) == 1){ + $jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Kab/Kota'; + }elseif(($row->level+1) == 2){ + $jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Provinsi'; + }elseif(($row->level+1) == 3){ + $jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Nasional'; + }elseif(($row->level+1) == 4){ + $jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Mandiri'; + } + + $dok = DokumenAdministrasi::where('ms_sekolah_id',$row->ms_sekolah_id)->where('tahun',date('Y'))->first(); + + $action .= ''; + $action .= ''; + if(session('group_alias') == 'dinas'){ + if($dok->status == 0){ + $action .= ''; + $action .= ''; + } + } + + if($row->level == 0){ + $penghargaan = ' Belum Pernah'; + }elseif($row->level == 1){ + $penghargaan = ' Adiwiyata Kab/Kota'; + }elseif($row->level == 2){ + $penghargaan = ' Adiwiyata Provinsi'; + }elseif($row->level == 3){ + $penghargaan = ' Adiwiyata Nasional'; + }elseif($row->level == 4){ + $penghargaan = ' Adiwiyata Mandiri'; + } + + if(($row->level+1) == 1){ + $jenis_usulan = 'Kabupaten/Kota'; + }elseif(($row->level+1) == 2){ + $jenis_usulan = 'Provinsi'; + }elseif(($row->level+1) == 3){ + $jenis_usulan = 'Nasional'; + }elseif(($row->level+1) == 4){ + $jenis_usulan = 'Mandiri'; + } + + + if(@$dok){ + if(@$dok->status == 1){ + $labelDok = 'Dokumen Sudah Di Verifikasi'; + }elseif(@$dok->status == 2){ + $labelDok = 'Dokumen Sudah Di Tolak'; + }else{ + $labelDok = 'Menuggu Verifikasi Dokumen'; + } + }else{ + $labelDok = 'Belum Upload Dokumen'; + } + + $sekolah = ''; + $sekolah .= @$row->sekolah->nama_sekolah.'
'; + $sekolah .= ''.@$row->profile->tingkat->name.' '; + $sekolah .= ''.@$row->profile->status_sekolah.' '; + + $_data[] = [ + 'no' => $key+1, + 'id' => encode_id($row->id), + 'npsn' => $row->sekolah->npsn, + 'nama' => $sekolah, + 'tahun' => $row->tahun, + 'labelDok' => $labelDok, + 'status_level' => 'Level '.levelAdiwiyata($row->npsn).'', + 'wilayah' => $row->sekolah->kabupaten->name, + 'penghargaan' => $penghargaan, + 'jenis_usulan' => ''.$jenis_usulan.'', + 'action' => $action, + ]; + + } + + return response()->json($_data); + } + + public function store(Request $request) + { + $data = $request['data']; + + $keyId = decode_id($data['secure_id']); + + if(!@$keyId){ + return response()->json(['status' => false,'message' => 'Maaf Terjadi Kesalahan','type' => 'error']); + } + + $dok = DokumenAdministrasi::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->first(); + + if(@$dok->status == 1){ + return response()->json(['status' => false,'message' => 'Dokumen Sudah di verifikasi','type' => 'info']); + } + + $dok = DokumenAdministrasi::updateOrCreate([ + 'kuesioner_id' => $keyId, + 'ms_sekolah_id' => session('sekolah_id'), + 'npsn' => session('npsn'), + 'created_by' => auth()->user()->id, + 'tahun' => date('Y'), + ],[ + 'kuesioner_id' => $keyId, + 'ms_sekolah_id' => session('sekolah_id'), + 'npsn' => session('npsn'), + 'created_by' => auth()->user()->id, + 'tahun' => date('Y'), + 'link' => $data['file'], + 'status' => 0, + ]); + + return response()->json(['status' => true,'message' => 'Berhasil Update Data','type' => 'success']); + } + + public function verifikasi($id) + { + $keyId = decode_id($id); + + $dok = DokumenAdministrasi::find($keyId); + $dok->status = 1; + $dok->save(); + + return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']); + } + public function tolak($id) + { + $keyId = decode_id($id); + $dok = DokumenAdministrasi::find($keyId); + $dok->status = 2; + $dok->save(); + + return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']); + } } diff --git a/app/Http/Controllers/Modules/Usulan/CSAKController.php b/app/Http/Controllers/Modules/Usulan/CSAKController.php index 8d42d31..6f4f3eb 100644 --- a/app/Http/Controllers/Modules/Usulan/CSAKController.php +++ b/app/Http/Controllers/Modules/Usulan/CSAKController.php @@ -6,6 +6,8 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\Master\Provinsi; use App\Models\Kuesioner; +use App\Models\Master\Sekolah; +use App\Models\Master\FormKriteria; class CSAKController extends Controller { @@ -24,6 +26,49 @@ class CSAKController extends Controller return view($this->template.'.index',$data); } + public function update($id) + { + $keyId = decode_id($id); + $data['kuesioner'] = Kuesioner::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first(); + $data['sekolah'] = Sekolah::find($keyId); + $data['route'] = $this->route; + $data['title'] = $this->title; + $data['page'] = FormKriteria::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->toArray(); + + $jumlah = json_decode($data['sekolah']->profile->data_jumlah); + $data['jumlah_peserta_didik'] = @$jumlah->jumlah_peserta_didik; + $data['jumlah_tenaga_pendidik'] = @$jumlah->jumlah_tenaga_pendidik; + $data['jumlah_tenaga_kependidikan'] = @$jumlah->jumlah_tenaga_kependidikan; + $data['jumlah_warga_sekolah_lainnya'] = @$jumlah->jumlah_warga_sekolah_lainnya; + $data['jumlah_biopori'] = @$jumlah->jumlah_biopori; + $data['jumlah_sumur_resapan'] = @$jumlah->jumlah_sumur_resapan; + $data['jumlah_pohon'] = @$jumlah->jumlah_pohon; + + $air = json_decode($data['sekolah']->profile->penghematan_air); + $data['air_sebelum_pblhs'] = @$air->air_sebelum_pblhs; + $data['air_setelah_pblhs'] = @$air->air_setelah_pblhs; + + $listrik = json_decode($data['sekolah']->profile->penghematan_listrik); + $data['listrik_sebelum_pblhs'] = @$listrik->listrik_sebelum_pblhs; + $data['listrik_setelah_pblhs'] = @$listrik->listrik_setelah_pblhs; + $data['luas_ruangan_ac'] = @$listrik->luas_ruangan_ac; + $data['luas_ruangan_non_ac'] = @$listrik->luas_ruangan_non_ac; + $data['jumlah_kader'] = @$listrik->jumlah_kader; + + return view($this->template.'.form',$data); + } + public function resume($id) + { + // permission('is_read', $this->route, 'module',true); + + $data['title'] = $this->title; + $data['route'] = $this->route; + $keyId = decode_id($id); + $data['sekolah'] = Sekolah::find($keyId); + $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 grid(Request $request) { @@ -33,7 +78,7 @@ class CSAKController extends Controller $action = ''; if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ - $action .= ''; + $action .= ''; } if($row->level == 0){ @@ -101,14 +146,6 @@ class CSAKController extends Controller // } - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - /** * Remove the specified resource from storage. */ diff --git a/app/Http/Controllers/Modules/Usulan/KriteriaController.php b/app/Http/Controllers/Modules/Usulan/KriteriaController.php index 354533d..045f370 100644 --- a/app/Http/Controllers/Modules/Usulan/KriteriaController.php +++ b/app/Http/Controllers/Modules/Usulan/KriteriaController.php @@ -6,8 +6,10 @@ 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 { @@ -55,17 +57,20 @@ class KriteriaController extends Controller $keyId = decode_id($id); // 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(); - $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['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(); + // dd($request['sekolah']); $data = $request['data']; $_value = []; @@ -123,19 +128,35 @@ class KriteriaController extends Controller $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' => session('sekolah_id'), - 'npsn' => session('npsn'), + 'ms_sekolah_id' => $sekolah->MsSekolahId, + 'npsn' => $sekolah->npsn, 'page_number' => decode_id($data['key']), 'key' => str_replace('input_','',$key), + 'status' => $status, ],[ - 'ms_sekolah_id' => session('sekolah_id'), - 'npsn' => session('npsn'), + 'ms_sekolah_id' => $sekolah->MsSekolahId, + 'npsn' => $sekolah->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, @@ -147,4 +168,24 @@ class KriteriaController extends Controller } + + 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']); + } } diff --git a/app/Models/DokumenAdministrasi.php b/app/Models/DokumenAdministrasi.php new file mode 100644 index 0000000..6e1792b --- /dev/null +++ b/app/Models/DokumenAdministrasi.php @@ -0,0 +1,14 @@ +id('DokumenAdministrasiId'); + $table->integer('kuesioner_id'); + $table->integer('ms_sekolah_id'); + $table->integer('npsn'); + $table->integer('created_by'); + $table->text('link')->nullable(); + $table->year('tahun'); + $table->integer('status')->default(0); + $table->timestampsTz(); + + $table->foreign('kuesioner_id')->references('KuesionerId')->on('kuesioner')->onDelete('cascade'); + $table->foreign('ms_sekolah_id')->references('MsSekolahId')->on('ms_sekolah')->onDelete('cascade'); + $table->foreign('created_by')->references('id')->on('users')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('dokumen_administrasis'); + } +}; diff --git a/public/assets/img/background.svg b/public/assets/img/background.svg new file mode 100644 index 0000000..aecb22b --- /dev/null +++ b/public/assets/img/background.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 8635cc2..fce2b37 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -21,7 +21,7 @@
-
+
diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index d2b7465..102d5e8 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -27,7 +27,7 @@
-
+
@@ -52,7 +52,7 @@ -
+
@@ -74,7 +74,7 @@
-
+
+
+ +
+ + @error('tingkat_sekolah') + {{$message}} + @enderror +
+
+
+ +
+ +
    + @error('npsn') + {{$message}} + @enderror +
    +
    +
    -
    - -
    - - @error('tingkat_sekolah') - {{$message}} - @enderror -
    -
    @@ -126,18 +157,9 @@
    - -
    - - @error('npsn') - {{$message}} - @enderror -
    -
    -
    - + @error('name') {{$message}} @enderror @@ -244,6 +266,50 @@ icon.removeClass('fa-eye-slash').addClass('fa-eye'); // Kembalikan ikon } }); + + $('.npsn').on('keyup', function(){ + var query = $(this).val(); + var tingkat_sekolah = $('.tingkat_sekolah').find(':selected').val(); + if(query.length > 0) { + $.ajax({ + url: "{{ url('sekolahNpsn') }}", + type: "GET", + data: { + query: query, + tingkat_sekolah:tingkat_sekolah + }, + success: function(data) { + $('#result').html(''); + if(data.length > 0) { + $('#result').show(); + $.each(data, function(index, data){ + $('#result').append('
  • ' + data.nama_sekolah + '
  • '); + }); + } else { + $('#result').hide(); + } + } + }); + } else { + $('#result').hide(); + } + }); + + // Saat klik pada hasil pencarian, isi input dan sembunyikan daftar + $(document).on('click', '#result li', function(){ + var npsn = $(this).attr('data-npsn'); + + $('.npsn').val(npsn); + $('.nama_sekolah').val($(this).text()); + $('#result').hide(); + }); + + // Klik di luar input atau hasil pencarian untuk menyembunyikan daftar + $(document).on('click', function(e) { + if (!$(e.target).closest('.npsn, #result').length) { + $('#result').hide(); + } + }); }); $("#js-login-btn").click(function(event) { diff --git a/resources/views/layouts/master.blade.php b/resources/views/layouts/master.blade.php index 816bb6f..bd57182 100644 --- a/resources/views/layouts/master.blade.php +++ b/resources/views/layouts/master.blade.php @@ -24,6 +24,9 @@ +@endsection +@section('content') +
    +

    + {{$title}} +

    +
    +
    +
    + @if ($errors->any()) +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    + @endif +
    + {{csrf_field()}} +
    +
    +
    +
    + + + + + + + + + + + + + +
    + +
    NPSN: {{$sekolah->npsn}}

    {{$sekolah->nama_sekolah}}

    {{$sekolah->tingkat->name}} {{$sekolah->status}}
    +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Profile Sekolah
    NPSN{{@$sekolah->npsn}}
    Nama Sekolag{{@$sekolah->nama_sekolah}}
    Tingkat Sekolah{{@$sekolah->tingkat->name}}
    Status Sekolah{{@$sekolah->status}}
    Alamat Sekolah
    Provinsi{{@$sekolah->provinsi->name}}
    Kabupaten/Kota{{@$sekolah->kabupaten->name}}
    Kecamatan{{@$sekolah->kecamatan->name}}
    Alamat Lengkap{{@$sekolah->profile->alamat_sekolah}}
    Kontak Person{{@$sekolah->profile->kontak_person}}
    Telp{{@$sekolah->profile->telp}}
    Data Jumlah
    Jumlah Peserta Didik + +
    Jumlah Tenaga Pendidik + +
    Jumlah Tenaga kependidikan + +
    Jumlah Warga Sekolah Lainnya + +
    Jumlah Biopori + +
    Jumlah Sumur Resapan + +
    Jumlah Pohon/Tanaman yang ditanam dan tumbuh + +
    Penghematan air sebelum dan setelah melaksanakan gerakan PBLHS :
    Sebelum melaksanakan gerakan PBLHS
    (Meter Kubik/Bulan)
    + +
    Setelah melaksanakan gerakan PBLHS
    (Meter Kubik/Bulan dalam Tahun ajaran 2022/2023)
    + +
    Penghematan listrik sebelum dan setelah melaksanakan gerakan PBLHS :
    Sebelum melaksanakan gerakan PBLHS
    (KWH/Bulan)
    + +
    + +
    Setelah melaksanakan gerakan PBLHS
    (KWH/Bulan dalam Tahun ajaran 2022/2023)
    + +
    Luas ruangan ber AC + +
    Luas ruangan non AC + +
    Jumlah Kader + +
    +
    +
    + + + + + + + + + + + + + + + + +
    Seleksi Isian Dokumen Administrasi CSA
    +

    Apakah nama CSAN tercantum dalam SK/Piagam Sekolah Adiwiyata Provinsi (untuk SAP 2021/2022/2023/2024/2025) atau SK/Piagam Perpanjangan Adiwiyata Tahun 2023/2024/2025

    + +  Ya
    +  Tidak
    +  Tidak Ada Bukti/Dokumen
    +
    +

    Apakah salinan SK/Piagam Sekolah Adiwiyata provinsi di tandatangani Gubernur atau pejabat yang diberi kewenangan untuk menandatangani atau SK/Piagam Perpanjangan di Tandatangani Kepala Dinas LH ?

    + +  Ya
    +  Tidak
    +  Tidak Ada Bukti/Dokumen
    +
    +

    Waktu Penetapan Penghargaan SAP

    + +   SAP tahun 2021/ 2022/ 2023/ 2024 ditetapkan SEBELUM 1 Agustus 2024
    +   SAP tahun 2021/ 2022 /2023/ 2024 ditetapkan SETELAH 1 Agustus 2024
    +   SAP/SAN/SAM perolehan tahun 2020 atau sebelumnya serta lolos perpanjangan sebagai SAP
    +   SAP perolehan tahun 2020 atau sebelumnya serta tidak ada SK/piagam perpanjangan sebagai SAP
    +
    +
    +
    +
    +
    +
      + @foreach($page as $hal) +
    • {{$hal}}
    • + @endforeach + +
    +
    +
    +
    +
    I. Perencanaan Gerakan PBLHS
    +
    +
    +
    + +
    + {!! formKriteria(1,$sekolah->MsSekolahId) !!} +
    +
    + +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Usulan
    Jenis Usulan CSANasional
    Penghargaan
    Penghargaan TerakhirAdiwiyata Provinsi
    Nomor SK-
    Tanggal Penetapan SK04-12-1993
    Berdasarkan data usulan yang dilengkapi, dinyatakan bahwa {{@$sekolah->nama_sekolah}} :
    Nilai Dokumen Administrasi0
    Nilai Pemenuhan Kriteria0
    Validasi + +
    Catatan + +
    +
    +
    + + +
    +
    +
    + +
    +
    +@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/usulan/csak/resume.blade.php b/resources/views/modules/usulan/csak/resume.blade.php new file mode 100644 index 0000000..cbba77a --- /dev/null +++ b/resources/views/modules/usulan/csak/resume.blade.php @@ -0,0 +1,258 @@ +@extends('layouts.master') + +@section('page-css') + + +@endsection +@section('content') +
    +

    + {{$title}} +

    +
    +
    +
    + @if ($errors->any()) +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    + @endif +
    + {{csrf_field()}} +
    +
    +
    +
    + + + + + + + + + + + + + +
    + +
    NPSN: {{$sekolah->npsn}}

    {{$sekolah->nama_sekolah}}

    {{$sekolah->tingkat->name}} {{$sekolah->status}}
    +
    +
    +
    +

     Anda Belum Melakukan Finalisasi Proses Data Kriteria

    +

     Klik Progress Usulan untuk melakukan Finalisasi Proses Data Kriteria

    +
    +
    +
    +
      +
    • +
    • Resume
    • +
    +
    +
    + +
    + @foreach($page as $dataNumber) +
    +
    + {{$dataNumber}} +
    +
    + {!! formKriteria($dataNumber,$sekolah->MsSekolahId) !!} +
    +
    + @endforeach +
    +
    + +
    +
    + +
    +
    +
    +
    +@endsection +@section('page-js') + +@endsection \ No newline at end of file diff --git a/resources/views/modules/usulan/kriteria/form.blade.php b/resources/views/modules/usulan/kriteria/form.blade.php index 6e8d4fc..95ae6f4 100644 --- a/resources/views/modules/usulan/kriteria/form.blade.php +++ b/resources/views/modules/usulan/kriteria/form.blade.php @@ -106,8 +106,8 @@
    + Loading... +
    {!! formKriteria(1) !!}
    diff --git a/resources/views/modules/usulan/kriteria/progress.blade.php b/resources/views/modules/usulan/kriteria/progress.blade.php index c6c4361..38f9cab 100644 --- a/resources/views/modules/usulan/kriteria/progress.blade.php +++ b/resources/views/modules/usulan/kriteria/progress.blade.php @@ -218,7 +218,7 @@
    @foreach($log as $logs) -
    +

    {{\Str::title(str_replace('_',' ',$logs->step))}}

    @@ -255,20 +255,51 @@
    -

    Kirim Kelengkapan Data

    +

    + @if($kuesioner->status == 3) +   + @endif + Kirim Kelengkapan Data +

    Kab/Kota akan melakukan validasi, jika data sekolah lengkap akan diproses. apabila data belum lengkap akan dikembalikan ke sekolah untuk melakukan perbaikan.

    Pastikan NPSN, Profile, Dok Adminstrasi, Sekolah Binaan (CSAM) dan Pemenuhan Kriteria sudah sesuai.

      -
    • Dokumen Administrasi Belum Lengkap
    • -
    • Pemenuhan Kriteria /29 Belum Lengkap
    • +
    • + Dokumen Administrasi + @if(@$dok) + @if(@$dok->status == 1) + Dokumen Sudah Di Verifikasi + @elseif(@$dok->status == 2) + Dokumen Ditolak + @else + Menunggu Verifikasi Dokumen + @endif + @else + Belum Upload Dokumen + @endif +
    • +
    • Pemenuhan Kriteria {{count(@$penilaian)}} / {{count(@$page)}} + @if(count(@$penilaian) == count(@$page)) + Sudah Lengkap + @else + Belum Lengkap + @endif +
    -
    - - -
    - + @if(session('group_alias') == 'sekolah') + @if($kuesioner->status == 1) +
    + + +
    + + @endif + @endif
    +
    @@ -325,15 +356,50 @@ }); }); - $('.back').on('click',function(e){ + $('.back').on('click',function(e){ window.location.href = "{{url('usulan/kriteria')}}"; - }); + }); - $('.progress_usulan').on('click',function(e){ + $('.progress_usulan').on('click',function(e){ window.location.href = "{{url('usulan/kriteria/progress/'.encode_id(session('sekolah_id')))}}"; - }); + }); - $('#btnSave').on('click',function(e){ + $('.btnSend').on('click',function(e){ + e.preventDefault(); + + var check = $('.check'); + if (!check.is(':checked')) { + toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'}); + // alert("."); + return; + } + + $.ajax({ + url: "{{url('usulan/kriteria/kirimData/'.@$secure_id.'/'.encode_id(@$kuesioner->KuesionerId))}}", // Ganti dengan URL API-mu + type: 'POST', // Bisa juga 'POST' kalau perlu + data: { + _token:'{{csrf_token()}}', + }, // Kirim number sebagai parameter + dataType: 'json', // Format respons JSON + beforeSend: function () { + $('#loading-spinner').show(); // Menampilkan spinner + }, + success: function (response) { + // console.log('Response:', response); + toastr.success("Berhasil menyimpan data", 'Success!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'}); + + location.reload(); + }, + error: function (xhr, status, error) { + toastr.error("Maaf Terjadi Kesalahan Menyimpan Data", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'}); + }, + complete: function () { + $('#loading-spinner').hide(); // Sembunyikan spinner setelah request selesai + } + }); + }); + + $('#btnSave').on('click',function(e){ e.preventDefault(); let currentForm = $("#form").serializeArray(); console.log(currentForm); diff --git a/resources/views/modules/usulan/kriteria/resume.blade.php b/resources/views/modules/usulan/kriteria/resume.blade.php index 01c3707..d5a6561 100644 --- a/resources/views/modules/usulan/kriteria/resume.blade.php +++ b/resources/views/modules/usulan/kriteria/resume.blade.php @@ -104,7 +104,7 @@
    @foreach($page as $dataNumber)
    -
    +
    {{$dataNumber}}
    diff --git a/routes/modules/modules.php b/routes/modules/modules.php index 75e113c..5cc158d 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -57,11 +57,14 @@ Route::name('usulan.')->prefix('usulan')->group(function () { Route::get('/',[KriteriaController::class,'index'])->name('index'); Route::get('/resume/{sekolah_id}',[KriteriaController::class,'resume'])->name('resume'); Route::get('/progress/{sekolah_id}',[KriteriaController::class,'progress'])->name('progress'); + Route::post('/kirimData/{sekolah_id}/{kuesioner_id}',[KriteriaController::class,'kirimData'])->name('kirimData'); Route::post('/store',[KriteriaController::class,'store'])->name('store'); }); Route::name('csak.')->prefix('csak')->group(function () { Route::resource('/',CSAKController::class); + Route::get('update/{id}',[CSAKController::class,'update'])->name('update'); + Route::get('/resume/{sekolah_id}',[CSAKController::class,'resume'])->name('resume'); Route::get('/grid',[CSAKController::class,'grid'])->name('grid'); }); @@ -87,6 +90,10 @@ Route::name('usulan.')->prefix('usulan')->group(function () { Route::name('administrasi.')->prefix('administrasi')->group(function () { Route::get('/',[AdministrasiController::class,'index'])->name('index'); + Route::get('/grid',[AdministrasiController::class,'grid'])->name('grid'); + Route::post('/store',[AdministrasiController::class,'store'])->name('store'); + Route::get('/verifikasi/{id?}',[AdministrasiController::class,'verifikasi'])->name('verifikasi'); + Route::get('/tolak/{id?}',[AdministrasiController::class,'tolak'])->name('tolak'); }); // Route::name('progress.')->prefix('progress')->group(function () { diff --git a/routes/web.php b/routes/web.php index 1cff51d..9b1973b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -25,6 +25,7 @@ Route::post('register',[CustomRegisterController::class,'post_register'])->name( Route::post('get/kabupaten',[AjaxController::class,'getKabupaten'])->name('getKabupaten'); Route::post('get/kecamatan',[AjaxController::class,'getKecamatan'])->name('getKecamatan'); Route::post('get/sekolah',[AjaxController::class,'getSekolah'])->name('getSekolah'); +Route::get('sekolahNpsn',[AjaxController::class,'sekolahNpsn'])->name('sekolahNpsn'); Route::middleware(Session::class)->name('modules.')->group(function () {