diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 6f058af..3fa3c2c 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -3,6 +3,10 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Models\Kuesioner; +use App\Models\ProfileSekolah; +use App\Models\Master\FormKriteria; +use App\Models\Penilaian; class HomeController extends Controller { @@ -33,6 +37,11 @@ class HomeController extends Controller $data['title'] = 'Dashboard'; $data['group'] = session('group_alias'); if(session('group_alias') == 'sekolah'){ + $data['usulan'] = 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{ return view($this->template.'.admin', $data); diff --git a/app/Http/Controllers/KuesionerController.php b/app/Http/Controllers/KuesionerController.php index ebd4384..5e802d5 100644 --- a/app/Http/Controllers/KuesionerController.php +++ b/app/Http/Controllers/KuesionerController.php @@ -9,7 +9,9 @@ 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\Provinsi; +use App\Models\Master\Sekolah; class KuesionerController extends Controller { @@ -19,7 +21,18 @@ class KuesionerController extends Controller public function index() { permission('is_read', $this->route, 'module',true); - if(auth()->user()->group->alias == 'sekolah'){ + + + if(session('group_alias') == 'sekolah'){ + + $data['profile'] = Profile::where('ms_sekolah_id',session('sekolah_id'))->first(); + if(!@$data['profile']->data_jumlah && !@$data['profile']->penghematan_air && !@$data['profile']->penghematan_listrik){ + return redirect('profile-sekolah/')->with([ + 'message' => 'Silahkan lengkapi data profile sekolah', + 'type' => 'error', + ]); + } + return redirect('kuesioner/update/'.encode_id(session('sekolah_id'))); } @@ -88,11 +101,13 @@ class KuesionerController extends Controller $data['kuesioner'] = $kuesioner; } - $data['nama_sekolah'] = $kuesioner->sekolah->nama_sekolah; - $data['npsn'] = $kuesioner->sekolah->npsn; - $data['status'] = $kuesioner->sekolah->status; - $data['alamat_sekolah'] = $kuesioner->profile->alamat_sekolah; - $data['tingkat'] = $kuesioner->profile->tingkat->name; + $sekolah = Sekolah::where('MsSekolahId',$keyId)->first(); + + $data['nama_sekolah'] = @$sekolah->nama_sekolah; + $data['npsn'] = @$sekolah->npsn; + $data['status'] = @$sekolah->status; + $data['alamat_sekolah'] = @$sekolah->profile->alamat_sekolah; + $data['tingkat'] = @$sekolah->profile->tingkat->name; $media = json_decode(@$kuesioner->media); $data['selectedMediaValues'] = collect($media)->pluck('value')->toArray(); // Ambil value yang dipilih @@ -298,6 +313,19 @@ class KuesionerController extends Controller $insert->tim_adiwiyata_link = @$request->tim_adiwiyata_link; $insert->save(); + + //kuesioner log + $log = new KuesionerLog; + $log->kuesioner_id = $insert->KuesionerId; + $log->ms_sekolah_id = session('sekolah_id'); + $log->npsn = session('npsn'); + $log->ms_group_id = session('group_id'); + $log->step = 'create_kuesioner'; + $log->status = 0; + $log->created_by = auth()->user()->id; + $log->save(); + + logActivity($request, __('Create',['val' => strtolower(__('Title',['val' => 'Kuesioner Leveling User ID : '.auth()->user()->id]))])); return redirect()->back()->with([ diff --git a/app/Http/Controllers/Management/UserSekolahController.php b/app/Http/Controllers/Management/UserSekolahController.php index b2d73c4..10ec1e2 100644 --- a/app/Http/Controllers/Management/UserSekolahController.php +++ b/app/Http/Controllers/Management/UserSekolahController.php @@ -47,6 +47,7 @@ class UserSekolahController extends Controller if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ $action .= ''; if(session('group_id') == 1){ + $action .= ''; $action .= ''; } } diff --git a/app/Http/Controllers/Modules/Usulan/KriteriaController.php b/app/Http/Controllers/Modules/Usulan/KriteriaController.php index af1391b..7569cc4 100644 --- a/app/Http/Controllers/Modules/Usulan/KriteriaController.php +++ b/app/Http/Controllers/Modules/Usulan/KriteriaController.php @@ -18,6 +18,13 @@ class KriteriaController extends Controller { 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', + ]); + } + $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(); diff --git a/app/Models/Usulan.php b/app/Models/KuesionerLog.php similarity index 50% rename from app/Models/Usulan.php rename to app/Models/KuesionerLog.php index c0e9ff1..307c644 100644 --- a/app/Models/Usulan.php +++ b/app/Models/KuesionerLog.php @@ -5,7 +5,11 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class Usulan extends Model +class KuesionerLog extends Model { use HasFactory; + + protected $table = 'kuesioner_log'; + protected $primaryKey = 'KuesionerLogId'; + protected $guarded = []; } diff --git a/app/Models/Master/Sekolah.php b/app/Models/Master/Sekolah.php index 5c28cde..e914dc1 100644 --- a/app/Models/Master/Sekolah.php +++ b/app/Models/Master/Sekolah.php @@ -24,6 +24,11 @@ class Sekolah extends Model 'long', ]; + public function profile() + { + return $this->belongsTo(\App\Models\ProfileSekolah::class,'MsSekolahId','ms_sekolah_id'); + } + public function provinsi() { return $this->belongsTo(\App\Models\Master\Provinsi::class,'ms_provinsi_id','MsProvinsiId'); diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php index 801d5b4..9d83f51 100644 --- a/app/Models/Penilaian.php +++ b/app/Models/Penilaian.php @@ -11,16 +11,20 @@ class Penilaian extends Model protected $table = 'penilaian'; protected $primaryKey = 'PenilaianId'; - protected $fillable = [ - 'ms_sekolah_id', - 'npsn', - // 'ms_form_kriteria_id', - 'key', - 'page_number', - 'value', - 'skor', - 'status', - 'tahun', - 'created_by', - ]; + + protected $guarded = []; + + // protected $fillable = [ + // 'ms_sekolah_id', + // 'npsn', + // // 'ms_form_kriteria_id', + // 'key', + // 'page_number', + // 'value', + // 'skor', + // 'status', + // 'tahun', + // 'created_by', + // 'level_adiwiyata', + // ]; } diff --git a/database/migrations/2025_03_10_084850_create_penilaians_table.php b/database/migrations/2025_03_10_084850_create_penilaians_table.php index a6e9f18..596b5d8 100644 --- a/database/migrations/2025_03_10_084850_create_penilaians_table.php +++ b/database/migrations/2025_03_10_084850_create_penilaians_table.php @@ -21,6 +21,7 @@ return new class extends Migration $table->json('value')->nullable(); $table->integer('skor')->default(0); $table->integer('status')->nullable(); + $table->integer('level_adiwiyata')->default(0); $table->year('tahun')->nullable(); $table->integer('created_by'); $table->timestamps(); diff --git a/database/migrations/2025_03_13_114216_create_usulans_table.php b/database/migrations/2025_03_13_114216_create_usulans_table.php deleted file mode 100644 index f42e95a..0000000 --- a/database/migrations/2025_03_13_114216_create_usulans_table.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('usulans'); - } -}; diff --git a/database/migrations/2025_03_13_114222_create_usulan_approvals_table.php b/database/migrations/2025_03_13_114222_create_usulan_approvals_table.php deleted file mode 100644 index ffd0a1a..0000000 --- a/database/migrations/2025_03_13_114222_create_usulan_approvals_table.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('usulan_approvals'); - } -}; diff --git a/database/migrations/2025_03_19_135521_create_kuesioner_logs_table.php b/database/migrations/2025_03_19_135521_create_kuesioner_logs_table.php new file mode 100644 index 0000000..f4e4a8d --- /dev/null +++ b/database/migrations/2025_03_19_135521_create_kuesioner_logs_table.php @@ -0,0 +1,40 @@ +id('KuesionerLogId'); + $table->integer('kuesioner_id'); + $table->integer('ms_sekolah_id'); + $table->integer('npsn'); + $table->integer('ms_group_id'); + $table->string('step')->nullable(); + $table->text('note')->nullable(); + $table->integer('status'); + $table->integer('created_by'); + $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('ms_group_id')->references('MsGroupId')->on('ms_group')->onDelete('cascade'); + $table->foreign('created_by')->references('id')->on('users')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kuesioner_log'); + } +}; diff --git a/resources/views/modules/dashboard/sekolah.blade.php b/resources/views/modules/dashboard/sekolah.blade.php index 1462bcc..8b9f27a 100644 --- a/resources/views/modules/dashboard/sekolah.blade.php +++ b/resources/views/modules/dashboard/sekolah.blade.php @@ -40,25 +40,40 @@
Sekolah diusulan untuk menjadi CSA (Calon Sekolah Adiwiyata) Nasional
- Silahkan lengkapi data pada menu Usulan Adiwiyata. + @if(@$usulan && (@$usulan->status == 1)) + level == 0){ + $textLevel = 'Kabupaten/Kota'; + }elseif(@$usulan->level == 1){ + $textLevel = 'Provinsi'; + }elseif(@$usulan->level == 2){ + $textLevel = 'Nasional'; + }elseif(@$usulan->level == 3){ + $textLevel = 'Mandiri'; + } + ?> +Sekolah diusulan untuk menjadi CSA (Calon Sekolah Adiwiyata) {{@$textLevel}}
+ Silahkan lengkapi data pada menu Usulan Adiwiyata. + @else +Penghargaan Terakhir | @@ -130,6 +163,7 @@-- |
---|
{{@$alamat_sekolah}}