main
ilhamwara 2025-04-10 10:35:07 +07:00
parent ab82053a2d
commit 7530aaf687
25 changed files with 2054 additions and 129 deletions

View File

@ -8,6 +8,56 @@ use App\Models\Penilaian;
use App\Models\User;
use App\Models\master\MasterGroup;
if (!function_exists('getNilai')) {
/**
* @param $val
*
* @return string
*/
function getNilai($type,$page_number,$sekolah_id)
{
if($type == 'sekolah'){
$nilai = Penilaian::where('ms_sekolah_id',$sekolah_id)
->where('page_number',$page_number)
->where('skor','!=',0)
->where('tahun',date('Y'))
->where('status',0) //inputan sekolah
->first();
}elseif($type == 'kota'){
$nilai = Penilaian::where('ms_sekolah_id',$sekolah_id)
->where('page_number',$page_number)
->where('skor','!=',0)
->where('tahun',date('Y'))
->where('status',1) //inputan sekolah
->first();
}elseif($type == 'provinsi'){
$nilai = Penilaian::where('ms_sekolah_id',$sekolah_id)
->where('page_number',$page_number)
->where('skor','!=',0)
->where('tahun',date('Y'))
->where('status',2) //inputan sekolah
->first();
}
return @$nilai ? @$nilai->skor : 0;
}
}
if (!function_exists('status_kuesioner')) {
/**
* @param $val
*
* @return string
*/
function status_kuesioner()
{
//0 = Belum di Verifikasi Dinas
//1 = Sudah di Verifikasi Dinas
//2 = Ditolak Oleh Dinas
//3 = selesai kelengkapan data
}
}
if (!function_exists('group')) {
/**
* @param $val
@ -41,9 +91,25 @@ if (!function_exists('checkPenilaian')) {
*
* @return string
*/
function checkPenilaian($page_number)
function checkPenilaian($page_number,$sekolah_id = null)
{
$penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',session('sekolah_id'))->first();
if(@$sekolah_id){
$idSekolah = @$sekolah_id;
}else{
$idSekolah = session('sekolah_id');
}
if(session('group_alias') == 'sekolah'){
$penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',0)->first();
}elseif(session('group_alias') == 'penilai_kota'){
$penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',1)->first();
}elseif(session('group_alias') == 'penilai_provinsi'){
$penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->where('status',2)->first();
}else{
$penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first();
}
// $penilaian = Penilaian::where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first();
return @$penilaian ? true : false;
}
}
@ -393,13 +459,33 @@ if (!function_exists('formKriteria')) {
*
* @return string
*/
function formKriteria($page_number)
function formKriteria($page_number,$sekolah_id = null)
{
$kriteria = FormKriteria::where('page_number',$page_number)->get();
$html = '';
if(@$sekolah_id){
$idSekolah = @$sekolah_id;
}else{
$idSekolah = session('sekolah_id');
}
foreach($kriteria as $keyKriteria => $data){
$penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',session('sekolah_id'))->first();
if(session('group_alias') == 'sekolah'){
$penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->where('status',0)->first();
}elseif(session('group_alias') == 'penilai_kota'){
$penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->where('status',1)->first();
}elseif(session('group_alias') == 'penilai_provinsi'){
$penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->where('status',2)->first();
}else{
$penilaian = Penilaian::where('key',$data->key)->where('ms_sekolah_id',$idSekolah)->first();
}
// dd();
@ -460,7 +546,7 @@ 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',session('sekolah_id'))->first();
$lainnya = Penilaian::where('key','lainnya')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first();
$valueLainnya = json_decode(@$lainnya->value);
// dd($valueLainnya);
@ -478,19 +564,34 @@ if (!function_exists('formKriteria')) {
}
}
$link = Penilaian::where('key','link_grdive')->where('page_number',$page_number)->where('ms_sekolah_id',session('sekolah_id'))->first();
$link = Penilaian::where('key','link_grdive')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first();
$valueLink = json_decode(@$link->value);
$html .= '<div class="card mb-2 removeFormKriteria">';
$html .= '<input type="hidden" name="key" value="'.encode_id($page_number).'">';
$html .= '<div class="card-body">';
$html .= '<h6><b>Link Google Drive (folder/File penyimpanan bukti)</b></h6>';
$html .= '<div class="form-group">';
$html .= '<input type="text" class="form-control" name="input_link_grdive" placeholder="Link Google Drive (folder penyimpanan bukti)" value="'.@$valueLink.'">';
$html .= '<small><i>Contoh link : https://example.com</i></small>';
$catatan = Penilaian::where('key','catatan')->where('page_number',$page_number)->where('ms_sekolah_id',$idSekolah)->first();
$valueCatatan = json_decode(@$catatan->value);
if(session('group_alias') == 'sekolah'){
$html .= '<div class="card mb-2 removeFormKriteria">';
$html .= '<input type="hidden" name="key" value="'.encode_id($page_number).'">';
$html .= '<div class="card-body">';
$html .= '<h6><b>Link Google Drive (folder/File penyimpanan bukti)</b></h6>';
$html .= '<div class="form-group">';
$html .= '<input type="text" class="form-control" name="input_link_grdive" placeholder="Link Google Drive (folder penyimpanan bukti)" value="'.@$valueLink.'">';
$html .= '<small><i>Contoh link : https://example.com</i></small>';
$html .= '</div>';
$html .= '</div>';
$html .= '</div>';
$html .= '</div>';
}else{
$html .= '<div class="card mb-2 removeFormKriteria">';
$html .= '<input type="hidden" name="key" value="'.encode_id($page_number).'">';
$html .= '<div class="card-body">';
$html .= '<h6><b>Catatan</b></h6>';
$html .= '<div class="form-group">';
$html .= '<textarea class="form-control" name="input_catatan" placeholder="Catatan">'.@$valueCatatan.'</textarea>';
$html .= '</div>';
$html .= '</div>';
$html .= '</div>';
}
return $html;
}
@ -682,6 +783,30 @@ if (!function_exists('permission')) {
}
}
if (!function_exists('access')) {
/**
* @param $access
* @param $key
*
* @return bool
*/
function access($access, $key)
{
if (session('group_alias') != 'administrator') {
$query = MasterAccessMenu::where($access, 1)->where('module', $key)->where('ms_group_id', session('group_id'))->count();
if ($query > 0) {
return true;
} else if (session('group_alias') == 'administrator') {
return true;
} else {
return false;
}
} else {
return true;
}
}
}
if (!function_exists('activeMenuClass')) {
/**
* Helper to grab the application version.

View File

@ -8,15 +8,66 @@ use App\Models\Master\Provinsi;
use App\Models\Master\Kabupaten;
use App\Models\Master\Kecamatan;
use App\Models\Master\Sekolah;
use App\Models\Penilaian;
class AjaxController extends Controller
{
public function sekolahNpsn(Request $request)
{
if ($request->ajax()) {
$query = $request->get('query');
if(@$request->get('tingkat_sekolah')){
$data = Sekolah::where('ms_tingkat_sekolah_id',$request->get('tingkat_sekolah'))->where('npsn', 'LIKE', "%{$query}%")->orderBy('npsn','ASC')->limit(20)->get();
}else{
$data = Sekolah::where('npsn', 'LIKE', "%{$query}%")->orderBy('npsn','ASC')->limit(20)->get();
}
// Sesuaikan dengan model & kolom yang diinginkan
// dd($data);
return response()->json($data);
}
}
public function getForm(Request $request)
{
$data = formKriteria($request->page);
$title = FormKriteria::select('kategori')->where('page_number',$request->page)->first();
if(@$request->sekolah){
$sekolahId = decode_id($request->sekolah);
}else{
$sekolahId = session('sekolah_id');
}
return response()->json(['status' => true, 'data' => $data,'title' => $title->kategori]);
$data = formKriteria($request->page,$sekolahId);
$title = FormKriteria::select('kategori')->where('page_number',$request->page)->first();
$nilai_sekolah = Penilaian::where('ms_sekolah_id',$sekolahId)
->where('page_number',$request->page)
->where('skor','!=',0)
->where('tahun',date('Y'))
->where('status',0) //inputan sekolah
->first();
$nilai_kota = Penilaian::where('ms_sekolah_id',$sekolahId)
->where('page_number',$request->page)
->where('skor','!=',0)
->where('tahun',date('Y'))
->where('status',1) //inputan kota
->first();
$nilai_prov = Penilaian::where('ms_sekolah_id',$sekolahId)
->where('page_number',$request->page)
->where('skor','!=',0)
->where('tahun',date('Y'))
->where('status',2) //inputan kota
->first();
return response()->json(
[
'status' => true,
'data' => $data,
'title' => $title->kategori,
'nilai_sekolah' => @$nilai_sekolah ? @$nilai_sekolah->skor : 0,
'nilai_kota' => @$nilai_kota ? @$nilai_kota->skor : 0,
'nilai_prov' => @$nilai_prov ? @$nilai_prov->skor : 0,
]
);
}
public function getKabupaten(Request $request)
{

View File

@ -25,16 +25,18 @@ class CustomRegisterController extends Controller
public function post_register(Request $request)
{
// dd($request->all());
try {
Validator::make($request->all(), [
'email' => 'required|unique:users|email',
// 'name' => 'required|max:50',
'provinsi' => 'required',
'kabupaten' => 'required',
'kecamatan' => 'required',
'sekolah' => 'required',
// 'provinsi' => 'required',
// 'kabupaten' => 'required',
// 'kecamatan' => 'required',
// 'sekolah' => 'required',
// 'tingkat_sekolah' => 'required',
// 'status_sekolah' => 'required',
'npsn' => 'required',
'alamat_sekolah' => 'required',
'kontak_person' => 'required',
'telp' => 'required',
@ -56,7 +58,13 @@ class CustomRegisterController extends Controller
]);
}
$sekolah = Sekolah::find(decode_id($request->sekolah));
$sekolah = Sekolah::where('npsn',$request->npsn)->first();
if(!@$sekolah){
return redirect('register')->with([
'message' => 'Maaf data sekolah tidak ditemukan, periksa kembali NPSN anda',
'type' => "error"
]);
}
$user = new User;
$user->email = $request->email;
@ -66,14 +74,12 @@ class CustomRegisterController extends Controller
$user->ms_group_id = 2;
$user->save();
$profile = new Profile;
$profile->user_id = $user->id;
$profile->ms_provinsi_id = decode_id($request->provinsi);
$profile->ms_kabupaten_id = decode_id($request->kabupaten);
$profile->ms_kecamatan_id = decode_id($request->kecamatan);
$profile->ms_sekolah_id = decode_id($request->sekolah);
$profile->ms_provinsi_id = $sekolah->ms_provinsi_id;
$profile->ms_kabupaten_id = $sekolah->ms_kabupaten_id;
$profile->ms_kecamatan_id = $sekolah->ms_kecamatan_id;
$profile->ms_sekolah_id = $sekolah->MsSekolahId;
$profile->npsn = $sekolah->npsn;
$profile->ms_tingkat_sekolah_id = $sekolah->ms_tingkat_sekolah_id;
$profile->status_sekolah = $sekolah->status;

View File

@ -37,19 +37,19 @@ class HomeController extends Controller
$data['title'] = 'Dashboard';
$data['group'] = session('group_alias');
if(session('group_alias') == 'sekolah'){
$data['kuesioner'] = 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['kuesioner'] = 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{
$data['usulan'] = Kuesioner::where('tahun',date('Y'))->get();
$data['total_usulan_kab'] = Kuesioner::where('tahun',date('Y'))->where('level',0)->count();
$data['total_usulan_prov'] = Kuesioner::where('tahun',date('Y'))->where('level',1)->count();
$data['total_usulan_nasional'] = Kuesioner::where('tahun',date('Y'))->where('level',2)->count();
$data['total_usulan_mandiri'] = Kuesioner::where('tahun',date('Y'))->where('level',3)->count();
$data['route'] = 'modules';
$data['total_usulan_kab'] = Kuesioner::where('tahun',date('Y'))->where('level',0)->count();
$data['total_usulan_prov'] = Kuesioner::where('tahun',date('Y'))->where('level',1)->count();
$data['total_usulan_nasional'] = Kuesioner::where('tahun',date('Y'))->where('level',2)->count();
$data['total_usulan_mandiri'] = Kuesioner::where('tahun',date('Y'))->where('level',3)->count();
$data['route'] = 'modules';
return view($this->template.'.admin', $data);
}
}

View File

@ -51,7 +51,7 @@ 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'){
if(session('group_alias') == 'dinas'){
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>';

View File

@ -4,8 +4,173 @@ namespace App\Http\Controllers\Modules\Usulan;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Master\Provinsi;
use App\Models\Kuesioner;
use App\Models\DokumenAdministrasi;
class AdministrasiController extends Controller
{
//
private $template = 'modules.usulan.administrasi';
private $route = 'modules.usulan.administrasi';
private $title = 'Usulan Adiwiyata - Dokumen Administrasi';
public function index()
{
$data['route'] = $this->route;
$data['title'] = $this->title;
$data['provinsi'] = Provinsi::where('kode_wilayah','010000')->get();
return view($this->template.'.index',$data);
}
public function grid(Request $request)
{
if(session('group_alias') == 'sekolah'){
$kuesioner = Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->orderBy('created_at','DESC')->get();
}else{
$kuesioner = Kuesioner::where('tahun',date('Y'))->orderBy('created_at','DESC')->get();
}
foreach ($kuesioner as $key => $row) {
$action = '';
// if((access('is_create', $this->route.'.*')) || (access('is_update', $this->route.'.*'))){
// $action .= '<a href="#" data-secureid="'.encode_id($row->KuesionerId).'" data-toggle="modal" data-target="#modal" title="View Data" data-jenisusulan="'.$jenis_usulan.'" class="btn btn-xs btn-block btn-primary btnModal"><i class="fal fa-pencil text-white"></i></a>';
// }
if(($row->level+1) == 1){
$jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Kab/Kota';
}elseif(($row->level+1) == 2){
$jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Provinsi';
}elseif(($row->level+1) == 3){
$jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Nasional';
}elseif(($row->level+1) == 4){
$jenis_usulan = 'Keputusan Gubernur tentang penetapan Sekolah Adiwiyata Mandiri';
}
$dok = DokumenAdministrasi::where('ms_sekolah_id',$row->ms_sekolah_id)->where('tahun',date('Y'))->first();
$action .= '<a href="#" data-link="'.@$dok->link.'" data-secureid="'.encode_id($row->KuesionerId).'" data-toggle="modal" data-target="#modal" title="View Data" data-jenisusulan="'.$jenis_usulan.'" class="btn btn-xs btn-block btn-primary btnModal"><i class="fal fa-pencil text-white"></i></a>';
$action .= '<a href="#" data-link="'.@$dok->link.'" data-jenisusulan="'.$jenis_usulan.'" class="btn btn-xs btn-block btn-secondary toggle-row" data-toggle="tooltip" data-placement="top" title="JUDUL"><i class="fal fa-list text-white"></i></a>';
if(session('group_alias') == 'dinas'){
if($dok->status == 0){
$action .= '<a href="#" data-href="'.url('usulan/administrasi/verifikasi/'.encode_id($dok->DokumenAdministrasiId)).'" 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('usulan/administrasi/tolak/'.encode_id($dok->DokumenAdministrasiId)).'" data-toggle="tooltip" title="Verifikasi Data" class="btn btn-xs btn-block btn-danger tolak"><i class="fal fa-times text-white"></i></a>';
}
}
if($row->level == 0){
$penghargaan = '<i class="fal fa-trophy"></i>&nbsp;Belum Pernah';
}elseif($row->level == 1){
$penghargaan = '<i class="fal fa-trophy"></i>&nbsp;Adiwiyata Kab/Kota';
}elseif($row->level == 2){
$penghargaan = '<i class="fal fa-trophy"></i>&nbsp;Adiwiyata Provinsi';
}elseif($row->level == 3){
$penghargaan = '<i class="fal fa-trophy"></i>&nbsp;Adiwiyata Nasional';
}elseif($row->level == 4){
$penghargaan = '<i class="fal fa-trophy"></i>&nbsp;Adiwiyata Mandiri';
}
if(($row->level+1) == 1){
$jenis_usulan = 'Kabupaten/Kota';
}elseif(($row->level+1) == 2){
$jenis_usulan = 'Provinsi';
}elseif(($row->level+1) == 3){
$jenis_usulan = 'Nasional';
}elseif(($row->level+1) == 4){
$jenis_usulan = 'Mandiri';
}
if(@$dok){
if(@$dok->status == 1){
$labelDok = '<span class="badge badge-success">Dokumen Sudah Di Verifikasi</span>';
}elseif(@$dok->status == 2){
$labelDok = '<span class="badge badge-danger">Dokumen Sudah Di Tolak</span>';
}else{
$labelDok = '<span class="badge badge-warning">Menuggu Verifikasi Dokumen</span>';
}
}else{
$labelDok = '<span class="badge badge-danger">Belum Upload Dokumen</span>';
}
$sekolah = '';
$sekolah .= @$row->sekolah->nama_sekolah.'<br>';
$sekolah .= '<span class="badge badge-success">'.@$row->profile->tingkat->name.'</span>&nbsp;';
$sekolah .= '<span class="badge badge-primary">'.@$row->profile->status_sekolah.'</span>&nbsp;';
$_data[] = [
'no' => $key+1,
'id' => encode_id($row->id),
'npsn' => $row->sekolah->npsn,
'nama' => $sekolah,
'tahun' => $row->tahun,
'labelDok' => $labelDok,
'status_level' => '<span style="width:100%" class="badge badge-secondary">Level '.levelAdiwiyata($row->npsn).'</span>',
'wilayah' => $row->sekolah->kabupaten->name,
'penghargaan' => $penghargaan,
'jenis_usulan' => '<span class="badge badge-success">'.$jenis_usulan.'</span>',
'action' => $action,
];
}
return response()->json($_data);
}
public function store(Request $request)
{
$data = $request['data'];
$keyId = decode_id($data['secure_id']);
if(!@$keyId){
return response()->json(['status' => false,'message' => 'Maaf Terjadi Kesalahan','type' => 'error']);
}
$dok = DokumenAdministrasi::where('ms_sekolah_id',session('sekolah_id'))->where('tahun',date('Y'))->first();
if(@$dok->status == 1){
return response()->json(['status' => false,'message' => 'Dokumen Sudah di verifikasi','type' => 'info']);
}
$dok = DokumenAdministrasi::updateOrCreate([
'kuesioner_id' => $keyId,
'ms_sekolah_id' => session('sekolah_id'),
'npsn' => session('npsn'),
'created_by' => auth()->user()->id,
'tahun' => date('Y'),
],[
'kuesioner_id' => $keyId,
'ms_sekolah_id' => session('sekolah_id'),
'npsn' => session('npsn'),
'created_by' => auth()->user()->id,
'tahun' => date('Y'),
'link' => $data['file'],
'status' => 0,
]);
return response()->json(['status' => true,'message' => 'Berhasil Update Data','type' => 'success']);
}
public function verifikasi($id)
{
$keyId = decode_id($id);
$dok = DokumenAdministrasi::find($keyId);
$dok->status = 1;
$dok->save();
return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']);
}
public function tolak($id)
{
$keyId = decode_id($id);
$dok = DokumenAdministrasi::find($keyId);
$dok->status = 2;
$dok->save();
return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']);
}
}

View File

@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Master\Provinsi;
use App\Models\Kuesioner;
use App\Models\Master\Sekolah;
use App\Models\Master\FormKriteria;
class CSAKController extends Controller
{
@ -24,6 +26,49 @@ class CSAKController extends Controller
return view($this->template.'.index',$data);
}
public function update($id)
{
$keyId = decode_id($id);
$data['kuesioner'] = Kuesioner::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first();
$data['sekolah'] = Sekolah::find($keyId);
$data['route'] = $this->route;
$data['title'] = $this->title;
$data['page'] = FormKriteria::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->toArray();
$jumlah = json_decode($data['sekolah']->profile->data_jumlah);
$data['jumlah_peserta_didik'] = @$jumlah->jumlah_peserta_didik;
$data['jumlah_tenaga_pendidik'] = @$jumlah->jumlah_tenaga_pendidik;
$data['jumlah_tenaga_kependidikan'] = @$jumlah->jumlah_tenaga_kependidikan;
$data['jumlah_warga_sekolah_lainnya'] = @$jumlah->jumlah_warga_sekolah_lainnya;
$data['jumlah_biopori'] = @$jumlah->jumlah_biopori;
$data['jumlah_sumur_resapan'] = @$jumlah->jumlah_sumur_resapan;
$data['jumlah_pohon'] = @$jumlah->jumlah_pohon;
$air = json_decode($data['sekolah']->profile->penghematan_air);
$data['air_sebelum_pblhs'] = @$air->air_sebelum_pblhs;
$data['air_setelah_pblhs'] = @$air->air_setelah_pblhs;
$listrik = json_decode($data['sekolah']->profile->penghematan_listrik);
$data['listrik_sebelum_pblhs'] = @$listrik->listrik_sebelum_pblhs;
$data['listrik_setelah_pblhs'] = @$listrik->listrik_setelah_pblhs;
$data['luas_ruangan_ac'] = @$listrik->luas_ruangan_ac;
$data['luas_ruangan_non_ac'] = @$listrik->luas_ruangan_non_ac;
$data['jumlah_kader'] = @$listrik->jumlah_kader;
return view($this->template.'.form',$data);
}
public function resume($id)
{
// permission('is_read', $this->route, 'module',true);
$data['title'] = $this->title;
$data['route'] = $this->route;
$keyId = decode_id($id);
$data['sekolah'] = Sekolah::find($keyId);
$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 grid(Request $request)
{
@ -33,7 +78,7 @@ class CSAKController extends Controller
$action = '';
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>';
$action .= '<a href="'.url('usulan/csak/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-edit text-white"></i></a>';
}
if($row->level == 0){
@ -101,14 +146,6 @@ class CSAKController extends Controller
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/

View File

@ -6,8 +6,10 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Kuesioner;
use App\Models\Master\FormKriteria;
use App\Models\Master\Sekolah;
use App\Models\Penilaian;
use App\Models\KuesionerLog;
use App\Models\DokumenAdministrasi;
class KriteriaController extends Controller
{
@ -55,17 +57,20 @@ class KriteriaController extends Controller
$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();
$data['title'] = $this->title;
$data['route'] = $this->route;
$data['secure_id'] = $id;
$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();
$data['dok'] = DokumenAdministrasi::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->first();
$data['penilaian'] = Penilaian::where('ms_sekolah_id',$keyId)->where('tahun',date('Y'))->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->toArray();
return view($this->template.'.progress',$data);
}
public function store(Request $request)
{
// dd();
// dd($request['sekolah']);
$data = $request['data'];
$_value = [];
@ -123,19 +128,35 @@ class KriteriaController extends Controller
$skor = hitungSkor(str_replace('input_','',$key),$value);
}
if(session('group_alias') == 'sekolah'){
$status = 0;
}elseif(session('group_alias') == 'penilai_kota'){
$status = 1;
}elseif(session('group_alias') == 'penilai_provinsi'){
$status = 2;
}
if(@$request['sekolah']){
$idSekolah = decode_id(@$request['sekolah']);
$sekolah = Sekolah::find($idSekolah);
}else{
$idSekolah = session('sekolah_id');
$sekolah = Sekolah::find($idSekolah);
}
$penilaian[$key] = Penilaian::updateOrCreate([
'tahun' => date('Y'),
'ms_sekolah_id' => session('sekolah_id'),
'npsn' => session('npsn'),
'ms_sekolah_id' => $sekolah->MsSekolahId,
'npsn' => $sekolah->npsn,
'page_number' => decode_id($data['key']),
'key' => str_replace('input_','',$key),
'status' => $status,
],[
'ms_sekolah_id' => session('sekolah_id'),
'npsn' => session('npsn'),
'ms_sekolah_id' => $sekolah->MsSekolahId,
'npsn' => $sekolah->npsn,
'page_number' => decode_id($data['key']),
'key' => str_replace('input_','',$key),
'value' => json_encode($value),
'status' => 0,
'skor' => $skor,
'tahun' => date('Y'),
'created_by' => auth()->user()->id,
@ -147,4 +168,24 @@ class KriteriaController extends Controller
}
public function kirimData($sekolah_id, $kuesioner_id)
{
$keyId = decode_id($kuesioner_id);
$kuesioner = Kuesioner::find($keyId);
$kuesioner->status = 3;
$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 = 'kirim_kelengkapan_data';
$log->status = 3;
$log->created_by = auth()->user()->id;
$log->save();
return response()->json(['status' => true,'message' => 'Data Berhasil Di Update','type' => 'success']);
}
}

View File

@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DokumenAdministrasi extends Model
{
use HasFactory;
protected $table = 'dokumen_administrasi';
protected $primaryKey = 'DokumenAdministrasiId';
protected $guarded = [];
}

View File

@ -0,0 +1,38 @@
<?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::create('dokumen_administrasi', function (Blueprint $table) {
$table->id('DokumenAdministrasiId');
$table->integer('kuesioner_id');
$table->integer('ms_sekolah_id');
$table->integer('npsn');
$table->integer('created_by');
$table->text('link')->nullable();
$table->year('tahun');
$table->integer('status')->default(0);
$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('created_by')->references('id')->on('users')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('dokumen_administrasis');
}
};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 4.0 MiB

View File

@ -21,7 +21,7 @@
<div class="page-wrapper">
<div class="page-inner bg-brand-gradient">
<div class="page-content-wrapper bg-transparent m-0">
<div class="flex-1" style="background: url('https://banksampah.jakarta.go.id/images/logo/bg.png') no-repeat center bottom fixed; background-size: cover;">
<div class="flex-1" style="background: url('{{asset("assets/img/background.svg")}}') no-repeat center bottom fixed; background-size: cover;">
<div class="container py-4 py-lg-5 my-lg-5 px-4 px-sm-0">
<div class="row">
<div class="col col-md-6 col-lg-7 hidden-sm-down mt-5">

View File

@ -27,7 +27,7 @@
<div class="page-wrapper">
<div class="page-inner bg-brand-gradient">
<div class="page-content-wrapper bg-transparent m-0">
<div class="flex-1" style="background: url('https://banksampah.jakarta.go.id/images/logo/bg.png') no-repeat center bottom fixed; background-size: cover;">
<div class="flex-1" style="background: url('assets/img/background.svg') no-repeat center bottom fixed; background-size: cover;">
<div class="container py-4 py-lg-5 my-lg-5 px-4 px-sm-0">
<div class="row">
<div class="col-xl-12">
@ -52,7 +52,7 @@
<div id="loading-spinner" style="display: none; text-align: center;">
<img src="{{ asset('assets/spinner.gif') }}" alt="Loading..." width="20">
</div>
<div class="form-group row">
<div class="form-group row d-none">
<label class="col-xl-12 form-label" for="fname">Provinsi</label>
<div class="col-12 pr-1">
<select name="provinsi" class="form-control select2 @error('provinsi') provinsi is-invalid @enderror" id="provinsi">
@ -66,7 +66,7 @@
@enderror
</div>
</div>
<div class="form-group row">
<div class="form-group row d-none">
<label class="col-xl-12 form-label" for="fname">Kabupaten</label>
<div class="col-12 pr-1">
<select name="kabupaten" class="form-control select2 @error('kabupaten') kabupaten is-invalid @enderror" id="kabupaten" required>
@ -74,7 +74,7 @@
</select>
</div>
</div>
<div class="form-group row">
<div class="form-group row d-none">
<label class="col-xl-12 form-label" for="fname">Kecamatan</label>
<div class="col-12 pr-1">
<select name="kecamatan" class="form-control select2 @error('kecamatan') kecamatan is-invalid @enderror" id="kecamatan" required>
@ -82,7 +82,60 @@
</select>
</div>
</div>
<style type="text/css">
#result {
border: 1px solid #ccc;
display: none;
max-height: 200px;
overflow-y: auto;
background: #fff;
position: absolute;
width: 80%;
z-index: 999;
padding-left: 0px;
}
#result li {
padding: 10px;
list-style: none;
cursor: pointer;
}
#result li:hover {
background: #f0f0f0;
}
</style>
<div class="form-group row">
<label class="col-xl-12 form-label">Tingkat Sekolah</label>
<div class="col-12 pr-1">
<select name="tingkat_sekolah" class="form-control tingkat_sekolah select2 @error('tingkat_sekolah') is-invalid @enderror">
<option value="">-Pilih Tingkat Sekolah-</option>
<option value="1">SD</option>
<option value="2">SMP</option>
<option value="3">SMA</option>
<option value="4">SMK</option>
<option value="5">MI</option>
<option value="6">MTs</option>
<option value="7">MA</option>
<option value="8">SD LB</option>
<option value="9">SMP LB</option>
<option value="10">SMA LM</option>
<option value="11">SLB Khusus</option>
</select>
@error('tingkat_sekolah')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
</div>
<div class="form-group row">
<label class="col-xl-12 form-label" for="fname">NPSN</label>
<div class="col-12 pr-1">
<input maxlength="8" autocomplete="off" type="text" value="{{old('npsn')}}" name="npsn" class="form-control @error('npsn') is-invalid @enderror numberInput npsn" placeholder="Masukan NPSN">
<ul id="result"></ul>
@error('npsn')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
</div>
<div class="form-group row d-none">
<label class="col-xl-12 form-label" for="fname">Sekolah</label>
<div class="col-12 pr-1">
<select name="sekolah" class="form-control select2 @error('sekolah') sekolah is-invalid @enderror" id="sekolah" required>
@ -90,28 +143,6 @@
</select>
</div>
</div>
<div class="form-group d-none row">
<label class="col-xl-12 form-label" for="fname">Tingkat Sekolah</label>
<div class="col-12 pr-1">
<select name="tingkat_sekolah" class="form-control @error('tingkat_sekolah') is-invalid @enderror">
<option value="" data-select2-id="3">-Pilih Tingkat Sekolah-</option>
<option value="1" data-select2-id="11">SD</option>
<option value="2" data-select2-id="12">SMP</option>
<option value="3" data-select2-id="13">SMA</option>
<option value="4" data-select2-id="14">SMK</option>
<option value="5" data-select2-id="15">MI</option>
<option value="6" data-select2-id="16">MTs</option>
<option value="7" data-select2-id="17">MA</option>
<option value="8" data-select2-id="18">SD LB</option>
<option value="9" data-select2-id="19">SMP LB</option>
<option value="10" data-select2-id="20">SMA LM</option>
<option value="11" data-select2-id="21">SLB Khusus</option>
</select>
@error('tingkat_sekolah')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
</div>
<div class="form-group d-none row">
<label class="col-xl-12 form-label" for="fname">Status Sekolah</label>
<div class="col-12 pr-1">
@ -126,18 +157,9 @@
</div>
</div>
<div class="form-group row">
<label class="col-xl-12 form-label" for="fname">NPSN</label>
<div class="col-12 pr-1">
<input maxlength="8" readonly type="text" value="{{old('npsn')}}" name="npsn" class="form-control @error('npsn') is-invalid @enderror numberInput npsn" placeholder="">
@error('npsn')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
</div>
</div>
<div class="form-group d-none row">
<label class="col-xl-12 form-label" for="fname">Nama Sekolah</label>
<div class="col-12 pr-1">
<input type="text" value="{{old('name')}}" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="Masukan Nama Sekolah">
<input type="text" readonly value="{{old('name')}}" name="name" class="form-control nama_sekolah @error('name') is-invalid @enderror" placeholder="Masukan Nama Sekolah">
@error('name')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror
@ -244,6 +266,50 @@
icon.removeClass('fa-eye-slash').addClass('fa-eye'); // Kembalikan ikon
}
});
$('.npsn').on('keyup', function(){
var query = $(this).val();
var tingkat_sekolah = $('.tingkat_sekolah').find(':selected').val();
if(query.length > 0) {
$.ajax({
url: "{{ url('sekolahNpsn') }}",
type: "GET",
data: {
query: query,
tingkat_sekolah:tingkat_sekolah
},
success: function(data) {
$('#result').html('');
if(data.length > 0) {
$('#result').show();
$.each(data, function(index, data){
$('#result').append('<li data-npsn="'+data.npsn+'">' + data.nama_sekolah + '</li>');
});
} else {
$('#result').hide();
}
}
});
} else {
$('#result').hide();
}
});
// Saat klik pada hasil pencarian, isi input dan sembunyikan daftar
$(document).on('click', '#result li', function(){
var npsn = $(this).attr('data-npsn');
$('.npsn').val(npsn);
$('.nama_sekolah').val($(this).text());
$('#result').hide();
});
// Klik di luar input atau hasil pencarian untuk menyembunyikan daftar
$(document).on('click', function(e) {
if (!$(e.target).closest('.npsn, #result').length) {
$('#result').hide();
}
});
});
$("#js-login-btn").click(function(event)
{

View File

@ -24,6 +24,9 @@
<link rel="stylesheet" href="{{asset('assets/css/toast.min.css')}}">
<link rel="stylesheet" href="{{asset('assets/css/formplugins/select2/select2.bundle.css')}}">
<style type="text/css">
.table-nobordered td,.table-nobordered th{
border: none;
}
.info-card .info-card-text{
text-shadow:none;
color: #333!important;
@ -125,6 +128,7 @@
<script src="{{ asset('assets/js/sweetalert.min.js') }}"></script>
<script src="{{asset('assets/js/toast.min.js')}}"></script>
<script src="{{asset('assets/js/formplugins/select2/select2.bundle.js')}}"></script>
<script>
$(document).ready(function() {
$('.select2').select2();

View File

@ -124,15 +124,15 @@
<div class="card-body">
<div class="mb-4">
<h4><b>Status Usulan</b></h4>
@if(@$usulan && (@$usulan->status == 1))
@if(@$kuesioner && (@$kuesioner->status == 1))
<?php
if(@$usulan->level == 0){
if(@$kuesioner->level == 0){
$textLevel = 'Kabupaten/Kota';
}elseif(@$usulan->level == 1){
}elseif(@$kuesioner->level == 1){
$textLevel = 'Provinsi';
}elseif(@$usulan->level == 2){
}elseif(@$kuesioner->level == 2){
$textLevel = 'Nasional';
}elseif(@$usulan->level == 3){
}elseif(@$kuesioner->level == 3){
$textLevel = 'Mandiri';
}
?>
@ -144,23 +144,32 @@
</div>
@endif
</div>
@if(@$usulan)
@if(@$kuesioner)
<table class="table table-bordered">
<tr class="bg-success text-white">
<th colspan="2"><b>Penghargaan Terakhir</b></th>
<th><b>Penghargaan Terakhir</b></th>
<th><b>Tanggal Penetapan SK</b></th>
<th><b>Lampiran SK</b></th>
</tr>
<tr>
<td style="vertical-align: middle;">
<i class="fal fa-trophy"></i>
<?php
if($kuesioner->level == 0){
$penghargaan = '<h5>Belum Pernah</h5>';
}elseif($kuesioner->level == 1){
$penghargaan = '<h5>Adiwiyata Kab/Kota</h5>';
}elseif($kuesioner->level == 2){
$penghargaan = '<h5>Adiwiyata Provinsi</h5>';
}elseif($kuesioner->level == 3){
$penghargaan = '<h5>Adiwiyata Nasional</h5>';
}elseif($kuesioner->level == 4){
$penghargaan = '<h5>Adiwiyata Mandiri</h5>';
}
?>
{!!$penghargaan!!}
</td>
<td style="vertical-align: middle;">
<h5><b>Adiwiyata Provinsi</b></h5>
<span>SK Gubernur DKI Nomor 276 Tahun 2023 </span>
</td>
<td style="vertical-align: middle;">2023-04-13 </td>
<td style="vertical-align: middle;">--</td>
<td style="vertical-align: middle;">-</td>
<td style="vertical-align: middle;">-</td>
</tr>
</table>
@endif

View File

@ -128,7 +128,7 @@
<table class="table">
<tbody>
<tr>
<td colspan="3" class="bg-success text-white">Data Jumlah</td>
<td colspan="2" class="bg-success text-white">Data Jumlah</td>
</tr>
<tr>
<th scope="row"> Jumlah Peserta Didik</th>
@ -179,7 +179,7 @@
<table class="table">
<tbody>
<tr>
<td colspan="3" scope="row" class="bg-success text-white">Penghematan air sebelum dan setelah melaksanakan gerakan PBLHS :</td>
<td colspan="2" scope="row" class="bg-success text-white">Penghematan air sebelum dan setelah melaksanakan gerakan PBLHS :</td>
</tr>
<tr>
<th scope="row"> Sebelum melaksanakan gerakan PBLHS <br> <small class="text-info">(Meter Kubik/Bulan)</small></th>
@ -200,7 +200,7 @@
<table class="table">
<tbody>
<tr>
<td colspan="3" scope="row" class="bg-success text-white">Penghematan listrik sebelum dan setelah melaksanakan gerakan PBLHS :</td>
<td colspan="2" scope="row" class="bg-success text-white">Penghematan listrik sebelum dan setelah melaksanakan gerakan PBLHS :</td>
</tr>
<tr>
<th scope="row"> Sebelum melaksanakan gerakan PBLHS <br> <small class="text-info">(KWH/Bulan)</small><br> <small class="text-info"></small>

View File

@ -0,0 +1,505 @@
@extends('layouts.master')
@section('page-css')
<link rel="stylesheet" media="screen, print" href="{{asset('assets/css/datagrid/datatables/datatables.bundle.css')}}">
<link rel="stylesheet" href="{{asset('assets/css/bootstrap-table.min.css')}}">
@endsection
@section('content')
<div class="subheader">
<h1 class="subheader-title">
<i class='subheader-icon fal fa-building'></i> {{$title}}
</h1>
</div>
<div class="row">
<div class="col-lg-12">
<div class="accordion" id="accordionExample">
<div class="card">
<div class="card-header" id="headingOne">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<i class="fal fa-filter"></i>&nbsp;Filter
</button>
</h2>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body">
<div class="row">
<div class="col-md-12 mb-2">
<div class="row">
<div class="col-md-3">
<div class="form-group">
<select class="form-control select2">
<option value="">-- PILIH TINGKAT --</option>
<option value="1">SD</option>
<option value="2">SMP</option>
<option value="3">SMA</option>
<option value="4">SMK</option>
<option value="5">MI</option>
<option value="6">MTs</option>
<option value="7">MA</option>
<option value="8">SD LB</option>
<option value="9">SMP LB</option>
<option value="10">SMA LM</option>
<option value="11">SLB Khusus</option>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<select class="form-control select2">
<option value="">-- PILIH STATUS --</option>
<option value="Negeri">Negeri</option>
<option value="Swasta">Swasta</option>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<select class="form-control select2">
<option value="">-- PILIH LEVEL --</option>
<option value="1"> LEVEL 1</option>
<option value="2"> LEVEL 2</option>
<option value="3"> LEVEL 3</option>
<option value="4"> LEVEL 4</option>
<option value="5"> LEVEL 5</option>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<select class="form-control select2">
<option value="">-- PILIH JENIS USULAN --</option>
<option value="1">Kab/Kota</option>
<option value="2">Provinsi</option>
<option value="3">Nasional</option>
<option value="4">Mandiri</option>
</select>
</div>
</div>
</div>
</div>
<div class="col-md-12 mb-2">
<div class="row">
<div class="col-md-3">
<div class="form-group">
<select name="provinsi" class="form-control select2" id="provinsi">
<option value="0">- PILIH PROVINSI -</option>
@foreach($provinsi as $datProv)
<option value="{{encode_id($datProv->MsProvinsiId)}}">{{$datProv->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<select name="kabupaten" class="form-control select2" id="kabupaten">
<option value="0">- PILIH KABUPATEN/KOTA -</option>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<select name="kecamatan" class="form-control select2" id="kecamatan" required>
<option value="0">- PILIH KECAMATAN -</option>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<button class="btn btn-warning btn-block"><i class="fal fa-search"></i>&nbsp;Cari Data</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="panel-4" class="panel">
<div class="panel-container show">
<div class="panel-content">
<div id="toolbar"></div>
<table class="table table-bordered table-hover table-striped w-100"
data-search="true"
data-toggle="table"
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">
<thead class="text-white">
<tr class="table-primary">
<th data-field="action">#</th>
<th data-field="no">No</th>
<th data-field="tahun">Tahun</th>
<th data-field="jenis_usulan">Usulan CSA</th>
<th data-field="npsn">NPSN</th>
<th data-field="nama">Nama Sekolah</th>
<th data-field="wilayah">Wilayah</th>
<th data-field="labelDok">Status Dokumen</th>
</tr>
</thead>
<tbody></tbody>
</table>
<!-- datatable end -->
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<form action="#" method="POST" enctype="multipart/form-data" id="form">
{{csrf_field()}}
<input type="hidden" name="secure_id" class="secure_id" value="">
<div class="modal-content">
<div class="modal-header">
<h5><b>{{$title}}</b></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="fal fa-times"></i></span>
</button>
</div>
<div class="modal-body">
<table class="table table-nobordered wrap">
<tr>
<td width="50%">
<div class="jenisusulan"></div>
<small class="text-primary">(Link Google Drive)</small>
</td>
<td>
<input type="text" class="form-control is-required" name="file" required>
<small class="text-primary">Contoh link : https://example.com</small>
<br>
<a href="#" class="btn btn-primary btn-xs link mt-2" style="display: none;" target="_blank"><i class="fal fa-link"></i>&nbsp;Link Lampiran</a>
</td>
</tr>
</table>
</div>
@if(session('group_alias') == 'sekolah')
<div class="modal-footer">
<button type="submit" class="btn btn-primary" id="btnSave">Simpan</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
</div>
@endif
</div>
</form>
</div>
</div>
@endsection
@section('page-js')
<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">
// <tr class="extra-row" style="display: none;">
// <td colspan="8">
// <strong>Detail Tambahan:</strong> Informasi tambahan lainnya.
// </td>
// </tr>
$("#grid-data").on("click", ".toggle-row", function() {
let btn = $(this);
let row = btn.closest("tr");
let icon = btn.find("i");
let jenis_usulan = $(this).attr('data-jenisusulan');
let link = $(this).attr('data-link');
if (row.next().hasClass("extra-row")) {
row.next().remove(); // Hapus jika sudah ada
icon.removeClass("btn-secondary").addClass("btn-secondary");
} else {
let newRow = `
<tr class="extra-row">
<td colspan="8">
${jenis_usulan} <br>
<a class="btn btn-primary btn-xs" href="${link}" target="_blank"><i class="fal fa-link"></i>&nbsp;Link Lampiran</a>
</td>
</tr>
`;
row.after(newRow);
icon.removeClass("btn-secondary").addClass("btn-secondary");
}
});
$("#grid-data").on("click", ".tolak", function() {
var base_url = $(this).attr('data-href');
var id = $(this).attr('data-id');
swal({
title: "Tolak Dokumen!",
text: "Apa anda yakin ingin tolak Dokumen 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("/usulan/administrasi")}}';
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 Dokumen!",
text: "Apa anda yakin ingin verifikasi Dokumen 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("/usulan/administrasi")}}';
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',".btnModal", function(e) {
$('.jenisusulan').html($(this).attr('data-jenisusulan'));
$('.secure_id').val($(this).attr('data-secureid'));
var link = $(this).attr('data-link');
if(link != ''){
$('.link').show();
$('.link').attr('href',link);
}else{
$('.link').hide();
$('.link').attr('href','');
}
});
$('#btnSave').on('click',function(e){
e.preventDefault();
let currentForm = $("#form").serializeArray();
console.log(currentForm);
let formData = {};
let allData = {};
let isValid = true; // Flag validasi
currentForm.forEach(field => {
let name = field.name.replace(/\[\]$/, ''); // Hapus "[]" di akhir nama input
if (allData[name]) {
if (!Array.isArray(allData[name])) {
allData[name] = [allData[name]];
}
allData[name].push(field.value);
} else {
allData[name] = field.value;
}
});
$('.is-required').each(function () {
let type = $(this).attr('type');
let name = $(this).attr('name');
let value = $(this).val()?.trim(); // Pastikan nilai di-trim untuk menghindari spasi kosong
// Validasi input teks atau lainnya
if (!value) {
isValid = false;
$(this).addClass("is-invalid");
} else {
$(this).removeClass("is-invalid");
}
});
// Jika validasi gagal, hentikan submit
if (!isValid) {
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
// alert(".");
return;
}
$.ajax({
url: "{{route($route.'.store')}}", // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
data: allData
}, // 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.warning(response.message, {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
}
location.reload();
},
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
}
});
});
$('select').on("select2:selecting", function(e) {
var selectorOrigin = this.id;
var id = e.params.args.data.id;
if(selectorOrigin=='provinsi'){
$('#loading-spinner').show();
clear('kabupaten');
selector = 'kabupaten';
url_to = 'kabupaten';
getSelect(id, selector, url_to);
}
if(selectorOrigin=='kabupaten'){
$('#loading-spinner').show();
clear('kecamatan');
selector = 'kecamatan';
url_to = 'kecamatan';
getSelect(id, selector, url_to);
}
if(selectorOrigin=='kecamatan'){
$('#loading-spinner').show();
clear('sekolah');
selector = 'sekolah';
url_to = 'sekolah';
getSelect(id, selector, url_to);
}
});
function clear(elementId) {
$('#' + elementId).empty();
$('#' + elementId).select2();
}
function getSelect(id, selectTo, urlTo, selected = "") {
id = id;
var base_url = "{{url('/')}}";
//alert(id);
destino = "#" + selectTo;
valor = $('#' + id).find(":selected").val();
$.ajax({
method: "POST",
url: base_url + "/get/" + urlTo,
data: {
_token: '{{csrf_token()}}',
id: id
}
}).done(function(msg) {
obj = msg.data;
if (obj.length > 0) {
//Clear the current options
$(destino).empty();
if(selectTo=='kabupaten'){
$(destino).append('<option value="">-PILIH KABUPATEN/KOTA-</option>').select2("val", "0");
$.each(obj, function(index) {
value = obj[index].id;
text = obj[index].name;
$(destino).append('<option value=' + value + '>' + text + '</option>');
});
console.log(selected)
if (selected) {
$(destino).val(selected).trigger('change');
selected = "";
}
}
if(selectTo=='kecamatan'){
$(destino).append('<option value="">-PILIH KECAMATAN-</option>').select2("val", "0");
$.each(obj, function(index) {
value = obj[index].id;
text = obj[index].name;
$(destino).append('<option value=' + value + '>' + text + '</option>');
});
console.log(selected)
if (selected) {
$(destino).val(selected).trigger('change');
selected = "";
}
}
} else {
if(selectTo=='provinsi'){
$(destino).empty().append('<option value="0">-PILIH PROVINSI-</option>').select2("val", "0");
}
if(selectTo=='kabupaten'){
$(destino).empty().append('<option value="0">-PILIH KABUPATEN/KOTA-</option>').select2("val", "0");
}
if(selectTo=='kecamatan'){
$(destino).empty().append('<option value="0">-PILIH KECAMATAN-</option>').select2("val", "0");
}
}
$('#loading-spinner').hide();
});
return false;
}
</script>
@endsection

View File

@ -0,0 +1,531 @@
@extends('layouts.master')
@section('page-css')
<link rel="stylesheet" media="screen, print" href="{{asset('assets/css/datagrid/datatables/datatables.bundle.css')}}">
<style type="text/css">
.listItem{
list-style: none;
margin: 0;
padding: 0;
}
.listItem > li{
display: inline-block;
margin: 10px;
}
.listItem > li:hover{
cursor: pointer;
}
.listItem > li .number{
font-size: 14px;
color: #fff;
background: #0ba360 !important;
padding: 10px;
border-radius: 10%;
}
.level{
float: right;
color: #fff;
text-align: center;
width: 100px;
}
.nav-link{
border-radius: 0px!important;
}
.pageNumber{ list-style:none; padding:0px; margin: 0px;}
.pageNumber > li{ display: inline-block; padding: 12px; background: rgba(255, 255, 255, 0.5); margin: 5px 1px;}
.pageNumber > li:hover{cursor: pointer;}
.page.activePage {
background-color: #007bff; /* Warna biru */
color: white;
font-weight: bold;
}
</style>
@endsection
@section('content')
<div class="subheader">
<h1 class="subheader-title">
<i class='subheader-icon fal fa-edit'></i> {{$title}}
</h1>
</div>
<div class="row">
<div class="col-lg-12">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="POST" id="form">
{{csrf_field()}}
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-12 p-3">
<table class="" border="0" style="width:100%">
<tr>
<td rowspan="5" width="5" style="vertical-align: middle; padding-right: 10px;">
<i class="fal fa-building fa-5x"></i>
</td>
</tr>
<tr>
<td colspan="2"><h5 class="text-success">NPSN: {{$sekolah->npsn}}</h5></td>
</tr>
<tr>
<td colspan="2"><h4><b>{{$sekolah->nama_sekolah}}</b></h4></td>
</tr>
<tr>
<td colspan="2"><span class="badge badge-primary">{{$sekolah->tingkat->name}}</span> <span class="badge badge-success">{{$sekolah->status}}</span></td>
</tr>
</table>
</div>
<div class="col-12">
<div class="col-md-12" style="background: rgba(23, 162, 184, 0.2) !important;">
<ul class="nav nav-pills" role="tablist">
<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#profile">Profile Sekolah</a></li>
<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#dokumen">Dokumen Administrasi</a></li>
<li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#kriteria">Pemenuhan Kriteria</a></li>
<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#usulan">Usulan CSA</a></li>
</ul>
</div>
<div class="tab-content py-3">
<div class="tab-pane fade" id="profile" role="tabpanel">
<table class="table table-nobordered">
<tr class="table-info">
<td colspan="2"><b>Profile Sekolah</b></td>
</tr>
<tr>
<td>NPSN</td>
<td>{{@$sekolah->npsn}}</td>
</tr>
<tr>
<td>Nama Sekolag</td>
<td>{{@$sekolah->nama_sekolah}}</td>
</tr>
<tr>
<td>Tingkat Sekolah</td>
<td>{{@$sekolah->tingkat->name}}</td>
</tr>
<tr>
<td>Status Sekolah</td>
<td>{{@$sekolah->status}}</td>
</tr>
<tr class="table-info">
<td colspan="2"><b>Alamat Sekolah</b></td>
</tr>
<tr>
<td>Provinsi</td>
<td>{{@$sekolah->provinsi->name}}</td>
</tr>
<tr>
<td>Kabupaten/Kota</td>
<td>{{@$sekolah->kabupaten->name}}</td>
</tr>
<tr>
<td>Kecamatan</td>
<td>{{@$sekolah->kecamatan->name}}</td>
</tr>
<tr>
<td>Alamat Lengkap</td>
<td>{{@$sekolah->profile->alamat_sekolah}}</td>
</tr>
<tr>
<td>Kontak Person</td>
<td>{{@$sekolah->profile->kontak_person}}</td>
</tr>
<tr>
<td>Telp</td>
<td>{{@$sekolah->profile->telp}}</td>
</tr>
<tr class="table-info">
<td colspan="2"><b>Data Jumlah</b></td>
</tr>
<tr>
<td scope="row"> Jumlah Peserta Didik</td>
<td>
<input readonly name="jumlah_peserta_didik" value="{{@$jumlah_peserta_didik ? @$jumlah_peserta_didik : old('jumlah_peserta_didik')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jumlah peserta didik">
</td>
</tr>
<tr>
<td scope="row"> Jumlah Tenaga Pendidik</td>
<td>
<input readonly name="jumlah_tenaga_pendidik" value="{{@$jumlah_tenaga_pendidik ? @$jumlah_tenaga_pendidik : old('jumlah_tenaga_pendidik')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jumlah tenaga pendidik">
</td>
</tr>
<tr>
<td scope="row"> Jumlah Tenaga kependidikan</td>
<td>
<input readonly name="jumlah_tenaga_kependidikan" value="{{@$jumlah_tenaga_kependidikan ? @$jumlah_tenaga_kependidikan : old('jumlah_tenaga_kependidikan')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jumlah tenaga kependidikan">
</td>
</tr>
<tr>
<td scope="row"> Jumlah Warga Sekolah Lainnya</td>
<td>
<input readonly name="jumlah_warga_sekolah_lainnya" value="{{@$jumlah_warga_sekolah_lainnya ? @$jumlah_warga_sekolah_lainnya : old('jumlah_warga_sekolah_lainnya')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jumlah warga lainnya (cont:petugas kebersihan, petugas keamanan, petugas kantin, dll)">
</td>
</tr>
<tr>
<td scope="row"> Jumlah Biopori</td>
<td>
<input readonly name="jumlah_biopori" value="{{@$jumlah_biopori ? @$jumlah_biopori : old('jumlah_biopori')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jumlah biopori">
</td>
</tr>
<tr>
<td scope="row"> Jumlah Sumur Resapan</td>
<td>
<input readonly name="jumlah_sumur_resapan" value="{{@$jumlah_sumur_resapan ? @$jumlah_sumur_resapan : old('jumlah_sumur_resapan')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jumlah sumur resapan">
</td>
</tr>
<tr>
<td scope="row"> Jumlah Pohon/Tanaman yang ditanam dan tumbuh</td>
<td>
<input readonly name="jumlah_pohon" value="{{@$jumlah_pohon ? @$jumlah_pohon : old('jumlah_pohon')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jumlah pohon tanaman">
</td>
</tr>
<tr class="table-info">
<td colspan="2"><b>Penghematan air sebelum dan setelah melaksanakan gerakan PBLHS :</b></td>
</tr>
<tr>
<td scope="row"> Sebelum melaksanakan gerakan PBLHS <br> <small class="text-info">(Meter Kubik/Bulan)</small></td>
<td>
<input readonly name="air_sebelum_pblhs" value="{{@$air_sebelum_pblhs ? @$air_sebelum_pblhs : old('air_sebelum_pblhs')}}" type="text" class="numberInput form-control form-control-sm" placeholder="rata-rata per bulan dalam meter kubik">
</td>
</tr>
<tr>
<td scope="row"> Setelah melaksanakan gerakan PBLHS <br> <small class="text-info">(Meter Kubik/Bulan dalam Tahun ajaran 2022/2023)</small></td>
<td>
<input readonly name="air_setelah_pblhs" value="{{@$air_setelah_pblhs ? @$air_setelah_pblhs : old('air_setelah_pblhs')}}" type="text" class="numberInput form-control form-control-sm" placeholder="rata-rata per bulan dalam meter kubik">
</td>
</tr>
<tr class="table-info">
<td colspan="2"><b>Penghematan listrik sebelum dan setelah melaksanakan gerakan PBLHS :</b></td>
</tr>
<tr>
<td> Sebelum melaksanakan gerakan PBLHS <br> <small class="text-info">(KWH/Bulan)</small><br> <small class="text-info"></smald>
</th>
<td>
<input readonly name="listrik_sebelum_pblhs" value="{{@$listrik_sebelum_pblhs ? @$listrik_sebelum_pblhs : old('listrik_sebelum_pblhs')}}" type="text" class="numberInput form-control form-control-sm" placeholder="rata-rata per bulan dalam kwh">
</td>
</tr>
<tr>
<td> Setelah melaksanakan gerakan PBLHS <br> <small class="text-info">(KWH/Bulan dalam Tahun ajaran 2022/2023)</small></td>
<td>
<input readonly name="listrik_setelah_pblhs" value="{{@$listrik_setelah_pblhs ? @$listrik_setelah_pblhs : old('listrik_setelah_pblhs')}}" type="text" class="numberInput form-control form-control-sm" placeholder="rata-rata per bulan dalam kwh">
</td>
</tr>
<tr>
<td> Luas ruangan ber AC</td>
<td>
<input readonly name="luas_ruangan_ac" value="{{@$luas_ruangan_ac ? @$luas_ruangan_ac : old('luas_ruangan_ac')}}" type="text" class="numberInput form-control form-control-sm" placeholder="dalam satuan meter persegi">
</td>
</tr>
<tr>
<td> Luas ruangan non AC</td>
<td>
<input readonly name="luas_ruangan_non_ac" value="{{@$luas_ruangan_non_ac ? @$luas_ruangan_non_ac : old('luas_ruangan_non_ac')}}" type="text" class="numberInput form-control form-control-sm" placeholder="dalam satuan meter persegi">
</td>
</tr>
<tr>
<td> Jumlah Kader</td>
<td>
<input readonly name="jumlah_kader" value="{{@$jumlah_kader ? @$jumlah_kader : old('jumlah_kader')}}" type="text" class="numberInput form-control form-control-sm" placeholder="jml kader yang dibentuk dan diberdayakan selama pelaksanaan gerakan PBLHS">
</td>
</tr>
</table>
</div>
<div class="tab-pane fade" id="dokumen" role="tabpanel">
<table class="table table-bordered">
<tr>
<td class="table-info">Seleksi Isian Dokumen Administrasi CSA</td>
</tr>
<tr>
<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>
</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>
</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>
</td>
</tr>
<tr>
<td><button id="btnSaveAdministrasi" class="btn btn-success"><i class="fal fa-save"></i>&nbsp;Simpan Data</button></td>
</tr>
</table>
</div>
<div class="tab-pane fade active show" id="kriteria" role="tabpanel">
<div class="row">
<div class="col-md-12" style="background: rgba(23, 162, 184, 0.2) !important;">
<ul class="pageNumber">
@foreach($page as $hal)
<li class="page {{ (checkPenilaian($hal,$sekolah->MsSekolahId) == true ? 'bg-success text-white' : '' )}}" data-number={{$hal}}>{{$hal}}</li>
@endforeach
<!-- <li class="resume">Resume</li> -->
</ul>
</div>
<div class="col-md-12 mt-3">
<div class="alert alert-primary mb-2 p-2">
<h6 class="mb-0"><b class="changeTitle">I. Perencanaan Gerakan PBLHS</b></h6>
</div>
</div>
<div class="col-md-8 bodyInput">
<div id="loading-spinner" style="display: none; text-align: center;">
<img src="{{ asset('assets/spinner.gif') }}" alt="Loading..." width="20">
</div>
<div class="changeForm">
{!! formKriteria(1,$sekolah->MsSekolahId) !!}
</div>
</div>
<div class="col-md-4 mt-5 mx-auto">
<div class="mx-auto text-center">
<a href="#" class="btn btn-outline-primary mr-2 ">
Sekolah
<br>
<h4 class="nilai_sekolah">{{getNilai('sekolah',1,$sekolah->MsSekolahId)}}</h4>
</a>
<a href="#" class="btn btn-outline-warning mr-2 ">
Kab/Kota
<br>
<h4 class="nilai_kota">{{getNilai('kota',1,$sekolah->MsSekolahId)}}</h4>
</a>
<a href="#" class="btn btn-outline-danger mr-2 ">
Provinsi
<br>
<h4 class="nilai_provinsi">{{getNilai('provinsi',1,$sekolah->MsSekolahId)}}</h4>
</a>
</div>
</div>
<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>
</div>
</div>
<div class="tab-pane fade" id="usulan" role="tabpanel">
<table class="table table-nobordered">
<tr>
<th colspan="2" class="table-info">Usulan</th>
</tr>
<tr>
<td>Jenis Usulan CSA</td>
<td>Nasional</td>
</tr>
<tr>
<th colspan="2" class="table-info">Penghargaan</th>
</tr>
<tr>
<td>Penghargaan Terakhir</td>
<td>Adiwiyata Provinsi</td>
</tr>
<tr>
<td>Nomor SK</td>
<td>-</td>
</tr>
<tr>
<td>Tanggal Penetapan SK</td>
<td>04-12-1993</td>
</tr>
<tr>
<th colspan="2" class="table-info">Berdasarkan data usulan yang dilengkapi, dinyatakan bahwa {{@$sekolah->nama_sekolah}} :</th>
</tr>
<tr>
<td>Nilai Dokumen Administrasi</td>
<td>0</td>
</tr>
<tr>
<td>Nilai Pemenuhan Kriteria</td>
<td>0</td>
</tr>
<tr>
<td>Validasi</td>
<td>
<select class="form-control select2" name="validasi">
<option value="">- Pilih Validasi -</option>
<option value="1">Diteruskan</option>
<option value="2">Dikembalikan</option>
</select>
</td>
</tr>
<tr>
<td>Catatan</td>
<td>
<textarea class="form-control" name="catatan_validasi" placeholder="Catatan"></textarea>
</td>
</tr>
<tr>
<td><button id="btnSaveUsulan" class="btn btn-success"><i class="fal fa-save"></i>&nbsp;Simpan Data</button></td>
<td></td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
@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();
let number = $(this).data('number');
let base_url = "{{url('/')}}";
// Tambahkan kelas active dan hapus dari yang lain
$('.page').removeClass('activePage');
$(this).addClass('activePage');
$.ajax({
url: base_url+'/getForm', // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
page: number,
sekolah: "{{encode_id(@$sekolah->MsSekolahId)}}"
}, // Kirim number sebagai parameter
dataType: 'json', // Format respons JSON
beforeSend: function () {
$('#loading-spinner').show(); // Menampilkan spinner
$('.removeFormKriteria').remove();
},
success: function (response) {
console.log('Response:', response);
$('.changeForm').append(response.data);
$('.changeTitle').html(response.title);
$('.nilai_sekolah').html(response.nilai_sekolah);
$('.nilai_kota').html(response.nilai_kota);
$('.nilai_provinsi').html(response.nilai_prov);
$('.numberInput').on('input', function() {
this.value = this.value.replace(/[^0-9]/g, ''); // Hanya angka 0-9
});
},
error: function (xhr, status, error) {
console.error('AJAX Error:', status, error);
alert('Failed to fetch data!');
},
complete: function () {
$('#loading-spinner').hide(); // Sembunyikan spinner setelah request selesai
}
});
});
$('.resume').on('click',function(e){
window.location.href = "{{url('usulan/csak/resume/'.encode_id($sekolah->MsSekolahId))}}";
});
$('#btnSave').on('click',function(e){
e.preventDefault();
let currentForm = $("#form").serializeArray();
console.log(currentForm);
let formData = {};
let allData = {};
let isValid = true; // Flag validasi
currentForm.forEach(field => {
let name = field.name.replace(/\[\]$/, ''); // Hapus "[]" di akhir nama input
if (allData[name]) {
if (!Array.isArray(allData[name])) {
allData[name] = [allData[name]];
}
allData[name].push(field.value);
} else {
allData[name] = field.value;
}
});
$('.is-required').each(function () {
let type = $(this).attr('type');
let name = $(this).attr('name');
let value = $(this).val()?.trim(); // Pastikan nilai di-trim untuk menghindari spasi kosong
if (type === 'radio' || type === 'checkbox') {
// Validasi radio: setidaknya satu opsi harus dipilih
if ($(`input[name="${name}"]:checked`).length === 0) {
isValid = false;
$(`input[name="${name}"]`).closest('.custom-control-input').addClass("is-invalid");
} else {
$(`input[name="${name}"]`).closest('.custom-control-input').removeClass("is-invalid");
}
} else {
// Validasi input teks atau lainnya
if (!value) {
isValid = false;
$(this).addClass("is-invalid");
} else {
$(this).removeClass("is-invalid");
}
}
});
// Jika validasi gagal, hentikan submit
if (!isValid) {
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
// alert(".");
return;
}
$.ajax({
url: "{{route('modules.usulan.kriteria.store')}}", // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
data: allData,
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);
toastr.success("Berhasil menyimpan data", 'Success!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
$('.page').closest('.activePage').addClass('bg-success');
$('.page').closest('.activePage').addClass('text-white');
$('.page').removeClass('activePage');
// (checkPenilaian($hal) == true ? 'bg-success text-white' : '' )
},
error: function (xhr, status, error) {
// 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
}
});
});
</script>
@endsection

View File

@ -0,0 +1,258 @@
@extends('layouts.master')
@section('page-css')
<link rel="stylesheet" media="screen, print" href="{{asset('assets/css/datagrid/datatables/datatables.bundle.css')}}">
<style type="text/css">
.listItem{
list-style: none;
margin: 0;
padding: 0;
}
.listItem > li{
display: inline-block;
margin: 10px;
}
.listItem > li:hover{
cursor: pointer;
}
.listItem > li .number{
font-size: 14px;
color: #fff;
background: #0ba360 !important;
padding: 10px;
border-radius: 10%;
}
.level{
float: right;
color: #fff;
text-align: center;
width: 100px;
}
.nav-link{
border-radius: 0px!important;
}
.pageNumber{ list-style:none; padding:0px; margin: 0px;}
.pageNumber > li{ display: inline-block; padding: 12px; background: rgba(255, 255, 255, 0.5); margin: 5px 1px;}
.pageNumber > li:hover{cursor: pointer;}
.pageNumber > li.active {
background-color: #007bff; /* Warna biru */
color: white;
font-weight: bold;
}
</style>
@endsection
@section('content')
<div class="subheader">
<h1 class="subheader-title">
<i class='subheader-icon fal fa-edit'></i> {{$title}}
</h1>
</div>
<div class="row">
<div class="col-lg-12">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="POST" id="form">
{{csrf_field()}}
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-12 p-3">
<table class="" border="0" style="width:100%">
<tr>
<td rowspan="5" width="5" style="vertical-align: middle; padding-right: 10px;">
<i class="fal fa-building fa-5x"></i>
</td>
</tr>
<tr>
<td colspan="2"><h5 class="text-success">NPSN: {{$sekolah->npsn}}</h5></td>
</tr>
<tr>
<td colspan="2"><h4><b>{{$sekolah->nama_sekolah}}</b></h4></td>
</tr>
<tr>
<td colspan="2"><span class="badge badge-primary">{{$sekolah->tingkat->name}}</span> <span class="badge badge-success">{{$sekolah->status}}</span></td>
</tr>
</table>
</div>
<div class="col-md-12">
<div class="alert alert-warning">
<p class="mb-0"><i class="fal fa-info-circle"></i>&nbsp;Anda Belum Melakukan Finalisasi Proses Data Kriteria</p>
<p class="mb-0"><i class="fal fa-info-circle"></i>&nbsp;Klik <b class="text-danger">Progress Usulan</b> untuk melakukan Finalisasi Proses Data Kriteria</p>
</div>
</div>
<div class="col-md-12 mb-4" style="background: rgba(23, 162, 184, 0.2) !important;">
<ul class="pageNumber">
<li class="back"><i class="fal fa-arrow-left"></i></li>
<li class="resume active">Resume</li>
</ul>
</div>
<div class="col-md-12 bodyInput">
<div id="loading-spinner" style="display: none; text-align: center;">
<img src="{{ asset('assets/spinner.gif') }}" alt="Loading..." width="20">
</div>
<div class="changeForm">
@foreach($page as $dataNumber)
<div class="card mb-2" style="background:#EDE8DC;">
<div class="card-header color-white bg-success">
{{$dataNumber}}
</div>
<div class="card-body color-black">
{!! formKriteria($dataNumber,$sekolah->MsSekolahId) !!}
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
@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();
let number = $(this).data('number');
let base_url = "{{url('/')}}";
// Tambahkan kelas active dan hapus dari yang lain
$('.page').removeClass('active');
$(this).addClass('active');
$.ajax({
url: base_url+'/getForm', // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
page: number ,
sekolah: {{@$sekolah->MsSekolahId}}
}, // Kirim number sebagai parameter
dataType: 'json', // Format respons JSON
beforeSend: function () {
$('#loading-spinner').show(); // Menampilkan spinner
$('.removeFormKriteria').remove();
},
success: function (response) {
console.log('Response:', response);
$('.changeForm').append(response.data);
$('.changeTitle').html(response.title);
$('.numberInput').on('input', function() {
this.value = this.value.replace(/[^0-9]/g, ''); // Hanya angka 0-9
});
},
error: function (xhr, status, error) {
console.error('AJAX Error:', status, error);
alert('Failed to fetch data!');
},
complete: function () {
$('#loading-spinner').hide(); // Sembunyikan spinner setelah request selesai
}
});
});
$('.back').on('click',function(e){
window.location.href = "{{url('usulan/csak/update/'.encode_id($sekolah->MsSekolahId))}}";
});
$('#btnSave').on('click',function(e){
e.preventDefault();
let currentForm = $("#form").serializeArray();
console.log(currentForm);
let formData = {};
let allData = {};
let isValid = true; // Flag validasi
currentForm.forEach(field => {
let name = field.name.replace(/\[\]$/, ''); // Hapus "[]" di akhir nama input
if (allData[name]) {
if (!Array.isArray(allData[name])) {
allData[name] = [allData[name]];
}
allData[name].push(field.value);
} else {
allData[name] = field.value;
}
});
$('.is-required').each(function () {
let type = $(this).attr('type');
let name = $(this).attr('name');
let value = $(this).val()?.trim(); // Pastikan nilai di-trim untuk menghindari spasi kosong
if (type === 'radio' || type === 'checkbox') {
// Validasi radio: setidaknya satu opsi harus dipilih
if ($(`input[name="${name}"]:checked`).length === 0) {
isValid = false;
$(`input[name="${name}"]`).closest('.custom-control-input').addClass("is-invalid");
} else {
$(`input[name="${name}"]`).closest('.custom-control-input').removeClass("is-invalid");
}
} else {
// Validasi input teks atau lainnya
if (!value) {
isValid = false;
$(this).addClass("is-invalid");
} else {
$(this).removeClass("is-invalid");
}
}
});
// Jika validasi gagal, hentikan submit
if (!isValid) {
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
// alert(".");
return;
}
$.ajax({
url: "{{route($route.'.store')}}", // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
data: allData
}, // Kirim number sebagai parameter
dataType: 'json', // Format respons JSON
beforeSend: function () {
$('#loading-spinner').show(); // Menampilkan spinner
},
success: function (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!');
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
}
});
});
</script>
@endsection

View File

@ -106,8 +106,8 @@
</div>
<div class="col-md-12 bodyInput">
<div id="loading-spinner" style="display: none; text-align: center;">
<img src="{{ asset('assets/spinner.gif') }}" alt="Loading..." width="20">
</div>
<img src="{{ asset('assets/spinner.gif') }}" alt="Loading..." width="20">
</div>
<div class="changeForm">
{!! formKriteria(1) !!}
</div>

View File

@ -218,7 +218,7 @@
<div class="container py-5">
<div class="main-timeline">
@foreach($log as $logs)
<div class="timeline left">
<div class="timeline left d-none">
<div class="card">
<div class="card-body p-4">
<h3><b>{{\Str::title(str_replace('_',' ',$logs->step))}}</b></h3>
@ -255,20 +255,51 @@
<div class="timeline right">
<div class="card">
<div class="card-body p-4">
<h3><b>Kirim Kelengkapan Data</b></h3>
<h3><b>
@if($kuesioner->status == 3)
<span class="badge badge-success"><i class="fal fa-check"></i></span>&nbsp;
@endif
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>
<li>
Dokumen Administrasi
@if(@$dok)
@if(@$dok->status == 1)
<span class="badge badge-success">Dokumen Sudah Di Verifikasi</span>
@elseif(@$dok->status == 2)
<span class="badge badge-danger">Dokumen Ditolak</span>
@else
<span class="badge badge-warning">Menunggu Verifikasi Dokumen</span>
@endif
@else
<span class="badge badge-danger">Belum Upload Dokumen</span>
@endif
</li>
<li>Pemenuhan Kriteria {{count(@$penilaian)}} / {{count(@$page)}}
@if(count(@$penilaian) == count(@$page))
<span class="badge badge-success">Sudah Lengkap</span>
@else
<span class="badge badge-danger">Belum Lengkap</span>
@endif
</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>
@if(session('group_alias') == 'sekolah')
@if($kuesioner->status == 1)
<div class="custom-control custom-checkbox m-2">
<input type="checkbox" class="custom-control-input is-required check" id="true" value="1" name="check">
<label class="custom-control-label" for="true">Dengan ini menyatakan bahwa kelengkapan data sudah benar.</label>
</div>
<button class="btn btn-success btnSend">Kirim Data</button>
@endif
@endif
</div>
</div>
<div id="loading-spinner" style="display: none; text-align: center;">
<img src="{{ asset('assets/spinner.gif') }}" alt="Loading..." width="20">
</div>
</div>
</div>
</div>
@ -325,15 +356,50 @@
});
});
$('.back').on('click',function(e){
$('.back').on('click',function(e){
window.location.href = "{{url('usulan/kriteria')}}";
});
});
$('.progress_usulan').on('click',function(e){
$('.progress_usulan').on('click',function(e){
window.location.href = "{{url('usulan/kriteria/progress/'.encode_id(session('sekolah_id')))}}";
});
});
$('#btnSave').on('click',function(e){
$('.btnSend').on('click',function(e){
e.preventDefault();
var check = $('.check');
if (!check.is(':checked')) {
toastr.error("Harap isi semua field yang wajib diisi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
// alert(".");
return;
}
$.ajax({
url: "{{url('usulan/kriteria/kirimData/'.@$secure_id.'/'.encode_id(@$kuesioner->KuesionerId))}}", // Ganti dengan URL API-mu
type: 'POST', // Bisa juga 'POST' kalau perlu
data: {
_token:'{{csrf_token()}}',
}, // Kirim number sebagai parameter
dataType: 'json', // Format respons JSON
beforeSend: function () {
$('#loading-spinner').show(); // Menampilkan spinner
},
success: function (response) {
// console.log('Response:', response);
toastr.success("Berhasil menyimpan data", 'Success!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
location.reload();
},
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

@ -104,7 +104,7 @@
<div class="changeForm">
@foreach($page as $dataNumber)
<div class="card mb-2" style="background:#EDE8DC;">
<div class="card-header color-white" style="background:#A5B68D;">
<div class="card-header color-white bg-success">
{{$dataNumber}}
</div>
<div class="card-body color-black">

View File

@ -57,11 +57,14 @@ Route::name('usulan.')->prefix('usulan')->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('/kirimData/{sekolah_id}/{kuesioner_id}',[KriteriaController::class,'kirimData'])->name('kirimData');
Route::post('/store',[KriteriaController::class,'store'])->name('store');
});
Route::name('csak.')->prefix('csak')->group(function () {
Route::resource('/',CSAKController::class);
Route::get('update/{id}',[CSAKController::class,'update'])->name('update');
Route::get('/resume/{sekolah_id}',[CSAKController::class,'resume'])->name('resume');
Route::get('/grid',[CSAKController::class,'grid'])->name('grid');
});
@ -87,6 +90,10 @@ Route::name('usulan.')->prefix('usulan')->group(function () {
Route::name('administrasi.')->prefix('administrasi')->group(function () {
Route::get('/',[AdministrasiController::class,'index'])->name('index');
Route::get('/grid',[AdministrasiController::class,'grid'])->name('grid');
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::name('progress.')->prefix('progress')->group(function () {

View File

@ -25,6 +25,7 @@ Route::post('register',[CustomRegisterController::class,'post_register'])->name(
Route::post('get/kabupaten',[AjaxController::class,'getKabupaten'])->name('getKabupaten');
Route::post('get/kecamatan',[AjaxController::class,'getKecamatan'])->name('getKecamatan');
Route::post('get/sekolah',[AjaxController::class,'getSekolah'])->name('getSekolah');
Route::get('sekolahNpsn',[AjaxController::class,'sekolahNpsn'])->name('sekolahNpsn');
Route::middleware(Session::class)->name('modules.')->group(function () {