315 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			315 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers\Modules\Usulan;
 | |
| 
 | |
| use App\Http\Controllers\Controller;
 | |
| use Illuminate\Support\Facades\Validator;
 | |
| use Illuminate\Support\Facades\File;
 | |
| use Carbon\Carbon;
 | |
| use Illuminate\Http\Request;
 | |
| use App\Models\Master\Provinsi;
 | |
| use App\Models\Kuesioner;
 | |
| use App\Models\DokumenAdministrasi;
 | |
| use App\Models\Usulan;
 | |
| 
 | |
| class AdministrasiController extends Controller
 | |
| {
 | |
|     private $template = 'modules.usulan.administrasi';
 | |
|     private $route = 'modules.usulan_adiwiyata.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';
 | |
|             }
 | |
| 
 | |
|             $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){
 | |
|                         $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){
 | |
|                         $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>';
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             $fileUsulan = '';
 | |
|             $fileUsulan .= '<div class="btn-group">
 | |
|                                 <button type="button" class="btn btn-success 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($row->level == 0){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Belum Pernah';
 | |
|             }elseif($row->level == 1){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Adiwiyata Kab/Kota';
 | |
|             }elseif($row->level == 2){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Adiwiyata Provinsi';
 | |
|             }elseif($row->level == 3){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> Adiwiyata Nasional';
 | |
|             }elseif($row->level == 4){
 | |
|                 $penghargaan = '<i class="fal fa-trophy"></i> 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 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.'<br>';
 | |
|             $sekolah .= '<span class="badge bg-success-light">'.@$row->profile->tingkat->name.'</span> ';
 | |
|             $sekolah .= '<span class="badge bg-primary-light">'.@$row->profile->status_sekolah.'</span> ';
 | |
| 
 | |
|             $_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 bg-secondary">Level '.levelAdiwiyata($row->npsn).'</span>',
 | |
|                 'wilayah'           => $row->sekolah->kabupaten->name,
 | |
|                 'penghargaan'       => $penghargaan,
 | |
|                 'jenis_usulan'      => '<span class="badge bg-success-light">'.$jenis_usulan.'</span>',
 | |
|                 'usulan'            => $fileUsulan,
 | |
|                 'action'            => $action,
 | |
|             ];
 | |
| 
 | |
|         }
 | |
| 
 | |
|         return response()->json($_data);
 | |
|     }
 | |
| 
 | |
|     public function update(Request $request)
 | |
|     {
 | |
|         try {
 | |
|             $sekolahId  = decode_id($request->sekolah);
 | |
|             $dokumen    = DokumenAdministrasi::where('ms_sekolah_id',$sekolahId)->where('tahun',date('Y'))->first();
 | |
|             $dokumen->nama_dalam_sk     = $request->nama_dalam_sk;
 | |
|             $dokumen->sk_ttd            = $request->sk_ttd;
 | |
|             $dokumen->waktu_penetapan   = $request->waktu_penetapan;
 | |
|             $dokumen->save();
 | |
| 
 | |
|             return response()->json(['status' => true,'message' => 'Berhasil Update Data','type' => 'success']);
 | |
|         } catch (Exception $e) {
 | |
|             return response()->json(['status' => false,'message' => $e->getMessage(),'type' => 'error']);
 | |
|         }
 | |
|         
 | |
|     }
 | |
| 
 | |
|     public function store(Request $request)
 | |
|     {
 | |
|         // dd($request->all());
 | |
|         // $data = $request['data'];
 | |
|     
 | |
|         $keyId = decode_id($request->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']);
 | |
|         }
 | |
| 
 | |
|         if (@$request->hasFile('file')) {
 | |
|             $file = $request->file('file');
 | |
|             $destinationPath = public_path('uploads/file');
 | |
|             $current = Carbon::now()->format('Y/m/d');
 | |
|             $path = $destinationPath . '/' . $current;
 | |
|             $fileName = $file->getClientOriginalName();
 | |
|             $fileMime = $file->getClientMimeType();
 | |
|             $fileExtension = $file->getClientOriginalExtension();
 | |
|             $fileSize = $file->getSize();
 | |
|             if($fileExtension != 'pdf'){
 | |
|                 return redirect()->back()->with([
 | |
|                      'message' => 'Maaf File Harus Berupa PDF!',
 | |
|                      'type'    => "error"
 | |
|                 ]);   
 | |
|             }
 | |
|             $newFilename = session('uid').'_'.uniqid('file_') . '.' . $fileExtension;
 | |
| 
 | |
|             if (!File::exists($path)) {
 | |
|                 File::isDirectory($path) or File::makeDirectory($path, 0777, true, true);
 | |
|             }
 | |
| 
 | |
|             $filePath = 'file/' . $current . '/' . $newFilename;
 | |
|             $uploaded = $file->move($path, $newFilename);
 | |
|         }
 | |
| 
 | |
|         if (@$request->hasFile('sk_tim_adiwiyata')) {
 | |
|             $file = $request->file('sk_tim_adiwiyata');
 | |
|             $destinationPath = public_path('uploads/tim_adiwiyata');
 | |
|             $current = Carbon::now()->format('Y/m/d');
 | |
|             $path = $destinationPath . '/' . $current;
 | |
|             $fileName = $file->getClientOriginalName();
 | |
|             $fileMime = $file->getClientMimeType();
 | |
|             $fileExtension = $file->getClientOriginalExtension();
 | |
|             $fileSize = $file->getSize();
 | |
|             if($fileExtension != 'pdf'){
 | |
|                 return redirect()->back()->with([
 | |
|                      'message' => 'Maaf File Harus Berupa PDF!',
 | |
|                      'type'    => "error"
 | |
|                 ]);   
 | |
|             }
 | |
|             $newFilename = session('uid').'_'.uniqid('file_sk_tim_') . '.' . $fileExtension;
 | |
| 
 | |
|             if (!File::exists($path)) {
 | |
|                 File::isDirectory($path) or File::makeDirectory($path, 0777, true, true);
 | |
|             }
 | |
| 
 | |
|             $filePathTim = 'tim_adiwiyata/' . $current . '/' . $newFilename;
 | |
|             $uploaded = $file->move($path, $newFilename);
 | |
| 
 | |
|             $kuesioner = Kuesioner::find($keyId);
 | |
|             $kuesioner->tim_adiwiyata_link = $filePathTim;
 | |
|             $kuesioner->save();
 | |
|         }
 | |
| 
 | |
|         if (@$request->hasFile('surat_usulan')) {
 | |
|             $file = $request->file('surat_usulan');
 | |
|             $destinationPath = public_path('uploads/file_usulan');
 | |
|             $current = Carbon::now()->format('Y/m/d');
 | |
|             $path = $destinationPath . '/' . $current;
 | |
|             $fileName = $file->getClientOriginalName();
 | |
|             $fileMime = $file->getClientMimeType();
 | |
|             $fileExtension = $file->getClientOriginalExtension();
 | |
|             $fileSize = $file->getSize();
 | |
|             if($fileExtension != 'pdf'){
 | |
|                 return redirect()->back()->with([
 | |
|                      'message' => 'Maaf File Harus Berupa PDF!',
 | |
|                      'type'    => "error"
 | |
|                 ]);   
 | |
|             }
 | |
|             $newFilename = session('uid').'_'.uniqid('file_usulan_') . '.' . $fileExtension;
 | |
| 
 | |
|             if (!File::exists($path)) {
 | |
|                 File::isDirectory($path) or File::makeDirectory($path, 0777, true, true);
 | |
|             }
 | |
| 
 | |
|             $filePathUsulan = 'file_usulan/' . $current . '/' . $newFilename;
 | |
|             $uploaded = $file->move($path, $newFilename);
 | |
|         }
 | |
|         // dd($filePathUsulan);
 | |
| 
 | |
|         
 | |
| 
 | |
|         $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'          => @$filePath,
 | |
|             'file_sk_tim'   => @$filePathTim,
 | |
|             'file_usulan'   => @$filePathUsulan,
 | |
|             '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']);
 | |
|     }
 | |
| }
 |