development #3

Merged
efbe merged 4 commits from development into master 2024-03-15 18:41:02 +07:00
37 changed files with 3339 additions and 140 deletions

View File

@ -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]);
}

View File

@ -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,12 +108,11 @@ 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',
]);
$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))){
//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;
@ -67,8 +122,7 @@ public function store(Request $request){
$data_mhs['bagian'] = $request->bagian;
$data_mhs['dosen_dpu_id'] = $request->dosen_dpu;
$data_mhs['dosen_dpa_id'] = $request->dosen_dpa;
//set default to -
//set default to 0
$data_mhs['dosen_penguji1_id'] = 1;
$data_mhs['dosen_penguji2_id'] = 1;
$data_mhs['judul_skripsi_id'] = '-';
@ -76,8 +130,12 @@ public function store(Request $request){
$data_mhs['judul_jurnal'] = '-';
$data_mhs['judul_artikel'] = '-';
if(Mahasiswa::create($data_mhs)){
//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 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;
@ -86,7 +144,221 @@ public function store(Request $request){
}
return redirect()->route('layanan-dpudpa.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan');
}
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));
}
}
}

View File

@ -0,0 +1,369 @@
<?php
namespace App\Http\Controllers;
use App\Jobs\kirimNotifikasiErrorJob;
use App\Jobs\layananSeminarProposalJob;
use App\Models\Bagian;
use App\Models\Mahasiswa;
use App\Models\PengajuanSempro;
use App\Models\User;
use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use SimpleSoftwareIO\QrCode\Facades\QrCode;
class LayananSeminarProposal extends Controller
{
public function index(){
$data = PengajuanSempro::
select('pengajuan_sempros.*',
'mahasiswas.nim as nim',
'mahasiswas.nama as nama',
'dosen_dpu.nama_gelar as dpu_nama_gelar',
'dosen_dpa.nama_gelar as 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')
->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
}
}

View File

@ -0,0 +1,63 @@
<?php
namespace App\Http\Controllers;
use App\Models\PengajuanDpuDpa;
use App\Models\PengajuanSempro;
use Illuminate\Http\Request;
class MonitoringController extends Controller
{
public function index(){
return view('monitoring.index',['title' => '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');
}
}
}

View File

@ -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');

View File

@ -0,0 +1,34 @@
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Ixudra\Curl\Facades\Curl;
class kirimNotifikasiErrorJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->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();
}
}

View File

@ -0,0 +1,94 @@
<?php
namespace App\Jobs;
use App\Models\PengajuanDpuDpa;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Ixudra\Curl\Facades\Curl;
use Spatie\Permission\Models\Role;
class layananPengajuanDpuDpaJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->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();
}
}
}

View File

@ -0,0 +1,105 @@
<?php
namespace App\Jobs;
use App\Models\PengajuanSempro;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Ixudra\Curl\Facades\Curl;
class layananSeminarProposalJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->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();
}
}
}

View File

@ -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;
}

View File

@ -0,0 +1,22 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PengajuanSempro extends Model
{
use HasFactory;
protected $fillable = [
'mahasiswas_id',
'nilai_plagiasi',
'bukti_hadir_sempro',
'bukti_turnitin',
'bukti_sister',
'bukti_lembar_monitoring',
'bukti_naskah_dosen_pembimbing',
'bukti_naskah_dosen_penguji',
];
}

View File

@ -7,10 +7,13 @@
"require": {
"php": "^8.1",
"barryvdh/laravel-debugbar": "^3.10",
"barryvdh/laravel-dompdf": "^2.0",
"guzzlehttp/guzzle": "^7.2",
"ixudra/curl": "^6.22",
"laravel/framework": "^10.10",
"laravel/sanctum": "^3.3",
"laravel/tinker": "^2.8",
"simplesoftwareio/simple-qrcode": "^4.2",
"spatie/laravel-permission": "^6.4"
},
"require-dev": {

595
composer.lock generated
View File

@ -4,8 +4,62 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "8ea36d387a8498c6177a03aae1a59e91",
"content-hash": "abcc97396294b57200718bb94f348eef",
"packages": [
{
"name": "bacon/bacon-qr-code",
"version": "2.0.8",
"source": {
"type": "git",
"url": "https://github.com/Bacon/BaconQrCode.git",
"reference": "8674e51bb65af933a5ffaf1c308a660387c35c22"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22",
"reference": "8674e51bb65af933a5ffaf1c308a660387c35c22",
"shasum": ""
},
"require": {
"dasprid/enum": "^1.0.3",
"ext-iconv": "*",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"phly/keep-a-changelog": "^2.1",
"phpunit/phpunit": "^7 | ^8 | ^9",
"spatie/phpunit-snapshot-assertions": "^4.2.9",
"squizlabs/php_codesniffer": "^3.4"
},
"suggest": {
"ext-imagick": "to generate QR code images"
},
"type": "library",
"autoload": {
"psr-4": {
"BaconQrCode\\": "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": "BaconQrCode is a QR code generator for PHP.",
"homepage": "https://github.com/Bacon/BaconQrCode",
"support": {
"issues": "https://github.com/Bacon/BaconQrCode/issues",
"source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8"
},
"time": "2022-12-07T17:46:57+00:00"
},
{
"name": "barryvdh/laravel-debugbar",
"version": "v3.10.5",
@ -90,6 +144,83 @@
],
"time": "2024-02-15T10:45:45+00:00"
},
{
"name": "barryvdh/laravel-dompdf",
"version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-dompdf.git",
"reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/9843d2be423670fb434f4c978b3c0f4dd92c87a6",
"reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6",
"shasum": ""
},
"require": {
"dompdf/dompdf": "^2.0.1",
"illuminate/support": "^6|^7|^8|^9|^10",
"php": "^7.2 || ^8.0"
},
"require-dev": {
"nunomaduro/larastan": "^1|^2",
"orchestra/testbench": "^4|^5|^6|^7|^8",
"phpro/grumphp": "^1",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
},
"laravel": {
"providers": [
"Barryvdh\\DomPDF\\ServiceProvider"
],
"aliases": {
"Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf",
"PDF": "Barryvdh\\DomPDF\\Facade\\Pdf"
}
}
},
"autoload": {
"psr-4": {
"Barryvdh\\DomPDF\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Barry vd. Heuvel",
"email": "barryvdh@gmail.com"
}
],
"description": "A DOMPDF Wrapper for Laravel",
"keywords": [
"dompdf",
"laravel",
"pdf"
],
"support": {
"issues": "https://github.com/barryvdh/laravel-dompdf/issues",
"source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.0.1"
},
"funding": [
{
"url": "https://fruitcake.nl",
"type": "custom"
},
{
"url": "https://github.com/barryvdh",
"type": "github"
}
],
"time": "2023-01-12T15:12:49+00:00"
},
{
"name": "brick/math",
"version": "0.11.0",
@ -214,6 +345,56 @@
],
"time": "2023-12-11T17:09:12+00:00"
},
{
"name": "dasprid/enum",
"version": "1.0.5",
"source": {
"type": "git",
"url": "https://github.com/DASPRiD/Enum.git",
"reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016",
"reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016",
"shasum": ""
},
"require": {
"php": ">=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"
}

View File

@ -70,7 +70,7 @@
|
*/
'timezone' => 'UTC',
'timezone' => 'Asia/Jakarta',
/*
|--------------------------------------------------------------------------

View File

@ -1,33 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('seminar_proposals', function (Blueprint $table) {
$table->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');
}
};

View File

@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('pengajuan_sempros', function (Blueprint $table) {
$table->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');
}
};

View File

@ -0,0 +1,20 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class MahasiswaSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// DB::table('mahasiswas')->insert([
// 'name' => Str::random(10),
// 'email' => Str::random(10).'@example.com',
// ]);
}
}

View File

@ -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']
);
}
}

BIN
public/dist/img/logo-unej.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

View File

@ -17,12 +17,12 @@
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>Blank Page</h1>
<h1>Admin Dashboard</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active">Blank Page</li>
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</div>
</div>
@ -31,32 +31,22 @@
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-lg-3 col-6">
<!-- small box -->
<div class="small-box bg-info">
<div class="inner">
<h3>{{ $layanan_dpudpa }}</h3>
<!-- Default box -->
<div class="card">
<div class="card-header">
<h3 class="card-title">Title</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
<p>Total Pengajuan DPU/DPA</p>
</div>
<div class="icon">
<i class="ion ion-bag"></i>
</div>
<a href="{{route('layanan-dpudpa.index')}}" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<div class="card-body">
Start creating your amazing application!
</div>
<!-- /.card-body -->
<div class="card-footer">
.
</div>
<!-- /.card-footer-->
</div>
<!-- /.card -->
</section>
<!-- /.content -->
</div>

View File

@ -0,0 +1,30 @@
@if($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<br>
<br>
<br>
<br>
<h1>PROGRES</h1>

View File

@ -0,0 +1,248 @@
<html lang="id">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>{{ $title }}</title>
<meta name="author" content="PINTU FARMASI"/>
<style type="text/css">
@page {
margin-top: 180px;
margin-left: 75px;
margin-right: 60px;
}
*{
font-size: 12pt;
}
#table-header{
width: 100%;
position: fixed;
/* right: px; */
top: -150px;
border-bottom: 3px solid #000;
}
#table-header td{
text-align: center;
font-family: 'Times New Roman', Times, Arial;
font-size: 14pt;
}
#table-header td p{
margin: 0;
}
.table-judul{
border:1.5px solid;
vertical-align:inherit;
text-align:center;
}
.table-konten{
border:1.5px solid;
padding:0.5em;
vertical-align:inherit;
text-align:left;
}
.kolom-ttd{
border:1.5px solid;
padding:0;
vertical-align:inherit;
text-align:center;
}
/* p {
color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 12pt; margin:0pt;
}
h1 {
color: black; font-family:"Times New Roman",
serif;
font-style: normal;
font-weight: bold;
text-decoration: none;
font-size: 12pt;
}
.s1 { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 12pt; }
.s2 { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 12pt; }
table, tbody {vertical-align: top; overflow: visible; } */
</style>
</head>
<body>
<table border="0" id="table-header">
<tr>
<td><img src="{{ asset('/') }}dist/img/logo-unej.png" alt="LOGOUNEJ" width="125px"></td>
<td>
<p>KEMENTRIAN PENDIDIKAN, KEBUDAYAAN,<br/>
RISET, DAN TEKNOLOGI</p>
<p style="font-size:16pt; font-weight:bold;">UNIVERSITAS JEMBER</p>
<p style="font-weight:bold;">FAKULTAS FARMASI</p>
<p style="font-size:10pt;">Jalan Kalimantan I Nomor 2 Kampus Tegal Boto Kotak Pos 159 Jember 68121<br/>
Telepon/Faximile (0331) 324736 <br/>
Email: farmasi@unej.ac.id</p>
</td>
</tr>
</table>
<h4 style="text-align: center;">FORMULIR KESEDIAAN MENJADI DOSEN PEMBIMBING TUGAS AKHIR</h4>
<p style="margin-bottom: 0;">Kami mahasiswa</p>
<table border="0" style="margin-top:5px; padding-left:1em;">
<tr>
<td style="max-width: 2em;"> Nama</td>
<td style="max-width: 0.5em;">:</td>
<td style="max-width: 35em; text-align:left; margin:0; padding:0;"> {{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td> NIM</td>
<td>:</td>
<td style="max-width: 35em; text-align:left; margin:0; padding:0;"> {{ $nim }}</td>
</tr>
<tr>
<td> Bagian</td>
<td>:</td>
<td style="max-width: 35em; text-align:left; margin:0; padding:0;"> {{ $bagian }}</td>
</tr>
</table>
<p style="margin-top: 10px;">Telah menghubungi Calon Dosen Pembimbing dengan penelitian sebagai berikut:</p>
<table style="" cellspacing="0">
<tr style="height:1em">
<td class="table-judul" width="40%">
Judul/Topik Tugas Akhir
</td>
<td class="table-judul" width="40%">
Dosen Pembimbing
</td>
<td class="table-judul" width="20%">
Tanda Tangan kesediaan
</td>
</tr>
<tr style="height:114pt">
<td class="table-konten" rowspan="2">
{{ $judul_skripsi }}
</td>
<td class="table-konten" >
1. Nama : {{ $dosen_dpu_nama_gelar }}<br>
NIP : {{ $dosen_dpu_nip }}<br>
Pangkat/Gol/Jab : -<br>
<br>
<strong>Sebagai DPU</strong>
</td>
<td class="kolom-ttd">
<img src="data:image/png;base64, {!! $dosen_dpu_qrcode !!}" alt="">
</td>
</tr>
<tr>
<td class="table-konten">
1. Nama : {{ $dosen_dpa_nama_gelar }}<br>
NIP : {{ $dosen_dpa_nip }}<br>
Pangkat/Gol/Jab : -<br>
<br>
<strong>Sebagai DPA</strong>
</td>
<td class="kolom-ttd">
<img src="data:image/png;base64, {!! $dosen_dpa_qrcode !!}" alt="">
</td>
</tr>
</table>
<table border="0" style="padding-top:7em; padding-right:5em" cellspacing="0">
<tr>
<td width="400px">Mengetahui,</td>
<td>Jember, {{ $date }}</td>
</tr>
<tr>
<td style="text-align: left">Ketua Komisi Bimbingan</td>
<td style="text-align: left">Mahasiswa Pengusul</td>
</tr>
<tr>
<td style="height:120px; text-align: left; vertical-align:bottom;">
<img src="data:image/png;base64, {!! $dosen_kombi_qrcode !!}" alt="">
</td>
</tr>
<tr>
<td style="text-align: left;">{{ $dosen_kombi_nama_gelar }}</td>
<td style="text-align: left;">{{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td style="text-align: left">NIP. {{ $dosen_kombi_nip }}</td>
<td style="text-align: left">NIM. {{ $nim }}<td>
</tr>
</table>
<p style="page-break-after: always;"></p>
<h4 style="text-align: center;">
SURAT PERNYATAAN<br/>
KESANGGUPAN MENYELESAIKAN SKRIPSI</h4>
<p style="margin-bottom: 0;">Yang bertanda tangan dibawah ini</p>
<table border="0" style="margin-top:5px; padding-left:1em;">
<tr>
<td style="width: 7em;"> Nama</td>
<td style="max-width: 0.5em;">:</td>
<td> {{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td> NIM</td>
<td>:</td>
<td> {{ $nim }}</td>
</tr>
<tr>
<td> Bagian</td>
<td>:</td>
<td > {{ $bagian }}</td>
</tr>
<tr>
<td style="vertical-align: text-top;"> Judul Skripsi</td>
<td style="vertical-align: text-top;">:</td>
<td rowspan="2" style="vertical-align: text-top;"> {{ $judul_skripsi }}</td>
</tr>
</table>
<p style="margin-top: 10px; text-align:justify;">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.
</p>
<p style="margin-top: 10px; text-align:justify;">Demikian surat pernyataan ini saya buat dengan penuh kesadaran untuk dapat digunakan sebagaimana mestinya.</p>
<table border="0" style="padding-top:1em;" cellspacing="0">
<tr>
<td width="400px"></td>
<td>Jember, {{ $date }}</td>
</tr>
<tr>
<td style="text-align: left"></td>
<td style="text-align: left">Pembuat Pernyataan</td>
</tr>
<tr>
<td style="height:100px; text-align: left; vertical-align:bottom;">
</td>
<td style="font-size: 8pt; vertical-align:inherit">
materai 10.000
</td>
</tr>
<tr>
<td style="text-align: left;"></td>
<td style="text-align: left;">{{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td style="text-align: left"></td>
<td style="text-align: left">NIM. {{ $nim }}<td>
</tr>
</table>
<table border="0" style="padding-top:2em;" cellspacing="0">
<tr>
<td colspan="2" style="text-align: center">Mengetahui</td>
</tr>
<tr>
<td colspan="2" style="text-align: center">Tim Pembimbing</td>
</tr>
<tr>
<td width="400px" style="text-align: left">Dosen Pembimbing Utama</td>
<td style="text-align: left">Dosen Pembimbing Anggota</td>
</tr>
<tr>
<td style="height:100px; text-align: left; vertical-align:bottom;">
<img src="data:image/png;base64, {!! $dosen_dpu_qrcode !!}" alt="">
</td>
<td style="height:120px; text-align: left; vertical-align:bottom;">
<img src="data:image/png;base64, {!! $dosen_dpa_qrcode !!}" alt="">
</td>
</tr>
<tr>
<td style="text-align: left;">{{ $dosen_dpu_nama_gelar }}</td>
<td style="text-align: left;">{{ $dosen_dpa_nama_gelar }}</td>
</tr>
<tr>
<td style="text-align: left">NIP. {{ $dosen_dpu_nip }}</td>
<td style="text-align: left">NIP. {{ $dosen_dpu_nip }}<td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $title }}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<link rel="stylesheet" href="{{asset('/')}}plugins/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="{{asset('/')}}dist/css/adminlte.min.css?v=3.2.0">
<body class="hold-transition layout-top-nav">
<div class="content-wrapper">
<div class="content-header">
<div class="container">
<div class="text-center">
<h1 class="m-0"> {{ $title }} {{$jenis}}</h1>
</div>
</div>
</div>
@if($jenis!="Komisi Bimbingan")
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h3 class="widget-user-username text-right">{{$data->caseid}}</h3>
<h5 class="widget-user-desc text-right">{{$jenis}}</h5>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data->caseid}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data->nama}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Tanda Tangan Oleh</h5>
<span class="description-text">@if(request('url')=="dpu") {{ $data->dosen_dpu_nama_gelar }} @elseif(request('url')=="dpa") {{ $data->dosen_dpa_nama_gelar }}@endif</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('layanan-dpudpa.submitettd',['url'=> request('url'), 'caseid'=>$data->caseid]) }}" method="post">
@csrf
<label for="caseid">CASEID :</label>
<input type="text" name="caseid" id="caseid" class="form-control" readonly value="{{ $data->caseid}}">
<label for="nama">Nama Mahasiswa :</label>
<input type="text" name="nama" id="nama" class="form-control" readonly value="{{ $data->nama}}">
<label for="nim">NIM Mahasiswa :</label>
<input type="text" name="nim" id="nim" class="form-control" readonly value="{{ $data->nim}}">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data->judul_seminar_proposal}}">
<label for="ettd">Masukkan E-TTD {{ $jenis }} :
</label><input type="text" name="ettd" id="ettd" class="form-control" placeholder="Masukkan ETTD Anda Disini...">
<div class="float-right mt-4">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
@elseif($jenis=="Komisi Bimbingan")
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h3 class="widget-user-username text-right">{{$data['caseid']}}</h3>
<h5 class="widget-user-desc text-right">{{$jenis}}</h5>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data['caseid']}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data['nama']}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Tanda Tangan Oleh</h5>
<span class="description-text">{{$data['dosen_kombi_nama_gelar']}}</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('layanan-dpudpa.submitettd',['url'=> request('url'), 'caseid'=>$data['caseid']]) }}" method="post">
@csrf
<label for="caseid">CASEID :</label>
<input type="text" name="caseid" id="caseid" class="form-control" readonly value="{{ $data['caseid']}}">
<label for="nama">Nama Mahasiswa :</label>
<input type="text" name="nama" id="nama" class="form-control" readonly value="{{ $data['nama']}}">
<label for="nim">NIM Mahasiswa :</label>
<input type="text" name="nim" id="nim" class="form-control" readonly value="{{ $data['nim']}}">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data['judul_seminar_proposal']}}">
<label for="ettd">Masukkan E-TTD {{ $jenis }} :
</label><input type="text" name="ettd" id="ettd" class="form-control" placeholder="Masukkan ETTD Anda Disini...">
<div class="float-right mt-4">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
@endif
</div>
@include('layout.navbars.footer')
</div>
<script src="{{asset('/')}}plugins/jquery/jquery.min.js"></script>
<script src="{{asset('/')}}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="{{asset('/')}}dist/js/adminlte.min.js?v=3.2.0"></script>
</body>
</html>

View File

@ -38,11 +38,35 @@
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >CaseID Akan muncul ketika pengajuan telah diterima untuk menghindari data duplikat untuk mahasiswa yang sama.</span>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>Nama Mahasiswa</th>
<th>DPU</th>
<th>DPA</th>
<th>Action</th>
@ -53,10 +77,18 @@
<tr>
<td>{{ $datas->caseid }}</td>
<td>{{ $datas->nim }} </td>
<td>{{ $datas->nama }} </td>
<td>{{ $datas->dpu_nama_gelar }}</td>
<td>{{ $datas->dpa_nama_gelar }}</td>
<td><button class="btn btn-primary" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Details</button> | <button class="btn btn-success">Terima</button> | <button class="btn btn-danger">Tolak</button></td>
<td class="text-center">
<button class="btn btn-primary" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Details</button>
@if($datas->ttd_operator=="-")
| <button class="btn btn-success" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Terima</button> |
<button class="btn btn-danger" data-toggle="modal" data-target="#LYDelete{{ $datas->id }}" >Tolak</button>
@endif
</td>
</tr>
<!-- Modal Detail dan Terima -->
<div class="modal fade" id="LY{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
@ -79,13 +111,67 @@
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpa_nama_gelar }}">
<label for="dosen_kombi">Kombi: </label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->ttd_kombi === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_kombi }}">
<label for="file_transkrip">Lihat File Transkrip:</label>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_transkrip_nilai }}" target="_blank"><input type="text" class="form-control form-control-border" readonly value="Klik Disini"></a>
</div>
</div>
<div class="row mt-3">
<div class="col">
<label for="file_transkrip">Lihat File Transkrip<br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_transkrip_nilai }}" target="_blank" class="btn btn-primary">Klik Disini</a>
</div>
<div class="col">
<label for="file_transkrip">Cetak Surat Pernyataan<br>
<a href="{{ route('layanan-dpudpa.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a>
</div>
</div>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<span>{{$datas->caseid}}</span>
@if($datas->ttd_operator=="-")
<form action="{{ route('layanan-dpudpa.terima')}}" method="post">
@csrf
<input type="hidden" name="id" value="{{$datas->id}}">
<button type="submit" class="btn btn-success">Terima</button>
</form>
@endif
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal-Delete -->
<div class="modal fade" id="LYDelete{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Apa Anda Yakin Ingin Menghapus Data : <b>{{ $datas->caseid }}</b></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >Alasan yang Dimasukkan Disini, Akan dikirimkan melalui Email Kepada Mahasiswa Terkait.</span>
</div>
<form action="{{ route('layanan-dpudpa.destroy') }}" method="post">
@csrf @method('DELETE')
<div class="row">
<div class="col">
<label for="alasan">Alasan:</label>
<textarea name="alasan" class="form-control" id="alasan" cols="30" rows="10"
placeholder="Masukkan Alasan Disini
Masukkan Alasan Disini"></textarea>
<input type="hidden" name="id" value="{{$datas->id}}">
</div>
</div>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Batal</button>
<button type="submit" class="btn btn-danger">Kirim</button>
</form>
</div>
</div>

View File

@ -35,6 +35,11 @@
</ul>
</div>
@endif
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >Pernah Menggunakan Layanan PINTU Untuk Pengajuan ? Coba Gunakan Fitur Cari. </span><a href="{{ route('layanan-dpudpa.cari') }}" class="btn btn-success btn-sm">Klik Disini</a>
</div>
<form action="{{ route('layanan-dpudpa.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="row">
@ -50,14 +55,9 @@
<label for="bagian">Bagian Lab:</label>
<select class="form-control select2" style="width: 100%;" id="bagian" name="bagian">
<option selected>Pilih Laboratorium</option>
<option value="1">Farmasi Klinik Dan Komunitas</option>
<option value="2">Farmakologi Dan Hewan Coba</option>
<option value="3">Farmakognosi dan Fitokimia</option>
<option value="4">Mikrobiologi dan Bioteknologi Farmasi</option>
<option value="5">Farmasetika</option>
<option value="6">Teknologi Farmasi</option>
<option value="7">Kimia Analisis</option>
<option value="8">Kimia Medisinal</option>
@foreach($bagian as $item)
<option value="{{$item->id}}">{{$item->nama_bagian}}</option>
@endforeach
</select>
</div>

View File

@ -0,0 +1,67 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => 'Pengajuan Seminar Proposal'])
@section('content')
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
<div class="card-header">
<h3 class="card-title">Pengajuan Seminar Proposal</h3>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('layanan-sempro.search') }}" method="post">
@csrf
<label for="nim">NIM Mahasiswa :</label>
<input type="text" name="nim" id="nim" class="form-control" placeholder="Masukkan NIM Anda">
<div class="float-right mt-4">
<button type="submit" class="btn btn-success">Cari</button>
</div>
</form>
</div>
</div>
<!-- /.card -->
</div>
<!-- /.container-fluid -->
</section>
<!-- /.content -->
@endsection

View File

@ -0,0 +1,135 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="id" lang="id">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>{{ $title }}</title>
<meta name="author" content="PINTU FARMASI"/>
<style type="text/css">
@page {
margin-top: 180px;
margin-left: 75px;
margin-right: 60px;
}
*{
font-size: 12pt;
}
#table-header{
width: 100%;
position: fixed;
/* right: px; */
top: -150px;
border-bottom: 3px solid #000;
}
#table-header td{
text-align: center;
font-family: 'Times New Roman', Times, Arial;
font-size: 14pt;
}
#table-header td p{
margin: 0;
}
.table-judul{
border:1.5px solid;
vertical-align:inherit;
text-align:center;
}
.table-konten{
border:1.5px solid;
padding:0.5em;
vertical-align:inherit;
text-align:left;
}
.kolom-ttd{
border:1.5px solid;
padding:0;
vertical-align:inherit;
text-align:center;
}
/* p {
color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 12pt; margin:0pt;
}
h1 {
color: black; font-family:"Times New Roman",
serif;
font-style: normal;
font-weight: bold;
text-decoration: none;
font-size: 12pt;
}
.s1 { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 12pt; }
.s2 { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 12pt; }
table, tbody {vertical-align: top; overflow: visible; } */
</style>
</head>
<body>
<table border="0" id="table-header">
<tr>
<td><img src="{{ asset('dist/img/logo-unej.png') }}" alt="LOGOUNEJ" width="125px"></td>
<td>
<p>KEMENTRIAN PENDIDIKAN, KEBUDAYAAN,<br/>
RISET, DAN TEKNOLOGI</p>
<p style="font-size:16pt; font-weight:bold;">UNIVERSITAS JEMBER</p>
<p style="font-weight:bold;">FAKULTAS FARMASI</p>
<p style="font-size:10pt;">Jalan Kalimantan I Nomor 2 Kampus Tegal Boto Kotak Pos 159 Jember 68121<br/>
Telepon/Faximile (0331) 324736 <br/>
Email: farmasi@unej.ac.id</p>
</td>
</tr>
</table>
<h4 style="text-align: center;">SURAT PERNYATAAN BEBAS PLAGIASI PROPOSAL</h4>
<p style="margin-bottom: 0;">Saya Selaku Dosen Pembimbing Utama mahasiswa sebagai tersebut di bawah ini :</p>
<table border="0" style="margin-top:5px; padding-left:1em;">
<tr>
<td style="width: 6em;"> Nama</td>
<td style="max-width: 0.5em;">:</td>
<td style=" text-align:left; margin:0; padding:0;"> {{$nama_mahasiswa}}</td>
</tr>
<tr>
<td> NIM</td>
<td>:</td>
<td style="text-align:left; margin:0; padding:0;"> {{$nim}}</td>
</tr>
<tr>
<td style="vertical-align: text-top;"> Judul Skripsi</td>
<td style="vertical-align: text-top;">:</td>
<td style="text-align:left; margin:0; padding:0; vertical-align: text-top;">{{$judul_seminar_proposal}}</td>
</tr>
<tr>
<td> Similarity</td>
<td>:</td>
<td style="text-align:left; margin:0; padding:0;"> {{$nilai_plagiasi}} %</td>
</tr>
</table>
<p style="margin-top: 10px;">Menyatakan bahwa skripsi dengan judul tersebut diatas bebas plagiasi berdasarkan penelurusan menggunakan program Turnitin dengan tingkat similarity <span style="font-family: DejaVu Sans, sans-serif; font-size 12pt;">&le; </span>25% untuk satu referensi dan maksimal 30%.</p>
<p style="margin-top: 10px; text-align:justify;">Demikian untuk diketahui dan dipergunakan sebagaimana mestinya.</p>
<table border="0" style="padding-top:10em;" cellspacing="0">
<tr>
<td width="400px"></td>
<td>Jember, {{ $date }}</td>
</tr>
<tr>
<td style="text-align: left"></td>
<td style="text-align: left">Pembuat Pernyataan</td>
</tr>
<tr>
<td style="height:100px; text-align: left; vertical-align:bottom;">
</td>
<td style="height:100px; text-align: left; vertical-align:bottom;">
<img src="data:image/png;base64, {!! $dosen_dpu_qrcode !!}" alt="">
</td>
</tr>
<tr>
<td style="text-align: left;"></td>
<td style="text-align: left;">{{ $dosen_dpu_nama_gelar }}</td>
</tr>
<tr>
<td style="text-align: left"></td>
<td style="text-align: left">NIP. {{ $dosen_dpu_nip }}<td>
</tr>
</table>
{{-- <p style="page-break-after: always;"></p> --}}
</body>
</html>

View File

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $title }} {{$jenis}}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<link rel="stylesheet" href="{{asset('/')}}plugins/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="{{asset('/')}}dist/css/adminlte.min.css?v=3.2.0">
<body class="hold-transition layout-top-nav">
<div class="content-wrapper">
<div class="content-header">
<div class="container">
<div class="text-center">
<h1 class="m-0"> {{ $title }} {{$jenis}}</h1>
</div>
</div>
</div>
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h3 class="widget-user-username text-right">{{$data->caseid}}</h3>
<h5 class="widget-user-desc text-right">{{$jenis}}</h5>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data->caseid}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data->nama}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Tanda Tangan Oleh</h5>
<span class="description-text">{{ $data->dosen_dpu_nama_gelar }}</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('layanan-sempro.submitettd',[ 'caseid'=>$data->caseid]) }}" method="post">
@csrf
<label for="caseid">CASEID :</label>
<input type="text" name="caseid" id="caseid" class="form-control" readonly value="{{ $data->caseid}}">
<label for="nama">Nama Mahasiswa :</label>
<input type="text" name="nama" id="nama" class="form-control" readonly value="{{ $data->nama}}">
<label for="nim">NIM Mahasiswa :</label>
<input type="text" name="nim" id="nim" class="form-control" readonly value="{{ $data->nim}}">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data->judul_seminar_proposal}}">
<label for="ettd">Masukkan E-TTD {{ $jenis }} :
</label><input type="text" name="ettd" id="ettd" class="form-control" placeholder="Masukkan ETTD Anda Disini...">
<div class="float-right mt-4">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@include('layout.navbars.footer')
</div>
<script src="{{asset('/')}}plugins/jquery/jquery.min.js"></script>
<script src="{{asset('/')}}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="{{asset('/')}}dist/js/adminlte.min.js?v=3.2.0"></script>
</body>
</html>

View File

@ -0,0 +1,256 @@
<!-- Extend Layout -->
@extends('layout.app')
<!-- Add Custom CSS -->
@push('css')
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-bs4/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-responsive/css/responsive.bootstrap4.min.css">
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-buttons/css/buttons.bootstrap4.min.css">
@endpush
<!-- Add Content Here -->
@section('content')
<!-- Include Sidebar -->
@include('layout.navbars.sidebar')
<div class="content-wrapper">
<!-- Main content -->
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>Pengajuan Seminar Proposal</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">Admin</a></li>
<li class="breadcrumb-item active">Pengajuan Seminar Proposal</li>
</ol>
</div>
</div>
</div><!-- /.container-fluid -->
</section>
<section class="content">
<div class="card">
<!-- /.card-header -->
<div class="card-body">
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >CaseID Akan muncul ketika pengajuan telah diterima untuk menghindari data duplikat untuk mahasiswa yang sama.</span>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>Nama</th>
<th>DPU</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($data as $datas)
<tr>
<td>{{ $datas->caseid }}</td>
<td>{{ $datas->nim }} </td>
<td>{{ $datas->nama }} </td>
<td>{{ $datas->dpu_nama_gelar }}</td>
<td class="text-center">
<button class="btn btn-primary" data-toggle="modal" data-target="#MD{{ $datas->id }}" >Details</button> |
@if($datas->ttd_operator=="-")
<button class="btn btn-success" data-toggle="modal" data-target="#MD{{ $datas->id }}" >Terima</button> |
<button class="btn btn-danger" data-toggle="modal" data-target="#MDDelete{{ $datas->id }}" >Tolak</button>
@endif
</td>
</tr>
<!-- Modal Detail dan Terima -->
<div class="modal fade" id="MD{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Details Data <b>{{ $datas->caseid }}</b></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col">
<label for="nim">NIM:</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->nim }}">
<label for="nama">Nama Mahasiswa:</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->nama }}">
<label for="dosen_dpu">Dosen DPU: {{ $datas->ttd_dpu === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_dpu }}</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpa_nama_gelar }}">
</div>
</div>
<div class="row">
<div class="col">
<label for="file_transkrip">Lihat Bukti Screenshot Kehadiran Seminar Proposal :</label><br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_hadir_sempro }}" target="_blank" class="btn btn-info">Klik Disini</a>
</div>
<div class="col">
<label for="file_transkrip">Lihat Bukti Cek TurnitIn :</label><br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_turnitin }}" target="_blank" class="btn btn-info">Klik Disini</a>
</div>
</div>
<div class="row">
<div class="col">
<label for="file_transkrip">Lihat Bukti Screenshot Sister :</label><br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_sister }}" target="_blank" class="btn btn-info">Klik Disini</a>
</div>
<div class="col">
<label for="file_transkrip">Lihat Bukti Lembar Monitoring :</label><br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_lembar_monitoring }}" target="_blank" class="btn btn-info">Klik Disini</a>
</div>
</div>
<div class="row">
<div class="col">
<label for="file_transkrip">Lihat Bukti Pengiriman Naskah Ke Dosen Pembimbing :</label><br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_naskah_dosen_pembimbing }}" target="_blank" class="btn btn-info">Klik Disini</a>
</div>
<div class="col">
<label for="file_transkrip">Lihat Bukti Pengiriman Naskah Ke Dosen Penguji :</label><br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_naskah_dosen_penguji }}" target="_blank" class="btn btn-info">Klik Disini</a>
</div>
</div>
<div class="row">
<div class="col">
<label for="file_transkrip">Cetak Surat Pernyataan<br>
<a href="{{ route('layanan-sempro.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a>
</div>
</div>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<span>{{$datas->caseid}}</span>
@if($datas->ttd_operator=="-")
<form action="{{ route('layanan-sempro.terima')}}" method="post">
@csrf
<input type="hidden" name="id" value="{{$datas->id}}">
<button type="submit" class="btn btn-success">Terima</button>
</form>
@endif
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal-Delete -->
<div class="modal fade" id="MDDelete{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Apa Anda Yakin Ingin Menghapus Data : <b>{{ $datas->caseid }}</b></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >Alasan yang Dimasukkan Disini, Akan dikirimkan melalui Email Kepada Mahasiswa Terkait.</span>
</div>
<form action="{{ route('layanan-sempro.destroy') }}" method="post">
@csrf @method('DELETE')
<div class="row">
<div class="col">
<label for="alasan">Alasan:</label>
<textarea name="alasan" class="form-control" id="alasan" cols="30" rows="10"
placeholder="Masukkan Alasan Disini
Masukkan Alasan Disini"></textarea>
<input type="hidden" name="id" value="{{$datas->id}}">
</div>
</div>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Batal</button>
<button type="submit" class="btn btn-danger">Kirim</button>
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@endforeach
</tbody>
<tfoot>
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>DPU</th>
<th>DPA</th>
<th>Action</th>
</tr>
</tfoot>
</table>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</section>
<!-- /.content -->
</div>
@endsection
<!-- Add Custom JS -->
@push('js')
<!-- DataTables & Plugins -->
<script src="{{asset('/')}}plugins/datatables/jquery.dataTables.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-bs4/js/dataTables.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-responsive/js/dataTables.responsive.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-responsive/js/responsive.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/dataTables.buttons.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/jszip/jszip.min.js"></script>
<script src="{{asset('/')}}plugins/pdfmake/pdfmake.min.js"></script>
<script src="{{asset('/')}}plugins/pdfmake/vfs_fonts.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.html5.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.print.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
<script>
$(function () {
$("#example1").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
"buttons": [{
// New button configuration
text: 'Tambah Data', // Replace with your desired button text
action: function ( e, dt, node, config ) {
// Perform your custom action here, e.g., open a new tab with the external link
window.open("{{ route('layanan-sempro.tambah')}}", '_blank');
}
},"csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');
});
</script>
@endpush

View File

@ -0,0 +1,227 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => 'Pengajuan Seminar Proposal'])
@section('content')
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
<div class="card-header">
<h3 class="card-title">Pengajuan Seminar Proposal</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >Pernah Menggunakan Layanan PINTU Untuk Pengajuan ? Coba Gunakan Fitur Cari. </span><a href="{{ route('layanan-sempro.cari') }}" class="btn btn-success btn-sm">Klik Disini</a>
</div>
<form action="{{ route('layanan-sempro.store') }}" method="post" enctype="multipart/form-data">
@csrf
@if(isset($data_mahasiswa))
<input type="hidden" name="status" value="ada">
<!-- DATA MHS -->
<div class="row">
<div class="col">
<label for="nim">NIM Mahasiswa</label>
<input type="text" name="nim" id="nim" class="form-control" placeholder="Masukkan NIM Mahasiswa" value="{{$data_mahasiswa->nim}}" required readonly>
<label for="nama">Nama Mahasiswa</label>
<input type="text" name="nama" id="nama" class="form-control" placeholder="Masukkan Nama Mahasiswa" value="{{$data_mahasiswa->nama}}" required readonly>
<label for="nomor_hp">Nomor Handphone Mahasiswa (WhatsApp)</label>
<input type="text" name="nomor_hp" id="nomor_hp" class="form-control" placeholder="Masukkan Nomor Handphone Mahasiswa (WhatsApp)" value="{{$data_mahasiswa->nomor_hp}}" required readonly>
<label for="email">Email Mahasiswa</label>
<input type="text" name="email" id="email" class="form-control" placeholder="Masukkan Email Mahasiswa" value="{{$data_mahasiswa->email}}" required readonly>
<label for="bagian">Bagian Lab: </label>
<select class="form-control select2" style="width: 100%;" id="bagian" name="bagian" readonly>
<option>Pilih Laboratorium</option>
@foreach($bagian as $item)
<option value="{{$item->id}}" {{ $data_mahasiswa->bagian === strval($item->id) ? 'selected' : '' }}>{{$item->nama_bagian}}</option>
@endforeach
</select>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<div class="form-group">
<label for="dosen_dpu">Dosen Pembimbing Utama</label>
<select class="form-control select2" style="width: 100%;" id="dosen_dpu" name="dosen_dpu" readonly>
<option selected>Pilih Dosen Pembimbing Utama</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ $data_mahasiswa->dosen_dpu_id === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<div class="col">
<div class="form-group">
<label for="dosen_dpa">Dosen Pembimbing Anggota</label>
<select class="form-control select2" style="width: 100%;" id="dosen_dpa" name="dosen_dpa" readonly>
<option>Pilih Dosen Pembimbing Anggota</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ $data_mahasiswa->dosen_dpa_id === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<label for="judul_seminar_proposal">Judul Skripsi / Tugas Akhir</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" placeholder="Masukkan Judul Skripsi / Tugas Akhir yang Diajukan" value="{{$data_mahasiswa->judul_seminar_proposal}}" required readonly>
</div>
</div>
@else
<!-- DATA MHS -->
<div class="row">
<div class="col">
<label for="nim">NIM Mahasiswa</label>
<input type="text" name="nim" id="nim" class="form-control" placeholder="Masukkan NIM Mahasiswa" value="{{old('nim')}}" required>
<label for="nama">Nama Mahasiswa</label>
<input type="text" name="nama" id="nama" class="form-control" placeholder="Masukkan Nama Mahasiswa" value="{{old('nama')}}" required>
<label for="nomor_hp">Nomor Handphone Mahasiswa (WhatsApp)</label>
<input type="text" name="nomor_hp" id="nomor_hp" class="form-control" placeholder="Masukkan Nomor Handphone Mahasiswa (WhatsApp)" value="{{old('nomor_hp')}}" required>
<label for="email">Email Mahasiswa</label>
<input type="text" name="email" id="email" class="form-control" placeholder="Masukkan Email Mahasiswa" value="{{old('email')}}" required>
<label for="bagian">Bagian Lab:</label>
<select class="form-control select2" style="width: 100%;" id="bagian" name="bagian">
<option selected>Pilih Laboratorium</option>
<option value="1">Farmasi Klinik Dan Komunitas</option>
<option value="2">Farmakologi Dan Hewan Coba</option>
<option value="3">Farmakognosi dan Fitokimia</option>
<option value="4">Mikrobiologi dan Bioteknologi Farmasi</option>
<option value="5">Farmasetika</option>
<option value="6">Teknologi Farmasi</option>
<option value="7">Kimia Analisis</option>
<option value="8">Kimia Medisinal</option>
</select>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<div class="form-group">
<label for="dosen_dpu">Dosen Pembimbing Utama</label>
<select class="form-control select2" style="width: 100%;" id="dosen_dpu" name="dosen_dpu">
<option selected>Pilih Dosen Pembimbing Utama</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ old('dosen_dpu') === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<div class="col">
<div class="form-group">
<label for="dosen_dpa">Dosen Pembimbing Anggota</label>
<select class="form-control select2" style="width: 100%;" id="dosen_dpa" name="dosen_dpa">
<option>Pilih Dosen Pembimbing Anggota</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ old('dosen_dpa') === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<label for="judul_seminar_proposal">Judul Skripsi / Tugas Akhir</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" placeholder="Masukkan Judul Skripsi / Tugas Akhir yang Diajukan" value="{{old('judul_seminar_proposal')}}" required>
</div>
</div>
@endif
<div class="row">
<div class="col">
<div class="form-group">
<label for="dosen_penguji1">Dosen Penguji Utama</label>
<select class="form-control select2" style="width: 100%;" id="dosen_penguji1" name="dosen_penguji1">
<option selected>Pilih Dosen Penguji Utama</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ old('dosen_penguji1') === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<div class="col">
<div class="form-group">
<label for="dosen_penguji2">Dosen Penguji Anggota</label>
<select class="form-control select2" style="width: 100%;" id="dosen_penguji2" name="dosen_penguji2">
<option>Pilih Dosen Penguji Anggota</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ old('dosen_penguji2') === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<label for="nilai_plagiasi">Nilai Plagiasi / Similarity Sempro</label>
<input type="number" class="form-control" name="nilai_plagiasi" placeholder="Masukkan Nilai Plagiasi / Similarity Sempro" required>
<label for="bukti_hadir_sempro">Bukti Screenshot Kehadiran Seminar Proposal (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="bukti_hadir_sempro" id="bukti_hadir_sempro" class="form-control" required>
<label for="bukti_turnitin">Bukti Cek TurnitIn (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="bukti_turnitin" id="bukti_turnitin" class="form-control" required>
<label for="bukti_sister">Bukti Screenshot Sister (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="bukti_sister" id="bukti_sister" class="form-control" required>
<label for="bukti_lembar_monitoring">Bukti Lembar Monitoring (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="bukti_lembar_monitoring" id="bukti_lembar_monitoring" class="form-control" required>
<label for="bukti_naskah_dosen_pembimbing">Bukti Pengiriman Naskah Ke Dosen Pembimbing (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="bukti_naskah_dosen_pembimbing" id="bukti_naskah_dosen_pembimbing" class="form-control" required>
<label for="bukti_naskah_dosen_penguji">Bukti Pengiriman Naskah Ke Dosen Penguji (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="bukti_naskah_dosen_penguji" id="bukti_naskah_dosen_penguji" class="form-control" required>
</div>
</div>
<div class="row">
<div class="col py-3">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
</div>
<!-- /.card -->
</div>
<!-- /.container-fluid -->
</section>
<!-- /.content -->
@endsection

View File

@ -53,6 +53,7 @@
<!-- Sidebar Menu -->
<nav class="mt-2">
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
<li class="nav-header">LAYANAN Akademik</li>
<li class="nav-item">
<a href="{{ route('layanan-dpudpa.tambah') }}" class="nav-link {{ Request::is('layanan-dpudpa/tambah') ? 'active' : '' }}">
<i class="nav-icon fas fa-book"></i>
@ -61,6 +62,23 @@
</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('layanan-sempro.tambah') }}" class="nav-link {{ Request::is('layanan-sempro/tambah') ? 'active' : '' }}">
<i class="nav-icon fas fa-book"></i>
<p>
Pengajuan Seminar Proposal
</p>
</a>
</li>
<li class="nav-header">-</li>
<li class="nav-item">
<a href="{{ route('monitoring.index') }}" class="nav-link {{ Request::is('monitoring') ? 'active' : '' }}">
<i class="nav-icon fas fa-search"></i>
<p>
Monitoring
</p>
</a>
</li>
</ul>
</nav>
<!-- /.sidebar-menu -->

View File

@ -3,5 +3,5 @@
<div class="float-right d-none d-sm-block">
<b>Version</b> 3.2.0
</div>
<strong>Copyright &copy; 2014-2021 <a href="https://adminlte.io">AdminLTE.io</a>.</strong> All rights reserved.
<strong>Copyright &copy; 2014-2021 <a href="https://adminlte.io">AdminLTE.io</a> | tes.</strong> All rights reserved.
</footer>

View File

@ -53,6 +53,14 @@
</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('layanan-sempro.index') }}" class="nav-link {{ Request::is('admin/layanan-sempro') ? 'active' : '' }}">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p>
Pengajuan Seminar Proposal
</p>
</a>
</li>
<li class="nav-header">ADMINISTRASI</li>
@role('Super Administrator')
<li class="nav-item">

View File

@ -5,12 +5,6 @@
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="../../index3.html" class="nav-link">Home</a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="#" class="nav-link">Contact</a>
</li>
</ul>
<!-- Right navbar links -->

View File

@ -0,0 +1,101 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $title }}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<link rel="stylesheet" href="{{asset('/')}}plugins/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="{{asset('/')}}dist/css/adminlte.min.css?v=3.2.0">
<body class="hold-transition layout-top-nav">
<div class="content-wrapper">
<div class="content-header">
<div class="container">
<div class="text-center">
<h1 class="m-0"> {{ $title }}</h1>
</div>
</div>
</div>
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h5 class="widget-user-desc text-right">Monitoring</h5>
<h3 class="widget-user-username text-right">{{$data->caseid}}</h3>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data->caseid}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data->nama}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">NIM</h5>
<span class="description-text">{{$data->nim}}</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<label for="dosen_dpu">Status TTD Dosen Pembimbing Utama : {{$data->dosen_dpu_nama_gelar}} </label>
<input type="text" name="dosen_dpu" id="dosen_dpu" class="form-control" readonly
value="@if($data->ttd_dpu!="-")Telah TTD Pada {{ $data->ttd_dpu }} @else Belum TTD @endif">
<label for="dosen_dpa">Status TTD Dosen Pembimbing Akademik : {{$data->dosen_dpa_nama_gelar}}</label>
<input type="text" name="dosen_dpa" id="dosen_dpa" class="form-control" readonly
value="@if($data->ttd_dpa!="-")Telah TTD Pada {{ $data->ttd_dpa }} @else Belum TTD @endif">
<label for="kombi">Status TTD Dosen Kombi : </label>
<input type="text" name="kombi" id="kombi" class="form-control" readonly
value="@if($data->ttd_kombi!="-")Telah TTD Pada {{ $data->ttd_kombi }} @else Belum TTD @endif">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data->judul_seminar_proposal}}">
<div class="mt-2">
<label for="cetak">Cetak PDF Surat Pernyataan :</label>
<a href="{{ route('layanan-dpudpa.cetak',['caseid'=>$data->caseid]) }}" class="btn btn-success" target="_blank">Klik Disini Untuk Cetak PDF</a>
</div>
</div>
</div>
</div>
</div>
</div>
@include('layout.navbars.footer')
</div>
<script src="{{asset('/')}}plugins/jquery/jquery.min.js"></script>
<script src="{{asset('/')}}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="{{asset('/')}}dist/js/adminlte.min.js?v=3.2.0"></script>
</body>
</html>

View File

@ -0,0 +1,54 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => 'Monitoring'])
@section('content')
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
<div class="card-header">
<h3 class="card-title">{{ $title }}</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('monitoring.search') }}" method="post">
@csrf
<label for="caseid">CASEID :</label>
<input type="text" name="caseid" id="caseid" class="form-control" placeholder="Masukkan CaseID Anda....">
<div class="float-right mt-4">
<button type="submit" class="btn btn-success">Cari</button>
</div>
</form>
</div>
</div>
<!-- /.card -->
</div>
<!-- /.container-fluid -->
</section>
<!-- /.content -->
@endsection

View File

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $title }}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<link rel="stylesheet" href="{{asset('/')}}plugins/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="{{asset('/')}}dist/css/adminlte.min.css?v=3.2.0">
<body class="hold-transition layout-top-nav">
<div class="content-wrapper">
<div class="content-header">
<div class="container">
<div class="text-center">
<h1 class="m-0"> {{ $title }}</h1>
</div>
</div>
</div>
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h5 class="widget-user-desc text-right">Monitoring</h5>
<h3 class="widget-user-username text-right">{{$data->caseid}}</h3>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data->caseid}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data->nama}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">NIM</h5>
<span class="description-text">{{$data->nim}}</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<label for="dosen_dpu">Status TTD Dosen Pembimbing Utama : {{$data->dosen_dpu_nama_gelar}} </label>
<input type="text" name="dosen_dpu" id="dosen_dpu" class="form-control" readonly
value="@if($data->ttd_dpu!="-")Telah TTD Pada {{ $data->ttd_dpu }} @else Belum TTD @endif">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data->judul_seminar_proposal}}">
<div class="mt-2">
<label for="cetak">Cetak PDF Surat Pernyataan :</label>
<a href="{{ route('layanan-sempro.cetak',['caseid'=>$data->caseid]) }}" class="btn btn-success" target="_blank">Klik Disini Untuk Cetak PDF</a>
</div>
</div>
</div>
</div>
</div>
</div>
@include('layout.navbars.footer')
</div>
<script src="{{asset('/')}}plugins/jquery/jquery.min.js"></script>
<script src="{{asset('/')}}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="{{asset('/')}}dist/js/adminlte.min.js?v=3.2.0"></script>
</body>
</html>

View File

@ -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::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');