212 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			212 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers;
 | |
| 
 | |
| use Illuminate\Http\Request;
 | |
| use Illuminate\Support\Facades\Validator;
 | |
| use Illuminate\Support\Facades\DB;
 | |
| use Illuminate\Support\Facades\Auth;
 | |
| use Illuminate\Support\Facades\Hash;
 | |
| use App\Models\ProfileSekolah as Profile;
 | |
| use App\Models\Kuesioner;
 | |
| use App\Models\KuesionerLog;
 | |
| use App\Models\Master\Sekolah;
 | |
| use App\Models\Master\Provinsi;
 | |
| use App\Models\SK;
 | |
| 
 | |
| class ProfileController extends Controller
 | |
| {
 | |
|     protected $template = 'modules.profile';
 | |
|     protected $route = 'modules.profile';
 | |
| 
 | |
|     public function index()
 | |
|     {
 | |
|         permission('is_read', $this->route, 'module',true);
 | |
| 
 | |
|         $data['title'] = 'Profile Sekolah';
 | |
|         $data['route'] = $this->route;
 | |
|         if(session('group_alias') == 'sekolah'){
 | |
| 
 | |
|             $profile = Profile::where('user_id',auth()->user()->id)->first();
 | |
|             $jumlah = json_decode($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($profile->penghematan_air);
 | |
|             $data['air_sebelum_pblhs'] = @$air->air_sebelum_pblhs;
 | |
|             $data['air_setelah_pblhs'] = @$air->air_setelah_pblhs;
 | |
| 
 | |
|             $listrik = json_decode($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;
 | |
|             $data['sk']         = SK::where('tahun',date('Y'))->where('sekolah','like','%'.session('sekolah_id').'%')->first();
 | |
|             
 | |
|             return view($this->template.'.sekolah', $data);
 | |
|         }else{
 | |
|             $data['provinsi'] = Provinsi::where('kode_wilayah','010000')->get();
 | |
|             return view($this->template.'.admin', $data);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function grid(Request $request)
 | |
|     {
 | |
|         $profile = Profile::groupBy('ms_sekolah_id')->pluck('ms_sekolah_id')->toArray();
 | |
|         $sekolah = Sekolah::whereIn('MsSekolahId',$profile)->get();
 | |
|         foreach ($sekolah as $key => $row) {
 | |
| 
 | |
|             $action = '';
 | |
| 
 | |
|             if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){
 | |
|                 $action .= '<a href="'.url('profile-sekolah/update/'.encode_id($row->MsSekolahId)).'" data-toggle="tooltip" title="Edit Data" class="btn btn-xs btn-block btn-primary"><i class="fal fa-pencil text-white"></i></a>';
 | |
|             }
 | |
| 
 | |
|             $kuesioner  = Kuesioner::where('ms_sekolah_id',$row->MsSekolahId)->where('tahun',date('Y'))->orderBy('created_at','DESC')->first();
 | |
|             $log  = KuesionerLog::where('kuesioner_id',@$kuesioner->KuesionerId)->orderBy('created_at','DESC')->first();
 | |
|             if(@$log){
 | |
|                 $progress = '<span class="badge bg-warning-light text-warning">'.str_replace('_',' ',\Str::title($log->step)).'</span>';
 | |
|             }else{
 | |
|                 $progress = '';
 | |
|             }
 | |
| 
 | |
|             if(@$kuesioner->level == 0){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Belum Pernah';
 | |
|             }elseif(@$kuesioner->level == 1){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Adiwiyata Kab/Kota';
 | |
|             }elseif(@$kuesioner->level == 2){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Adiwiyata Provinsi';
 | |
|             }elseif(@$kuesioner->level == 3){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Adiwiyata Nasional';
 | |
|             }elseif(@$kuesioner->level == 4){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Adiwiyata Mandiri';
 | |
|             }
 | |
| 
 | |
|             if((@$kuesioner->level+1) == 1){
 | |
|                 $jenis_usulan = 'Adiwiyata Kab/Kota';
 | |
|             }elseif((@$kuesioner->level+1) == 2){
 | |
|                 $jenis_usulan = 'Adiwiyata Provinsi';
 | |
|             }elseif((@$kuesioner->level+1) == 3){
 | |
|                 $jenis_usulan = 'Adiwiyata Nasional';
 | |
|             }elseif((@$kuesioner->level+1) == 4){
 | |
|                 $jenis_usulan = 'Adiwiyata Mandiri';
 | |
|             }
 | |
| 
 | |
|             $penilaian = '';
 | |
|             $penilaian .= '<span style="width:100%;" class="text-left badge bg-secondary text-secondary"> Sekolah : '.getNilaiAll('sekolah',$row->MsSekolahId).'</span></br>';
 | |
|             if((@$kuesioner->level+1) == 1){
 | |
|                 $penilaian .= '<span style="width:100%;" class="text-left badge bg-primary-light text-primary"> Kota : '.getNilaiAll('kota',$row->MsSekolahId).'</span></br>';
 | |
|             }
 | |
|             if((@$kuesioner->level+1) == 2){
 | |
|                 $penilaian .= '<span style="width:100%;" class="text-left badge bg-primary-light text-primary"> Kota : '.getNilaiAll('kota',$row->MsSekolahId).'</span></br>';
 | |
|                 $penilaian .= '<span style="width:100%;" class="text-left badge bg-success-light text-success"> Provinsi : '.getNilaiAll('provinsi',$row->MsSekolahId).'</span></br>';
 | |
|             }
 | |
| 
 | |
|             $_data[] = [
 | |
|                 'no'                => $key+1,
 | |
|                 'id'                => encode_id($row->id),
 | |
|                 'npsn'              => $row->npsn,
 | |
|                 'nama'              => $row->nama_sekolah,
 | |
|                 'status_level'      => '<span class="badge bg-success-light text-success">Level '.levelAdiwiyata($row->npsn).'</span>',
 | |
|                 'wilayah'           => $row->kabupaten->name,
 | |
|                 'tanggal_level'     => '-',
 | |
|                 'penghargaan'       => $penghargaan,
 | |
|                 'dok'               => '-',
 | |
|                 'kriteria'          => $penilaian,
 | |
|                 'jenis_usulan'      => $jenis_usulan,
 | |
|                 'usulkan_csa'       => $progress,
 | |
|                 'perpanjang_csa'    => '-',
 | |
|                 'action'    => $action,
 | |
|             ];
 | |
| 
 | |
|         }
 | |
| 
 | |
|         return response()->json($_data);
 | |
|     }
 | |
| 
 | |
|     public function store(Request $request)
 | |
|     {
 | |
|         permission('is_update', $this->route, 'module',true);
 | |
| 
 | |
|         try {
 | |
|             Validator::make($request->all(), [
 | |
|                 'jumlah_peserta_didik'         => 'required',
 | |
|                 'jumlah_tenaga_pendidik'       => 'required',
 | |
|                 'jumlah_tenaga_kependidikan'   => 'required',
 | |
|                 'jumlah_warga_sekolah_lainnya' => 'required',
 | |
|                 'jumlah_biopori'               => 'required',
 | |
|                 'jumlah_sumur_resapan'         => 'required',
 | |
|                 'jumlah_pohon'                 => 'required',
 | |
| 
 | |
|                 'air_sebelum_pblhs'            => 'required',
 | |
|                 'air_setelah_pblhs'            => 'required',
 | |
| 
 | |
|                 'listrik_sebelum_pblhs'        => 'required',
 | |
|                 'listrik_setelah_pblhs'        => 'required',
 | |
|                 'luas_ruangan_ac'              => 'required',
 | |
|                 'luas_ruangan_non_ac'          => 'required',
 | |
|                 'jumlah_kader'                 => 'required',
 | |
|             ],[
 | |
|                 'jumlah_peserta_didik.required'         => 'Jumlah Peserta Didik Tidak Boleh Kosong',
 | |
|                 'jumlah_tenaga_pendidik.required'       => 'Jumlah Tenaga Pendidik Tidak Boleh Kosong',
 | |
|                 'jumlah_tenaga_kependidikan.required'   => 'Jumlah Tenaga Kependidikan Tidak Boleh Kosong',
 | |
|                 'jumlah_warga_sekolah_lainnya.required' => 'Jumlah Warga Sekolah Lainnya Tidak Boleh Kosong',
 | |
|                 'jumlah_biopori.required'               => 'Jumlah Biopori Tidak Boleh Kosong',
 | |
|                 'jumlah_sumur_resapan.required'         => 'Jumlah Sumur Resapan Tidak Boleh Kosong',
 | |
|                 'jumlah_pohon.required'                 => 'Jumlah Pohon Tidak Boleh Kosong',
 | |
| 
 | |
|                 'air_sebelum_pblhs.required'            => 'Penghematan Air Sebelum PBLHS Tidak Boleh Kosong',
 | |
|                 'air_setelah_pblhs.required'            => 'Penghematan Air Setelah PBLHS Tidak Boleh Kosong',
 | |
| 
 | |
|                 'listrik_sebelum_pblhs.required'        => 'Penghematan Listrik Sebelum PBLHS Tidak Boleh Kosong',
 | |
|                 'listrik_setelah_pblhs.required'        => 'Penghematan Listrik Setelah PBLHS Tidak Boleh Kosong',
 | |
|                 'luas_ruangan_ac.required'              => 'Penghematan Listrik Luas Ruangan Ber-AC Tidak Boleh Kosong',
 | |
|                 'luas_ruangan_non_ac.required'          => 'Penghematan Listrik Luas Ruangan Non-AC Tidak Boleh Kosong',
 | |
|                 'jumlah_kader.required'                 => 'Jumlah Kader Tidak Boleh Kosong',
 | |
|             ])->validate();
 | |
| 
 | |
|             // dd($request->all());
 | |
| 
 | |
|             $jumlah = [];
 | |
|             $jumlah['jumlah_peserta_didik']         = $request->jumlah_peserta_didik;
 | |
|             $jumlah['jumlah_tenaga_pendidik']       = $request->jumlah_tenaga_pendidik;
 | |
|             $jumlah['jumlah_tenaga_kependidikan']   = $request->jumlah_tenaga_kependidikan;
 | |
|             $jumlah['jumlah_warga_sekolah_lainnya'] = $request->jumlah_warga_sekolah_lainnya;
 | |
|             $jumlah['jumlah_biopori']               = $request->jumlah_biopori;
 | |
|             $jumlah['jumlah_sumur_resapan']         = $request->jumlah_sumur_resapan;
 | |
|             $jumlah['jumlah_pohon']                 = $request->jumlah_pohon;
 | |
| 
 | |
|             $air = [];
 | |
|             $air['air_sebelum_pblhs'] = $request->air_sebelum_pblhs;
 | |
|             $air['air_setelah_pblhs'] = $request->air_setelah_pblhs;
 | |
| 
 | |
|             $listrik = [];
 | |
|             $listrik['listrik_sebelum_pblhs'] = $request->listrik_sebelum_pblhs;
 | |
|             $listrik['listrik_setelah_pblhs'] = $request->listrik_setelah_pblhs;
 | |
|             $listrik['luas_ruangan_ac']       = $request->luas_ruangan_ac;
 | |
|             $listrik['luas_ruangan_non_ac']   = $request->luas_ruangan_non_ac;
 | |
|             $listrik['jumlah_kader']          = $request->jumlah_kader;
 | |
| 
 | |
| 
 | |
|             $profile = Profile::where('user_id',auth()->user()->id)->first();
 | |
|             $profile->data_jumlah           = json_encode($jumlah);
 | |
|             $profile->penghematan_air       = json_encode($air);
 | |
|             $profile->penghematan_listrik   = json_encode($listrik);
 | |
|             $profile->save();
 | |
| 
 | |
|             logActivity($request, __('Insert',['val' => strtolower(__('Title',['user' => auth()->user()->id]))]));
 | |
|             return redirect()->back()->with('message', __('Berhasil Update Data'))->with('type', 'success');
 | |
|         } catch (Exception $e) {
 | |
|             throw new GeneralException(__('Maaf Terjadi Kesalahan'));
 | |
|         }
 | |
| 
 | |
|         
 | |
|     }
 | |
| }
 |