join('mahasiswas','mahasiswas_id','=','mahasiswas.id') ->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id') ->join('users as dosen_penguji1','mahasiswas.dosen_penguji1_id','=','dosen_penguji1.id') ->join('users as dosen_penguji2','mahasiswas.dosen_penguji2_id','=','dosen_penguji2.id') ->get(); return view('layanan-revisipublikasi.index',['title' => 'Pengajuan Publikasi / Revisi | Admin Dashboard','data' => $data]); } public function tambah(){ //ambil data dosen, dan laboratorium $dosen = User::role('Dosen')->get(); $bagian = Bagian::select('id','nama_bagian')->get(); //cek apakah ada data mahasiswa dari hasil cari $nim = session('mahasiswas_id'); if($nim!=null){ $data_mahasiswa = Mahasiswa::find($nim); return view('layanan-revisipublikasi.tambah',['dosen'=>$dosen, 'bagian'=>$bagian,'data_mahasiswa'=>$data_mahasiswa]); } return view('layanan-revisipublikasi.tambah',['dosen'=>$dosen, 'bagian'=>$bagian]); } public function cari(){ return view('layanan-revisipublikasi.cari',['title'=>'Cari Data Mahasiswa Untuk Keperluan Pengajuan Publikasi / Revisi']); } public function search(Request $request){ $data = Mahasiswa::where('nim',$request->nim)->first(); if($data==null){ return redirect()->route('layanan-revisipublikasi.tambah')->with('error','NIM Tidak Ditemukan, Gunakan Fitur Tambah'); } return redirect()->route('layanan-revisipublikasi.tambah')->with('mahasiswas_id',$data->id); } public function store(Request $request){ $request->validate([ 'nim'=>'required|numeric', 'nama'=>'required', 'nomor_hp'=>'required|numeric', 'email'=>'required|email', 'judul_skripsi_id'=>'required', 'judul_jurnal'=>'required', 'judul_artikel'=>'required', 'bagian'=>'required|numeric', 'dosen_dpu'=>'required|numeric', 'dosen_dpa'=>'required|numeric', 'dosen_penguji1'=>'required|numeric', 'dosen_penguji2'=>'required|numeric', ],[ 'nim.required'=>'NIP Wajib Diisi', 'nim.numeric'=>'NIM Wajib Berisi Angka saja', 'nomor_hp.numeric'=>'Nomor HP Wajib Menggunakan Angka, Contoh 089xxxxx', 'email.email'=>'Format email tidak sesuai, cek lagi email anda, Contoh mahasiswa@gmail.com/ mahasiswa@mail.unej.ac.id', 'bagian.numeric'=>'Bagian tidak valid, cek kembali Bagian yang dipilih', 'dosen_dpu.numeric'=>'Dosen Pembimbing tidak valid, cek kembali Dosen Pembimbing Utama yang dipilih', 'dosen_dpa.numeric'=>'Dosen Pembimbing tidak valid, cek kembali Dosen Pembimbing Anggota yang dipilih', 'dosen_penguji1.numeric'=>'Dosen Penguji tidak valid, cek kembali Dosen Penguji Utama yang dipilih', 'dosen_penguji2.numeric'=>'Dosen Penguji tidak valid, cek kembali Dosen Penguji Anggota yang dipilih', ]); //cek apakah data mahasiswa ada, jika ada maka dikembalikan dan dianjurkan menggunakan fitur cari $mahasiswa = Mahasiswa::where('nim',$request->nim)->first(); if(!is_null($mahasiswa) && $request->status!="ada"){ return redirect()->route('layanan-revisipublikasi.tambah')->with('error','Data Anda Sudah Ada, Gunakan Fitur Cari Menggunakan NIM :'.$request->nim); } //kalo menggunakan fitur cari, akan menggunakan fungsi ini elseif(!is_null($mahasiswa) && $request->status=="ada"){ $mahasiswas_id = $mahasiswa->id; $data_revisipublikasi['mahasiswas_id'] = $mahasiswas_id; //save data pengajuan PengajuanRevisiPublikasi::create($data_revisipublikasi); //update data mahasiswa $mahasiswa->dosen_penguji1_id = $request->dosen_penguji1; $mahasiswa->dosen_penguji2_id = $request->dosen_penguji2; $mahasiswa->judul_skripsi_id = $request->judul_skripsi_id; $mahasiswa->judul_artikel = $request->judul_artikel; $mahasiswa->judul_jurnal = $request->judul_jurnal; $mahasiswa->save(); return redirect()->route('layanan-revisipublikasi.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator'); } //jika data belum ada, maka create data baru $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'] = $request->bagian; $data_mhs['dosen_dpu_id'] = $request->dosen_dpu; $data_mhs['dosen_dpa_id'] = $request->dosen_dpa; $data_mhs['dosen_penguji1_id'] = $request->dosen_penguji1; $data_mhs['dosen_penguji2_id'] = $request->dosen_penguji2; //set default values to - $data_mhs['judul_skripsi_id'] = $request->judul_skripsi_id; $data_mhs['judul_skripsi_en'] = '-'; $data_mhs['judul_jurnal'] = $request->judul_jurnal; $data_mhs['judul_artikel'] = $request->judul_artikel; //save data mahasiswa dan pengajuan if(Mahasiswa::create($data_mhs)){ $mahasiswas_id = Mahasiswa::where('nim',$request->nim)->first(); $data_revisipublikasi['mahasiswas_id'] = $mahasiswas_id->id; //save data pengajuan PengajuanRevisiPublikasi::create($data_revisipublikasi); return redirect()->route('layanan-revisipublikasi.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator'); } return redirect()->route('layanan-revisipublikasi.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan'); } public function terima(Request $request){ $id = $request->id; $countcaseid = PengajuanRevisiPublikasi::where('ttd_operator','!=','-')->count(); $caseid = "LR".date_format(date_create(),"ym").$countcaseid+1; $cekData = PengajuanRevisiPublikasi::where('caseid',$caseid)->first(); $data = PengajuanRevisiPublikasi::where('id',$id)->first(); //cek apakah ada caseid yang sama sebelum disave if(!is_null($cekData)){ $data->updated_at = Carbon::now(); $data->save(); return redirect()->route('layanan-revisipublikasi.index')->with('error','Gagal simpan Data, Cek kembali Detail Data yang akan diterima'); } $data->caseid = $caseid; $data->ttd_operator = Carbon::now(); if($data->save()){ $data_job = [ [ 'jenis' => 'mahasiswa', 'id' => $id, ], [ 'jenis' => 'dpu', 'id' => $id, ], [ 'jenis' => 'penguji1', 'id' => $id, ], [ 'jenis' => 'penguji2', 'id' => $id, ], ]; foreach($data_job as $item){ dispatch(new layananRevisiPublikasiJob($item)); } return redirect()->route('layanan-revisipublikasi.index')->with('success','Data Berhasil Disimpan, Email Akan Dikirimkan ke Mahasiswa, DPU, Penguji Utama dan Penguji Anggota '); } } public function destroy(Request $request){ $id = $request->id; //cari data dan kirim notif sebelum dihapus $data = PengajuanRevisiPublikasi::where('pengajuan_revisi_publikasis.id',$id) ->join('mahasiswas','mahasiswas_id','=','mahasiswas.id') ->first(); //data yang akan dikirim untuk dihapus $data_job = [ 'jenis' => 'penolakan', 'caseid' => $data->caseid, 'nama_mahasiswa' => $data->nama, 'nim_mahasiswa' => $data->nim, 'judul_skripsi_id' => $data->judul_skripsi_id, 'judul_jurnal' => $data->judul_jurnal, 'judul_artikel' => $data->judul_artikel, 'email' => $data->email, 'created_at' => $data->created_at, 'alasan' => $request->alasan, ]; //delete data mahasiswa try { $dataDelete = PengajuanRevisiPublikasi::findOrFail($id); $dataDelete->delete(); //kirim notif ke mahasiswa bahwa ditolak dispatch(new layananRevisiPublikasiJob($data_job)); }catch(Exception $e){ //kirim notif error jika terjadi error $text['error'] = $e->getMessage(); dispatch(new kirimNotifikasiErrorJob($text)); return redirect()->route('layanan-revisipublikasi.index')->with('error','Error : '.$text['error']); } return redirect()->route('layanan-revisipublikasi.index')->with('success','Permintaan Sudah Diproses, Email akan segera dikirim ke penerima'); } public function resend($caseid, Request $request){ try{ $data = PengajuanRevisiPublikasi::where('caseid',$caseid)->first(); $data_job = [ 'id' => $data->id, 'jenis' => $request->jenis, ]; dispatch(new layananRevisiPublikasiJob($data_job)); }catch(Exception $e){ $text['error'] = $e->getMessage(); dispatch(new kirimNotifikasiErrorJob($text)); return redirect()->route('layanan-revisipublikasi.index')->with('error','Error : '.$text['error']); } return redirect()->route('layanan-revisipublikasi.index')->with('success','Berhasil Kirim Ulang Email Kepada '.$request->jenis.' Dengan CaseID : '.$caseid); } public function ettd($url, $caseid){ $role_untuk_ettd = ['dpu', 'penguji1', 'penguji2']; $data = PengajuanRevisiPublikasi::where('caseid','=',$caseid) ->select('pengajuan_revisi_publikasis.id', 'pengajuan_revisi_publikasis.caseid', 'mahasiswas.nama', 'mahasiswas.nim', 'mahasiswas.judul_skripsi_id', 'mahasiswas.judul_jurnal', 'mahasiswas.judul_artikel', 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', 'dosen_penguji1.nama_gelar as dosen_penguji1_nama_gelar', 'dosen_penguji2.nama_gelar as dosen_penguji2_nama_gelar', ) ->join('mahasiswas','pengajuan_revisi_publikasis.mahasiswas_id','=','mahasiswas.id') ->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id') ->join('users as dosen_penguji1','mahasiswas.dosen_penguji1_id','=','dosen_penguji1.id') ->join('users as dosen_penguji2','mahasiswas.dosen_penguji2_id','=','dosen_penguji2.id') ->first(); if(in_array($url, $role_untuk_ettd) && !is_null($data)){ //jika URL DPU maka render ini if($url=='dpu'){ $jenis = 'Dosen Pembimbing Utama'; return view('layanan-revisipublikasi.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]); } //jika URL Penguji Utama maka render ini elseif($url=='penguji1'){ $jenis = 'Dosen Penguji Utama'; return view('layanan-revisipublikasi.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]); } //jika URL Penguji Anggota maka render ini elseif($url=='penguji2'){ $jenis = 'Dosen Penguji Anggota'; return view('layanan-revisipublikasi.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]); } } //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 = ['dpu','penguji1', 'penguji2']; $data = PengajuanRevisiPublikasi::where('caseid','=',$caseid)->first(); if(in_array($url, $role_untuk_ettd) && !is_null($data)){ //jika URL DPU maka render ini if($url=='dpu'){ //jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error if($data->ttd_dpu!='-'){ return redirect()->route('layanan-revisipublikasi.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_dpu]); } //ambil data ETTD sesuai url $ttd = Mahasiswa::where('nim',$request->nim)->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')->first(); //jika Belum Pernah maka TTD akan diproses if($ttd->ettd==$request->ettd){ $data->ttd_dpu = Carbon::now(); $data->save(); $this->cek_ettd($caseid); return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan Pada CaseID '.$caseid]); } //jika ETTD Tidak sesuai Akan Dikembalikan Ke laman TTD Dengan error else{ return redirect()->route('layanan-revisipublikasi.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']); } } //jika URL Penguji Utama maka render ini elseif($url=='penguji1'){ //jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error if($data->ttd_penguji1!='-'){ return redirect()->route('layanan-revisipublikasi.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_penguji1]); } //ambil data ETTD sesuai url $ttd = Mahasiswa::where('nim',$request->nim)->join('users as dosen_penguji1','mahasiswas.dosen_penguji1_id','=','dosen_penguji1.id')->first(); //jika Belum Pernah maka TTD akan diproses if($ttd->ettd==$request->ettd){ $data->ttd_penguji1 = Carbon::now(); $data->save(); $this->cek_ettd($caseid); return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan Pada CaseID '.$caseid]); } //jika ETTD Tidak sesuai Akan Dikembalikan Ke laman TTD Dengan error else{ return redirect()->route('layanan-revisipublikasi.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']); } } //jika URL Penguji Anggota maka render ini elseif($url=='penguji2'){ //jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error if($data->ttd_penguji2!='-'){ return redirect()->route('layanan-revisipublikasi.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_penguji2]); } //ambil data ETTD sesuai url $ttd = Mahasiswa::where('nim',$request->nim)->join('users as dosen_penguji2','mahasiswas.dosen_penguji2_id','=','dosen_penguji2.id')->first(); //jika Belum Pernah maka TTD akan diproses if($ttd->ettd==$request->ettd){ $data->ttd_penguji2 = Carbon::now(); $data->save(); $this->cek_ettd($caseid); return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan Pada CaseID '.$caseid]); } //jika ETTD Tidak sesuai Akan Dikembalikan Ke laman TTD Dengan error else{ return redirect()->route('layanan-revisipublikasi.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']); } } } } public function cetak($caseid){ $data = PengajuanRevisiPublikasi::where('caseid', $caseid) ->select( 'pengajuan_revisi_publikasis.*', 'mahasiswas.nama', 'bagians.nama_bagian', 'mahasiswas.nim', 'mahasiswas.judul_skripsi_id', 'mahasiswas.judul_jurnal', 'mahasiswas.judul_artikel', 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', 'dosen_dpu.nip as dosen_dpu_nip', 'dosen_penguji1.nama_gelar as dosen_penguji1_nama_gelar', 'dosen_penguji1.nip as dosen_penguji1_nip', 'dosen_penguji2.nama_gelar as dosen_penguji2_nama_gelar', 'dosen_penguji2.nip as dosen_penguji2_nip', ) ->join('mahasiswas','pengajuan_revisi_publikasis.mahasiswas_id','=','mahasiswas.id') ->join('bagians','mahasiswas.bagian','=','bagians.id') ->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id') ->join('users as dosen_penguji1','mahasiswas.dosen_penguji1_id','=','dosen_penguji1.id') ->join('users as dosen_penguji2','mahasiswas.dosen_penguji2_id','=','dosen_penguji2.id') ->first(); if(is_null($data)){ return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with('error','Data Dengan CASEID Tersebut Tidak ada'); } //jika data tidak null, maka render ini if($data->ttd_dpu=='-'){ return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with('error','Data Belum Di TandaTangani Oleh DPU / Dosen Penguji Utama / Dosen Penguji Anggota, File Bisa didownload ketika sudah tanda tangan!'); } $data = [ 'title' => 'Cetak Kesediaan', // 'date' => Carbon::now()->format('d-m-Y'), 'date' => $data->updated_at->format('d-m-Y'), 'nama_mahasiswa' => $data->nama, 'nim' => $data->nim, 'bagian' => $data->nama_bagian, 'judul_skripsi_id' => $data->judul_skripsi_id, 'judul_jurnal' => $data->judul_jurnal, 'judul_artikel' => $data->judul_artikel, 'dosen_dpu_nama_gelar' => $data->dosen_dpu_nama_gelar, 'dosen_dpu_nip' => $data->dosen_dpu_nip, 'dosen_dpu_qrcode' => base64_encode(QrCode::size(100)->generate($data->dosen_dpu_nama_gelar.'_TTD_'.$data->ttd_dpu)), 'dosen_penguji2_nama_gelar' => $data->dosen_penguji2_nama_gelar, 'dosen_penguji2_nip' => $data->dosen_penguji2_nip, 'dosen_penguji2_qrcode' => base64_encode(QrCode::size(100)->generate($data->dosen_penguji2_nama_gelar.'_TTD_'.$data->ttd_penguji2)), 'dosen_penguji1_nama_gelar' => $data->dosen_penguji1_nama_gelar, 'dosen_penguji1_nip' => $data->dosen_penguji1_nip, 'dosen_penguji1_qrcode' => base64_encode(QrCode::size(100)->generate($data->dosen_penguji1_nama_gelar.'_TTD_'.$data->ttd_penguji1)), ]; $pdf = Pdf::loadView('layanan-revisipublikasi.cetak', $data); return $pdf->setPaper('a4', 'potrait')->download($caseid.'- Surat Pernyataan Publikasi.pdf'); } private function cek_ettd($caseid){ $data = PengajuanRevisiPublikasi::where('caseid',$caseid)->first(); if($data->ttd_dpu!='-' && $data->ttd_penguji1!='-' && $data->ttd_penguji2!='-' ){ $data_job =[ 'jenis' => 'mahasiswa selesai', 'id' => $data->id, ]; dispatch(new layananRevisiPublikasiJob($data_job)); } } }