diff --git a/app/Helpers/custom.php b/app/Helpers/custom.php index 38d098f..3aa6130 100644 --- a/app/Helpers/custom.php +++ b/app/Helpers/custom.php @@ -226,7 +226,11 @@ if (!function_exists('kuesionerLogStatus')) { if($plain == 'plain'){ $progress = str_replace('_',' ',\Str::title($log->step)); }else{ - $progress = ''.str_replace('_',' ',\Str::title($log->step)).''; + if($log->status == 11){ + $progress = 'Terbit SK'; + }else{ + $progress = ''.str_replace('_',' ',\Str::title($log->step)).''; + } } return $progress; } @@ -716,6 +720,12 @@ if (!function_exists('formKriteria')) { $status = 1; }elseif(session('group_alias') == 'penilai_provinsi'){ $status = 2; + }else{ + if(@$type == 'kota'){ + $status = 1; + }elseif(@$type == 'provinsi'){ + $status = 2; + } } foreach($kriteria as $keyKriteria => $data){ diff --git a/app/Http/Controllers/Auth/CustomLoginController.php b/app/Http/Controllers/Auth/CustomLoginController.php index a141ae7..854bafc 100644 --- a/app/Http/Controllers/Auth/CustomLoginController.php +++ b/app/Http/Controllers/Auth/CustomLoginController.php @@ -50,6 +50,7 @@ class CustomLoginController extends Controller 'telp' => @$user->profile->telp, 'currYear' => date('Y'), 'group_id' => @$user->ms_group_id, + 'kabupaten_id' => @$user->ms_kabupaten_id, 'group_alias' => @$user->group->alias, 'group_name' => @$user->group->name, ]; diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index c59dd27..bebc4ed 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -66,7 +66,13 @@ class HomeController extends Controller public function gridUsulan(Request $request) { - $usulan = Kuesioner::where('tahun',date('Y'))->get(); + if(session('kabupaten_id') != ''){ + $usulan = Kuesioner::whereHas('sekolah',function($query){ + $query->where('ms_kabupaten_id',session('kabupaten_id')); + })->where('tahun',date('Y'))->get(); + }else{ + $usulan = Kuesioner::where('tahun',date('Y'))->get(); + } $_data = []; foreach ($usulan as $key => $row) { $action = ''; @@ -104,6 +110,7 @@ class HomeController extends Controller 'nama_sekolah' => @$sekolah, 'npsn' => @$row->sekolah->npsn, 'kab' => @$row->sekolah->kabupaten->name, + 'kecamatan' => @$row->sekolah->kecamatan->name, 'usulan_sebelumnya' => @$usulanAwal, 'pengajuan_usulan' => @$jenis_usulan, ]; diff --git a/app/Http/Controllers/KuesionerController.php b/app/Http/Controllers/KuesionerController.php index 8b4d78d..6fd937a 100644 --- a/app/Http/Controllers/KuesionerController.php +++ b/app/Http/Controllers/KuesionerController.php @@ -47,7 +47,14 @@ class KuesionerController extends Controller public function grid(Request $request) { - $kuesioner = Kuesioner::orderBy('created_at','DESC')->get(); + if(session('kabupaten_id') != ''){ + $kuesioner = Kuesioner::whereHas('sekolah',function($query){ + $query->where('ms_kabupaten_id',session('kabupaten_id')); + })->where('tahun',date('Y'))->get(); + }else{ + $kuesioner = Kuesioner::where('tahun',date('Y'))->get(); + } + foreach ($kuesioner as $key => $row) { $action = ''; @@ -81,6 +88,8 @@ class KuesionerController extends Controller $status = 'Sudah Diverifikasi'; }elseif($row->status == 2){ $status = 'Ditolak'; + }elseif($row->status == 11){ + $status = 'Terbit SK'; }else{ $log = KuesionerLog::where('kuesioner_id',$row->KuesionerId)->orderBy('created_at','DESC')->first(); $status = ''.str_replace('_',' ',\Str::title($log->step)).''; @@ -99,6 +108,7 @@ class KuesionerController extends Controller 'nama' => $sekolah, 'status_level' => 'Level '.levelAdiwiyata($row->npsn).'', 'wilayah' => $row->sekolah->kabupaten->name, + 'kecamatan' => $row->sekolah->kecamatan->name, 'alamat_sekolah' => $row->sekolah->alamat_sekolah, 'tingkat_sekolah' => $row->sekolah->tingkat->name, 'status_sekolah' => $row->sekolah->status, diff --git a/app/Http/Controllers/Management/UserController.php b/app/Http/Controllers/Management/UserController.php index 10229cb..ee84e10 100644 --- a/app/Http/Controllers/Management/UserController.php +++ b/app/Http/Controllers/Management/UserController.php @@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use App\Models\User; use App\Models\Master\MasterGroup; +use App\Models\Master\Kabupaten; use App\Models\ProfileSekolah as Profile; class UserController extends Controller @@ -62,6 +63,7 @@ class UserController extends Controller 'role' => @$row->group->name, 'username' => @$row->username, 'email' => @$row->email, + 'wilayah' => @$row->kabupaten->name, 'created_at' => dateTime(@$row->created_at), 'action' => @$action, ]; @@ -95,6 +97,7 @@ class UserController extends Controller 'email' => 'required|unique:users,email,'.$keyId.'|email', 'name' => 'required|max:50', 'group' => 'required', + 'ms_kabupaten_id' => 'required', 'username' => 'required|unique:users,username,'.$keyId, 'password' => 'nullable|min:8|regex:/[a-z]/|regex:/[A-Z]/|regex:/[0-9]/|regex:/[@$!%*#?&]/', //min 8 char, maks 15 char, min 1 symbol, min 1 uppercase, min 1 lowercase, 1 number ],[ @@ -104,9 +107,10 @@ class UserController extends Controller ])->validate(); $user = User::find($keyId); - $user->email = $request->email; - $user->username = $request->username; - $user->ms_group_id = decode_id($request->group); + $user->email = $request->email; + $user->username = $request->username; + $user->ms_group_id = decode_id($request->group); + $user->ms_kabupaten_id = decode_id($request->ms_kabupaten_id); if(@$request->password){ $user->password = Hash::make($request->password); } @@ -117,6 +121,7 @@ class UserController extends Controller 'email' => 'required|unique:users,email|email', 'name' => 'required|max:50', 'group' => 'required', + 'ms_kabupaten_id' => 'required', 'username' => 'required|unique:users,username', 'password' => 'required|min:8|regex:/[a-z]/|regex:/[A-Z]/|regex:/[0-9]/|regex:/[@$!%*#?&]/', //min 8 char, maks 15 char, min 1 symbol, min 1 uppercase, min 1 lowercase, 1 number ],[ @@ -126,9 +131,10 @@ class UserController extends Controller ])->validate(); $user = new User; - $user->email = $request->email; - $user->username = $request->username; - $user->ms_group_id = decode_id($request->group); + $user->email = $request->email; + $user->username = $request->username; + $user->ms_group_id = decode_id($request->group); + $user->ms_kabupaten_id = decode_id($request->ms_kabupaten_id); if(@$request->password){ $user->password = Hash::make($request->password); } @@ -181,6 +187,7 @@ class UserController extends Controller $data['keyId'] = $id; $data['item'] = User::with('profile')->where('id',$keyId)->first(); $data['group'] = MasterGroup::where('MsGroupId','!=',1)->get(); + $data['kabupaten'] = Kabupaten::all(); return view($this->template.'.form',$data); } @@ -231,6 +238,7 @@ class UserController extends Controller 'telp' => @$user->profile->telp, 'currYear' => date('Y'), 'group_id' => @$user->ms_group_id, + 'kabupaten_id' => @$user->ms_kabupaten_id, 'group_alias' => @$user->group->alias, 'group_name' => @$user->group->name, ]; diff --git a/app/Http/Controllers/Modules/Usulan/AdministrasiController.php b/app/Http/Controllers/Modules/Usulan/AdministrasiController.php index 3e0507a..00985d6 100644 --- a/app/Http/Controllers/Modules/Usulan/AdministrasiController.php +++ b/app/Http/Controllers/Modules/Usulan/AdministrasiController.php @@ -32,7 +32,13 @@ class AdministrasiController extends Controller 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(); + if(session('kabupaten_id') != ''){ + $kuesioner = Kuesioner::whereHas('sekolah',function($query){ + $query->where('ms_kabupaten_id',session('kabupaten_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) { @@ -144,6 +150,7 @@ class AdministrasiController extends Controller 'labelDok' => $labelDok, 'status_level' => 'Level '.levelAdiwiyata($row->npsn).'', 'wilayah' => $row->sekolah->kabupaten->name, + 'kecamatan' => $row->sekolah->kecamatan->name, 'penghargaan' => $penghargaan, 'jenis_usulan' => ''.$jenis_usulan.'', 'usulan' => $fileUsulan, diff --git a/app/Http/Controllers/Modules/Usulan/CSAKController.php b/app/Http/Controllers/Modules/Usulan/CSAKController.php index 3717e24..da0fed1 100644 --- a/app/Http/Controllers/Modules/Usulan/CSAKController.php +++ b/app/Http/Controllers/Modules/Usulan/CSAKController.php @@ -77,14 +77,23 @@ class CSAKController extends Controller public function grid(Request $request) { - $kuesioner = Kuesioner::where('level',0)->orderBy('created_at','DESC')->get(); + // $kuesioner = Kuesioner::where('level',0)->orderBy('created_at','DESC')->get(); + + if(session('kabupaten_id') != ''){ + $kuesioner = Kuesioner::where('level',0)->whereHas('sekolah',function($query){ + $query->where('ms_kabupaten_id',session('kabupaten_id')); + })->where('tahun',date('Y'))->orderBy('created_at','DESC')->get(); + }else{ + $kuesioner = Kuesioner::where('level',0)->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.'.*'))){ - if($row->status == 3){ + // if($row->status == 3){ $action .= ''; - } + // } } if($row->level == 0){ @@ -128,6 +137,7 @@ class CSAKController extends Controller 'nama' => $sekolah, 'status_level' => 'Level '.levelAdiwiyata($row->npsn).'', 'wilayah' => $row->sekolah->kabupaten->name, + 'kecamatan' => $row->sekolah->kecamatan->name, 'penghargaan' => $penghargaan, 'penilaian' => $penilaian, 'progress' => kuesionerLogStatus($row->KuesionerId), diff --git a/app/Http/Controllers/Modules/Usulan/CSAPController.php b/app/Http/Controllers/Modules/Usulan/CSAPController.php index d3cecf0..5b11bc5 100644 --- a/app/Http/Controllers/Modules/Usulan/CSAPController.php +++ b/app/Http/Controllers/Modules/Usulan/CSAPController.php @@ -78,7 +78,14 @@ class CSAPController extends Controller public function grid(Request $request) { - $kuesioner = Kuesioner::where('level',1)->orderBy('created_at','DESC')->get(); + if(session('kabupaten_id') != ''){ + $kuesioner = Kuesioner::where('level',1)->whereHas('sekolah',function($query){ + $query->where('ms_kabupaten_id',session('kabupaten_id')); + })->where('tahun',date('Y'))->orderBy('created_at','DESC')->get(); + }else{ + $kuesioner = Kuesioner::where('level',1)->where('tahun',date('Y'))->orderBy('created_at','DESC')->get(); + } + foreach ($kuesioner as $key => $row) { $action = ''; @@ -133,6 +140,7 @@ class CSAPController extends Controller 'npsn' => $row->sekolah->npsn, 'nama' => $sekolah, 'wilayah' => $row->sekolah->kabupaten->name, + 'kecamatan' => $row->sekolah->kecamatan->name, 'penilaian' => $penilaian, 'progress' => kuesionerLogStatus($row->KuesionerId), 'action' => $action, diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 9a9422e..d44f9a8 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -59,7 +59,11 @@ class ProfileController extends Controller public function grid(Request $request) { $profile = Profile::groupBy('ms_sekolah_id')->pluck('ms_sekolah_id')->toArray(); - $sekolah = Sekolah::whereIn('MsSekolahId',$profile)->get(); + if(session('kabupaten_id') != ''){ + $sekolah = Sekolah::whereIn('MsSekolahId',$profile)->where('ms_kabupaten_id',session('kabupaten_id'))->get(); + }else{ + $sekolah = Sekolah::whereIn('MsSekolahId',$profile)->get(); + } foreach ($sekolah as $key => $row) { $action = ''; @@ -114,6 +118,7 @@ class ProfileController extends Controller 'npsn' => $row->npsn, 'nama' => $row->nama_sekolah, 'status_level' => 'Level '.levelAdiwiyata($row->npsn).'', + 'kecamatan' => $row->kecamatan->name, 'wilayah' => $row->kabupaten->name, 'tanggal_level' => '-', 'penghargaan' => $penghargaan, diff --git a/app/Models/User.php b/app/Models/User.php index f5312d0..b9574d1 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -55,4 +55,9 @@ class User extends Authenticatable { return $this->belongsTo(\App\Models\Master\MasterGroup::class,'ms_group_id','MsGroupId'); } + + public function kabupaten() + { + return $this->belongsTo(\App\Models\Master\Kabupaten::class,'ms_kabupaten_id','MsKabupatenId'); + } } diff --git a/database/migrations/2025_08_07_090555_add_column_kabupaten_id.php b/database/migrations/2025_08_07_090555_add_column_kabupaten_id.php new file mode 100644 index 0000000..fcacf03 --- /dev/null +++ b/database/migrations/2025_08_07_090555_add_column_kabupaten_id.php @@ -0,0 +1,29 @@ +integer('ms_kabupaten_id')->nullable(); + $table->foreign('ms_kabupaten_id')->references('MsKabupatenId')->on('ms_kabupaten')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/resources/views/modules/dashboard/admin.blade.php b/resources/views/modules/dashboard/admin.blade.php index 3b974e9..99cacf7 100644 --- a/resources/views/modules/dashboard/admin.blade.php +++ b/resources/views/modules/dashboard/admin.blade.php @@ -179,6 +179,7 @@