main
ilhamwara 2025-03-20 14:48:21 +07:00
parent b5605141fe
commit ab82053a2d
7 changed files with 231 additions and 104 deletions

View File

@ -5,6 +5,36 @@ use App\Models\Master\MasterAccessMenu;
use App\Models\Kuesioner;
use App\Models\Master\FormKriteria;
use App\Models\Penilaian;
use App\Models\User;
use App\Models\master\MasterGroup;
if (!function_exists('group')) {
/**
* @param $val
*
* @return string
*/
function group($id)
{
$user = User::find($id);
$group = MasterGroup::where('MsGroupId',$user->ms_group_id)->first();
return @$group;
}
}
if (!function_exists('user')) {
/**
* @param $val
*
* @return string
*/
function user($id)
{
$user = User::find($id);
return @$user;
}
}
if (!function_exists('checkPenilaian')) {
/**
* @param $val

View File

@ -52,7 +52,10 @@ class KuesionerController extends Controller
if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){
$action .= '<a href="'.url('kuesioner/update/'.encode_id($row->ms_sekolah_id)).'" data-toggle="tooltip" title="View Data" class="btn btn-xs btn-block btn-primary"><i class="fal fa-eye text-white"></i></a>';
if(session('group_alias') != 'sekolah'){
$action .= '<a href="#" data-href="'.url('kuesioner/veirikasi/'.encode_id($row->ms_sekolah_id)).'" data-toggle="tooltip" title="Verifikasi Data" class="btn btn-xs btn-block btn-success verifikasi"><i class="fal fa-check text-white"></i></a>';
if($row->status == 0){
$action .= '<a href="#" data-href="'.url('kuesioner/verifikasi/'.encode_id($row->KuesionerId)).'" data-toggle="tooltip" title="Verifikasi Data" class="btn btn-xs btn-block btn-success verifikasi"><i class="fal fa-check text-white"></i></a>';
$action .= '<a href="#" data-href="'.url('kuesioner/tolak/'.encode_id($row->KuesionerId)).'" data-toggle="tooltip" title="Verifikasi Data" class="btn btn-xs btn-block btn-danger tolak"><i class="fal fa-times text-white"></i></a>';
}
}
}
@ -70,9 +73,11 @@ class KuesionerController extends Controller
$status = '';
if($row->status == 0){
$status = '<span class="badge badge-danger">Belum Diverifikasi</span>';
}else{
$status = '<span class="badge badge-info">Belum Diverifikasi</span>';
}elseif($row->status == 1){
$status = '<span class="badge badge-success">Sudah Diverifikasi</span>';
}elseif($row->status == 2){
$status = '<span class="badge badge-danger">Ditolak</span>';
}
$sekolah = '';
@ -337,7 +342,7 @@ class KuesionerController extends Controller
$log->ms_sekolah_id = session('sekolah_id');
$log->npsn = session('npsn');
$log->ms_group_id = session('group_id');
$log->step = 'create_kuesioner';
$log->step = 'create_usulan';
$log->status = 0;
$log->created_by = auth()->user()->id;
$log->save();
@ -359,4 +364,44 @@ class KuesionerController extends Controller
]);
}
}
public function verifikasi($id)
{
$keyId = decode_id($id);
$kuesioner = Kuesioner::find($keyId);
$kuesioner->status = 1;
$kuesioner->save();
$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 = 'approve_usulan';
$log->status = 1;
$log->created_by = auth()->user()->id;
$log->save();
return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']);
}
public function tolak($id)
{
$keyId = decode_id($id);
$kuesioner = Kuesioner::find($keyId);
$kuesioner->status = 2;
$kuesioner->save();
$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 = 'tolak_usulan';
$log->status = 2;
$log->created_by = auth()->user()->id;
$log->save();
return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']);
}
}

View File

@ -7,6 +7,7 @@ use Illuminate\Http\Request;
use App\Models\Kuesioner;
use App\Models\Master\FormKriteria;
use App\Models\Penilaian;
use App\Models\KuesionerLog;
class KriteriaController extends Controller
{
@ -49,13 +50,16 @@ class KriteriaController extends Controller
return view($this->template.'.resume',$data);
}
public function progress()
public function progress($id)
{
$keyId = decode_id($id);
// 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();
$data['log'] = KuesionerLog::where('ms_sekolah_id',$keyId)->orderBy('created_at','ASC')->get();
$data['kuesioner'] = Kuesioner::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first();
return view($this->template.'.progress',$data);
}

View File

@ -11,24 +11,25 @@ class Kuesioner extends Model
protected $table = 'kuesioner';
protected $primaryKey = 'KuesionerId';
protected $guarded = [];
protected $fillable = [
'ms_sekolah_id',
'level',
'tim_adiwiyata',
'info_pblhs',
'media',
'materi',
'komitmen',
'kegiatan_lingkungan',
'pihak_kegiatan_lingkungan',
'tahun',
'tahun_penghargaan',
'link_sk_adiwiyata',
'tim_adiwiyata_nomor_sk',
'tim_adiwiyata_link',
'created_by',
];
// protected $fillable = [
// 'ms_sekolah_id',
// 'level',
// 'tim_adiwiyata',
// 'info_pblhs',
// 'media',
// 'materi',
// 'komitmen',
// 'kegiatan_lingkungan',
// 'pihak_kegiatan_lingkungan',
// 'tahun',
// 'tahun_penghargaan',
// 'link_sk_adiwiyata',
// 'tim_adiwiyata_nomor_sk',
// 'tim_adiwiyata_link',
// 'created_by',
// ];
public function sekolah()
{

View File

@ -178,49 +178,92 @@
<script src="{{asset('assets/js/datagrid/datatables/datatables.bundle.js')}}"></script>
<script src="{{asset('assets/js/bootstrap-table.min.js')}}"></script>
<script type="text/javascript">
$("#grid-data").on("click", ".tolak", function() {
var base_url = $(this).attr('data-href');
var id = $(this).attr('data-id');
swal({
title: "Tolak Kuesioner!",
text: "Apa anda yakin ingin tolak kuesioner ini ?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#BF3131",
confirmButtonText: "Tolak Sekarang",
cancelButtonText: "Batal",
closeOnConfirm: true,
closeOnCancel: true
},
function(isConfirm) {
if(isConfirm){
request = $.ajax({
url: base_url,
type: "GET",
});
// Callback handler that will be called on success
request.done(function(response, textStatus, jqXHR){
console.log(response);
toastr.success("Berhasil Login", 'Berhasil!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
window.location.href = '{{url("/kuesioner")}}';
history.pushState(null, null, location.href);
window.onpopstate = function () {
history.go(1);
};
});
// Callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown){
toastr.error(
"Gagal "+textStatus, errorThrown
);
});
}
});
return false;
});
$("#grid-data").on("click", ".verifikasi", function() {
var base_url = $(this).attr('data-href');
var id = $(this).attr('data-id');
swal({
title: "Verifikasi Kuesioner!",
text: "Apa anda yakin ingin verifikasi kuesioner ini ?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#3F7D58",
confirmButtonText: "Approve",
cancelButtonText: "Tolak",
closeOnConfirm: true,
closeOnCancel: true
},
function(isConfirm) {
if(isConfirm){
request = $.ajax({
url: base_url,
type: "GET",
});
var base_url = $(this).attr('data-href');
var id = $(this).attr('data-id');
swal({
title: "Verifikasi Kuesioner!",
text: "Apa anda yakin ingin verifikasi kuesioner ini ?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#3F7D58",
confirmButtonText: "Approve Sekarang",
cancelButtonText: "Batal",
closeOnConfirm: true,
closeOnCancel: true
},
function(isConfirm) {
if(isConfirm){
request = $.ajax({
url: base_url,
type: "GET",
});
// Callback handler that will be called on success
request.done(function(response, textStatus, jqXHR){
console.log(response);
toastr.success("Berhasil Login", 'Berhasil!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
window.location.href = '{{url("/kuesioner")}}';
history.pushState(null, null, location.href);
window.onpopstate = function () {
history.go(1);
};
});
// Callback handler that will be called on success
request.done(function(response, textStatus, jqXHR){
console.log(response);
toastr.success("Berhasil Login", 'Berhasil!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
window.location.href = '{{url("/kuesioner")}}';
history.pushState(null, null, location.href);
window.onpopstate = function () {
history.go(1);
};
});
// Callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown){
toastr.error(
"Gagal "+textStatus, errorThrown
);
});
}
});
return false;
});
// Callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown){
toastr.error(
"Gagal "+textStatus, errorThrown
);
});
}
});
return false;
});
$('select').on("select2:selecting", function(e) {
var selectorOrigin = this.id;
var id = e.params.args.data.id;

View File

@ -217,51 +217,56 @@
<section style="background-color: #F0F2F5;">
<div class="container py-5">
<div class="main-timeline">
@foreach($log as $logs)
<div class="timeline left">
<div class="card">
<div class="card-body p-4">
<h3>2017</h3>
<p class="mb-0">Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.</p>
<h3><b>{{\Str::title(str_replace('_',' ',$logs->step))}}</b></h3>
<p class="mb-0">Oleh : {{user($logs->created_by)->name}} <span class="badge badge-primary">{{group($logs->created_by)->name}}</span></p>
<p class="mb-0">Tanggal : {{$logs->created_at}}</p>
</div>
</div>
</div>
@endforeach
<div class="timeline left">
<div class="card">
<div class="card-body p-4">
<h3><b>Status Usulan</b></h3>
<?php
if(($kuesioner->level+1) == 1){
$jenis_usulan = 'Kabupaten/Kota';
}elseif(($kuesioner->level+1) == 2){
$jenis_usulan = 'Provinsi';
}elseif(($kuesioner->level+1) == 3){
$jenis_usulan = 'Nasional';
}elseif(($kuesioner->level+1) == 4){
$jenis_usulan = 'Mandiri';
}
?>
<p class="">
Sekolah diusulan untuk menjadi CSA (Calon Sekolah Adiwiyata) <b>{{$jenis_usulan}}</b><br>
</p>
<span class="text-primary">Silahkan lengkapi data pada menu Usulan Adiwiyata. </span>
</div>
</div>
</div>
<div class="timeline right">
<div class="card">
<div class="card-body p-4">
<h3>2016</h3>
<p class="mb-0">Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.</p>
</div>
</div>
</div>
<div class="timeline left">
<div class="card">
<div class="card-body p-4">
<h3>2015</h3>
<p class="mb-0">Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.</p>
</div>
</div>
</div>
<div class="timeline right">
<div class="card">
<div class="card-body p-4">
<h3>2012</h3>
<p class="mb-0">Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.</p>
</div>
</div>
</div>
<div class="timeline left">
<div class="card">
<div class="card-body p-4">
<h3>2011</h3>
<p class="mb-0">Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.</p>
</div>
</div>
</div>
<div class="timeline right">
<div class="card">
<div class="card-body p-4">
<h3>2007</h3>
<p class="mb-0">Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.</p>
<h3><b>Kirim Kelengkapan Data</b></h3>
<p>Kab/Kota akan melakukan validasi, jika data sekolah lengkap akan diproses. apabila data belum lengkap akan dikembalikan ke sekolah untuk melakukan perbaikan. </p>
<p class="text-primary">Pastikan NPSN, Profile, Dok Adminstrasi, Sekolah Binaan (CSAM) dan Pemenuhan Kriteria sudah sesuai.</p>
<ul>
<li>Dokumen Administrasi <span class="badge badge-danger">Belum Lengkap</span></li>
<li>Pemenuhan Kriteria /29 <span class="badge badge-danger">Belum Lengkap</span></li>
</ul>
<div class="custom-control custom-checkbox m-2">
<input type="checkbox" class="custom-control-input is-required" id="true" value="1" name="true">
<label class="custom-control-label" for="true">Dengan ini menyatakan bahwa kelengkapan data sudah benar.</label>
</div>
<button class="btn btn-success">Kirim Data</button>
</div>
</div>
</div>
@ -280,9 +285,6 @@
@endsection
@section('page-js')
<script type="text/javascript">
$(document).ready(function() {
$('input[type="checkbox"], input[type="radio"], input[type="text"], textarea').attr('disabled', true);
});
$('.page').on('click',function(e){
e.preventDefault();

View File

@ -48,6 +48,8 @@ Route::name('kuesioner.')->prefix('kuesioner')->group(function () {
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::get('/verifikasi/{id?}',[KuesionerController::class,'verifikasi'])->name('verifikasi');
Route::get('/tolak/{id?}',[KuesionerController::class,'tolak'])->name('tolak');
});
Route::name('usulan.')->prefix('usulan')->group(function () {
@ -87,9 +89,9 @@ Route::name('usulan.')->prefix('usulan')->group(function () {
Route::get('/',[AdministrasiController::class,'index'])->name('index');
});
Route::name('progress.')->prefix('progress')->group(function () {
Route::get('/',[ProgressController::class,'index'])->name('index');
});
// Route::name('progress.')->prefix('progress')->group(function () {
// Route::get('/',[ProgressController::class,'index'])->name('index');
// });
Route::name('binaan.')->prefix('binaan')->group(function () {
Route::get('/',[SekolahBinaanController::class,'index'])->name('index');