';
@@ -425,12 +448,15 @@ if (!function_exists('formKriteria')) {
}
}
+ $link = Penilaian::where('key','link_grdive')->where('page_number',$page_number)->where('ms_sekolah_id',session('sekolah_id'))->first();
+ $valueLink = json_decode(@$link->value);
+
$html .= '
';
$html .= '
';
$html .= '
';
diff --git a/app/Http/Controllers/KuesionerController.php b/app/Http/Controllers/KuesionerController.php
index 506c94b..52d66f7 100644
--- a/app/Http/Controllers/KuesionerController.php
+++ b/app/Http/Controllers/KuesionerController.php
@@ -9,6 +9,7 @@ use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use App\Models\ProfileSekolah as Profile;
use App\Models\Kuesioner;
+use App\Models\Master\Provinsi;
class KuesionerController extends Controller
{
@@ -18,34 +19,98 @@ class KuesionerController extends Controller
public function index()
{
permission('is_read', $this->route, 'module',true);
+ if(auth()->user()->group->alias != 'administrator'){
+ return redirect('kuesioner/update');
+ }
+
+ $data['provinsi'] = Provinsi::where('kode_wilayah','010000')->get();
+ $data['title'] = 'Kuesioner Leveling';
+ $data['route'] = $this->route;
+ return view($this->template.'.index', $data);
+ }
+
+ public function grid(Request $request)
+ {
+ $kuesioner = Kuesioner::orderBy('created_at','DESC')->get();
+ foreach ($kuesioner as $key => $row) {
+
+ $action = '';
+
+ if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){
+ $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';
+ }
+
+ $_data[] = [
+ 'no' => $key+1,
+ 'id' => encode_id($row->id),
+ 'npsn' => $row->sekolah->npsn,
+ 'nama' => $row->sekolah->nama_sekolah,
+ 'status_level' => '
Level '.levelAdiwiyata($row->npsn).'',
+ 'wilayah' => $row->sekolah->kabupaten->name,
+ 'alamat_sekolah' => $row->sekolah->alamat_sekolah,
+ 'tingkat_sekolah' => $row->sekolah->tingkat->name,
+ 'status_sekolah' => $row->sekolah->status,
+ 'alamat_sekolah' => $row->profile->alamat_sekolah,
+ 'penghargaan' => $penghargaan,
+ 'action' => $action,
+ ];
+
+ }
+
+ return response()->json($_data);
+ }
+
+ public function update($id = null)
+ {
+ permission('is_read', $this->route, 'module',true);
+
+ $keyId = @$id ? decode_id(@$id) : session('sekolah_id');
$data['title'] = 'Kuesioner Leveling';
$data['route'] = $this->route;
- $kuesioner = Kuesioner::where('user_id',auth()->user()->id)->where('tahun',date('Y'))->first();
+ $kuesioner = Kuesioner::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first();
if(@$kuesioner){
$data['kuesioner'] = $kuesioner;
}else{
- $kuesioner = Kuesioner::where('user_id',auth()->user()->id)->where('tahun',(date('Y')-1))->first();
+ $kuesioner = Kuesioner::where('ms_sekolah_id',$keyId)->where('tahun',(date('Y')-1))->first();
$data['kuesioner'] = $kuesioner;
}
- $media = json_decode(@$kuesioner->media);
- $data['selectedMediaValues'] = collect($media)->pluck('value')->toArray(); // Ambil value yang dipilih
- $data['selectedMediaTexts'] = collect($media)->keyBy('name');
+ $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;
- $materi = json_decode(@$kuesioner->materi);
- $data['selectedMateriValues'] = collect($materi)->pluck('value')->toArray(); // Ambil value yang dipilih
- $data['selectedMateriTexts'] = collect($materi)->keyBy('name');
+ $media = json_decode(@$kuesioner->media);
+ $data['selectedMediaValues'] = collect($media)->pluck('value')->toArray(); // Ambil value yang dipilih
+ $data['selectedMediaTexts'] = collect($media)->keyBy('name');
- $komitmen = json_decode(@$kuesioner->komitmen);
- $data['selectedKomitmenValues'] = collect($komitmen)->pluck('value')->toArray(); // Ambil value yang dipilih
- $data['selectedKomitmenTexts'] = collect($komitmen)->keyBy('name');
+ $materi = json_decode(@$kuesioner->materi);
+ $data['selectedMateriValues'] = collect($materi)->pluck('value')->toArray(); // Ambil value yang dipilih
+ $data['selectedMateriTexts'] = collect($materi)->keyBy('name');
- $kegiatan_lingkungan = json_decode(@$kuesioner->kegiatan_lingkungan);
- $data['selectedKegiatanLingkunganValues'] = collect($kegiatan_lingkungan)->pluck('value')->toArray(); // Ambil value yang dipilih
- $data['selectedKegiatanLingkunganTexts'] = collect($kegiatan_lingkungan)->keyBy('name');
+ $komitmen = json_decode(@$kuesioner->komitmen);
+ $data['selectedKomitmenValues'] = collect($komitmen)->pluck('value')->toArray(); // Ambil value yang dipilih
+ $data['selectedKomitmenTexts'] = collect($komitmen)->keyBy('name');
- $pihak_kegiatan_lingkungan = json_decode(@$kuesioner->pihak_kegiatan_lingkungan);
+ $kegiatan_lingkungan = json_decode(@$kuesioner->kegiatan_lingkungan);
+ $data['selectedKegiatanLingkunganValues'] = collect($kegiatan_lingkungan)->pluck('value')->toArray(); // Ambil value yang dipilih
+ $data['selectedKegiatanLingkunganTexts'] = collect($kegiatan_lingkungan)->keyBy('name');
+
+ $pihak_kegiatan_lingkungan = json_decode(@$kuesioner->pihak_kegiatan_lingkungan);
$data['selectedPihakKegiatanLingkunganValues'] = collect($pihak_kegiatan_lingkungan)->pluck('value')->toArray(); // Ambil value yang dipilih
$data['selectedPihakKegiatanLingkunganTexts'] = collect($pihak_kegiatan_lingkungan)->keyBy('name');
@@ -216,7 +281,8 @@ class KuesionerController extends Controller
}
$insert = new Kuesioner;
- $insert->user_id = auth()->user()->id;
+ $insert->ms_sekolah_id = session('sekolah_id');
+ $insert->created_by = auth()->user()->id;
$insert->npsn = session('npsn');
$insert->level = @$request->level;
$insert->tim_adiwiyata = @$request->tim_adiwiyata;
diff --git a/app/Http/Controllers/Modules/Usulan/KriteriaController.php b/app/Http/Controllers/Modules/Usulan/KriteriaController.php
index 247445f..af1391b 100644
--- a/app/Http/Controllers/Modules/Usulan/KriteriaController.php
+++ b/app/Http/Controllers/Modules/Usulan/KriteriaController.php
@@ -24,6 +24,27 @@ class KriteriaController extends Controller
return view($this->template.'.form',$data);
}
+ public function resume()
+ {
+ // 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();
+
+ return view($this->template.'.resume',$data);
+ }
+
+ public function progress()
+ {
+ // 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();
+
+ return view($this->template.'.progress',$data);
+ }
public function store(Request $request)
{
// dd();
@@ -104,6 +125,8 @@ class KriteriaController extends Controller
]);
}
}
+
+ return response()->json(['status' => true,'data' => $_value,'message' => 'Berhasil Update Data','page' => $data['key']]);
}
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
index 960d88e..5d9d604 100644
--- a/app/Http/Controllers/ProfileController.php
+++ b/app/Http/Controllers/ProfileController.php
@@ -8,6 +8,8 @@ use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use App\Models\ProfileSekolah as Profile;
+use App\Models\Master\Sekolah;
+use App\Models\Master\Provinsi;
class ProfileController extends Controller
{
@@ -45,10 +47,45 @@ class ProfileController extends Controller
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 .= '
';
+ }
+
+ $_data[] = [
+ 'no' => $key+1,
+ 'id' => encode_id($row->id),
+ 'npsn' => $row->npsn,
+ 'nama' => $row->nama_sekolah,
+ 'status_level' => '
Level '.levelAdiwiyata($row->npsn).'',
+ 'wilayah' => $row->kabupaten->name,
+ 'tanggal_level' => '-',
+ 'penghargaan' => '',
+ 'dok' => '',
+ 'kriteria' => '',
+ 'jenis_usulan' => 'Nasional',
+ 'usulkan_csa' => 'Diusulkan/ Proses Penilaian',
+ 'perpanjang_csa' => '-',
+ 'action' => $action,
+ ];
+
+ }
+
+ return response()->json($_data);
+ }
+
public function store(Request $request)
{
permission('is_update', $this->route, 'module',true);
diff --git a/app/Models/Kuesioner.php b/app/Models/Kuesioner.php
index d889be8..715018d 100644
--- a/app/Models/Kuesioner.php
+++ b/app/Models/Kuesioner.php
@@ -13,7 +13,7 @@ class Kuesioner extends Model
protected $primaryKey = 'KuesionerId';
protected $fillable = [
- 'user_id',
+ 'ms_sekolah_id',
'level',
'tim_adiwiyata',
'info_pblhs',
@@ -27,5 +27,16 @@ class Kuesioner extends Model
'link_sk_adiwiyata',
'tim_adiwiyata_nomor_sk',
'tim_adiwiyata_link',
+ 'created_by',
];
+
+ public function sekolah()
+ {
+ return $this->belongsTo(\App\Models\Master\Sekolah::class,'ms_sekolah_id','MsSekolahId');
+ }
+
+ public function profile()
+ {
+ return $this->belongsTo(\App\Models\ProfileSekolah::class,'ms_sekolah_id','ms_sekolah_id');
+ }
}
diff --git a/app/Models/Master/Sekolah.php b/app/Models/Master/Sekolah.php
index 90d5e26..5c28cde 100644
--- a/app/Models/Master/Sekolah.php
+++ b/app/Models/Master/Sekolah.php
@@ -23,4 +23,24 @@ class Sekolah extends Model
'lat',
'long',
];
+
+ public function provinsi()
+ {
+ return $this->belongsTo(\App\Models\Master\Provinsi::class,'ms_provinsi_id','MsProvinsiId');
+ }
+
+ public function tingkat()
+ {
+ return $this->belongsTo(\App\Models\Master\MasterTingkatSekolah::class,'ms_tingkat_sekolah_id','MsTingkatSekolahId');
+ }
+
+ public function kabupaten()
+ {
+ return $this->belongsTo(\App\Models\Master\Kabupaten::class,'ms_kabupaten_id','MsKabupatenId');
+ }
+
+ public function kecamatan()
+ {
+ return $this->belongsTo(\App\Models\Master\Kecamatan::class,'ms_kecamatan_id','MsKecamatanId');
+ }
}
diff --git a/app/Models/Usulan.php b/app/Models/Usulan.php
new file mode 100644
index 0000000..c0e9ff1
--- /dev/null
+++ b/app/Models/Usulan.php
@@ -0,0 +1,11 @@
+id('KuesionerId');
- $table->integer('user_id');
+ $table->integer('ms_sekolah_id');
$table->string('npsn')->nullable();
$table->integer('level')->default(0);
$table->integer('tim_adiwiyata')->default(0);
@@ -26,9 +26,11 @@ return new class extends Migration
$table->year('tahun')->nullable();
$table->year('tahun_penghargaan')->nullable();
$table->text('link_sk_adiwiyata')->nullable();
+ $table->integer('created_by');
$table->timestampsTz();
- $table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete();
+ $table->foreign('created_by')->references('id')->on('users')->cascadeOnDelete();
+ $table->foreign('ms_sekolah_id')->references('MsSekolahId')->on('ms_sekolah')->cascadeOnDelete();
});
}
diff --git a/database/migrations/2025_03_13_114216_create_usulans_table.php b/database/migrations/2025_03_13_114216_create_usulans_table.php
new file mode 100644
index 0000000..f42e95a
--- /dev/null
+++ b/database/migrations/2025_03_13_114216_create_usulans_table.php
@@ -0,0 +1,27 @@
+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
new file mode 100644
index 0000000..ffd0a1a
--- /dev/null
+++ b/database/migrations/2025_03_13_114222_create_usulan_approvals_table.php
@@ -0,0 +1,27 @@
+id();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('usulan_approvals');
+ }
+};
diff --git a/resources/views/include/header.blade.php b/resources/views/include/header.blade.php
index 8f0a5ee..60125fa 100644
--- a/resources/views/include/header.blade.php
+++ b/resources/views/include/header.blade.php
@@ -19,18 +19,24 @@
-
diff --git a/resources/views/modules/kuesioner/index.blade.php b/resources/views/modules/kuesioner/index.blade.php
new file mode 100644
index 0000000..ca1b3d2
--- /dev/null
+++ b/resources/views/modules/kuesioner/index.blade.php
@@ -0,0 +1,270 @@
+@extends('layouts.master')
+@section('page-css')
+
+
+@endsection
+@section('content')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # |
+ No |
+ Status Level |
+ NPSN |
+ Nama Sekolah |
+ Wilayah |
+ Tingkat Sekolah |
+ Status Sekolah |
+ Alamat |
+ Penghargaan Terakhir |
+
+
+
+
+
+
+
+
+
+
+@endsection
+@section('page-js')
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/modules/profile/admin.blade.php b/resources/views/modules/profile/admin.blade.php
index c3839c0..c3de6d3 100644
--- a/resources/views/modules/profile/admin.blade.php
+++ b/resources/views/modules/profile/admin.blade.php
@@ -6,15 +6,122 @@
@section('content')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -26,25 +133,27 @@
data-pagination="true"
data-toolbar="#toolbar"
data-show-refresh="false"
+ data-url="{{route($route.'.grid')}}"
data-sort-name="ids"
data-sort-order="desc"
data-page-size="10"
data-id-field="id"
id="grid-data">
-
-
- # |
- No |
- NPSN |
- Nama Sekolah |
- Status Level |
- Tanggal Level |
- Penghargaan Terakhir |
- DOK Administrasi |
- Pemenuhan Kriteria |
- Jenis Usulan |
- Usulankan CSA |
- Perpanjangan CSA |
+
+
+ # |
+ No |
+ NPSN |
+ Nama Sekolah |
+ Wilayah |
+ Status Level |
+ Tanggal Level |
+ Penghargaan Terakhir |
+ DOK Administrasi |
+ Pemenuhan Kriteria |
+ Jenis Usulan |
+ Usulkan CSA |
+ Perpanjangan CSA |
@@ -59,4 +168,111 @@
@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 997b6e7..6e8d4fc 100644
--- a/resources/views/modules/usulan/kriteria/form.blade.php
+++ b/resources/views/modules/usulan/kriteria/form.blade.php
@@ -87,16 +87,16 @@
Anda Belum Melakukan Finalisasi Proses Data Kriteria
-
Klik Resume untuk melakukan Finalisasi Proses Data Kriteria
+
Klik Progress Usulan untuk melakukan Finalisasi Proses Data Kriteria
@foreach($page as $hal)
- - {{$hal}}
+ - {{$hal}}
@endforeach
- Resume
- - Progress Usulan
+ - Progress Usulan
@@ -165,6 +165,14 @@
});
});
+ $('.resume').on('click',function(e){
+ window.location.href = "{{url('usulan/kriteria/resume/'.encode_id(session('sekolah_id')))}}";
+ });
+
+ $('.progress_usulan').on('click',function(e){
+ window.location.href = "{{url('usulan/kriteria/progress/'.encode_id(session('sekolah_id')))}}";
+ });
+
$('#btnSave').on('click',function(e){
e.preventDefault();
let currentForm = $("#form").serializeArray();
@@ -230,11 +238,19 @@
$('#loading-spinner').show(); // Menampilkan spinner
},
success: function (response) {
- console.log('Response:', response);
+ // console.log('Response:', response);
+ toastr.success("Berhasil menyimpan data", 'Success!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
+
+
+ $('.page').closest('.active').addClass('bg-success');
+ $('.page').closest('.active').addClass('text-white');
+ $('.page').removeClass('active');
+ // (checkPenilaian($hal) == true ? 'bg-success text-white' : '' )
},
error: function (xhr, status, error) {
- console.error('AJAX Error:', status, error);
- alert('Failed to fetch data!');
+ // console.error('AJAX Error:', status, error);
+ // alert('Failed to fetch data!');
+ 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
diff --git a/resources/views/modules/usulan/kriteria/progress.blade.php b/resources/views/modules/usulan/kriteria/progress.blade.php
new file mode 100644
index 0000000..0f7cc78
--- /dev/null
+++ b/resources/views/modules/usulan/kriteria/progress.blade.php
@@ -0,0 +1,420 @@
+@extends('layouts.master')
+
+@section('page-css')
+
+
+@endsection
+@section('content')
+
+
+
+ @if ($errors->any())
+
+
+ @foreach ($errors->all() as $error)
+ - {{ $error }}
+ @endforeach
+
+
+ @endif
+
+
+
+@endsection
+@section('page-js')
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/modules/usulan/kriteria/resume.blade.php b/resources/views/modules/usulan/kriteria/resume.blade.php
new file mode 100644
index 0000000..01c3707
--- /dev/null
+++ b/resources/views/modules/usulan/kriteria/resume.blade.php
@@ -0,0 +1,265 @@
+@extends('layouts.master')
+
+@section('page-css')
+
+
+@endsection
+@section('content')
+
+
+
+ @if ($errors->any())
+
+
+ @foreach ($errors->all() as $error)
+ - {{ $error }}
+ @endforeach
+
+
+ @endif
+
+
+
+@endsection
+@section('page-js')
+
+@endsection
\ No newline at end of file
diff --git a/routes/modules/modules.php b/routes/modules/modules.php
index 535bfb5..fababde 100644
--- a/routes/modules/modules.php
+++ b/routes/modules/modules.php
@@ -20,6 +20,7 @@ use App\Http\Controllers\Modules\Usulan\SekolahBinaanController;
Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard');
Route::get('profile-sekolah',[ProfileController::class,'index'])->name('profile.index');
+Route::get('profile-sekolah/grid',[ProfileController::class,'grid'])->name('profile.grid');
Route::post('profile-sekolah',[ProfileController::class,'store'])->name('profile.store');
Route::post('getForm',[AjaxController::class,'getForm'])->name('getForm');
@@ -38,12 +39,16 @@ Route::name('master.')->prefix('master')->group(function () {
Route::name('kuesioner.')->prefix('kuesioner')->group(function () {
Route::get('/',[KuesionerController::class,'index'])->name('index');
+ Route::get('/grid',[KuesionerController::class,'grid'])->name('grid');
+ Route::get('/update/{id?}',[KuesionerController::class,'update'])->name('update');
Route::post('/store',[KuesionerController::class,'store'])->name('store');
});
Route::name('usulan.')->prefix('usulan')->group(function () {
Route::name('kriteria.')->prefix('kriteria')->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('/store',[KriteriaController::class,'store'])->name('store');
});