diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index c599e76..384ca2d 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\PengajuanDpuDpa; use Illuminate\Http\Request; @@ -9,7 +10,8 @@ class AdminController extends Controller { public function index(){ - return view('admin.index',['title'=> 'Admin Dashboard']); + $layanan_dpudpa = PengajuanDpuDpa::count(); + return view('admin.index',['title'=> 'Admin Dashboard', 'layanan_dpudpa'=>$layanan_dpudpa]); } diff --git a/app/Http/Controllers/LayananPengajuanDpuDpaController.php b/app/Http/Controllers/LayananPengajuanDpuDpaController.php index 342adf0..626402e 100644 --- a/app/Http/Controllers/LayananPengajuanDpuDpaController.php +++ b/app/Http/Controllers/LayananPengajuanDpuDpaController.php @@ -2,15 +2,26 @@ namespace App\Http\Controllers; +use App\Jobs\layananPengajuanDpuDpaJob; + +use App\Models\Bagian; use App\Models\Mahasiswa; use App\Models\PengajuanDpuDpa; use App\Models\User; + +use Barryvdh\DomPDF\Facade\Pdf; +use Carbon\Carbon; + use Illuminate\Http\Request; + use Illuminate\Support\Facades\Storage; +use SimpleSoftwareIO\QrCode\Facades\QrCode; +use Spatie\Permission\Models\Role; class LayananPengajuanDpuDpaController extends Controller { +//done public function index(){ $data = PengajuanDpuDpa:: select('pengajuan_dpu_dpas.*', @@ -25,10 +36,55 @@ public function index(){ ->get(); return view('layanan-dpudpa.index',['title' => 'Pengajuan DPU/DPA | Admin Dashboard','data' => $data]); } +//done public function tambah(){ $dosen = User::role('Dosen')->get(); - return view('layanan-dpudpa.tambah',['dosen'=>$dosen]); + $bagian = Bagian::select('id', 'nama_bagian')->get(); + return view('layanan-dpudpa.tambah',['dosen'=>$dosen, 'bagian'=>$bagian]); } + +//done +public function terima(Request $request){ + $id = $request->id; + $countcaseid = PengajuanDpuDpa::where('ttd_operator','!=','-')->count(); + $caseid = "LS".date_format(date_create(),"ym").$countcaseid+1; + + $cekData = PengajuanDpuDpa::where('caseid',$caseid)->first(); + $data = PengajuanDpuDpa::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-dpudpa.index')->with('error','Gagal simpan Data, Cek kembali Detail Data yang akan diterima'); + } + //save CASEID dan kirim email + + $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, + ], + ]; + foreach($data_job as $item){ + dispatch(new layananPengajuanDpuDpaJob($item)); + } + return redirect()->route('layanan-dpudpa.index')->with('success','Data Berhasil Disimpan, Email Akan Dikirimkan ke Mahasiswa, DPU dan DPA'); + } + +} + +//done public function store(Request $request){ $request->validate([ @@ -52,41 +108,257 @@ public function store(Request $request){ 'file_transkrip.mimes'=>'Format File Bukan PDF, Cek Ulang file anda', 'file_transkrip.max'=>'Ukuran File Anda lebih dari 4Mb, Cek Ulang File anda', ]); + //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-dpudpa.tambah')->with('error','Data Anda Sudah Ada, Gunakan Fitur Cari'); + } + $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'] = $request->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'] = 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'] = '-'; + + //set penyimpanan file $file_transkrip = $request->file('file_transkrip'); $file_transkrip_name = 'LS_'.str_replace(' ', '_',$file_transkrip->getClientOriginalName()); $path = $request->nim.'/'.$file_transkrip_name; - //jika berhasil save file maka data mhs akan disimpan, dan pengajuan akan diisi - if(Storage::disk('public')->put($path, file_get_contents($file_transkrip))){ - - $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'] = $request->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 - - $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'] = '-'; - - - if(Mahasiswa::create($data_mhs)){ - $mahasiswas_id = Mahasiswa::where('nim',$request->nim)->first(); - $data_dpudpa['mahasiswas_id'] = $mahasiswas_id->id; - $data_dpudpa['bukti_transkrip_nilai'] = $file_transkrip_name; - PengajuanDpuDpa::create($data_dpudpa); - return redirect()->route('layanan-dpudpa.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator'); - } - return redirect()->route('layanan-dpudpa.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan'); + //jika berhasil save file dan save data mhs maka pengajuan akan diisi + if(Storage::disk('public')->put($path, file_get_contents($file_transkrip)) && Mahasiswa::create($data_mhs)){ + $mahasiswas_id = Mahasiswa::where('nim',$request->nim)->first(); + $data_dpudpa['mahasiswas_id'] = $mahasiswas_id->id; + $data_dpudpa['bukti_transkrip_nilai'] = $file_transkrip_name; + PengajuanDpuDpa::create($data_dpudpa); + return redirect()->route('layanan-dpudpa.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator'); + } + return redirect()->route('layanan-dpudpa.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan'); +} + +//done +public function destroy(Request $request){ + $id = $request->id; + //cari data dan kirim notif sebelum dihapus + $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$id) + ->join('mahasiswas','mahasiswas_id','=','mahasiswas.id') + ->first(); + $data_job = [ + 'jenis' => 'penolakan', + 'nama' => $data->nama, + 'email' => $data->email, + 'created_at' => $data->created_at, + 'alasan' => $request->alasan, + ]; + $path = $data->nim."/".$data->bukti_transkrip_nilai; + //hapus file yang diupload mahasiswa + if(Storage::disk('public')->exists($path)){ + Storage::disk('public')->delete($path); + //hapus data pengajuan mahasiswa + return redirect()->route('layanan-dpudpa.index')->with('error','Gagal Hapus Data, File Mahasiswa Yang akan dihapus tidak ditemukan'); + } + $dataDelete = PengajuanDpuDpa::findOrFail($id); + + //kirim notifikasi jika data berhasil dihapus + if($dataDelete->delete()){ + dispatch(new layananPengajuanDpuDpaJob($data_job)); + return redirect()->route('layanan-dpudpa.index')->with('success','Permintaan Sudah Diproses, Email akan segera dikirim ke penerima'); + } + return redirect()->route('layanan-dpudpa.index')->with('error','Gagal Hapus Data, coba cek data yang akan dihapus lalu coba lagi!'); +} + +//done +public function ettd($url, $caseid){ + $role_untuk_ettd = ['dpu','dpa','kombi']; + $data = PengajuanDpuDpa::where('caseid','=',$caseid) + ->select('pengajuan_dpu_dpas.id', + 'pengajuan_dpu_dpas.caseid', + 'mahasiswas.nama', + 'mahasiswas.nim', + 'mahasiswas.judul_seminar_proposal', + 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', + 'dosen_dpa.nama_gelar as dosen_dpa_nama_gelar', + ) + ->join('mahasiswas','pengajuan_dpu_dpas.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') + ->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-dpudpa.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-dpudpa.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]); + } + //jika URL Kombi maka render ini + elseif($url=='kombi'){ + $jenis = 'Komisi Bimbingan'; + $kombiRole = Role::findByName('Ketua Kombi')->users; + $dataKombi = [ + 'caseid' => $data->caseid, + 'nama' => $data->nama, + 'nim' => $data->nim, + 'judul_seminar_proposal' => $data->judul_seminar_proposal, + 'dosen_kombi_nama_gelar' => $kombiRole[0]->nama_gelar, + + ]; + $jenis = 'Komisi Bimbingan'; + return view('layanan-dpudpa.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $dataKombi]); + } + } + //jika URL tidak diantara ketika itu maka render ini + return redirect()->route('laman-awal')->with(['error'=>'Invalid CASEID, Atau CaseID Tidak Ditemukan']); + +} + +//done +public function submitettd($url, $caseid, Request $request){ + $role_untuk_ettd = ['dpu','dpa','kombi']; + $data = PengajuanDpuDpa::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-dpudpa.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_dpa_dpu($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-dpudpa.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']); + } + } + //jika URL DPa maka render ini + if($url=='dpa'){ + //jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error + if($data->ttd_dpa!='-'){ + return redirect()->route('layanan-dpudpa.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->cek_dpa_dpu($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-dpudpa.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']); + } + } + //jika URL Kombi maka render ini + if($url=='kombi'){ + //jika sudah pernah ETTD Akan Dikembalikan Ke laman TTD Dengan error + if($data->ttd_kombi!='-'){ + return redirect()->route('layanan-dpudpa.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kombi]); + } + if($data->ttd_dpu=='-' && $data->ttd_dpa =='-'){ + return redirect()->route('layanan-dpudpa.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'DPU atau DPA Belum Tanda Tangan Pada CaseID ini']); + } + //ambil data ETTD sesuai url + $ttd = Role::findByName('Ketua Kombi')->users; + //jika Belum Pernah maka TTD akan diproses + if($ttd[0]->ettd==$request->ettd){ + $data->ttd_kombi = Carbon::now(); + $data->save(); + $data = [ + 'jenis' => 'mahasiswa selesai', + 'id' => $data->id, + ]; + dispatch(new layananPengajuanDpuDpaJob($data)); + 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-dpudpa.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']); + } + } + } +} + +//done +public function cetak($caseid){ + $get_data = PengajuanDpuDpa::where('caseid',$caseid)->first(); + if($get_data->ttd_kombi=='-'){ + return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with('error','Data Belum Di TandaTangani Oleh Dosen Kombi, File Bisa didownload ketika Dosen Kombi sudah tanda tangan!'); + } + //get Data Mahasiswa, DPU dan DPA + $data_dpu_dpa = PengajuanDpuDpa::where('caseid', $caseid) + ->select( + 'pengajuan_dpu_dpas.*', + 'mahasiswas.nim', + 'mahasiswas.nama', + 'bagians.nama_bagian', + 'mahasiswas.judul_seminar_proposal', + 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', + 'dosen_dpu.nip as dosen_dpu_nip', + 'dosen_dpa.nama_gelar as dosen_dpa_nama_gelar', + 'dosen_dpa.nip as dosen_dpa_nip', + ) + ->join('mahasiswas','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_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.id') + ->first(); + //get Data Kombi + $data_kombi = Role::findByName('Ketua Kombi')->users; + $data = [ + 'title' => 'Cetak Kesediaan', + // 'date' => Carbon::now()->format('d-m-Y'), + 'date' => $data_dpu_dpa->created_at->format('d-m-Y'), + 'nama_mahasiswa' => $data_dpu_dpa->nama, + 'nim' => $data_dpu_dpa->nim, + 'bagian' => $data_dpu_dpa->nama_bagian, + 'judul_skripsi' => $data_dpu_dpa->judul_seminar_proposal, + 'dosen_dpu_nama_gelar' => $data_dpu_dpa->dosen_dpu_nama_gelar, + 'dosen_dpu_nip' => $data_dpu_dpa->dosen_dpu_nip, + 'dosen_dpu_qrcode' => base64_encode(QrCode::size(100)->generate($data_dpu_dpa->dosen_dpu_nama_gelar.'_TTD_'.$data_dpu_dpa->ttd_dpu)), + 'dosen_dpa_nama_gelar' => $data_dpu_dpa->dosen_dpa_nama_gelar, + 'dosen_dpa_nip' => $data_dpu_dpa->dosen_dpa_nama_gelar, + 'dosen_dpa_qrcode' => base64_encode(QrCode::size(100)->generate($data_dpu_dpa->dosen_dpa_nama_gelar.'_TTD_'.$data_dpu_dpa->ttd_dpa)), + 'dosen_kombi_nama_gelar' => $data_kombi[0]->nama_gelar, + 'dosen_kombi_nip' => $data_kombi[0]->nip, + 'dosen_kombi_qrcode' => base64_encode(QrCode::size(100)->generate($data_kombi[0]->nama_gelar.'_TTD_'.$data_dpu_dpa->ttd_kombi)), + ]; + $pdf = Pdf::loadView('layanan-dpudpa.cetak', $data); + return $pdf->setPaper('a4', 'potrait')->stream($caseid.'-Kesediaan Menjadi Dosen Pembimbing Tugas Akhir'); +} + +//cek apakah DPU dan DPU sudah Tanda tangan, jika sudah maka akan mengirim notifikasi ke Kombi +private function cek_dpa_dpu($caseid){ + $status = PengajuanDpuDpa::where('caseid',$caseid) + ->select('id','ttd_dpu','ttd_dpa') + ->first(); + if($status->ttd_dpu!='-' && $status->ttd_dpa!='-'){ + $data = [ + 'jenis' => 'kombi', + 'id' => $status->id, + ]; + dispatch(new layananPengajuanDpuDpaJob($data)); } - return redirect()->route('layanan-dpudpa.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan'); } } diff --git a/app/Http/Controllers/LayananSeminarProposal.php b/app/Http/Controllers/LayananSeminarProposal.php new file mode 100644 index 0000000..679ec74 --- /dev/null +++ b/app/Http/Controllers/LayananSeminarProposal.php @@ -0,0 +1,369 @@ +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') + ->get(); + return view('layanan-sempro.index',['title' => 'Pengajuan Seminar Proposal | Admin Dashboard','data' => $data]); +} + +//done +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-sempro.tambah',['dosen'=>$dosen, 'bagian'=>$bagian,'data_mahasiswa'=>$data_mahasiswa]); + } + return view('layanan-sempro.tambah',['dosen'=>$dosen, 'bagian'=>$bagian]); +} +//done +public function cari(){ + return view('layanan-sempro.cari',['title'=>'Cari Data Mahasiswa Untuk Keperluan Pengajuan Seminar Proposal']); +} +//done +public function search(Request $request){ + $data = Mahasiswa::where('nim',$request->nim)->first(); + if($data==null){ + return redirect()->route('layanan-sempro.tambah')->with('error','NIM Tidak Ditemukan, Gunakan Fitur Tambah'); + } + return redirect()->route('layanan-sempro.tambah')->with('mahasiswas_id',$data->id); +} + +//done +public function store(Request $request){ + + $request->validate([ + 'nim'=>'required|numeric', + 'nama'=>'required', + 'nomor_hp'=>'required|numeric', + 'email'=>'required|email', + 'judul_seminar_proposal'=>'required', + 'bagian'=>'required|numeric', + 'dosen_dpu'=>'required|numeric', + 'dosen_dpa'=>'required|numeric', + 'dosen_penguji1'=>'required|numeric', + 'dosen_penguji2'=>'required|numeric', + 'nilai_plagiasi'=>'required|numeric', + 'bukti_hadir_sempro' => 'required|mimes:pdf|max:4096', + 'bukti_turnitin' => 'required|mimes:pdf|max:4096', + 'bukti_sister' => 'required|mimes:pdf|max:4096', + 'bukti_lembar_monitoring' => 'required|mimes:pdf|max:4096', + 'bukti_naskah_dosen_pembimbing' => 'required|mimes:pdf|max:4096', + 'bukti_naskah_dosen_penguji' => 'required|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', + 'nilai_plagiasi.numeric'=>'Masukkan Nilai Plagiasi Berupa Angka saja', + ]); + + //olah file + $bukti_hadir_sempro = $request->file('bukti_hadir_sempro'); + $bukti_turnitin = $request->file('bukti_turnitin'); + $bukti_sister = $request->file('bukti_sister'); + $bukti_lembar_monitoring = $request->file('bukti_lembar_monitoring'); + $bukti_naskah_dosen_pembimbing = $request->file('bukti_naskah_dosen_pembimbing'); + $bukti_naskah_dosen_penguji = $request->file('bukti_naskah_dosen_penguji'); + //beri nama tiap file + $bukti_hadir_sempro_name= 'LP_1'.str_replace(' ', '_',$bukti_hadir_sempro->getClientOriginalName()); + $bukti_turnitin_name = 'LP_2'.str_replace(' ', '_',$bukti_turnitin->getClientOriginalName()); + $bukti_sister_name = 'LP_3'.str_replace(' ', '_',$bukti_sister->getClientOriginalName()); + $bukti_lembar_monitoring_name = 'LP_4'.str_replace(' ', '_',$bukti_lembar_monitoring->getClientOriginalName()); + $bukti_naskah_dosen_pembimbing_name = 'LP_5'.str_replace(' ', '_',$bukti_naskah_dosen_pembimbing->getClientOriginalName()); + $bukti_naskah_dosen_penguji_name = 'LP_6'.str_replace(' ', '_',$bukti_naskah_dosen_penguji->getClientOriginalName()); + + //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-sempro.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_sempro['mahasiswas_id'] = $mahasiswas_id; + $data_sempro['nilai_plagiasi'] = $request->nilai_plagiasi; + $data_sempro['bukti_hadir_sempro'] = $bukti_hadir_sempro_name; + $data_sempro['bukti_turnitin'] = $bukti_turnitin_name; + $data_sempro['bukti_sister'] = $bukti_sister_name; + $data_sempro['bukti_lembar_monitoring'] = $bukti_lembar_monitoring_name; + $data_sempro['bukti_naskah_dosen_pembimbing'] = $bukti_naskah_dosen_pembimbing_name; + $data_sempro['bukti_naskah_dosen_penguji'] = $bukti_naskah_dosen_penguji_name; + PengajuanSempro::create($data_sempro); + + Storage::disk('public')->put($request->nim.'/'.$bukti_hadir_sempro_name, file_get_contents($bukti_hadir_sempro)); + Storage::disk('public')->put($request->nim.'/'.$bukti_turnitin_name, file_get_contents($bukti_turnitin)); + Storage::disk('public')->put($request->nim.'/'.$bukti_sister_name, file_get_contents($bukti_sister)); + Storage::disk('public')->put($request->nim.'/'.$bukti_lembar_monitoring_name, file_get_contents($bukti_lembar_monitoring)); + Storage::disk('public')->put($request->nim.'/'.$bukti_naskah_dosen_pembimbing_name, file_get_contents($bukti_naskah_dosen_pembimbing)); + Storage::disk('public')->put($request->nim.'/'.$bukti_naskah_dosen_penguji_name, file_get_contents($bukti_naskah_dosen_penguji)); + return redirect()->route('layanan-sempro.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator'); + } + + $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'] = $request->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'] = '-'; + $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_sempro['mahasiswas_id'] = $mahasiswas_id->id; + $data_sempro['nilai_plagiasi'] = $request->nilai_plagiasi; + $data_sempro['bukti_hadir_sempro'] = $bukti_hadir_sempro_name; + $data_sempro['bukti_turnitin'] = $bukti_turnitin_name; + $data_sempro['bukti_sister'] = $bukti_sister_name; + $data_sempro['bukti_lembar_monitoring'] = $bukti_lembar_monitoring_name; + $data_sempro['bukti_naskah_dosen_pembimbing'] = $bukti_naskah_dosen_pembimbing_name; + $data_sempro['bukti_naskah_dosen_penguji'] = $bukti_naskah_dosen_penguji_name; + PengajuanSempro::create($data_sempro); + + Storage::disk('public')->put($request->nim.'/'.$bukti_hadir_sempro_name, file_get_contents($bukti_hadir_sempro)); + Storage::disk('public')->put($request->nim.'/'.$bukti_turnitin_name, file_get_contents($bukti_turnitin)); + Storage::disk('public')->put($request->nim.'/'.$bukti_sister_name, file_get_contents($bukti_sister)); + Storage::disk('public')->put($request->nim.'/'.$bukti_lembar_monitoring_name, file_get_contents($bukti_lembar_monitoring)); + Storage::disk('public')->put($request->nim.'/'.$bukti_naskah_dosen_pembimbing_name, file_get_contents($bukti_naskah_dosen_pembimbing)); + Storage::disk('public')->put($request->nim.'/'.$bukti_naskah_dosen_penguji_name, file_get_contents($bukti_naskah_dosen_penguji)); + return redirect()->route('layanan-sempro.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator'); + } + return redirect()->route('layanan-sempro.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan'); + // $path = $request->nim.'/'.$file_transkrip_name; +} + +//done +public function destroy(Request $request){ + $id = $request->id; + //cari data dan kirim notif sebelum dihapus + $data = PengajuanSempro::where('pengajuan_sempros.id',$id) + ->join('mahasiswas','mahasiswas_id','=','mahasiswas.id') + ->first(); + //data yang akan dikirim untuk dihapus + $data_job = [ + 'jenis' => 'penolakan', + 'nama' => $data->nama, + 'email' => $data->email, + 'created_at' => $data->created_at, + 'alasan' => $request->alasan, + ]; + //lokasi file + $path = [ + 'bukti_hadir_sempro' => $data->nim."/".$data->bukti_hadir_sempro, + 'bukti_turnitin' => $data->nim."/".$data->bukti_turnitin, + 'bukti_sister' => $data->nim."/".$data->bukti_sister, + 'bukti_lembar_monitoring' => $data->nim."/".$data->bukti_lembar_monitoring, + 'bukti_naskah_dosen_pembimbing' => $data->nim."/".$data->bukti_naskah_dosen_pembimbing, + 'bukti_naskah_dosen_penguji' => $data->nim."/".$data->bukti_naskah_dosen_penguji, + ]; + + //delete file + foreach($path as $item){ + try { + Storage::disk('public')->delete($item); + } + catch(Exception $e){ + $text['error'] = $e->getMessage(); + dispatch(new kirimNotifikasiErrorJob($text)); + exit; + } + } + + //delete data mahasiswa + try { + $dataDelete = PengajuanSempro::findOrFail($id); + $dataDelete->delete(); + //kirim notif ke mahasiswa bahwa ditolak + dispatch(new layananSeminarProposalJob($data_job)); + + }catch(Exception $e){ + //kirim notif error jika terjadi error + $text['error'] = $e->getMessage(); + dispatch(new kirimNotifikasiErrorJob($text)); + + return redirect()->route('layanan-sempro.index')->with('error','Error : '.$text['error']); + } + return redirect()->route('layanan-sempro.index')->with('success','Permintaan Sudah Diproses, Email akan segera dikirim ke penerima'); + +} + +//done +public function terima(Request $request){ + $id = $request->id; + $countcaseid = PengajuanSempro::where('ttd_operator','!=','-')->count(); + $caseid = "LP".date_format(date_create(),"ym").$countcaseid+1; + + $cekData = PengajuanSempro::where('caseid',$caseid)->first(); + $data = PengajuanSempro::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-sempro.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, + ], + ]; + foreach($data_job as $item){ + dispatch(new layananSeminarProposalJob($item)); + } + return redirect()->route('layanan-sempro.index')->with('success','Data Berhasil Disimpan, Email Akan Dikirimkan ke Mahasiswa, DPU dan DPA'); + } +} + +//done +public function ettd($caseid){ + $data = PengajuanSempro::where('caseid', $caseid) + ->select( + 'pengajuan_sempros.*', + 'mahasiswas.nama', + 'mahasiswas.nim', + 'mahasiswas.judul_seminar_proposal', + 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', + ) + ->join('mahasiswas','pengajuan_sempros.mahasiswas_id','=','mahasiswas.id') + ->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id') + ->first(); + //jika data tidak null, maka render ini + if(!is_null($data)){ + $jenis = 'Dosen Pembimbing Utama'; + return view('layanan-sempro.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']); +} + +//done +public function submitettd($caseid, Request $request){ + $data = PengajuanSempro::where('caseid','=',$caseid)->first(); + //jika data ada, maka diproses + if(!is_null($data)){ + //cek ttd jika ttd sudah pernah diisi maka dikembalikan error + if($data->ttd_dpu!='-'){ + return redirect()->route('layanan-sempro.ettd',['caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_dpu]); + } + $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(); + $data_job =[ + 'jenis' => 'mahasiswa selesai', + 'id' => $data->id, + ]; + dispatch(new layananSeminarProposalJob($data_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-sempro.ettd',['caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']); + } + } +} + +//done +public function cetak($caseid){ + $data = PengajuanSempro::where('caseid', $caseid) + ->select( + 'pengajuan_sempros.*', + 'mahasiswas.nama', + 'bagians.nama_bagian', + 'mahasiswas.nim', + 'mahasiswas.judul_seminar_proposal', + 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', + 'dosen_dpu.nip as dosen_dpu_nip', + ) + ->join('mahasiswas','pengajuan_sempros.mahasiswas_id','=','mahasiswas.id') + ->join('bagians','mahasiswas.bagian','=','bagians.id') + ->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id') + ->first(); + //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 Dosen Pembimbing Utama, File Bisa didownload ketika DPU sudah tanda tangan!'); + } + if(is_null($data)){ + return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with('error','Data Dengan CASEID Tersebut Tidak ada'); + } + + $data = [ + 'title' => 'Cetak Kesediaan', + // 'date' => Carbon::now()->format('d-m-Y'), + 'date' => $data->created_at->format('d-m-Y'), + 'nama_mahasiswa' => $data->nama, + 'nim' => $data->nim, + 'bagian' => $data->nama_bagian, + 'judul_seminar_proposal' => $data->judul_seminar_proposal, + 'nilai_plagiasi' => $data->nilai_plagiasi, + '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)), + ]; + $pdf = Pdf::loadView('layanan-sempro.cetak', $data); + return $pdf->setPaper('a4', 'potrait')->stream($caseid.'-Kesediaan Menjadi Dosen Pembimbing Tugas Akhir'); + + //jika URL tidak diantara ketika itu maka render ini + +} +} diff --git a/app/Http/Controllers/MonitoringController.php b/app/Http/Controllers/MonitoringController.php new file mode 100644 index 0000000..7ae356e --- /dev/null +++ b/app/Http/Controllers/MonitoringController.php @@ -0,0 +1,63 @@ + 'Cari Pengajuan Anda Menggunakan CASEID yang Dikirim Lewat Email']); +} + +public function search(Request $request){ + return redirect()->route('monitoring.caseid',['caseid'=>$request->caseid]); +} + +public function caseid($caseid){ + $cek_caseid = substr($caseid, 0, 2); + if($cek_caseid=="LS"){ + $data = PengajuanDpuDpa::where('caseid', $caseid) + ->select( + 'pengajuan_dpu_dpas.*', + 'mahasiswas.nim', + 'mahasiswas.nama', + 'mahasiswas.judul_seminar_proposal', + 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', + 'dosen_dpa.nama_gelar as dosen_dpa_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') + ->first(); + if($data==null){ + return redirect()->route('monitoring.index')->with('error','CaseID Tidak Ditemukan'); + } + return view('monitoring.dpu_dpa',['title' => 'Monitoring Pengajuan DPU/DPA - '.$caseid,'data' => $data]); + } + elseif($cek_caseid=="LP"){ + $data = PengajuanSempro::where('caseid',$caseid) + ->select( + 'pengajuan_sempros.*', + 'mahasiswas.nim', + 'mahasiswas.nama', + 'mahasiswas.judul_seminar_proposal', + 'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar', + ) + ->join('mahasiswas','mahasiswas_id','=','mahasiswas.id') + ->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id') + ->first(); + if($data==null){ + return redirect()->route('monitoring.index')->with('error','CaseID Tidak Ditemukan'); + } + return view('monitoring.sempro',['title' => 'Monitoring Pengajuan Seminar Proposal - '.$caseid,'data' => $data]); + } + else{ + return redirect()->route('monitoring.index')->with('error','CaseID Tidak Valid'); + } +} + +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index bdb87e0..b4743fc 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -99,7 +99,7 @@ public function userroles_index(){ public function userroles_store(Request $request){ $user_roles = new Role; - $user_roles->nama = $request->role_name; + $user_roles->name = $request->role_name; if($user_roles->save()){ return redirect()->route('users-roles.index')->with('success','Data Telah Berhasil Disimpan'); diff --git a/app/Jobs/kirimNotifikasiErrorJob.php b/app/Jobs/kirimNotifikasiErrorJob.php new file mode 100644 index 0000000..c0d13f5 --- /dev/null +++ b/app/Jobs/kirimNotifikasiErrorJob.php @@ -0,0 +1,34 @@ +data = $data; + } + + /** + * Execute the job. + */ + public function handle(): void + { + $text = $this->data['error']; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } +} diff --git a/app/Jobs/layananPengajuanDpuDpaJob.php b/app/Jobs/layananPengajuanDpuDpaJob.php new file mode 100644 index 0000000..2cec5fd --- /dev/null +++ b/app/Jobs/layananPengajuanDpuDpaJob.php @@ -0,0 +1,94 @@ +data = $data; + } + + /** + * Execute the job. + */ + public function handle(): void + { + if($this->data['jenis']==="penolakan"){ + $text = "BETA\n". + "Penolakan Pengajuan Mahasiswa: ".$this->data['nama']."\n". + "Dengan Email : ".$this->data['email']."\n\n". + "Alasan : ".$this->data['alasan']; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'dpu'){ + $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])->select('mahasiswas.nama','mahasiswas.nim','mahasiswas.judul_seminar_proposal','mahasiswas.dosen_dpu_id','users.nama_gelar','users.email')->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')->join('users','users.id','=','dosen_dpu_id')->first(); + $text = "BETA\n". + "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". + "Kepada DPU : ".$data->nama_gelar."\n\n". + "Alamat Email : ".$data->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'dpa'){ + $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])->select('mahasiswas.nama','mahasiswas.nim','mahasiswas.judul_seminar_proposal','mahasiswas.dosen_dpa_id','users.nama_gelar','users.email')->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')->join('users','users.id','=','dosen_dpa_id')->first(); + $text = "BETA\n". + "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". + "Kepada DPA : ".$data->nama_gelar."\n\n". + "Alamat Email : ".$data->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'kombi'){ + $kombiRole = Role::findByName('Ketua Kombi')->users; + $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])->select('mahasiswas.nama','mahasiswas.nim','mahasiswas.judul_seminar_proposal')->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')->first(); + $text = "BETA\n". + "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". + "Kepada Komisi Bimbingan : ".$kombiRole[0]->nama_gelar."\n\n". + "Alamat Email : ".$kombiRole[0]->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'mahasiswa'){ + $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])->select('mahasiswas.nama','mahasiswas.nim','mahasiswas.judul_seminar_proposal','mahasiswas.email')->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')->first(); + $text = "BETA\n". + "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". + "Kepada Mahasiswa : ".$data->nama."\n\n". + "Alamat Email : ".$data->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'mahasiswa selesai'){ + $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])->select('mahasiswas.nama','mahasiswas.nim','mahasiswas.judul_seminar_proposal','mahasiswas.email')->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')->first(); + $text = "BETA\n". + "Kirim Notifikasi Pengajuan Selesai A/N Mahasiswa: ".$data->nama."\n". + "Kepada Mahasiswa : ".$data->nama."\n\n". + "Alamat Email : ".$data->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + + } +} diff --git a/app/Jobs/layananSeminarProposalJob.php b/app/Jobs/layananSeminarProposalJob.php new file mode 100644 index 0000000..9818999 --- /dev/null +++ b/app/Jobs/layananSeminarProposalJob.php @@ -0,0 +1,105 @@ +data = $data; + } + + /** + * Execute the job. + */ + public function handle(): void + { + if($this->data['jenis']==="penolakan"){ + $text = "BETA\n". + "Penolakan Pengajuan Seminar Proposal Mahasiswa: ".$this->data['nama']."\n". + "Dengan Email : ".$this->data['email']."\n\n". + "Alasan : ".$this->data['alasan']; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'dpu'){ + $data = PengajuanSempro::where('pengajuan_sempros.id',$this->data['id']) + ->select( + 'pengajuan_sempros.caseid', + 'pengajuan_sempros.nilai_plagiasi', + 'mahasiswas.nama', + 'mahasiswas.nim', + 'mahasiswas.email', + 'mahasiswas.judul_seminar_proposal', + 'mahasiswas.dosen_dpu_id',) + ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id') + ->first(); + $text = "BETA - ".$data->caseid."\n". + "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". + "Kepada mahasiswa : ".$data->nama."\n\n". + "Alamat Email : ".$data->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'mahasiswa selesai'){ + $data = PengajuanSempro::where('pengajuan_sempros.id',$this->data['id']) + ->select( + 'pengajuan_sempros.caseid', + 'pengajuan_sempros.nilai_plagiasi', + 'mahasiswas.nama', + 'mahasiswas.nim', + 'mahasiswas.judul_seminar_proposal', + 'mahasiswas.dosen_dpu_id', + 'users.nama_gelar', + 'users.email') + ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id') + ->join('users','users.id','=','dosen_dpu_id') + ->first(); + $text = "BETA - ".$data->caseid."\n". + "Pengajuan Selesai A/N Mahasiswa: ".$data->nama."\n". + "Kepada DPU : ".$data->nama_gelar."\n\n". + "Alamat Email : ".$data->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + elseif($this->data['jenis'] == 'mahasiswa'){ + $data = PengajuanSempro::where('pengajuan_sempros.id',$this->data['id']) + ->select( + 'pengajuan_sempros.caseid', + 'pengajuan_sempros.nilai_plagiasi', + 'mahasiswas.nama', + 'mahasiswas.nim', + 'mahasiswas.judul_seminar_proposal', + 'mahasiswas.dosen_dpu_id', + 'users.nama_gelar', + 'users.email') + ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id') + ->join('users','users.id','=','dosen_dpu_id') + ->first(); + $text = "BETA - ".$data->caseid."\n". + "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". + "Kepada DPU : ".$data->nama_gelar."\n\n". + "Alamat Email : ".$data->email; + Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') + ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) + ->get(); + } + } +} diff --git a/app/Models/SeminarProposal.php b/app/Models/Bagian.php similarity index 80% rename from app/Models/SeminarProposal.php rename to app/Models/Bagian.php index 24c1f9a..fbec3f3 100644 --- a/app/Models/SeminarProposal.php +++ b/app/Models/Bagian.php @@ -5,7 +5,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class SeminarProposal extends Model +class Bagian extends Model { use HasFactory; } diff --git a/app/Models/PengajuanSempro.php b/app/Models/PengajuanSempro.php new file mode 100644 index 0000000..e655aeb --- /dev/null +++ b/app/Models/PengajuanSempro.php @@ -0,0 +1,22 @@ +=7.1 <9.0" + }, + "require-dev": { + "phpunit/phpunit": "^7 | ^8 | ^9", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "DASPRiD\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "https://dasprids.de/", + "role": "Developer" + } + ], + "description": "PHP 7.1 enum implementation", + "keywords": [ + "enum", + "map" + ], + "support": { + "issues": "https://github.com/DASPRiD/Enum/issues", + "source": "https://github.com/DASPRiD/Enum/tree/1.0.5" + }, + "time": "2023-08-25T16:18:39+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v3.0.2", @@ -457,6 +638,68 @@ ], "time": "2022-12-15T16:57:16+00:00" }, + { + "name": "dompdf/dompdf", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/093f2d9739cec57428e39ddadedfd4f3ae862c0f", + "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "masterminds/html5": "^2.0", + "phenx/php-font-lib": ">=0.5.4 <1.0.0", + "phenx/php-svg-lib": ">=0.3.3 <1.0.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ext-json": "*", + "ext-zip": "*", + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "The Dompdf Community", + "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "support": { + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v2.0.4" + }, + "time": "2023-12-12T20:19:39+00:00" + }, { "name": "dragonmantank/cron-expression", "version": "v3.3.3", @@ -1129,6 +1372,64 @@ ], "time": "2023-12-03T19:50:20+00:00" }, + { + "name": "ixudra/curl", + "version": "6.22.1", + "source": { + "type": "git", + "url": "https://github.com/ixudra/curl.git", + "reference": "0b2cc89ed5eb91d617295e7e745f3acd3ab47180" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ixudra/curl/zipball/0b2cc89ed5eb91d617295e7e745f3acd3ab47180", + "reference": "0b2cc89ed5eb91d617295e7e745f3acd3ab47180", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "illuminate/support": ">=4.0", + "php": ">=5.4.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Ixudra\\Curl\\CurlServiceProvider" + ], + "aliases": { + "Curl": "Ixudra\\Curl\\Facades\\Curl" + } + } + }, + "autoload": { + "psr-4": { + "Ixudra\\Curl\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Oris", + "email": "jan.oris@ixudra.be" + } + ], + "description": "Custom PHP Curl library for the Laravel framework - developed by Ixudra", + "homepage": "http://ixudra.be", + "keywords": [ + "Ixudra", + "curl", + "laravel" + ], + "support": { + "issues": "https://github.com/ixudra/curl/issues", + "source": "https://github.com/ixudra/curl/tree/6.22.1" + }, + "time": "2022-07-31T09:58:52+00:00" + }, { "name": "laravel/framework", "version": "v10.43.0", @@ -1977,6 +2278,73 @@ ], "time": "2024-01-28T23:22:08+00:00" }, + { + "name": "masterminds/html5", + "version": "2.8.1", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + }, + "time": "2023-05-10T11:58:31+00:00" + }, { "name": "maximebf/debugbar", "version": "v1.20.2", @@ -2543,6 +2911,96 @@ ], "time": "2023-02-08T01:06:31+00:00" }, + { + "name": "phenx/php-font-lib", + "version": "0.5.6", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-font-lib.git", + "reference": "a1681e9793040740a405ac5b189275059e2a9863" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a1681e9793040740a405ac5b189275059e2a9863", + "reference": "a1681e9793040740a405ac5b189275059e2a9863", + "shasum": "" + }, + "require": { + "ext-mbstring": "*" + }, + "require-dev": { + "symfony/phpunit-bridge": "^3 || ^4 || ^5 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "support": { + "issues": "https://github.com/dompdf/php-font-lib/issues", + "source": "https://github.com/dompdf/php-font-lib/tree/0.5.6" + }, + "time": "2024-01-29T14:45:26+00:00" + }, + { + "name": "phenx/php-svg-lib", + "version": "0.5.2", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-svg-lib.git", + "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa", + "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1 || ^8.0", + "sabberworm/php-css-parser": "^8.4" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "support": { + "issues": "https://github.com/dompdf/php-svg-lib/issues", + "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.2" + }, + "time": "2024-02-07T12:49:40+00:00" + }, { "name": "phpoption/phpoption", "version": "1.9.2", @@ -3334,6 +3792,139 @@ ], "time": "2023-11-08T05:53:05+00:00" }, + { + "name": "sabberworm/php-css-parser", + "version": "v8.5.1", + "source": { + "type": "git", + "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", + "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/4a3d572b0f8b28bb6fd016ae8bbfc445facef152", + "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=5.6.20" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.27" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "9.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Sabberworm\\CSS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + }, + { + "name": "Oliver Klee", + "email": "github@oliverklee.de" + }, + { + "name": "Jake Hotson", + "email": "jake.github@qzdesign.co.uk" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.5.1" + }, + "time": "2024-02-15T16:41:13+00:00" + }, + { + "name": "simplesoftwareio/simple-qrcode", + "version": "4.2.0", + "source": { + "type": "git", + "url": "https://github.com/SimpleSoftwareIO/simple-qrcode.git", + "reference": "916db7948ca6772d54bb617259c768c9cdc8d537" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/SimpleSoftwareIO/simple-qrcode/zipball/916db7948ca6772d54bb617259c768c9cdc8d537", + "reference": "916db7948ca6772d54bb617259c768c9cdc8d537", + "shasum": "" + }, + "require": { + "bacon/bacon-qr-code": "^2.0", + "ext-gd": "*", + "php": ">=7.2|^8.0" + }, + "require-dev": { + "mockery/mockery": "~1", + "phpunit/phpunit": "~9" + }, + "suggest": { + "ext-imagick": "Allows the generation of PNG QrCodes.", + "illuminate/support": "Allows for use within Laravel." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider" + ], + "aliases": { + "QrCode": "SimpleSoftwareIO\\QrCode\\Facades\\QrCode" + } + } + }, + "autoload": { + "psr-4": { + "SimpleSoftwareIO\\QrCode\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Simple Software LLC", + "email": "support@simplesoftware.io" + } + ], + "description": "Simple QrCode is a QR code generator made for Laravel.", + "homepage": "https://www.simplesoftware.io/#/docs/simple-qrcode", + "keywords": [ + "Simple", + "generator", + "laravel", + "qrcode", + "wrapper" + ], + "support": { + "issues": "https://github.com/SimpleSoftwareIO/simple-qrcode/issues", + "source": "https://github.com/SimpleSoftwareIO/simple-qrcode/tree/4.2.0" + }, + "time": "2021-02-08T20:43:55+00:00" + }, { "name": "spatie/laravel-permission", "version": "6.4.0", @@ -8385,5 +8976,5 @@ "php": "^8.1" }, "platform-dev": [], - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.2.0" } diff --git a/config/app.php b/config/app.php index be60792..477f1df 100644 --- a/config/app.php +++ b/config/app.php @@ -70,7 +70,7 @@ | */ - 'timezone' => 'UTC', + 'timezone' => 'Asia/Jakarta', /* |-------------------------------------------------------------------------- diff --git a/database/migrations/2024_01_31_051431_create_seminar_proposals_table.php b/database/migrations/2024_01_31_051431_create_seminar_proposals_table.php deleted file mode 100644 index 093f834..0000000 --- a/database/migrations/2024_01_31_051431_create_seminar_proposals_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->foreignId('mahasiswas_id')->constrained(); - $table->string('ttd_operator'); - $table->string('ttd_dpu'); - $table->string('ttd_dpa'); - $table->string('ttd_kombi'); - $table->string('bukti_transkrip_nilai'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('seminar_proposals'); - } -}; diff --git a/database/migrations/2024_03_07_194146_create_pengajuan_sempros_table.php b/database/migrations/2024_03_07_194146_create_pengajuan_sempros_table.php new file mode 100644 index 0000000..9b90ecb --- /dev/null +++ b/database/migrations/2024_03_07_194146_create_pengajuan_sempros_table.php @@ -0,0 +1,38 @@ +id(); + $table->string('caseid')->default('-'); + $table->foreignId('mahasiswas_id')->constrained(); + $table->string('ttd_operator')->default('-'); + $table->string('ttd_dpu')->default('-'); + $table->integer('nilai_plagiasi'); + $table->string('bukti_hadir_sempro'); + $table->string('bukti_turnitin'); + $table->string('bukti_sister'); + $table->string('bukti_lembar_monitoring'); + $table->string('bukti_naskah_dosen_pembimbing'); + $table->string('bukti_naskah_dosen_penguji'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('pengajuan_sempros'); + } +}; diff --git a/database/seeders/MahasiswaSeeder.php b/database/seeders/MahasiswaSeeder.php new file mode 100644 index 0000000..2f7a59c --- /dev/null +++ b/database/seeders/MahasiswaSeeder.php @@ -0,0 +1,20 @@ +insert([ + // 'name' => Str::random(10), + // 'email' => Str::random(10).'@example.com', + // ]); + } +} diff --git a/database/seeders/UserRoleSeeder.php b/database/seeders/UserRoleSeeder.php index 21bf35b..d0062d0 100644 --- a/database/seeders/UserRoleSeeder.php +++ b/database/seeders/UserRoleSeeder.php @@ -18,8 +18,17 @@ public function run(): void ['name'=> 'Super Administrator'], ['name'=> 'Super Administrator'], ); - ModelsRole::create(['name'=> 'Tenaga Kependidikan']); - ModelsRole::create(['name'=> 'Dosen']); - ModelsRole::create(['name'=> 'Operator Akademik']); + ModelsRole::updateOrCreate( + ['name'=> 'Tenaga Kependidikan'], + ['name'=> 'Tenaga Kependidikan'] + ); + ModelsRole::updateOrCreate( + ['name'=> 'Dosen'], + ['name'=> 'Dosen'] + ); + ModelsRole::updateOrCreate( + ['name'=> 'Operator Akademik'], + ['name'=> 'Operator Akademik'] + ); } } diff --git a/public/dist/img/logo-unej.png b/public/dist/img/logo-unej.png new file mode 100644 index 0000000..3a02187 Binary files /dev/null and b/public/dist/img/logo-unej.png differ diff --git a/resources/views/admin/index.blade.php b/resources/views/admin/index.blade.php index da4cc1e..469c916 100644 --- a/resources/views/admin/index.blade.php +++ b/resources/views/admin/index.blade.php @@ -17,12 +17,12 @@
-

Blank Page

+

Admin Dashboard

@@ -31,32 +31,22 @@
- - -
-
-

Title

- -
- - +
+
+ +
+
+

{{ $layanan_dpudpa }}

+ +

Total Pengajuan DPU/DPA

+
+
+ +
+ More info
-
- Start creating your amazing application! -
- - -
- -
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php new file mode 100644 index 0000000..a0e8512 --- /dev/null +++ b/resources/views/index.blade.php @@ -0,0 +1,30 @@ +@if($errors->any()) +
+ +
+@endif +@if(session('success')) +
+ +
+@endif +@if(session('error')) +
+ +
+@endif + +
+
+
+
+ +

PROGRES

\ No newline at end of file diff --git a/resources/views/layanan-dpudpa/cetak.blade.php b/resources/views/layanan-dpudpa/cetak.blade.php new file mode 100644 index 0000000..659fd52 --- /dev/null +++ b/resources/views/layanan-dpudpa/cetak.blade.php @@ -0,0 +1,248 @@ + + + + {{ $title }} + + + + + + + + + +
LOGOUNEJ +

KEMENTRIAN PENDIDIKAN, KEBUDAYAAN,
+ RISET, DAN TEKNOLOGI

+

UNIVERSITAS JEMBER

+

FAKULTAS FARMASI

+

Jalan Kalimantan I Nomor 2 Kampus Tegal Boto Kotak Pos 159 Jember 68121
+ Telepon/Faximile (0331) 324736
+ Email: farmasi@unej.ac.id

+
+

FORMULIR KESEDIAAN MENJADI DOSEN PEMBIMBING TUGAS AKHIR

+

Kami mahasiswa

+ + + + + + + + + + + + + + + + +
Nama: {{ $nama_mahasiswa }}
NIM: {{ $nim }}
Bagian: {{ $bagian }}
+

Telah menghubungi Calon Dosen Pembimbing dengan penelitian sebagai berikut:

+ + + + + + + + + + + + + + + +
+ Judul/Topik Tugas Akhir + + Dosen Pembimbing + + Tanda Tangan kesediaan +
+ {{ $judul_skripsi }} + + 1. Nama : {{ $dosen_dpu_nama_gelar }}
+ NIP : {{ $dosen_dpu_nip }}
+ Pangkat/Gol/Jab : -
+
+ Sebagai DPU +
+ +
+ 1. Nama : {{ $dosen_dpa_nama_gelar }}
+ NIP : {{ $dosen_dpa_nip }}
+ Pangkat/Gol/Jab : -
+
+ Sebagai DPA +
+ +
+ + + + + + + + + + + + + + + + + + + +
Mengetahui,Jember, {{ $date }}
Ketua Komisi BimbinganMahasiswa Pengusul
+ +
{{ $dosen_kombi_nama_gelar }}{{ $nama_mahasiswa }}
NIP. {{ $dosen_kombi_nip }}NIM. {{ $nim }} +
+ +

+ +

+ SURAT PERNYATAAN
+ KESANGGUPAN MENYELESAIKAN SKRIPSI

+

Yang bertanda tangan dibawah ini

+ + + + + + + + + + + + + + + + + + + + + +
Nama: {{ $nama_mahasiswa }}
NIM: {{ $nim }}
Bagian: {{ $bagian }}
Judul Skripsi: {{ $judul_skripsi }}
+

Bersama ini saya menyatakan bahwa saya sanggup menyelesaikan skripsi selambat-lambatnya selama 4 (empat) semester terhitung sejak pemrograman skripsi melalui SISTER. Saya sanggup menerima sanksi berupa pembatalan program skripsi, sehingga harus pemrograman skripsi kembali, jika tidak dapat menyelesaikan skripsi sesuai dengan batas waktu yang ditetapkan. +

+

Demikian surat pernyataan ini saya buat dengan penuh kesadaran untuk dapat digunakan sebagaimana mestinya.

+ + + + + + + + + + + + + + + + + + + + +
Jember, {{ $date }}
Pembuat Pernyataan
+ + materai 10.000 +
{{ $nama_mahasiswa }}
NIM. {{ $nim }} +
+ + + + + + + + + + + + + + + + + + + + + + +
Mengetahui
Tim Pembimbing
Dosen Pembimbing UtamaDosen Pembimbing Anggota
+ + + +
{{ $dosen_dpu_nama_gelar }}{{ $dosen_dpa_nama_gelar }}
NIP. {{ $dosen_dpu_nip }}NIP. {{ $dosen_dpu_nip }} +
+ + \ No newline at end of file diff --git a/resources/views/layanan-dpudpa/ettd.blade.php b/resources/views/layanan-dpudpa/ettd.blade.php new file mode 100644 index 0000000..33b62fa --- /dev/null +++ b/resources/views/layanan-dpudpa/ettd.blade.php @@ -0,0 +1,171 @@ + + + + + + {{ $title }} + + + + + +
+
+
+
+

{{ $title }} {{$jenis}}

+
+
+
+ + @if($jenis!="Komisi Bimbingan") +
+
+
+
+

{{$data->caseid}}

+
{{$jenis}}
+
+ +
+ @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif +
+ @csrf + + + + + + + + + + +
+ +
+
+
+ +
+
+
+ @elseif($jenis=="Komisi Bimbingan") +
+
+
+
+

{{$data['caseid']}}

+
{{$jenis}}
+
+ +
+ @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif +
+ @csrf + + + + + + + + + + +
+ +
+
+
+ +
+
+
+ @endif +
+ + +@include('layout.navbars.footer') + + + + + + + + + + + + diff --git a/resources/views/layanan-dpudpa/index.blade.php b/resources/views/layanan-dpudpa/index.blade.php index d0e9afe..79bdabe 100644 --- a/resources/views/layanan-dpudpa/index.blade.php +++ b/resources/views/layanan-dpudpa/index.blade.php @@ -38,11 +38,35 @@
Perhatian!
CaseID Akan muncul ketika pengajuan telah diterima untuk menghindari data duplikat untuk mahasiswa yang sama. + @if ($errors->any()) +
+ +
+ @endif + @if(session('success')) +
+ +
+ @endif + @if(session('error')) +
+ +
+ @endif + @@ -53,10 +77,18 @@ + - + + + + + + + + +
CaseID NIMNama Mahasiswa DPU DPA Action
{{ $datas->caseid }} {{ $datas->nim }} {{ $datas->nama }} {{ $datas->dpu_nama_gelar }} {{ $datas->dpa_nama_gelar }} | | + + @if($datas->ttd_operator=="-") + | | + + @endif +
+ + + + +
LOGOUNEJ +

KEMENTRIAN PENDIDIKAN, KEBUDAYAAN,
+ RISET, DAN TEKNOLOGI

+

UNIVERSITAS JEMBER

+

FAKULTAS FARMASI

+

Jalan Kalimantan I Nomor 2 Kampus Tegal Boto Kotak Pos 159 Jember 68121
+ Telepon/Faximile (0331) 324736
+ Email: farmasi@unej.ac.id

+
+

SURAT PERNYATAAN BEBAS PLAGIASI PROPOSAL

+

Saya Selaku Dosen Pembimbing Utama mahasiswa sebagai tersebut di bawah ini :

+ + + + + + + + + + + + + + + + + + + + + +
Nama: {{$nama_mahasiswa}}
NIM: {{$nim}}
Judul Skripsi:{{$judul_seminar_proposal}}
Similarity: {{$nilai_plagiasi}} %
+

Menyatakan bahwa skripsi dengan judul tersebut diatas bebas plagiasi berdasarkan penelurusan menggunakan program Turnitin dengan tingkat similarity 25% untuk satu referensi dan maksimal 30%.

+

Demikian untuk diketahui dan dipergunakan sebagaimana mestinya.

+ + + + + + + + + + + + + + + + + + + + +
Jember, {{ $date }}
Pembuat Pernyataan
+ + + +
{{ $dosen_dpu_nama_gelar }}
NIP. {{ $dosen_dpu_nip }} +
+ +{{--

--}} + + \ No newline at end of file diff --git a/resources/views/layanan-sempro/ettd.blade.php b/resources/views/layanan-sempro/ettd.blade.php new file mode 100644 index 0000000..c058f8a --- /dev/null +++ b/resources/views/layanan-sempro/ettd.blade.php @@ -0,0 +1,102 @@ + + + + + + {{ $title }} {{$jenis}} + + + + + +
+
+
+
+

{{ $title }} {{$jenis}}

+
+
+
+ +
+
+
+
+

{{$data->caseid}}

+
{{$jenis}}
+
+ +
+ @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif +
+ @csrf + + + + + + + + + + +
+ +
+
+
+ +
+
+
+
+ + +@include('layout.navbars.footer') + + + + + + + + + + + + diff --git a/resources/views/layanan-sempro/index.blade.php b/resources/views/layanan-sempro/index.blade.php new file mode 100644 index 0000000..478f5c0 --- /dev/null +++ b/resources/views/layanan-sempro/index.blade.php @@ -0,0 +1,256 @@ + +@extends('layout.app') + +@push('css') + + + + +@endpush + +@section('content') + +@include('layout.navbars.sidebar') +
+ +
+
+
+
+

Pengajuan Seminar Proposal

+
+
+ +
+
+
+
+ +
+
+ +
+
+ +
Perhatian!
+ CaseID Akan muncul ketika pengajuan telah diterima untuk menghindari data duplikat untuk mahasiswa yang sama. +
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error ) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif + + + + + + + + + + + + @foreach ($data as $datas) + + + + + + + + + + + + @endforeach + + + + + + + + + + +
CaseIDNIMNamaDPUAction
{{ $datas->caseid }}{{ $datas->nim }} {{ $datas->nama }} {{ $datas->dpu_nama_gelar }} + | + @if($datas->ttd_operator=="-") + | + + @endif +
CaseIDNIMDPUDPAAction
+
+ +
+ +
+ +
+@endsection + + +@push('js') + + + + + + + + + + + + + + + +@endpush + diff --git a/resources/views/layanan-sempro/tambah.blade.php b/resources/views/layanan-sempro/tambah.blade.php new file mode 100644 index 0000000..dcd30dd --- /dev/null +++ b/resources/views/layanan-sempro/tambah.blade.php @@ -0,0 +1,227 @@ + +@extends('layout.app_guest',['title' => 'Pengajuan Seminar Proposal']) +@section('content') + + +
+
+ +
+
+

Pengajuan Seminar Proposal

+
+ +
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error ) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif +
+ +
Perhatian!
+ Pernah Menggunakan Layanan PINTU Untuk Pengajuan ? Coba Gunakan Fitur Cari. Klik Disini +
+
+ @csrf + @if(isset($data_mahasiswa)) + + +
+
+ + + + + + + + + + +
+ +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+ +
+ +
+
+ + +
+
+ @else + +
+
+ + + + + + + + + + +
+ +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+ +
+ +
+
+ + +
+
+ @endif + +
+
+
+ + +
+ +
+
+
+ + +
+ +
+ +
+ +
+
+ + + + + + + + + + + + + + +
+
+
+
+ +
+
+
+
+
+ +
+ +
+ + +@endsection diff --git a/resources/views/layout/app_guest.blade.php b/resources/views/layout/app_guest.blade.php index 2e10407..9322d4a 100644 --- a/resources/views/layout/app_guest.blade.php +++ b/resources/views/layout/app_guest.blade.php @@ -53,6 +53,7 @@ diff --git a/resources/views/layout/navbars/footer.blade.php b/resources/views/layout/navbars/footer.blade.php index f785347..9d19e30 100644 --- a/resources/views/layout/navbars/footer.blade.php +++ b/resources/views/layout/navbars/footer.blade.php @@ -3,5 +3,5 @@
Version 3.2.0
- Copyright © 2014-2021 AdminLTE.io. All rights reserved. + Copyright © 2014-2021 AdminLTE.io | tes. All rights reserved. diff --git a/resources/views/layout/navbars/sidebar.blade.php b/resources/views/layout/navbars/sidebar.blade.php index 46031d8..80a8a7c 100644 --- a/resources/views/layout/navbars/sidebar.blade.php +++ b/resources/views/layout/navbars/sidebar.blade.php @@ -53,6 +53,14 @@

+ @role('Super Administrator') - - diff --git a/resources/views/monitoring/dpu_dpa.blade.php b/resources/views/monitoring/dpu_dpa.blade.php new file mode 100644 index 0000000..d89df8b --- /dev/null +++ b/resources/views/monitoring/dpu_dpa.blade.php @@ -0,0 +1,101 @@ + + + + + + {{ $title }} + + + + + +
+
+
+
+

{{ $title }}

+
+
+
+ +
+
+
+
+
Monitoring
+

{{$data->caseid}}

+
+ +
+ @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif + + ttd_dpu }} @else Belum TTD @endif"> + + ttd_dpa }} @else Belum TTD @endif"> + + ttd_kombi }} @else Belum TTD @endif"> + + +
+ + Klik Disini Untuk Cetak PDF +
+ +
+ +
+
+
+
+ + +@include('layout.navbars.footer') + + + + + + + + + + + + diff --git a/resources/views/monitoring/index.blade.php b/resources/views/monitoring/index.blade.php new file mode 100644 index 0000000..f10edc4 --- /dev/null +++ b/resources/views/monitoring/index.blade.php @@ -0,0 +1,54 @@ + +@extends('layout.app_guest',['title' => 'Monitoring']) +@section('content') + + +
+
+ +
+
+

{{ $title }}

+
+ +
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error ) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif +
+ @csrf + + +
+ +
+
+
+
+ +
+ +
+ + +@endsection diff --git a/resources/views/monitoring/sempro.blade.php b/resources/views/monitoring/sempro.blade.php new file mode 100644 index 0000000..48c33a1 --- /dev/null +++ b/resources/views/monitoring/sempro.blade.php @@ -0,0 +1,95 @@ + + + + + + {{ $title }} + + + + + +
+
+
+
+

{{ $title }}

+
+
+
+ +
+
+
+
+
Monitoring
+

{{$data->caseid}}

+
+ +
+ @if(session('success')) +
+
    +
  • {{ session('success') }}
  • +
+
+ @endif + @if(session('error')) +
+
    +
  • {{ session('error') }}
  • +
+
+ @endif + + ttd_dpu }} @else Belum TTD @endif"> + + +
+ + Klik Disini Untuk Cetak PDF +
+ +
+ +
+
+
+
+ + +@include('layout.navbars.footer') + + + + + + + + + + + + diff --git a/routes/web.php b/routes/web.php index 9f51ce1..d635695 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6,7 +6,9 @@ use App\Http\Controllers\AdminController; use App\Http\Controllers\UserController; use App\Http\Controllers\LayananPengajuanDpuDpaController; +use App\Http\Controllers\LayananSeminarProposal; use App\Http\Controllers\MahasiswaController; +use App\Http\Controllers\MonitoringController; use App\Http\Controllers\SesiLoginController; /* @@ -20,39 +22,65 @@ | */ -Route::get('/layanan-dpudpa/tambah', [LayananPengajuanDpuDpaController::class, 'tambah'])->name('layanan-dpudpa.tambah'); -Route::post('/layanan-dpudpa/tambah', [LayananPengajuanDpuDpaController::class, 'store'])->name('layanan-dpudpa.store'); - - Route::middleware(['guest'])->group(function () { route::get('/admin/login',[SesiLoginController::class, 'login'])->name('login'); - route::post('/admin/login',[SesiLoginController::class, 'ceklogin'])->name('admin.ceklogin'); - - + route::post('/admin/login',[SesiLoginController::class, 'ceklogin'])->name('admin.ceklogin'); }); +route::get('/', function(){ + return view('index'); +})->name('laman-awal'); + Route::get('/home', function(){ return redirect('/admin'); }); -Route::middleware(['auth'])->group( function () { - Route::get('/admin', [AdminController::class, 'index'])->name('admin.dashboard'); - Route::get('/admin/logout', [SesiLoginController::class, 'logout'])->name('admin.logout'); - Route::get('/admin/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'index'])->name('layanan-dpudpa.index'); +Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () { + Route::get('/', [AdminController::class, 'index'])->name('admin.dashboard'); + Route::get('/logout', [SesiLoginController::class, 'logout'])->name('admin.logout'); + //layanan Pengajuan DPU DPA + Route::get('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'index'])->name('layanan-dpudpa.index'); + Route::DELETE('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'destroy'])->name('layanan-dpudpa.destroy'); + Route::POST('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'terima'])->name('layanan-dpudpa.terima'); + //layanan Pengajuan Seminar Proposal + Route::get('/layanan-sempro', [LayananSeminarProposal::class, 'index'])->name('layanan-sempro.index'); + Route::DELETE('/layanan-sempro', [LayananSeminarProposal::class, 'destroy'])->name('layanan-sempro.destroy'); + Route::POST('/layanan-sempro', [LayananSeminarProposal::class, 'terima'])->name('layanan-sempro.terima'); + //User - Route::get('/admin/users', [UserController::class, 'index'])->name('users.index'); - Route::POST('/admin/users', [UserController::class, 'store'])->name('users.store'); - Route::PUT('/admin/users', [UserController::class, 'update'])->name('users.update'); - Route::DELETE('/admin/users', [UserController::class, 'destroy'])->name('users.destroy'); + Route::get('/users', [UserController::class, 'index'])->name('users.index'); + Route::POST('/users', [UserController::class, 'store'])->name('users.store'); + Route::PUT('/users', [UserController::class, 'update'])->name('users.update'); + Route::DELETE('/users', [UserController::class, 'destroy'])->name('users.destroy'); //Mahasiswa - Route::get('/admin/mahasiswa', [MahasiswaController::class, 'index'])->name('mahasiswa.index'); - Route::POST('/admin/mahasiswa', [MahasiswaController::class, 'store'])->name('mahasiswa.store'); - Route::PUT('/admin/mahasiswa', [MahasiswaController::class, 'update'])->name('mahasiswa.update'); - Route::DELETE('/admin/mahasiswa', [MahasiswaController::class, 'destroy'])->name('mahasiswa.destroy'); + Route::get('/mahasiswa', [MahasiswaController::class, 'index'])->name('mahasiswa.index'); + Route::POST('/mahasiswa', [MahasiswaController::class, 'store'])->name('mahasiswa.store'); + Route::PUT('/mahasiswa', [MahasiswaController::class, 'update'])->name('mahasiswa.update'); + Route::DELETE('/mahasiswa', [MahasiswaController::class, 'destroy'])->name('mahasiswa.destroy'); //User Roles - Route::get('/admin/users-roles', [UserController::class, 'userroles_index'])->name('users-roles.index'); - Route::POST('/admin/users-roles', [UserController::class, 'userroles_store'])->name('users-roles.store'); - Route::POST('/admin/users-roles/assign', [UserController::class, 'userroles_assign'])->name('users-roles.assign'); + Route::get('/users-roles', [UserController::class, 'userroles_index'])->name('users-roles.index'); + Route::POST('/users-roles', [UserController::class, 'userroles_store'])->name('users-roles.store'); + Route::POST('/users-roles/assign', [UserController::class, 'userroles_assign'])->name('users-roles.assign'); }); +//Layanan Pengajuan DPU/DPA +Route::get('/layanan-dpudpa/cari', [LayananPengajuanDpuDpaController::class, 'cari'])->name('layanan-dpudpa.cari'); +Route::post('/layanan-dpudpa/cari', [LayananPengajuanDpuDpaController::class, 'search'])->name('layanan-dpudpa.search'); +Route::get('/layanan-dpudpa/tambah', [LayananPengajuanDpuDpaController::class, 'tambah'])->name('layanan-dpudpa.tambah'); +Route::post('/layanan-dpudpa/tambah', [LayananPengajuanDpuDpaController::class, 'store'])->name('layanan-dpudpa.store'); +Route::get('/layanan-dpudpa/cetak/{caseid}', [LayananPengajuanDpuDpaController::class, 'cetak'])->name('layanan-dpudpa.cetak'); +Route::get('/layanan-dpudpa/{url}/{caseid}', [LayananPengajuanDpuDpaController::class, 'ettd'])->name('layanan-dpudpa.ettd'); +Route::POST('/layanan-dpudpa/{url}/{caseid}', [LayananPengajuanDpuDpaController::class, 'submitettd'])->name('layanan-dpudpa.submitettd'); +//Layanan Pengajuan Sempro +Route::get('/layanan-sempro/cari', [LayananSeminarProposal::class, 'cari'])->name('layanan-sempro.cari'); +Route::post('/layanan-sempro/cari', [LayananSeminarProposal::class, 'search'])->name('layanan-sempro.search'); +Route::get('/layanan-sempro/tambah', [LayananSeminarProposal::class, 'tambah'])->name('layanan-sempro.tambah'); +Route::post('/layanan-sempro/tambah', [LayananSeminarProposal::class, 'store'])->name('layanan-sempro.store'); +Route::get('/layanan-sempro/cetak/{caseid}', [LayananSeminarProposal::class, 'cetak'])->name('layanan-sempro.cetak'); +Route::get('/layanan-sempro/dpu/{caseid}', [LayananSeminarProposal::class, 'ettd'])->name('layanan-sempro.ettd'); +Route::POST('/layanan-sempro/dpu/{caseid}', [LayananSeminarProposal::class, 'submitettd'])->name('layanan-sempro.submitettd'); + +Route::get('/monitoring', [MonitoringController::class, 'index'])->name('monitoring.index'); +Route::post('/monitoring', [MonitoringController::class, 'search'])->name('monitoring.search'); +Route::get('/monitoring/{caseid}', [MonitoringController::class, 'caseid'])->name('monitoring.caseid'); \ No newline at end of file