From ff118b0a534b4074aaa478cf81c33e2f19b762b3 Mon Sep 17 00:00:00 2001 From: ilhamwara Date: Wed, 19 Mar 2025 14:56:22 +0700 Subject: [PATCH] update --- app/Http/Controllers/HomeController.php | 9 +++ app/Http/Controllers/KuesionerController.php | 40 ++++++++++-- .../Management/UserSekolahController.php | 1 + .../Modules/Usulan/KriteriaController.php | 7 ++ app/Models/{Usulan.php => KuesionerLog.php} | 6 +- app/Models/Master/Sekolah.php | 5 ++ app/Models/Penilaian.php | 28 ++++---- ...5_03_10_084850_create_penilaians_table.php | 1 + ...2025_03_13_114216_create_usulans_table.php | 27 -------- ...3_114222_create_usulan_approvals_table.php | 27 -------- ..._19_135521_create_kuesioner_logs_table.php | 40 ++++++++++++ .../views/modules/dashboard/sekolah.blade.php | 64 ++++++++++++++----- .../views/modules/kuesioner/form.blade.php | 5 +- .../management/user_sekolah/index.blade.php | 43 +++++++++++++ 14 files changed, 214 insertions(+), 89 deletions(-) rename app/Models/{Usulan.php => KuesionerLog.php} (50%) delete mode 100644 database/migrations/2025_03_13_114216_create_usulans_table.php delete mode 100644 database/migrations/2025_03_13_114222_create_usulan_approvals_table.php create mode 100644 database/migrations/2025_03_19_135521_create_kuesioner_logs_table.php 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 @@
-
-
+
+
-
+
    -
  • -
     Registrasi Akun
    +
  • +
    + + Registrasi Akun +
  • -
  • -
     Melengkapi Data Profile
    +
  • +
    + + Melengkapi Data Profile +
  • -
  • -
     Mengisi Kuesioner Leveling
    +
  • +
    + + Mengisi Kuesioner Leveling +
  • -
  • -
     Menunggu Diusulkan CSA
    +
  • +
    + + Menunggu Diusulkan CSA +
  • -
  • -
     Melengkapi Data CSA
    +
  • +
    + + Melengkapi Data CSA +
@@ -109,9 +124,27 @@

Status Usulan

-

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 +
+ Belum ada data usulan +
+ @endif
+ @if(@$usulan) @@ -130,6 +163,7 @@
Penghargaan Terakhir--
+ @endif
diff --git a/resources/views/modules/kuesioner/form.blade.php b/resources/views/modules/kuesioner/form.blade.php index 3f20d5c..1844067 100644 --- a/resources/views/modules/kuesioner/form.blade.php +++ b/resources/views/modules/kuesioner/form.blade.php @@ -74,7 +74,10 @@

{{@$nama_sekolah}}

- {{@$tingkat}} {{$status}} + + {{@$tingkat}} + {{@$status}} +

{{@$alamat_sekolah}}

diff --git a/resources/views/modules/management/user_sekolah/index.blade.php b/resources/views/modules/management/user_sekolah/index.blade.php index c4853f0..c880648 100644 --- a/resources/views/modules/management/user_sekolah/index.blade.php +++ b/resources/views/modules/management/user_sekolah/index.blade.php @@ -66,6 +66,49 @@ @endsection @section('page-js')