sekolah_adiwiyata/app/Http/Controllers/HomeController.php

302 lines
16 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Kuesioner;
use App\Models\KuesionerLog;
use App\Models\ProfileSekolah;
use App\Models\Master\FormKriteria;
use App\Models\DokumenAdministrasi;
use App\Models\Penilaian;
use App\Models\SK;
use App\Models\Usulan;
class HomeController extends Controller
{
protected $template = 'modules.dashboard';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('home');
}
public function session()
{
$key = request('key');
$val = request('val');
session([$key => $val]);
return response()->json([
'status' => 'success'
]);
}
public function dashboard()
{
// dd(date('Y'));
$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['penilaian'] = Penilaian::select('page_number')->groupBy('page_number')->orderBy('page_number','ASC')->pluck('page_number')->count();
$data['sk'] = SK::where('tahun',date('Y'))->where('sekolah','like','%'.session('sekolah_id').'%')->first();
$data['log'] = KuesionerLog::where('kuesioner_id',@$data['kuesioner']->KuesionerId)->orderBy('created_at','DESC')->first();
return view($this->template.'.sekolah', $data);
}else{
if(session('kabupaten_id') != ''){
$data['usulan'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->get();
$data['total_usulan_kab'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',0)->count();
$data['total_usulan_prov'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',1)->count();
$data['total_usulan_nasional'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',2)->count();
$data['total_usulan_mandiri'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',3)->count();
$data['total_sekolah_kab'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',0)->where('status',11)->count();
$data['total_sekolah_prov'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',1)->where('status',11)->count();
$data['total_sekolah_nasional'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',2)->where('status',11)->count();
$data['total_sekolah_mandiri'] = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->where('level',3)->where('status',11)->count();
}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['total_sekolah_kab'] = Kuesioner::where('tahun',date('Y'))->where('level',0)->where('status',11)->count();
$data['total_sekolah_prov'] = Kuesioner::where('tahun',date('Y'))->where('level',1)->where('status',11)->count();
$data['total_sekolah_nasional'] = Kuesioner::where('tahun',date('Y'))->where('level',2)->where('status',11)->count();
$data['total_sekolah_mandiri'] = Kuesioner::where('tahun',date('Y'))->where('level',3)->where('status',11)->count();
}
$data['route'] = 'modules';
return view($this->template.'.admin', $data);
}
}
public function gridUsulan(Request $request)
{
if(session('kabupaten_id') != ''){
$usulan = Kuesioner::whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->where('tahun',date('Y'))->get();
}else{
$usulan = Kuesioner::where('tahun',date('Y'))->get();
}
$_data = [];
foreach ($usulan as $key => $row) {
$action = '';
$sekolah = '';
$sekolah .= @$row->sekolah->nama_sekolah.'&nbsp;';
$sekolah .= '<span class="badge bg-info-light text-info">'.@$row->profile->tingkat->name.'</span>&nbsp;';
$sekolah .= '<span class="badge bg-primary-light text-primary">'.@$row->profile->status_sekolah.'</span>&nbsp;';
if(($row->level+1) == 1){
$jenis_usulan = '<span class="badge bg-success-light text-success">Adiwiyata Kab/Kota</span>';
}elseif(($row->level+1) == 2){
$jenis_usulan = '<span class="badge bg-primary-light text-primary">Adiwiyata Provinsi</span>';
}elseif(($row->level+1) == 3){
$jenis_usulan = '<span class="badge bg-info-light text-info">Adiwiyata Nasional</span>';
}elseif(($row->level+1) == 4){
$jenis_usulan = '<span class="badge bg-warning-light text-warning">Adiwiyata Mandiri</span>';
}
if($row->level == 0){
$usulanAwal = 'Belum Pernah';
}elseif($row->level == 1){
$usulanAwal = 'Adiwiyata Kab/Kota';
}elseif($row->level == 2){
$usulanAwal = 'Adiwiyata Provinsi';
}elseif($row->level == 3){
$usulanAwal = 'Adiwiyata Nasional';
}elseif($row->level == 4){
$usulanAwal = 'Adiwiyata Mandiri';
}
$dataSekolah = '';
$dataSekolah .= @$sekolah.'<br>';
$dataSekolah .= 'Usulan '.@$row->tahun.' : '.@$jenis_usulan.'<br>';
$_data[] = [
'no' => $key+1,
'dataSekolah' => @$dataSekolah,
'nama_sekolah' => @$sekolah,
'npsn' => @$row->sekolah->npsn,
'kab' => @$row->sekolah->kabupaten->name,
'kecamatan' => @$row->sekolah->kecamatan->name,
'tahun' => @$row->tahun,
'usulan_sebelumnya' => @$usulanAwal,
'pengajuan_usulan' => @$jenis_usulan,
'status' => kuesionerLogStatus($row->KuesionerId),
];
}
return response()->json($_data);
}
public function gridAdministrasi(Request $request)
{
if(session('group_alias') == 'sekolah'){
$kuesioner = Kuesioner::where('ms_sekolah_id',session('sekolah_id'))->orderBy('created_at','DESC')->get();
}else{
if(session('kabupaten_id') != ''){
$kuesioner = Kuesioner::where('tahun',date('Y'))->whereHas('dokumen',function($query){
$query->where('status',0);
})->whereHas('sekolah',function($query){
$query->where('ms_kabupaten_id',session('kabupaten_id'));
})->orderBy('created_at','DESC')->get();
}else{
$kuesioner = Kuesioner::where('tahun',date('Y'))->whereHas('dokumen',function($query){
$query->where('status',0);
})->orderBy('created_at','DESC')->limit(5)->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 = '<span class="badge bg-success-light text-success">Adiwiyata Kab/Kota</span>';
}elseif(($row->level+1) == 2){
$jenis_usulan = '<span class="badge bg-primary-light text-primary">Adiwiyata Provinsi</span>';
}elseif(($row->level+1) == 3){
$jenis_usulan = '<span class="badge bg-info-light text-info">Adiwiyata Nasional</span>';
}elseif(($row->level+1) == 4){
$jenis_usulan = '<span class="badge bg-warning-light text-warning">Adiwiyata Mandiri</span>';
}
$usulan = Usulan::where('sekolah','like','%'.$row->ms_sekolah_id.'%')->first();
$dok = DokumenAdministrasi::where('ms_sekolah_id',$row->ms_sekolah_id)->where('tahun',date('Y'))->first();
if(session('group_alias') == 'sekolah'){
if((@$dok->status == 0) || (@$dok->status == 2)){
if(@$dok->status != 0){
if($row->tahun == date('Y')){
$action .= '<a href="#" data-filetim="'.@$dok->file_sk_tim.'" data-fileusulan="'.@$dok->file_usulan.'" data-link="'.@$dok->link.'" data-level="'.$row->level.'" 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') || (session('group_alias') == 'suku_dinas')){
if(@$dok){
if(@$dok->status == 0){
if($row->tahun == date('Y')){
$action .= '<a href="#" data-href="'.url('usulan/adiwiyata/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/adiwiyata/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>';
}
}
}else{
if($row->tahun == date('Y')){
$action .= '<a href="#" data-href="'.url('usulan/adiwiyata/administrasi/tolak_kosong/'.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>';
}
}
}
$fileUsulan = '';
$fileUsulan .= '<div class="btn-group">
<button type="button" class="btn btn-success btn-sm dropdown-toggle" data-toggle="dropdown">Lihat File</button>
<div class="dropdown-menu">';
if(@$dok->link){
$fileUsulan .= '<a download href="'.asset('uploads/'.@$dok->link).'" class="dropdown-item">Download SK Adiwiyata</a>';
}
if(@$dok->file_usulan){
$fileUsulan .= '<a download href="'.asset('uploads/'.@$dok->file_usulan).'" class="dropdown-item">Download Surat Usulan</a>';
}
if(@$dok->file_sk_tim){
$fileUsulan .= '<a download href="'.asset('uploads/'.@$dok->file_sk_tim).'" class="dropdown-item">Download SK Tim Adiwiyata</a>';
}
$fileUsulan .= '</div>
</div>';
if(@$dok){
if(@$dok->status == 1){
$labelDok = '<span class="badge bg-success-light">Dokumen Di Verifikasi</span>';
}elseif(@$dok->status == 2){
$labelDok = '<span class="badge bg-danger-light">Dokumen Di Tolak</span>';
}else{
$labelDok = '<span class="badge bg-warning-light">Menuggu Verifikasi Dokumen</span>';
}
}else{
$labelDok = '<span class="badge bg-danger-light">Belum Upload Dokumen</span>';
}
// if($row->status == 0){
// $labelDok .= '<br><span class="badge bg-danger-light">Menunggu Usulan Dari Dinas/Sudin</span>';
// }
$sekolah = '';
$sekolah .= @$row->sekolah->nama_sekolah.'&nbsp;';
$sekolah .= '<span class="badge bg-info-light text-info">'.@$row->profile->tingkat->name.'</span>&nbsp;';
$sekolah .= '<span class="badge bg-primary-light text-primary">'.@$row->profile->status_sekolah.'</span>&nbsp;';
$dataSekolah = '';
$dataSekolah .= @$sekolah.'<br>';
$dataSekolah .= 'Usulan '.@$row->tahun.' : '.@$jenis_usulan.'<br>';
$_data[] = [
'no' => $key+1,
'id' => encode_id($row->id),
'npsn' => $row->sekolah->npsn,
'dataSekolah' => @$dataSekolah,
'nama' => $sekolah,
'tahun' => $row->tahun,
'status' => $labelDok,
'status_level' => '<span style="width:100%" class="badge bg-secondary">Level '.levelAdiwiyata($row->npsn).'</span>',
'wilayah' => $row->sekolah->kabupaten->name,
'kecamatan' => $row->sekolah->kecamatan->name,
'jenis_usulan' => '<span class="badge bg-success-light">'.$jenis_usulan.'</span>',
'fileUsulan' => $fileUsulan,
'action' => $action,
];
}
return response()->json($_data);
}
}