join('mahasiswas','mahasiswa_id','=','mahasiswas.id') ->join('users as dosen_pembimbing','dosen_pembimbing_lomba','=','dosen_pembimbing.id') ->get(); return view('lomba.index',['title'=>'Layanan Pengajuan Delegasi Lomba','data'=>$data]); } public function detail($caseid){ $data = Lomba:: select('lombas.*', 'mahasiswas.*', 'dosen_pembimbing.nama_gelar as dosen_pembimbing', ) ->join('mahasiswas','mahasiswa_id','=','mahasiswas.id') ->join('users as dosen_pembimbing','dosen_pembimbing_lomba','=','dosen_pembimbing.id') ->where('caseid',$caseid) ->first(); return view('lomba.detail',['title'=>'Detail Pengajuan Delegasi Lomba','data'=>$data]); } public function tambah(){ $dosen = User::role('Dosen')->get(); return view('lomba.tambah',['dosen'=>$dosen,]); } //belum ada job untuk email public function terima($caseid, Request $request){ $data = Lomba::where('caseid',$caseid)->first(); $data->status = '1'; if($data->save()){ $data_job = [ [ 'jenis' => 'mahasiswa', 'caseid' => $caseid, ], [ 'jenis' => 'dpl', 'caseid' => $caseid, ], ]; foreach($data_job as $item){ dispatch(new layananLombaJob($item)); } return redirect()->route('layanan-lomba.index')->with('success','Sukses Menerima Pengajuan'); } return redirect()->route('layanan-lomba.index')->with('error','Gagal Menerima Pengajuan'); } //done public function tolak($caseid, Request $request){ $request->validate([ 'keterangan_operator' => 'required', ]); $data_job = [ 'jenis' => 'penolakan', 'caseid' => $caseid, ]; $data = Lomba::where('caseid',$caseid)->first(); $data->status = '0'; $data->keterangan_operator = $request->keterangan_operator; if($data->save()){ dispatch(new layananLombaJob($data_job)); return redirect()->route('layanan-lomba.index')->with('success','Permintaan Sudah Diproses, Email akan segera dikirim ke penerima'); } return redirect()->route('layanan-lomba.index')->with('error','Gagal Menolak Pengajuan');} public function ettd($url,$caseid){ $role_untuk_ettd = ['dpl','wd3']; $data = Lomba:: select('lombas.*', 'mahasiswas.*', 'dosen_pembimbing.nama_gelar as dosen_pembimbing', ) ->join('mahasiswas','mahasiswa_id','=','mahasiswas.id') ->join('users as dosen_pembimbing','dosen_pembimbing_lomba','=','dosen_pembimbing.id') ->where('caseid',$caseid) ->first(); if(in_array($url, $role_untuk_ettd) && !is_null($data)){ //jika URL DPL maka render ini if($url=='dpl'){ $jenis = 'Dosen Pembimbing Lomba'; $data_dosen = [ 'caseid' => $data->caseid, 'nama' => $data->nama, 'nim' => $data->nim, 'nama_kompetisi' => $data->nama_kompetisi, 'nama_penyelenggara' => $data->nama_penyelenggara, 'tanggal_mulai' => $data->tanggal_mulai, 'tanggal_berakhir' => $data->tanggal_berakhir, 'tingkat_lomba' => $data->tingkat_lomba, 'sk_dekan_untuk_pembimbing' => $data->sk_dekan_untuk_pembimbing, 'surat_tugas_delegasi_lomba' => $data->surat_tugas_delegasi_lomba, 'bukti_bimbingan_lomba' => $data->bukti_bimbingan_lomba, 'nama_dosen' => $data->dosen_pembimbing, ]; return view('lomba.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data_dosen]); } //jika URL WD3 maka render ini elseif($url=='wd3'){ $jenis = 'Wakil Dekan 3'; $dosen = Role::findByName('Wakil Dekan 3')->users->first(); $data_dosen = [ 'caseid' => $data->caseid, 'nama' => $data->nama, 'nim' => $data->nim, 'nama_kompetisi' => $data->nama_kompetisi, 'nama_penyelenggara' => $data->nama_penyelenggara, 'tanggal_mulai' => $data->tanggal_mulai, 'tanggal_berakhir' => $data->tanggal_berakhir, 'tingkat_lomba' => $data->tingkat_lomba, 'sk_dekan_untuk_pembimbing' => $data->sk_dekan_untuk_pembimbing, 'surat_tugas_delegasi_lomba' => $data->surat_tugas_delegasi_lomba, 'bukti_bimbingan_lomba' => $data->bukti_bimbingan_lomba, 'nama_dosen' => $dosen->nama_gelar, ]; $jenis = 'Wakil Dekan 3'; return view('lomba.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data_dosen]); } } //jika URL tidak diantara ketika itu maka render ini return redirect()->route('laman-awal')->with(['error'=>'Invalid CASEID, Atau CaseID Tidak Ditemukan']); } public function submitettd($url, $caseid, Request $request){ $role_untuk_ettd = ['dpl','wd3']; $request->validate([ 'caseid' => 'required', 'ettd' => 'required', ]); if(in_array($url, $role_untuk_ettd)){ //jika URL DPL maka render ini if($url=='dpl'){ $data = Lomba:: select('lombas.*', 'mahasiswas.*', 'dosen_pembimbing.ettd', 'dosen_pembimbing.nama_gelar as nama_dosen_pembimbing', ) ->join('mahasiswas','mahasiswa_id','=','mahasiswas.id') ->join('users as dosen_pembimbing','dosen_pembimbing_lomba','=','dosen_pembimbing.id') ->where('caseid',$request->caseid) ->first(); if($request->ettd==$data->ettd){ $data = Lomba::where('caseid',$request->caseid) ->first(); $data->ettd_dpl = Carbon::now(); $data->save(); $data_job = [ 'jenis' => 'wd3', 'caseid' => $request->caseid, ]; dispatch(new layananLombaJob($data_job)); return redirect()->route('layanan-lomba.ettd',['url'=>$url,'caseid'=>$request->caseid])->with('success','Sukses Menyetujui Pengajuan'); } return redirect()->route('layanan-lomba.ettd',['url'=>$url,'caseid'=>$request->caseid])->with('error','Gagal Menyetujui Pengajuan, E-TTD Tidak Sesuai'); } //jika URL WD3 maka render ini elseif($url=='wd3'){ $dosen = Role::findByName('Wakil Dekan 3')->users->first(); $data = Lomba::where('caseid',$request->caseid) ->first(); if($request->ettd==$dosen->ettd){ $data->ettd_wd3 = $dosen->nama_gelar."-".Carbon::now(); $data->save(); $data_job = [ 'jenis' => 'mahasiswa_selesai', 'caseid' => $request->caseid, ]; dispatch(new layananLombaJob($data_job)); return redirect()->route('layanan-lomba.ettd',['url'=>$url,'caseid'=>$request->caseid])->with('success','Sukses Menyetujui Pengajuan'); } return redirect()->route('layanan-lomba.ettd',['url'=>$url,'caseid'=>$request->caseid])->with('error','Gagal Menyetujui Pengajuan, E-TTD Tidak Sesuai'); } } //jika URL tidak diantara ketika itu maka render ini return redirect()->route('laman-awal')->with(['error'=>'Invalid CASEID, Atau CaseID Tidak Ditemukan']); } public function store(Request $request){ // dd($request->all()); $request->validate([ 'nim' => 'numeric|required', 'nama' => 'required', 'nomor_hp' => 'numeric|required', 'email' => 'email|required', 'nama_kompetisi' => 'required', 'nama_penyelenggara' => 'required', 'tingkat_lomba' => 'required', 'tanggal_mulai' => 'date|required', 'tanggal_berakhir' => 'date|required', 'dosen_pembimbing_lomba' => 'numeric|required', 'surat_tugas_delegasi_lomba'=>'required|mimes:pdf|max:2048', 'sk_dekan_untuk_pembimbing'=>'required|mimes:pdf|max:2048', 'poster_lomba'=>'required|mimes:pdf,jpg,png|max:2048', 'bukti_pembayaran'=>'required|mimes:pdf,jpg,png|max:2048', 'bukti_bimbingan_lomba'=>'required|mimes:pdf|max:4096', ]); //Cek Apakah Data Mahasiswa Tersebut sudah ada, jika ada maka diminta untuk menggunakan fitur cari $mahasiswas_id = Mahasiswa::where('nim',$request->nim)->first(); if(!is_null($mahasiswas_id)){ return redirect()->route('layanan-lomba.tambah')->with('error','Data Dengan NIM '.$mahasiswas_id->nim.' Sudah Ada, Gunakan Fitur Cari'); } //add data mahasiswa $data_mhs['nim'] = $request->nim; $data_mhs['nama'] = $request->nama; $data_mhs['nomor_hp'] = $request->nomor_hp; $data_mhs['email'] = $request->email; $data_mhs['judul_seminar_proposal'] = '-'; $data_mhs['bagian'] = 1; $data_mhs['dosen_dpu_id'] = 1; $data_mhs['dosen_dpa_id'] = 1; //set default to 0 $data_mhs['dosen_penguji1_id'] = 1; $data_mhs['dosen_penguji2_id'] = 1; $data_mhs['judul_skripsi_id'] = '-'; $data_mhs['judul_skripsi_en'] = '-'; $data_mhs['judul_jurnal'] = '-'; $data_mhs['judul_artikel'] = '-'; Mahasiswa::create($data_mhs); //add data lomba $mahasiswas_id = Mahasiswa::where('nim',$request->nim)->first(); $countcaseid = Lomba::count(); $caseid = "K".date_format(date_create(),"ym").$countcaseid+1; $lomba = new Lomba; $lomba->caseid = $caseid; $lomba->nama_kompetisi = $request->nama_kompetisi; $lomba->nama_penyelenggara = $request->nama_penyelenggara; $lomba->tingkat_lomba = $request->tingkat_lomba; $lomba->tanggal_mulai = $request->tanggal_mulai; $lomba->tanggal_berakhir = $request->tanggal_berakhir; $lomba->dosen_pembimbing_lomba = $request->dosen_pembimbing_lomba; $lomba->mahasiswa_id = $mahasiswas_id->id; //set penyimpanan file $file_surat_tugas_delegasi_lomba = $request->file('surat_tugas_delegasi_lomba'); $file_sk_dekan_untuk_pembimbing = $request->file('sk_dekan_untuk_pembimbing'); $file_poster_lomba = $request->file('poster_lomba'); $file_bukti_pembayaran = $request->file('bukti_pembayaran'); $file_bukti_bimbingan_lomba = $request->file('bukti_bimbingan_lomba'); $nama_surat_tugas_delegasi_lomba = 'surat_tugas_delegasi_lomba.'.$file_surat_tugas_delegasi_lomba->getClientOriginalExtension(); $nama_sk_dekan_untuk_pembimbing = 'sk_dekan_untuk_pembimbing.'.$file_sk_dekan_untuk_pembimbing->getClientOriginalExtension(); $nama_poster_lomba ='poster_lomba.'.$file_poster_lomba->getClientOriginalExtension(); $nama_bukti_pembayaran = 'bukti_pembayaran.'.$file_bukti_pembayaran->getClientOriginalExtension(); $nama_bukti_bimbingan_lomba = 'bukti_bimbingan_lomba.'.$file_bukti_bimbingan_lomba->getClientOriginalExtension(); $path = 'lomba/'.$caseid.'/'.$nama_surat_tugas_delegasi_lomba; $path2 = 'lomba/'.$caseid.'/'.$nama_sk_dekan_untuk_pembimbing; $path3 = 'lomba/'.$caseid.'/'.$nama_poster_lomba; $path4 = 'lomba/'.$caseid.'/'.$nama_bukti_pembayaran; $path5 = 'lomba/'.$caseid.'/'.$nama_bukti_bimbingan_lomba; //jika berhasil save file dan save data mhs maka pengajuan akan diisi if(Storage::disk('public')->put($path, file_get_contents($file_surat_tugas_delegasi_lomba)) && Storage::disk('public')->put($path2, file_get_contents($file_sk_dekan_untuk_pembimbing)) && Storage::disk('public')->put($path3, file_get_contents($file_poster_lomba)) && Storage::disk('public')->put($path4, file_get_contents($file_bukti_pembayaran)) && Storage::disk('public')->put($path5, file_get_contents($file_bukti_bimbingan_lomba))){ $lomba->surat_tugas_delegasi_lomba = $nama_surat_tugas_delegasi_lomba; $lomba->sk_dekan_untuk_pembimbing = $nama_sk_dekan_untuk_pembimbing; $lomba->poster_lomba = $nama_poster_lomba; $lomba->bukti_pembayaran = $nama_bukti_pembayaran; $lomba->bukti_bimbingan_lomba = $nama_bukti_bimbingan_lomba; $lomba->save(); return redirect()->route('layanan-lomba.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator'); } return redirect()->route('layanan-lomba.tambah')->with('error','Gagal Tambah Data, Periksa Kembali data yang anda masukkan'); } //done public function cetak($caseid){ $data = Lomba:: select('lombas.*', 'mahasiswas.*', 'dosen_pembimbing.nama_gelar as nama_dosen_pembimbing', 'dosen_pembimbing.nip as nip_dosen_pembimbing', ) ->join('mahasiswas','mahasiswa_id','=','mahasiswas.id') ->join('users as dosen_pembimbing','dosen_pembimbing_lomba','=','dosen_pembimbing.id') ->where('caseid',$caseid) ->first(); //jika data kosong maka render ini if(is_null($data)){ return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with('error','Data Dengan CASEID Tersebut Tidak ada'); } //jika kombi belum ttd, maka render ini if($data->ettd_wd3==NULL){ return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with('error','Data Belum Di TandaTangani Oleh Wakil Dekan III, File Bisa didownload ketika Wakil Dekan III sudah tanda tangan!'); } //get Data WD3 $dosen = Role::findByName('Wakil Dekan 3')->users->first(); $data = [ 'title' => 'Cetak Kesediaan', // 'date' => Carbon::now()->format('d-m-Y'), 'date' => $data->updated_at->format('d-m-Y'), 'nama_mahasiswa' => $data->nama, 'nim_mahasiswa' => $data->nim, 'nama_kompetisi' => $data->nama_kompetisi, 'nama_penyelenggara' => $data->nama_penyelenggara, 'tanggal_mulai' => $data->tanggal_mulai, 'tanggal_selesai' => $data->tanggal_selesai, 'nama_dosen_pembimbing_lomba' => $data->nama_dosen_pembimbing, 'nip_dosen_pembimbing_lomba' => $data->nip_dosen_pembimbing, 'qrcode_dosen_pembimbing_lomba' => base64_encode(QrCode::size(100)->generate('TTD_'.$data->nama_dosen_pembimbing_lomba.'-'.$data->ettd_dpl)), 'nama_wd3' => $dosen->nama_gelar, 'nip_wd3' => $dosen->nip, 'qrcode_wd3' => base64_encode(QrCode::size(100)->generate('TTD_'.$data->ettd_wd3)), ]; $pdf = Pdf::loadView('lomba.cetak', $data); return $pdf->setPaper('a4', 'potrait')->stream($caseid.'-Kesediaan Menjadi Dosen Pembimbing Tugas Akhir.pdf'); } }