pintu2/app/Http/Controllers/LayananPengajuanWisudaController.php

830 lines
44 KiB
PHP
Raw Normal View History

2024-03-30 19:43:46 +07:00
<?php
namespace App\Http\Controllers;
use App\Jobs\kirimNotifikasiErrorJob;
use App\Jobs\layananPengajuanWisudaJob;
use App\Models\Bagian;
use App\Models\Mahasiswa;
use App\Models\PengajuanWisuda;
use App\Models\User;
use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Ixudra\Curl\Facades\Curl;
use SimpleSoftwareIO\QrCode\Facades\QrCode;
use Spatie\Permission\Models\Role;
class LayananPengajuanWisudaController extends Controller
{
public function index(){
$data = PengajuanWisuda::select(
'pengajuan_wisudas.*',
'mahasiswas.nim as nim',
'mahasiswas.nama as nama',
'mahasiswas.judul_skripsi_id',
'mahasiswas.judul_jurnal',
'mahasiswas.judul_artikel',
'dosen_dpu.nama_gelar as dpu_nama_gelar',
'dosen_dpa.nama_gelar as dpa_nama_gelar',
'dosen_penguji1.nama_gelar as penguji1_nama_gelar',
'dosen_penguji2.nama_gelar as penguji2_nama_gelar'
)
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')
->join('users as dosen_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.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-wisuda.index',['title' => 'Pengajuan Syarat Wisuda | Admin Dashboard','data' => $data]);
}
public function tambah(){
$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-wisuda.tambah',['dosen'=>$dosen, 'bagian'=>$bagian,'data_mahasiswa'=>$data_mahasiswa]);
}
return view('layanan-wisuda.tambah',['dosen'=>$dosen, 'bagian'=>$bagian]);
}
public function store(Request $request){
//cek validasi file dan input
$request->validate([
'nim'=>'required|numeric',
'nama'=>'required',
'nomor_hp'=>'required|numeric',
'email'=>'required|email',
'judul_skripsi_id'=>'required',
'bagian'=>'required|numeric',
'dosen_dpu'=>'required|numeric',
'dosen_dpa'=>'required|numeric',
'dosen_penguji1'=>'required|numeric',
'dosen_penguji2'=>'required|numeric',
'bukti_skripsi' => 'required|mimes:pdf|max:4096',
'bukti_kkn' => 'required|mimes:pdf|max:4096',
'bukti_spp' => 'required|mimes:pdf|max:4096',
'bukti_toefl' => 'mimes:pdf|max:4096',
],[
'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',
]);
//olah file
$bukti_skripsi = $request->file('bukti_skripsi');
$bukti_kkn = $request->file('bukti_kkn');
$bukti_spp = $request->file('bukti_spp');
$bukti_toefl = $request->file('bukti_toefl');
//beri nama tiap file
$bukti_skripsi_name= 'LY_1'.str_replace(' ', '_',$bukti_skripsi->getClientOriginalName());
$bukti_kkn_name = 'LY_2'.str_replace(' ', '_',$bukti_kkn->getClientOriginalName());
$bukti_spp_name = 'LY_3'.str_replace(' ', '_',$bukti_spp->getClientOriginalName());
//Cek Apakah Data Mahasiswa Tersebut sudah ada, jika ada maka diminta untuk menggunakan fitur cari
$mahasiswa = Mahasiswa::where('nim',$request->nim)->first();
if(!is_null($mahasiswa) && $request->status!="ada"){
return redirect()->route('layanan-wisuda.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_wisuda['mahasiswas_id'] = $mahasiswas_id;
$data_wisuda['bukti_skripsi'] = $bukti_skripsi_name;
$data_wisuda['bukti_kkn'] = $bukti_kkn_name;
$data_wisuda['bukti_spp'] = $bukti_spp_name;
if($bukti_toefl==null){
$data_wisuda['bukti_toefl'] = '-';
//save to db
PengajuanWisuda::create($data_wisuda);
}else{
$bukti_toefl_name = 'LY_4'.str_replace(' ', '_',$bukti_toefl->getClientOriginalName());
$data_wisuda['bukti_toefl'] = $bukti_toefl_name;
//save to db
PengajuanWisuda::create($data_wisuda);
Storage::disk('public')->put($request->nim.'/'.$bukti_toefl_name, file_get_contents($bukti_toefl));
}
//edit data judul skripsi mahasiswa
$mahasiswa->judul_skripsi_id = $request->judul_skripsi_id;
//save to db
$mahasiswa->save();
Storage::disk('public')->put($request->nim.'/'.$bukti_skripsi_name, file_get_contents($bukti_skripsi));
Storage::disk('public')->put($request->nim.'/'.$bukti_kkn_name, file_get_contents($bukti_kkn));
Storage::disk('public')->put($request->nim.'/'.$bukti_spp_name, file_get_contents($bukti_spp));
return redirect()->route('layanan-wisuda.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator');
}
//Jika data baru maka akan menggunakan fitur ini
$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;
//set default to 0
$data_mhs['dosen_penguji1_id'] = $request->dosen_penguji1;
$data_mhs['dosen_penguji2_id'] = $request->dosen_penguji2;
$data_mhs['judul_skripsi_id'] = $request->judul_skripsi_id;
$data_mhs['judul_skripsi_en'] = '-';
$data_mhs['judul_jurnal'] = '-';
$data_mhs['judul_artikel'] = '-';
//save data mahasiswa dan pengajuan
if(Mahasiswa::create($data_mhs)){
$mahasiswas_id = Mahasiswa::where('nim',$request->nim)->first();
$data_wisuda['mahasiswas_id'] = $mahasiswas_id->id;
$data_wisuda['bukti_skripsi'] = $bukti_skripsi_name;
$data_wisuda['bukti_kkn'] = $bukti_kkn_name;
$data_wisuda['bukti_spp'] = $bukti_spp_name;
if($bukti_toefl==null){
$data_wisuda['bukti_toefl'] = '-';
//save to db
PengajuanWisuda::create($data_wisuda);
}
else{
$bukti_toefl_name = 'LY_4'.str_replace(' ', '_',$bukti_toefl->getClientOriginalName());
$data_wisuda['bukti_toefl'] = $bukti_toefl_name;
//save to db
PengajuanWisuda::create($data_wisuda);
Storage::disk('public')->put($request->nim.'/'.$bukti_toefl_name, file_get_contents($bukti_toefl));
}
Storage::disk('public')->put($request->nim.'/'.$bukti_skripsi_name, file_get_contents($bukti_skripsi));
Storage::disk('public')->put($request->nim.'/'.$bukti_kkn_name, file_get_contents($bukti_kkn));
Storage::disk('public')->put($request->nim.'/'.$bukti_spp_name, file_get_contents($bukti_spp));
return redirect()->route('layanan-wisuda.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator');
}
return redirect()->route('layanan-wisuda.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan');
}
public function cari(){
return view('layanan-wisuda.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-wisuda.tambah')->with('error','NIM Tidak Ditemukan, Gunakan Fitur Tambah');
}
return redirect()->route('layanan-wisuda.tambah')->with('mahasiswas_id',$data->id);
}
public function terima(Request $request){
$id = $request->id;
$countcaseid = PengajuanWisuda::where('ttd_operator','!=','-')->count();
$caseid = "LY".date_format(date_create(),"ym").$countcaseid+1;
$cekData = PengajuanWisuda::where('caseid',$caseid)->first();
$data = PengajuanWisuda::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-wisuda.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' => 'dpa',
'id' => $id,
],
[
'jenis' => 'penguji1',
'id' => $id,
],
[
'jenis' => 'penguji2',
'id' => $id,
],
[
'jenis' => 'kalab',
'id' => $id,
],
[
'jenis' => 'perpustakaan',
'id' => $id,
],
[
'jenis' => 'skpi',
'id' => $id,
],
];
foreach($data_job as $item){
dispatch(new layananPengajuanWisudaJob($item));
}
return redirect()->route('layanan-wisuda.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 = PengajuanWisuda::where('pengajuan_wisudas.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,
'email' => $data->email,
'created_at' => $data->created_at,
'alasan' => $request->alasan,
];
//delete data mahasiswa
try {
$dataDelete = PengajuanWisuda::findOrFail($id);
$dataDelete->delete();
$path = [
$data->nim."/".$data->bukti_skripsi,
$data->nim."/".$data->bukti_spp,
$data->nim."/".$data->buktix_kkn,
$data->nim."/".$data->bukti_toefl,
];
foreach ($path as $item){
//hapus file yang diupload mahasiswa
if(Storage::disk('public')->exists($item)){
//hapus data pengajuan mahasiswa
Storage::disk('public')->delete($item);
}
}
//kirim notif ke mahasiswa bahwa ditolak
dispatch(new layananPengajuanWisudaJob($data_job));
}catch(Exception $e){
//kirim notif error jika terjadi error
$text['error'] = $e->getMessage();
dispatch(new kirimNotifikasiErrorJob($text));
return redirect()->route('layanan-wisuda.index')->with('error','Error : '.$text['error']);
}
return redirect()->route('layanan-wisuda.index')->with('success','Permintaan Sudah Diproses, Email akan segera dikirim ke penerima');
}
public function ettd($url, $caseid){
$role_untuk_ettd = ['dpu','dpa','penguji1','penguji2','skpi','kalab','ruangbaca','wakildekan1'];
$data = PengajuanWisuda::where('caseid','=',$caseid)
->select('pengajuan_wisudas.id',
'pengajuan_wisudas.caseid',
'pengajuan_wisudas.bukti_skripsi',
'mahasiswas.nama',
'mahasiswas.nim',
'mahasiswas.judul_skripsi_id',
'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar',
'dosen_dpa.nama_gelar as dosen_dpa_nama_gelar',
'dosen_penguji1.nama_gelar as dosen_penguji1_nama_gelar',
'dosen_penguji2.nama_gelar as dosen_penguji2_nama_gelar',
)
->join('mahasiswas','pengajuan_wisudas.mahasiswas_id','=','mahasiswas.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')
->join('users as dosen_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.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-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]);
}
//jika URL DPA maka render ini
elseif($url=='dpa'){
$jenis = 'Dosen Pembimbing Anggota';
return view('layanan-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]);
}
//jika URL Penguji1 maka render ini
elseif($url=='penguji1'){
$jenis = 'Dosen Penguji Utama';
return view('layanan-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]);
}
//jika URL Penguji2 maka render ini
elseif($url=='penguji2'){
$jenis = 'Dosen Penguji Anggota';
return view('layanan-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]);
}
//jika URL Kalab maka render ini
elseif($url=='kalab'){
$jenis = 'Kepala Laboratorium';
return view('layanan-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]);
}
//jika URL skpi maka render ini
elseif($url=='skpi'){
$jenis = 'Pj. SKPI';
$nama_ettd = User::role('Pj. SKPI')->get();
return view('layanan-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data,'nama_ettd'=>$nama_ettd]);
}
//jika URL ruangbaca maka render ini
elseif($url=='ruangbaca'){
$jenis = 'Pj. perpustakaan';
$nama_ettd = User::role('Pj. Perpustakaan')->first();
return view('layanan-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data,'nama_ettd'=>$nama_ettd]);
}
//jika URL Kombi maka render ini
elseif($url=='wakildekan1'){
$jenis = 'Wakil Dekan 1';
$nama_ettd = User::role('Wakil Dekan 1')->first();
return view('layanan-wisuda.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data,'nama_ettd'=>$nama_ettd]);
}
}
//jika URL tidak diantara ketika itu maka render ini
return redirect()->route('laman-awal')->with(['error'=>'URL Tidak Ditemukan']);
}
public function submitettd($url, $caseid, Request $request){
$role_untuk_ettd = ['dpu','dpa','penguji1','penguji2','skpi','kalab','ruangbaca','wakildekan1'];
$data = PengajuanWisuda::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-wisuda.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->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
if($url=='dpa'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_dpa!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_dpa]);
}
//ambil data ETTD sesuai url
$ttd = Mahasiswa::where('nim',$request->nim)->join('users as dosen_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.id')->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_dpa = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
if($url=='penguji1'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_penguji1!='-'){
return redirect()->route('layanan-wisuda.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->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
if($url=='penguji2'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_penguji2!='-'){
return redirect()->route('layanan-wisuda.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->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
if($url=='kalab'){
if($request->user_ettd=='Kalab. Farmasi Klinik dan Komunitas'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_farmasi_klinik_dan_komunitas!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_farmasi_klinik_dan_komunitas]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_farmasi_klinik_dan_komunitas = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
elseif($request->user_ettd=='Kalab. Farmakologi dan Hewan Coba'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_farmakologi_dan_hewan_coba!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_farmakologi_dan_hewan_coba]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_farmakologi_dan_hewan_coba = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
elseif($request->user_ettd=='Kalab. Farmakognosi dan Fitokimia'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_farmakognosi_dan_fitokimia!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_farmakognosi_dan_fitokimia]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_farmakognosi_dan_fitokimia = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
elseif($request->user_ettd=='Kalab. Mikrobiologi dan Bioteknologi Farmasi'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_mikrobiologi_dan_bioteknologi_farmasi!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_mikrobiologi_dan_bioteknologi_farmasi]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_mikrobiologi_dan_bioteknologi_farmasi = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
elseif($request->user_ettd=='Kalab. Farmasetika'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_farmasetika!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_farmasetika]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_farmasetika = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
elseif($request->user_ettd=='Kalab. Teknologi Farmasi'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_teknologi_farmasi!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_teknologi_farmasi]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_teknologi_farmasi = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
elseif($request->user_ettd=='Kalab. Kimia Analisis'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_kimia_analisis!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_kimia_analisis]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_kimia_analisis = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
elseif($request->user_ettd=='Kalab. Kimia Medisinal'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_kalab_kimia_medisinal!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kalab_kimia_medisinal]);
}
//ambil data ETTD sesuai url
$ttd = User::role($request->user_ettd)->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_kalab_kimia_medisinal = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
}
if($url=='skpi'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_skpi!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_skpi]);
}
//ambil data ETTD sesuai url
$ttd = User::where('id',$request->user_ettd)->role('Pj. SKPI')->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_skpi = $ttd->nip.'_TTD_'.Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
if($url=='ruangbaca'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_ruang_baca!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_ruang_baca]);
}
//ambil data ETTD sesuai url
$ttd = User::role('Pj. Perpustakaan')->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_ruang_baca = Carbon::now();
$data->save();
$this->cekettd($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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
if($url=='wakildekan1'){
//jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error
if($data->ttd_wakil_dekan_1!='-'){
return redirect()->route('layanan-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_wakil_dekan_1]);
}
//ambil data ETTD sesuai url
$ttd = User::role('Wakil Dekan 1')->first();
//jika Belum Pernah maka TTD akan diproses
if($ttd->ettd==$request->ettd){
$data->ttd_wakil_dekan_1 = Carbon::now();
$data->save();
$job = [
'jenis' => 'mahasiswa selesai',
'id' => $data->id,
];
dispatch(new layananPengajuanWisudaJob($job));
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-wisuda.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
}
}
public function resend(){
$role_untuk_ettd = ['dpu','dpa','penguji1','penguji2','skpi','kalab','ruangbaca','wakildekan1'];
$data = PengajuanWisuda::where('caseid','!=','-')->get();
return view('layanan-wisuda.resend',['title' => 'Pengajuan Syarat Wisuda | Admin Dashboard','data'=> $data,'role' => $role_untuk_ettd]);
}
public function resendsubmit(Request $request){
$data = [
'jenis' => $request->jenis,
'id' => $request->caseid,
];
dispatch(new layananPengajuanWisudaJob($data));
return redirect()->route('layanan-wisuda.resend')->with('success','Berhasil Kirim Ulang Email ke '.$request->jenis);
}
public function cetak($caseid){
$cek_status = PengajuanWisuda::where('caseid', $caseid)->select('ttd_wakil_dekan_1', 'created_at')->first();
if($cek_status->ttd_wakil_dekan_1 >= $cek_status->created_at){
$data = PengajuanWisuda::where('caseid',$caseid)
->select(
'pengajuan_wisudas.*',
'mahasiswas.nim',
'mahasiswas.nama',
'mahasiswas.judul_skripsi_id',
'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar',
'dosen_dpa.nama_gelar as dosen_dpa_nama_gelar',
'dosen_penguji1.nama_gelar as dosen_penguji1_nama_gelar',
'dosen_penguji2.nama_gelar as dosen_penguji2_nama_gelar',
'dosen_dpu.nip as dosen_dpu_nip',
'dosen_dpa.nip as dosen_dpa_nip',
'dosen_penguji1.nip as dosen_penguji1_nip',
'dosen_penguji2.nip as dosen_penguji2_nip',
)
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')
->join('users as dosen_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.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();
$data_ruang_baca = User::role('Pj. Perpustakaan')->first();
$data_kalab_farmasi_klinik_dan_komunikasi = User::role('Kalab. Farmasi Klinik dan Komunitas')->first();
$data_kalab_farmakologi_dan_hewan_coba = User::role('Kalab. Farmakologi dan Hewan Coba')->first();
$data_kalab_farmakognosi_dan_fitokimia = User::role('Kalab. Farmakognosi dan Fitokimia')->first();
$data_kalab_mikrobiologi_dan_bioteknologi_farmasi = User::role('Kalab. Mikrobiologi dan Bioteknologi Farmasi')->first();
$data_kalab_farmasetika = User::role('Kalab. Farmasetika')->first();
$data_kalab_teknologi_farmasi = User::role('Kalab. Teknologi Farmasi')->first();
$data_kalab_kimia_analisis = User::role('Kalab. Kimia Analisis')->first();
$data_kalab_kimia_medisinal = User::role('Kalab. Kimia Medisinal')->first();
$user_skpi = explode('_',$data->ttd_skpi);
$data_skpi = User::where('nip',$user_skpi[0])->first();
$data_wakil_dekan_1 = User::role('Wakil Dekan 1')->first();
$data_pdf = [
'title' => $caseid,
'nama_mahasiswa'=> $data->nama,
'nim'=> $data->nim,
'judul_skripsi'=> $data->judul_skripsi_id,
'date' => $data->updated_at->format('d-m-Y'),
//ruang baca
'ruang_baca_nama' => $data_ruang_baca->nama_gelar,
'ruang_baca_nip' => $data_ruang_baca->nip,
'ruang_baca_qrcode' => base64_encode(QrCode::size(100)->generate($data_ruang_baca->nama_gelar.'_TTD_'.$data->ttd_ruang_baca)),
//kalab fkk
'kalab_farmasi_klinik_dan_komunikasi_nama' => $data_kalab_farmasi_klinik_dan_komunikasi->nama_gelar,
'kalab_farmasi_klinik_dan_komunikasi_nip' => $data_kalab_farmasi_klinik_dan_komunikasi->nip,
'kalab_farmasi_klinik_dan_komunikasi_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_farmasi_klinik_dan_komunikasi->nama_gelar.'_TTD_'.$data->ttd_kalab_farmasi_klinik_dan_komunikasi)),
//kalab farmakologi
'kalab_farmakologi_dan_hewan_coba_nama' => $data_kalab_farmakologi_dan_hewan_coba->nama_gelar,
'kalab_farmakologi_dan_hewan_coba_nip' => $data_kalab_farmakologi_dan_hewan_coba->nip,
'kalab_farmakologi_dan_hewan_coba_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_farmakologi_dan_hewan_coba->nama_gelar.'_TTD_'.$data->ttd_kalab_farmakologi_dan_hewan_coba)),
//kalab farmakognosi
'kalab_farmakognosi_dan_fitokimia_nama' => $data_kalab_farmakognosi_dan_fitokimia->nama_gelar,
'kalab_farmakognosi_dan_fitokimia_nip' => $data_kalab_farmakognosi_dan_fitokimia->nip,
'kalab_farmakognosi_dan_fitokimia_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_farmakognosi_dan_fitokimia->nama_gelar.'_TTD_'.$data->ttd_kalab_farmakognosi_dan_fitokimia)),
//kalab Mikrobiologi dan Bioteknologi Farmasi
'kalab_mikrobiologi_dan_bioteknologi_farmasi_nama' => $data_kalab_mikrobiologi_dan_bioteknologi_farmasi->nama_gelar,
'kalab_mikrobiologi_dan_bioteknologi_farmasi_nip' => $data_kalab_mikrobiologi_dan_bioteknologi_farmasi->nip,
'kalab_mikrobiologi_dan_bioteknologi_farmasi_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_mikrobiologi_dan_bioteknologi_farmasi->nama_gelar.'_TTD_'.$data->ttd_kalab_mikrobiologi_dan_bioteknologi_farmasi)),
//kalab Farmasetika
'kalab_farmasetika_nama' => $data_kalab_farmasetika->nama_gelar,
'kalab_farmasetika_nip' => $data_kalab_farmasetika->nip,
'kalab_farmasetika_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_farmasetika->nama_gelar.'_TTD_'.$data->ttd_kalab_farmasetika)),
//kalab Teknologi Farmasi
'kalab_teknologi_farmasi_nama' => $data_kalab_teknologi_farmasi->nama_gelar,
'kalab_teknologi_farmasi_nip' => $data_kalab_teknologi_farmasi->nip,
'kalab_teknologi_farmasi_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_teknologi_farmasi->nama_gelar.'_TTD_'.$data->ttd_kalab_teknologi_farmasi)),
//kalab Kimia Analisis
'kalab_kimia_analisis_nama' => $data_kalab_kimia_analisis->nama_gelar,
'kalab_kimia_analisis_nip' => $data_kalab_kimia_analisis->nip,
'kalab_kimia_analisis_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_kimia_analisis->nama_gelar.'_TTD_'.$data->ttd_kalab_kimia_analisis)),
//kalab Kimia Medisinal
'kalab_kimia_medisinal_nama' => $data_kalab_kimia_medisinal->nama_gelar,
'kalab_kimia_medisinal_nip' => $data_kalab_kimia_medisinal->nip,
'kalab_kimia_medisinal_qrcode' => base64_encode(QrCode::size(75)->generate($data_kalab_kimia_medisinal->nama_gelar.'_TTD_'.$data->ttd_kalab_kimia_medisinal)),
//kalab Kimia Medisinal
'skpi_nama' => $data_skpi->nama_gelar,
'skpi_nip' => $data_skpi->nip,
'skpi_qrcode' => base64_encode(QrCode::size(75)->generate($data->ttd_kalab_kimia_medisinal)),
//Wakil Dekan 1
'wakil_dekan_1_nama' => $data_wakil_dekan_1->nama_gelar,
'wakil_dekan_1_nip' => $data_wakil_dekan_1->nip,
'wakil_dekan_1_qrcode' => base64_encode(QrCode::size(75)->generate($data_wakil_dekan_1->nama_gelar.'_TTD_'.$data->ttd_wakil_dekan_1)),
//dosen dpu
'dosen_dpu_nama' => $data->dosen_dpu_nama_gelar,
'dosen_dpu_nip' => $data->dosen_dpu_nip,
'dosen_dpu_qrcode' => base64_encode(QrCode::size(75)->generate($data->dosen_dpu_nama_gelar.'_TTD_'.$data->ttd_wakil_dekan_1)),
//dosen dpa
'dosen_dpa_nama' => $data->dosen_dpa_nama_gelar,
'dosen_dpa_nip' => $data->dosen_dpa_nip,
'dosen_dpa_qrcode' => base64_encode(QrCode::size(75)->generate($data->dosen_dpa_nama_gelar.'_TTD_'.$data->ttd_wakil_dekan_1)),
//dosen penguji1
'dosen_penguji1_nama' => $data->dosen_penguji1_nama_gelar,
'dosen_penguji1_nip' => $data->dosen_penguji1_nip,
'dosen_penguji1_qrcode' => base64_encode(QrCode::size(75)->generate($data->dosen_penguji1_nama_gelar.'_TTD_'.$data->ttd_wakil_dekan_1)),
//dosen penguji2
'dosen_penguji2_nama' => $data->dosen_penguji2_nama_gelar,
'dosen_penguji2_nip' => $data->dosen_penguji2_nip,
'dosen_penguji2_qrcode' => base64_encode(QrCode::size(75)->generate($data->dosen_penguji2_nama_gelar.'_TTD_'.$data->ttd_wakil_dekan_1)),
//operator
'operator_qrcode' => base64_encode(QrCode::size(75)->generate($data_wakil_dekan_1->nama_gelar.'_TTD_'.$data->ttd_wakil_dekan_1)),
];
$pdf = Pdf::loadView('layanan-wisuda.cetak', $data_pdf);
return $pdf->setPaper('a4', 'potrait')->download($caseid.'-Persetujuan Yudisium.pdf');
}
return 'Case ID Belum di Tanda Tangan oleh seluruh komponen';
}
public function cekettd($caseid){
$status = PengajuanWisuda::where('caseid',$caseid)
->first();
if($status->ttd_dpu!='-' &&
$status->ttd_dpa!='-' &&
$status->ttd_penguji1!='-' &&
$status->ttd_penguji2!='-' &&
$status->ttd_kalab_farmasi_klinik_dan_komunitas!='-' &&
$status->ttd_kalab_farmakologi_dan_hewan_coba!='-' &&
$status->ttd_kalab_farmakognosi_dan_fitokimia!='-' &&
$status->ttd_kalab_mikrobiologi_dan_bioteknologi_farmasi!='-' &&
$status->ttd_kalab_farmasetika!='-' &&
$status->ttd_kalab_teknologi_farmasi!='-' &&
$status->ttd_kalab_kimia_analisis!='-' &&
$status->ttd_kalab_kimia_medisinal!='-' &&
$status->ttd_ruang_baca!='-' &&
$status->ttd_skpi!='-' ){
$data = [
'jenis' => 'wakildekan1',
'id' => $status->id,
];
dispatch(new layananPengajuanWisudaJob($data));
}
}
}