main
ilhamwara 2025-04-14 14:09:43 +07:00
parent 5320630f85
commit 29c37a79de
7 changed files with 306 additions and 21 deletions

View File

@ -8,6 +8,58 @@ use App\Models\Penilaian;
use App\Models\User;
use App\Models\master\MasterGroup;
if (!function_exists('getPenghargaanTerakhir')) {
/**
* @param $val
*
* @return string
*/
function getPenghargaanTerakhir($sekolah_id)
{
$usulan = Kuesioner::where('ms_sekolah_id',$sekolah_id)->where('tahun',date('Y'))->first();
if($usulan->level == 0){
$usulanAwal = 'Belum Pernah';
}elseif($usulan->level == 1){
$usulanAwal = 'Adiwiyata Kab/Kota';
}elseif($usulan->level == 2){
$usulanAwal = 'Adiwiyata Provinsi';
}elseif($usulan->level == 3){
$usulanAwal = 'Adiwiyata Nasional';
}elseif($usulan->level == 4){
$usulanAwal = 'Adiwiyata Mandiri';
}
return $usulanAwal;
}
}
if (!function_exists('getUsulan')) {
/**
* @param $val
*
* @return string
*/
function getUsulan($sekolah_id)
{
$usulan = Kuesioner::where('ms_sekolah_id',$sekolah_id)->where('tahun',date('Y'))->first();
if(($usulan->level+1) == 1){
$jenis_usulan = 'Adiwiyata Kab/Kota';
}elseif(($usulan->level+1) == 2){
$jenis_usulan = 'Adiwiyata Provinsi';
}elseif(($usulan->level+1) == 3){
$jenis_usulan = 'Adiwiyata Nasional';
}elseif(($usulan->level+1) == 4){
$jenis_usulan = 'Adiwiyata Mandiri';
}
return $jenis_usulan;
}
}
if (!function_exists('getNilai')) {
/**
* @param $val
@ -55,6 +107,8 @@ if (!function_exists('status_kuesioner')) {
//1 = Sudah di Verifikasi Dinas
//2 = Ditolak Oleh Dinas
//3 = selesai kelengkapan data
//4 = Validasi Diteruskan
//5 = Validasi Dikembalikan
}
}
@ -546,7 +600,18 @@ if (!function_exists('formKriteria')) {
$html .= '</div>';
if($data->active_lainnya == 1){
$lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first();
if(session('group_alias') == 'sekolah'){
$lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',0)->first();
}elseif(session('group_alias') == 'penilai_kota'){
$lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',1)->first();
}elseif(session('group_alias') == 'penilai_provinsi'){
$lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',2)->first();
}else{
$lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first();
}
$valueLainnya = json_decode(@$lainnya->value);
// dd($valueLainnya);

View File

@ -119,6 +119,23 @@ class AdministrasiController extends Controller
return response()->json($_data);
}
public function update(Request $request)
{
try {
$sekolahId = decode_id($request->sekolah);
$dokumen = DokumenAdministrasi::where('ms_sekolah_id',$sekolahId)->where('tahun',date('Y'))->first();
$dokumen->nama_dalam_sk = $request->nama_dalam_sk;
$dokumen->sk_ttd = $request->sk_ttd;
$dokumen->waktu_penetapan = $request->waktu_penetapan;
$dokumen->save();
return response()->json(['status' => true,'message' => 'Berhasil Update Data','type' => 'success']);
} catch (Exception $e) {
return response()->json(['status' => false,'message' => $e->getMessage(),'type' => 'error']);
}
}
public function store(Request $request)
{
$data = $request['data'];

View File

@ -6,8 +6,10 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Master\Provinsi;
use App\Models\Kuesioner;
use App\Models\KuesionerLog;
use App\Models\Master\Sekolah;
use App\Models\Master\FormKriteria;
use App\Models\DokumenAdministrasi;
class CSAKController extends Controller
{
@ -55,6 +57,8 @@ class CSAKController extends Controller
$data['luas_ruangan_non_ac'] = @$listrik->luas_ruangan_non_ac;
$data['jumlah_kader'] = @$listrik->jumlah_kader;
$data['dokumen'] = DokumenAdministrasi::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first();
return view($this->template.'.form',$data);
}
public function resume($id)
@ -127,7 +131,40 @@ class CSAKController extends Controller
*/
public function store(Request $request)
{
//
$sekolahId = decode_id($request->sekolah);
$dokumen = DokumenAdministrasi::where('ms_sekolah_id',$sekolahId)->where('tahun',date('Y'))->first();
if((@$dokumen->nama_dalam_sk == 0) || (@$dokumen->sk_ttd == 0) || (@$dokumen->waktu_penetapan == 0)){
return response()->json(['status' => false,'message' => 'Data Dokumen Administrasi Belum Diisi!']);
}
if($request['validasi'] == 1){
$step = 'validasi_usulan_diteruskan';
$status = 4;
}elseif($request['validasi'] == 2){
$step = 'validasi_usulan_dikembalikan';
$status = 5;
}else{
return response()->json(['validasi' => false,'message' => 'Maaf Terjadi Kesalahan Dalam Input Data!']);
}
$kuesioner = Kuesioner::where('ms_sekolah_id',$sekolahId)->where('tahun',date('Y'))->first();
$kuesioner->catatan_usulan = $request['catatan_validasi'];
$kuesioner->status = $status;
$kuesioner->save();
//kuesioner log
$log = new KuesionerLog;
$log->kuesioner_id = $kuesioner->KuesionerId;
$log->ms_sekolah_id = $kuesioner->ms_sekolah_id;
$log->npsn = $kuesioner->npsn;
$log->ms_group_id = session('group_id');
$log->step = @$step;
$log->status = $status;
$log->created_by = auth()->user()->id;
$log->save();
return response()->json(['status' => true,'message' => 'Berhasil update data!']);
}
/**

View File

@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('dokumen_administrasi', function (Blueprint $table) {
$table->integer('nama_dalam_sk')->default(0);
$table->integer('sk_ttd')->default(0);
$table->integer('waktu_penetapan')->default(0);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('dokumen_administrasi', function (Blueprint $table) {
//
});
}
};

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('kuesioner', function (Blueprint $table) {
$table->text('catatan_usulan')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('kuesioner', function (Blueprint $table) {
//
});
}
};

View File

@ -246,33 +246,35 @@
<td>
<p><b>Apakah nama CSAN tercantum dalam SK/Piagam Sekolah Adiwiyata Provinsi (untuk SAP 2021/2022/2023/2024/2025) atau SK/Piagam Perpanjangan Adiwiyata Tahun 2023/2024/2025 </b></p>
<input type="radio" name="dokumen_1">&nbsp;Ya<br>
<input type="radio" name="dokumen_1">&nbsp;Tidak<br>
<input type="radio" name="dokumen_1">&nbsp;Tidak Ada Bukti/Dokumen <br>
<input value="1" {{@$dokumen->nama_dalam_sk == 1 ? 'checked' : '' }} type="radio" name="dokumen_1">&nbsp;Ya<br>
<input value="2" {{@$dokumen->nama_dalam_sk == 2 ? 'checked' : '' }} type="radio" name="dokumen_1">&nbsp;Tidak<br>
<input value="3" {{@$dokumen->nama_dalam_sk == 3 ? 'checked' : '' }} type="radio" name="dokumen_1">&nbsp;Tidak Ada Bukti/Dokumen <br>
</td>
</tr>
<tr>
<td>
<p><b>Apakah salinan SK/Piagam Sekolah Adiwiyata provinsi di tandatangani Gubernur atau pejabat yang diberi kewenangan untuk menandatangani atau SK/Piagam Perpanjangan di Tandatangani Kepala Dinas LH ?</b></p>
<input type="radio" name="dokumen_2">&nbsp;Ya <br>
<input type="radio" name="dokumen_2">&nbsp;Tidak <br>
<input type="radio" name="dokumen_2">&nbsp;Tidak Ada Bukti/Dokumen <br>
<input value="1" {{@$dokumen->sk_ttd == 1 ? 'checked' : '' }} type="radio" name="dokumen_2">&nbsp;Ya <br>
<input value="2" {{@$dokumen->sk_ttd == 2 ? 'checked' : '' }} type="radio" name="dokumen_2">&nbsp;Tidak <br>
<input value="3" {{@$dokumen->sk_ttd == 3 ? 'checked' : '' }} type="radio" name="dokumen_2">&nbsp;Tidak Ada Bukti/Dokumen <br>
</td>
</tr>
<tr>
<td>
<p><b>Waktu Penetapan Penghargaan SAP</b></p>
<input type="radio" name="dokumen_3">&nbsp; SAP tahun 2021/ 2022/ 2023/ 2024 ditetapkan SEBELUM 1 Agustus 2024 <br>
<input type="radio" name="dokumen_3">&nbsp; SAP tahun 2021/ 2022 /2023/ 2024 ditetapkan SETELAH 1 Agustus 2024 <br>
<input type="radio" name="dokumen_3">&nbsp; SAP/SAN/SAM perolehan tahun 2020 atau sebelumnya serta lolos perpanjangan sebagai SAP <br>
<input type="radio" name="dokumen_3">&nbsp; SAP perolehan tahun 2020 atau sebelumnya serta tidak ada SK/piagam perpanjangan sebagai SAP <br>
<input value="1" {{@$dokumen->waktu_penetapan == 1 ? 'checked' : '' }} type="radio" name="dokumen_3">&nbsp; SAP tahun 2021/ 2022/ 2023/ 2024 ditetapkan SEBELUM 1 Agustus 2024 <br>
<input value="2" {{@$dokumen->waktu_penetapan == 2 ? 'checked' : '' }} type="radio" name="dokumen_3">&nbsp; SAP tahun 2021/ 2022 /2023/ 2024 ditetapkan SETELAH 1 Agustus 2024 <br>
<input value="3" {{@$dokumen->waktu_penetapan == 3 ? 'checked' : '' }} type="radio" name="dokumen_3">&nbsp; SAP/SAN/SAM perolehan tahun 2020 atau sebelumnya serta lolos perpanjangan sebagai SAP <br>
<input value="4" {{@$dokumen->waktu_penetapan == 4 ? 'checked' : '' }} type="radio" name="dokumen_3">&nbsp; SAP perolehan tahun 2020 atau sebelumnya serta tidak ada SK/piagam perpanjangan sebagai SAP <br>
</td>
</tr>
@if(@$kuesioner->status < 4)
<tr>
<td><button id="btnSaveAdministrasi" class="btn btn-success"><i class="fal fa-save"></i>&nbsp;Simpan Data</button></td>
</tr>
@endif
</table>
</div>
<div class="tab-pane fade active show" id="kriteria" role="tabpanel">
@ -317,9 +319,11 @@
</a>
</div>
</div>
@if(@$kuesioner->status < 4)
<div class="col-md-12 mt-3">
<button id="btnSave" class="btn btn-success"><i class="fal fa-save"></i>&nbsp;Simpan Data</button>
</div>
@endif
</div>
</div>
<div class="tab-pane fade" id="usulan" role="tabpanel">
@ -329,14 +333,14 @@
</tr>
<tr>
<td>Jenis Usulan CSA</td>
<td>Nasional</td>
<td>{{getUsulan($sekolah->MsSekolahId)}}</td>
</tr>
<tr>
<th colspan="2" class="table-info">Penghargaan</th>
</tr>
<tr>
<td>Penghargaan Terakhir</td>
<td>Adiwiyata Provinsi</td>
<td>{{getPenghargaanTerakhir($sekolah->MsSekolahId)}}</td>
</tr>
<tr>
<td>Nomor SK</td>
@ -344,7 +348,7 @@
</tr>
<tr>
<td>Tanggal Penetapan SK</td>
<td>04-12-1993</td>
<td>-</td>
</tr>
<tr>
<th colspan="2" class="table-info">Berdasarkan data usulan yang dilengkapi, dinyatakan bahwa {{@$sekolah->nama_sekolah}} :</th>
@ -360,23 +364,25 @@
<tr>
<td>Validasi</td>
<td>
<select class="form-control select2" name="validasi">
<select class="form-control select2" id="validasi" name="validasi">
<option value="">- Pilih Validasi -</option>
<option value="1">Diteruskan</option>
<option value="2">Dikembalikan</option>
<option {{@$kuesioner->status == '4' ? 'selected' : ''}} value="1">Diteruskan</option>
<option {{@$kuesioner->status == '5' ? 'selected' : ''}} value="2">Dikembalikan</option>
</select>
</td>
</tr>
<tr>
<td>Catatan</td>
<td>
<textarea class="form-control" name="catatan_validasi" placeholder="Catatan"></textarea>
<textarea class="form-control" id="catatan_validasi" name="catatan_validasi" placeholder="Catatan">{{@$kuesioner->catatan_usulan}}</textarea>
</td>
</tr>
@if(@$kuesioner->status < 4)
<tr>
<td><button id="btnSaveUsulan" class="btn btn-success"><i class="fal fa-save"></i>&nbsp;Simpan Data</button></td>
<td></td>
</tr>
@endif
</table>
</div>
</div>
@ -391,9 +397,11 @@
@endsection
@section('page-js')
<script type="text/javascript">
@if(@$kuesioner->status < 4)
$(document).ready(function() {
// $('input[type="checkbox"], input[type="radio"], input[type="text"], textarea').attr('disabled', true);
$('input[type="checkbox"], input[type="radio"], input[type="text"], textarea').attr('disabled', true);
});
@endif
$('.page').on('click',function(e){
e.preventDefault();
let number = $(this).data('number');
@ -440,8 +448,107 @@
$('.resume').on('click',function(e){
window.location.href = "{{url('usulan/csak/resume/'.encode_id($sekolah->MsSekolahId))}}";
});
$('#btnSaveUsulan').on('click',function(e){
e.preventDefault();
$('#btnSave').on('click',function(e){
var validasi = $('#validasi').find(':selected').val();
var catatan_validasi = $('#catatan_validasi').val();
if(validasi == ''){
toastr.error("Validasi Belum Dipilih", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
return;
}
if(catatan_validasi == ''){
toastr.error("Catatan Validasi Belum Diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
return;
}
$.ajax({
url: "{{route('modules.usulan.csak.store')}}", // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
validasi: validasi,
catatan_validasi: catatan_validasi,
sekolah: "{{encode_id(@$sekolah->MsSekolahId)}}"
}, // Kirim number sebagai parameter
dataType: 'json', // Format respons JSON
beforeSend: function () {
$('#loading-spinner').show(); // Menampilkan spinner
},
success: function (response) {
// console.log('Response:', response);
if(response.status == true){
toastr.success("Berhasil menyimpan data", 'Success!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
location.reload();
}else{
toastr.error(response.message, 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
}
},
error: function (xhr, status, error) {
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
}
});
});
$('#btnSaveAdministrasi').on('click',function(e){
e.preventDefault();
const nama_dalam_sk = $('input[name="dokumen_1"]:checked').val();
const sk_ttd = $('input[name="dokumen_2"]:checked').val();
const waktu_penetapan = $('input[name="dokumen_3"]:checked').val();
if(nama_dalam_sk == null){
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
return;
}
if(sk_ttd == null){
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
return;
}
if(waktu_penetapan == null){
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
return;
}
$.ajax({
url: "{{route('modules.usulan.administrasi.update')}}", // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
nama_dalam_sk: nama_dalam_sk,
sk_ttd: sk_ttd,
waktu_penetapan: waktu_penetapan,
sekolah: "{{encode_id(@$sekolah->MsSekolahId)}}"
}, // Kirim number sebagai parameter
dataType: 'json', // Format respons JSON
beforeSend: function () {
$('#loading-spinner').show(); // Menampilkan spinner
},
success: function (response) {
if(response.status == true){
toastr.success("Berhasil menyimpan data", 'Success!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
}else{
toastr.error("Maaf Terjadi Kesalahan Menyimpan Data", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
}
},
error: function (xhr, status, error) {
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
}
});
});
$('#btnSave').on('click',function(e){
e.preventDefault();
let currentForm = $("#form").serializeArray();
console.log(currentForm);

View File

@ -94,6 +94,7 @@ Route::name('usulan.')->prefix('usulan')->group(function () {
Route::post('/store',[AdministrasiController::class,'store'])->name('store');
Route::get('/verifikasi/{id?}',[AdministrasiController::class,'verifikasi'])->name('verifikasi');
Route::get('/tolak/{id?}',[AdministrasiController::class,'tolak'])->name('tolak');
Route::post('/update',[AdministrasiController::class,'update'])->name('update');
});
// Route::name('progress.')->prefix('progress')->group(function () {