merge to production #4

Merged
efbe merged 3 commits from development into master 2024-03-30 19:44:45 +07:00
21 changed files with 1743 additions and 45 deletions
Showing only changes of commit 755ac3c203 - Show all commits

View File

@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Jobs\kirimNotifikasiErrorJob;
use App\Jobs\layananPengajuanDpuDpaJob; use App\Jobs\layananPengajuanDpuDpaJob;
use App\Models\Bagian; use App\Models\Bagian;
@ -11,12 +12,13 @@
use Barryvdh\DomPDF\Facade\Pdf; use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon; use Carbon\Carbon;
use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use SimpleSoftwareIO\QrCode\Facades\QrCode; use SimpleSoftwareIO\QrCode\Facades\QrCode;
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Role;
use Ixudra\Curl\Facades\Curl;
class LayananPengajuanDpuDpaController extends Controller class LayananPengajuanDpuDpaController extends Controller
{ {
@ -347,6 +349,23 @@ public function cetak($caseid){
return $pdf->setPaper('a4', 'potrait')->stream($caseid.'-Kesediaan Menjadi Dosen Pembimbing Tugas Akhir'); return $pdf->setPaper('a4', 'potrait')->stream($caseid.'-Kesediaan Menjadi Dosen Pembimbing Tugas Akhir');
} }
public function resend($caseid,Request $request){
try{
$data = PengajuanDpuDpa::where('caseid',$caseid)->first();
$data_job = [
'id' => $data->id,
'jenis' => $request->jenis,
];
dispatch(new layananPengajuanDpuDpaJob($data_job));
}catch(Exception $e){
$text['error'] = $e->getMessage();
dispatch(new kirimNotifikasiErrorJob($text));
return redirect()->route('layanan-dpudpa.index')->with('error','Error : '.$text['error']);
}
return redirect()->route('layanan-dpudpa.index')->with('success','Berhasil Kirim Ulang Email Kepada '.$request->jenis.' Dengan CaseID : '.$caseid);
}
//cek apakah DPU dan DPU sudah Tanda tangan, jika sudah maka akan mengirim notifikasi ke Kombi //cek apakah DPU dan DPU sudah Tanda tangan, jika sudah maka akan mengirim notifikasi ke Kombi
private function cek_dpa_dpu($caseid){ private function cek_dpa_dpu($caseid){
$status = PengajuanDpuDpa::where('caseid',$caseid) $status = PengajuanDpuDpa::where('caseid',$caseid)

View File

@ -26,11 +26,9 @@ public function index(){
'mahasiswas.nim as nim', 'mahasiswas.nim as nim',
'mahasiswas.nama as nama', 'mahasiswas.nama as nama',
'dosen_dpu.nama_gelar as dpu_nama_gelar', 'dosen_dpu.nama_gelar as dpu_nama_gelar',
'dosen_dpa.nama_gelar as dpa_nama_gelar'
) )
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id') ->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.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(); ->get();
return view('layanan-sempro.index',['title' => 'Pengajuan Seminar Proposal | Admin Dashboard','data' => $data]); return view('layanan-sempro.index',['title' => 'Pengajuan Seminar Proposal | Admin Dashboard','data' => $data]);
} }
@ -180,7 +178,6 @@ public function store(Request $request){
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('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'); return redirect()->route('layanan-sempro.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan');
// $path = $request->nim.'/'.$file_transkrip_name;
} }
//done //done
@ -216,7 +213,8 @@ public function destroy(Request $request){
catch(Exception $e){ catch(Exception $e){
$text['error'] = $e->getMessage(); $text['error'] = $e->getMessage();
dispatch(new kirimNotifikasiErrorJob($text)); dispatch(new kirimNotifikasiErrorJob($text));
exit;
return redirect()->route('layanan-sempro.index')->with('error','Error : '.$text['error']);
} }
} }
@ -366,4 +364,23 @@ public function cetak($caseid){
//jika URL tidak diantara ketika itu maka render ini //jika URL tidak diantara ketika itu maka render ini
} }
public function resend($caseid, Request $request){
try{
$data = PengajuanSempro::where('caseid',$caseid)->first();
$data_job = [
'id' => $data->id,
'jenis' => $request->jenis,
];
dispatch(new layananSeminarProposalJob($data_job));
}catch(Exception $e){
$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','Berhasil Kirim Ulang Email Kepada '.$request->jenis.' Dengan CaseID : '.$caseid);
}
} }

View File

@ -0,0 +1,382 @@
<?php
namespace App\Http\Controllers;
use App\Jobs\kirimNotifikasiErrorJob;
use App\Jobs\layananSidangAkhirJob;
use App\Models\Bagian;
use App\Models\Mahasiswa;
use App\Models\PengajuanSidangAkhir;
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 LayananSidangAkhirController extends Controller
{
public function index(){
$data = PengajuanSidangAkhir::
select(
'pengajuan_sidang_akhirs.*',
'mahasiswas.nama',
'mahasiswas.nim',
'dosen_dpu.nama_gelar as dpu_nama_gelar',
)
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')
->get();
return view('layanan-sidangakhir.index',['title' => 'Pengajuan Sidang Akhir | Admin Dashboard', 'data' => $data]);
}
public function tambah(){
$dosen = User::role('Dosen')->get();
$bagian = Bagian::select('id','nama_bagian')->get();
//cek apakah ada data mahasiswa dari hasil cari
$nim = session('mahasiswas_id');
if($nim!=null){
$data_mahasiswa = Mahasiswa::find($nim);
return view('layanan-sidangakhir.tambah',['dosen'=>$dosen, 'bagian'=>$bagian,'data_mahasiswa'=>$data_mahasiswa]);
}
return view('layanan-sidangakhir.tambah',['dosen'=>$dosen, 'bagian'=>$bagian]);
}
public function cari(){
return view('layanan-sidangakhir.cari',['title'=>'Cari Data Mahasiswa Untuk Keperluan Pengajuan Sidang Akhir']);
}
public function search(Request $request){
$data = Mahasiswa::where('nim',$request->nim)->first();
if($data==null){
return redirect()->route('layanan-sidangakhir.tambah')->with('error','NIM Tidak Ditemukan, Gunakan Fitur Tambah');
}
return redirect()->route('layanan-sidangakhirtambah')->with('mahasiswas_id',$data->id);
}
public function destroy(Request $request){
$id = $request->id;
//cari data dan kirim notif sebelum dihapus
$data = PengajuanSidangAkhir::where('pengajuan_sidang_akhirs.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_transkrip' => $data->nim."/".$data->bukti_transkrip,
'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));
return redirect()->route('layanan-sidangakhir.index')->with('error','Error : '.$text['error']);
}
}
//delete data mahasiswa
try {
$dataDelete = PengajuanSidangAkhir::findOrFail($id);
$dataDelete->delete();
//kirim notif ke mahasiswa bahwa ditolak
dispatch(new layananSidangAkhirJob($data_job));
}catch(Exception $e){
//kirim notif error jika terjadi error
$text['error'] = $e->getMessage();
dispatch(new kirimNotifikasiErrorJob($text));
return redirect()->route('layanan-sidangakhir.index')->with('error','Error : '.$text['error']);
}
return redirect()->route('layanan-sidangakhir.index')->with('success','Permintaan Sudah Diproses, Email akan segera dikirim ke penerima');
}
public function store(Request $request){
$request->validate([
'nim'=>'required|numeric',
'nama'=>'required',
'nomor_hp'=>'required|numeric',
'email'=>'required|email',
'judul_skripsi_id'=>'required',
'judul_skripsi_en'=>'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_lembar_monitoring' => 'required|mimes:pdf|max:4096',
'bukti_transkrip' => 'required|mimes:pdf|max:4096',
'bukti_turnitin' => 'required|mimes:pdf|max:4096',
'bukti_sister' => '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_transkrip = $request->file('bukti_transkrip');
$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_transkrip_name= 'LA_1'.str_replace(' ', '_',$bukti_transkrip->getClientOriginalName());
$bukti_turnitin_name = 'LA_2'.str_replace(' ', '_',$bukti_turnitin->getClientOriginalName());
$bukti_sister_name = 'LA_3'.str_replace(' ', '_',$bukti_sister->getClientOriginalName());
$bukti_lembar_monitoring_name = 'LA_4'.str_replace(' ', '_',$bukti_lembar_monitoring->getClientOriginalName());
$bukti_naskah_dosen_pembimbing_name = 'LA_5'.str_replace(' ', '_',$bukti_naskah_dosen_pembimbing->getClientOriginalName());
$bukti_naskah_dosen_penguji_name = 'LA_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-sidangakhir.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_sidangakhir['mahasiswas_id'] = $mahasiswas_id;
$data_sidangakhir['nilai_plagiasi'] = $request->nilai_plagiasi;
$data_sidangakhir['bukti_transkrip'] = $bukti_transkrip_name;
$data_sidangakhir['bukti_turnitin'] = $bukti_turnitin_name;
$data_sidangakhir['bukti_sister'] = $bukti_sister_name;
$data_sidangakhir['bukti_lembar_monitoring'] = $bukti_lembar_monitoring_name;
$data_sidangakhir['bukti_naskah_dosen_pembimbing'] = $bukti_naskah_dosen_pembimbing_name;
$data_sidangakhir['bukti_naskah_dosen_penguji'] = $bukti_naskah_dosen_penguji_name;
//save data pengajuan
PengajuanSidangAkhir::create($data_sidangakhir);
//update data mahasiswa
$mahasiswa->judul_skripsi_id = $request->judul_skripsi_id;
$mahasiswa->judul_skripsi_en = $request->judul_skripsi_en;
$mahasiswa->save();
//save file
Storage::disk('public')->put($request->nim.'/'.$bukti_transkrip_name, file_get_contents($bukti_transkrip));
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-sidangakhir.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator');
}
//jika data belum ada, maka create data baru
$data_mhs['nim'] = $request->nim;
$data_mhs['nama'] = $request->nama;
$data_mhs['nomor_hp'] = $request->nomor_hp;
$data_mhs['email'] = $request->email;
$data_mhs['judul_seminar_proposal'] = '-';
$data_mhs['bagian'] = $request->bagian;
$data_mhs['dosen_dpu_id'] = $request->dosen_dpu;
$data_mhs['dosen_dpa_id'] = $request->dosen_dpa;
$data_mhs['dosen_penguji1_id'] = $request->dosen_penguji1;
$data_mhs['dosen_penguji2_id'] = $request->dosen_penguji2;
//set default values to -
$data_mhs['judul_skripsi_id'] = $request->judul_skripsi_id;
$data_mhs['judul_skripsi_en'] = $request->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_sidangakhir['mahasiswas_id'] = $mahasiswas_id->id;
$data_sidangakhir['nilai_plagiasi'] = $request->nilai_plagiasi;
$data_sidangakhir['bukti_transkrip'] = $bukti_transkrip_name;
$data_sidangakhir['bukti_turnitin'] = $bukti_turnitin_name;
$data_sidangakhir['bukti_sister'] = $bukti_sister_name;
$data_sidangakhir['bukti_lembar_monitoring'] = $bukti_lembar_monitoring_name;
$data_sidangakhir['bukti_naskah_dosen_pembimbing'] = $bukti_naskah_dosen_pembimbing_name;
$data_sidangakhir['bukti_naskah_dosen_penguji'] = $bukti_naskah_dosen_penguji_name;
PengajuanSidangAkhir::create($data_sidangakhir);
Storage::disk('public')->put($request->nim.'/'.$bukti_transkrip_name, file_get_contents($bukti_transkrip));
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-sidangakhir.tambah')->with('success','Sukses Tambah Data, Silahkan Menunggu Email Konfirmasi setelah disetujui Oleh Operator');
}
return redirect()->route('layanan-sidangakhir.tambah')->with('error','Gagal Tambah data, Cek kembali data yang anda masukkan');
}
public function terima(Request $request){
$id = $request->id;
$countcaseid = PengajuanSidangAkhir::where('ttd_operator','!=','-')->count();
$caseid = "LA".date_format(date_create(),"ym").$countcaseid+1;
$cekData = PengajuanSidangAkhir::where('caseid',$caseid)->first();
$data = PengajuanSidangAkhir::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-sidangakhir.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 layananSidangAkhirJob($item));
}
return redirect()->route('layanan-sidangakhir.index')->with('success','Data Berhasil Disimpan, Email Akan Dikirimkan ke Mahasiswa, DPU dan DPA');
}
}
public function ettd($caseid){
$data = PengajuanSidangAkhir::where('caseid', $caseid)
->select(
'pengajuan_sidang_akhirs.*',
'mahasiswas.nama',
'mahasiswas.nim',
'mahasiswas.judul_skripsi_id',
'mahasiswas.judul_skripsi_en',
'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar',
)
->join('mahasiswas','pengajuan_sidang_akhirs.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-sidangakhir.ettd',['title'=> 'INPUT E-Signature','jenis'=>$jenis,'data'=> $data]);
}
//jika URL tidak diantara ketika itu maka render ini
return redirect()->route('laman-awal')->with(['error'=>'Invalid CASEID, Atau CaseID Tidak Ditemukan']);
}
public function submitettd($caseid, Request $request){
$data = PengajuanSidangAkhir::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-sidangakhir.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 layananSidangAkhirJob($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-sidangakhir.ettd',['caseid'=>$caseid])->with(['error'=>'E-TTD Tidak Sesuai, Cek Kembali ETTD Anda']);
}
}
}
public function cetak($caseid){
$data = PengajuanSidangAkhir::where('caseid', $caseid)
->select(
'pengajuan_sidang_akhirs.*',
'mahasiswas.nama',
'bagians.nama_bagian',
'mahasiswas.nim',
'mahasiswas.judul_skripsi_id',
'mahasiswas.judul_skripsi_en',
'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar',
'dosen_dpu.nip as dosen_dpu_nip',
)
->join('mahasiswas','pengajuan_sidang_akhirs.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_skripsi_id' => $data->judul_skripsi_id,
'judul_skripsi_en' => $data->judul_skripsi_en,
'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-sidangakhir.cetak', $data);
return $pdf->setPaper('a4', 'potrait')->stream($caseid.'-Kesediaan Menjadi Dosen Pembimbing Tugas Akhir');
}
public function resend($caseid, Request $request){
try{
$data = PengajuanSidangAkhir::where('caseid',$caseid)->first();
$data_job = [
'id' => $data->id,
'jenis' => $request->jenis,
];
dispatch(new layananSidangAkhirJob($data_job));
}catch(Exception $e){
$text['error'] = $e->getMessage();
dispatch(new kirimNotifikasiErrorJob($text));
return redirect()->route('layanan-sidangakhir.index')->with('error','Error : '.$text['error']);
}
return redirect()->route('layanan-sidangakhir.index')->with('success','Berhasil Kirim Ulang Email Kepada '.$request->jenis.' Dengan CaseID : '.$caseid);
}
}

View File

@ -4,6 +4,7 @@
use App\Models\PengajuanDpuDpa; use App\Models\PengajuanDpuDpa;
use App\Models\PengajuanSempro; use App\Models\PengajuanSempro;
use App\Models\PengajuanSidangAkhir;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class MonitoringController extends Controller class MonitoringController extends Controller
@ -55,6 +56,24 @@ public function caseid($caseid){
} }
return view('monitoring.sempro',['title' => 'Monitoring Pengajuan Seminar Proposal - '.$caseid,'data' => $data]); return view('monitoring.sempro',['title' => 'Monitoring Pengajuan Seminar Proposal - '.$caseid,'data' => $data]);
} }
elseif($cek_caseid=="LA"){
$data = PengajuanSidangAkhir::where('caseid',$caseid)
->select(
'pengajuan_sidang_akhirs.*',
'mahasiswas.nim',
'mahasiswas.nama',
'mahasiswas.judul_skripsi_id',
'mahasiswas.judul_skripsi_en',
'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.sidangakhir',['title' => 'Monitoring Pengajuan Sidang Akhir - '.$caseid,'data' => $data]);
}
else{ else{
return redirect()->route('monitoring.index')->with('error','CaseID Tidak Valid'); return redirect()->route('monitoring.index')->with('error','CaseID Tidak Valid');
} }

View File

@ -4,7 +4,7 @@
use App\Models\PengajuanDpuDpa; use App\Models\PengajuanDpuDpa;
use Exception;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Foundation\Bus\Dispatchable;
@ -39,24 +39,50 @@ public function handle(): void
->get(); ->get();
} }
elseif($this->data['jenis'] == 'dpu'){ 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(); $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','=','mahasiswas.dosen_dpu_id')
->first();
$text = "BETA\n". $text = "BETA\n".
"Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n".
"Kepada DPU : ".$data->nama_gelar."\n\n". "Kepada DPU : ".$data->nama_gelar."\n\n".
"Alamat Email : ".$data->email; "Alamat Email : ".str_replace('_','\_',$data->email);
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
->get(); ->get();
} }
elseif($this->data['jenis'] == 'dpa'){ 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(); try{
$text = "BETA\n". $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])
"Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". ->select('mahasiswas.nama',
"Kepada DPA : ".$data->nama_gelar."\n\n". 'mahasiswas.nim',
"Alamat Email : ".$data->email; 'mahasiswas.judul_seminar_proposal',
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') 'mahasiswas.dosen_dpa_id',
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) 'users.nama_gelar',
->get(); 'users.email')
->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')
->join('users','users.id','=','mahasiswas.dosen_dpa_id')
->first();
$text = "BETA\n".
"Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n".
"Kepada DPA : ".$data->nama_gelar."\n\n".
"Alamat Email : ". str_replace('_','\_',$data->email);
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => strval($text), 'parse_mode' => 'Markdown') )
->get();
}catch(Exception $e){
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => $e, 'parse_mode' => 'Markdown') )
->get();
}
} }
elseif($this->data['jenis'] == 'kombi'){ elseif($this->data['jenis'] == 'kombi'){
$kombiRole = Role::findByName('Ketua Kombi')->users; $kombiRole = Role::findByName('Ketua Kombi')->users;
@ -74,7 +100,7 @@ public function handle(): void
$text = "BETA\n". $text = "BETA\n".
"Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n".
"Kepada Mahasiswa : ".$data->nama."\n\n". "Kepada Mahasiswa : ".$data->nama."\n\n".
"Alamat Email : ".$data->email; "Alamat Email : ".str_replace('_','\_',$data->email);
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
->get(); ->get();
@ -84,7 +110,7 @@ public function handle(): void
$text = "BETA\n". $text = "BETA\n".
"Kirim Notifikasi Pengajuan Selesai A/N Mahasiswa: ".$data->nama."\n". "Kirim Notifikasi Pengajuan Selesai A/N Mahasiswa: ".$data->nama."\n".
"Kepada Mahasiswa : ".$data->nama."\n\n". "Kepada Mahasiswa : ".$data->nama."\n\n".
"Alamat Email : ".$data->email; "Alamat Email : ".str_replace('_','\_',$data->email);
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
->get(); ->get();

View File

@ -37,7 +37,7 @@ public function handle(): void
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
->get(); ->get();
} }
elseif($this->data['jenis'] == 'dpu'){ elseif($this->data['jenis'] == 'mahasiswa'){
$data = PengajuanSempro::where('pengajuan_sempros.id',$this->data['id']) $data = PengajuanSempro::where('pengajuan_sempros.id',$this->data['id'])
->select( ->select(
'pengajuan_sempros.caseid', 'pengajuan_sempros.caseid',
@ -52,7 +52,7 @@ public function handle(): void
$text = "BETA - ".$data->caseid."\n". $text = "BETA - ".$data->caseid."\n".
"Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n".
"Kepada mahasiswa : ".$data->nama."\n\n". "Kepada mahasiswa : ".$data->nama."\n\n".
"Alamat Email : ".$data->email; "Alamat Email : ".str_replace('_','\_',$data->email);
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
->get(); ->get();
@ -74,12 +74,12 @@ public function handle(): void
$text = "BETA - ".$data->caseid."\n". $text = "BETA - ".$data->caseid."\n".
"Pengajuan Selesai A/N Mahasiswa: ".$data->nama."\n". "Pengajuan Selesai A/N Mahasiswa: ".$data->nama."\n".
"Kepada DPU : ".$data->nama_gelar."\n\n". "Kepada DPU : ".$data->nama_gelar."\n\n".
"Alamat Email : ".$data->email; "Alamat Email : ".str_replace('_','\_',$data->email);
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
->get(); ->get();
} }
elseif($this->data['jenis'] == 'mahasiswa'){ elseif($this->data['jenis'] == 'dpu'){
$data = PengajuanSempro::where('pengajuan_sempros.id',$this->data['id']) $data = PengajuanSempro::where('pengajuan_sempros.id',$this->data['id'])
->select( ->select(
'pengajuan_sempros.caseid', 'pengajuan_sempros.caseid',
@ -96,7 +96,7 @@ public function handle(): void
$text = "BETA - ".$data->caseid."\n". $text = "BETA - ".$data->caseid."\n".
"Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n". "Kirim Pengajuan A/N Mahasiswa: ".$data->nama."\n".
"Kepada DPU : ".$data->nama_gelar."\n\n". "Kepada DPU : ".$data->nama_gelar."\n\n".
"Alamat Email : ".$data->email; "Alamat Email : ".str_replace('_','\_',$data->email);
Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage') Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') ) ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
->get(); ->get();

View File

@ -0,0 +1,105 @@
<?php
namespace App\Jobs;
use App\Models\PengajuanSidangAkhir;
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 layananSidangAkhirJob 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 Sidang Akhir 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'] == 'mahasiswa'){
$data = PengajuanSidangAkhir::where('pengajuan_sidang_akhirs.id',$this->data['id'])
->select(
'pengajuan_sidang_akhirs.caseid',
'pengajuan_sidang_akhirs.nilai_plagiasi',
'mahasiswas.nama',
'mahasiswas.nim',
'mahasiswas.email',
'mahasiswas.judul_skripsi_id',
'mahasiswas.judul_skripsi_en',
'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 : ".str_replace('_','\_',$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 = PengajuanSidangAkhir::where('pengajuan_sidang_akhirs.id',$this->data['id'])
->select(
'pengajuan_sidang_akhirs.caseid',
'pengajuan_sidang_akhirs.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 : ".str_replace('_','\_',$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'] == 'dpu'){
$data = PengajuanSidangAkhir::where('pengajuan_sidang_akhirs.id',$this->data['id'])
->select(
'pengajuan_sidang_akhirs.caseid',
'pengajuan_sidang_akhirs.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 : ".str_replace('_','\_',$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,22 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PengajuanSidangAkhir extends Model
{
use HasFactory;
protected $fillable = [
'mahasiswas_id',
'nilai_plagiasi',
'bukti_transkrip',
'bukti_turnitin',
'bukti_sister',
'bukti_lembar_monitoring',
'bukti_naskah_dosen_pembimbing',
'bukti_naskah_dosen_penguji',
];
}

View File

@ -0,0 +1,32 @@
<?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('jobs', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('queue')->index();
$table->longText('payload');
$table->unsignedTinyInteger('attempts');
$table->unsignedInteger('reserved_at')->nullable();
$table->unsignedInteger('available_at');
$table->unsignedInteger('created_at');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('jobs');
}
};

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_sidang_akhirs', 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_lembar_monitoring');
$table->string('bukti_transkrip');
$table->string('bukti_turnitin');
$table->string('bukti_sister');
$table->string('bukti_naskah_dosen_pembimbing');
$table->string('bukti_naskah_dosen_penguji');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('pengajuan_sidang_akhirs');
}
};

View File

@ -99,30 +99,60 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<label for="nim">NIM:</label> <label for="nim">NIM:</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->nim }}"> <input type="text" class="form-control form-control-border" readonly value="{{ $datas->nim }}">
<label for="nama">Nama Mahasiswa:</label> <label for="nama">Nama Mahasiswa:</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->nama }}"> <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> <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->dpu_nama_gelar }}"> <input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpu_nama_gelar }}">
<label for="dosen_dpa">Dosen DPA: {{ $datas->ttd_dpa === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_dpa }}</label> <label for="dosen_dpa">Dosen DPA: {{ $datas->ttd_dpa === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_dpa }}</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpa_nama_gelar }}"> <input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpa_nama_gelar }}">
<label for="dosen_kombi">Kombi: </label> <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 }}"> <input type="text" class="form-control form-control-border" readonly value="{{ $datas->ttd_kombi === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_kombi }}">
</div>
</div> </div>
</div> <div class="row mt-3">
<div class="row mt-3"> <div class="col">
<div class="col"> <label for="file_transkrip">Lihat File Transkrip<br>
<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>
<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="col"> @if($datas->ttd_operator != '-')
<label for="file_transkrip">Cetak Surat Pernyataan<br> <div class="row mt-3">
<a href="{{ route('layanan-dpudpa.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a> <div class="col">
<label for="resend">Kirim Ulang Email :</label>
<form action="{{ route('layanan-dpudpa.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="dpu">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke DPU</button>
</form>
<div class="mt-1"></div>
<form action="{{ route('layanan-dpudpa.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="dpa">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke DPA</button>
</form>
<div class="mt-1"></div>
<form action="{{ route('layanan-dpudpa.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="kombi">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke Kombi</button>
</form>
<div class="mt-1"></div>
<form action="{{ route('layanan-dpudpa.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="mahasiswa">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke Mahasiswa</button>
</form>
</div>
</div> </div>
</div> @endif
</div> </div>
<div class="modal-footer justify-content-between"> <div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
@ -185,6 +215,7 @@
<tr> <tr>
<th>CaseID</th> <th>CaseID</th>
<th>NIM</th> <th>NIM</th>
<th>Nama Mahasiswa</th>
<th>DPU</th> <th>DPU</th>
<th>DPA</th> <th>DPA</th>
<th>Action</th> <th>Action</th>

View File

@ -104,7 +104,7 @@
<label for="nama">Nama Mahasiswa:</label> <label for="nama">Nama Mahasiswa:</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->nama }}"> <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> <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 }}"> <input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpu_nama_gelar }}">
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -143,6 +143,24 @@
<a href="{{ route('layanan-sempro.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a> <a href="{{ route('layanan-sempro.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a>
</div> </div>
</div> </div>
@if($datas->ttd_operator != '-')
<div class="row mt-3">
<div class="col">
<label for="resend">Kirim Ulang Email :</label>
<form action="{{ route('layanan-sempro.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="dpu">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke DPU</button>
</form>
<div class="mt-1"></div>
<form action="{{ route('layanan-sempro.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="mahasiswa">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke Mahasiswa</button>
</form>
</div>
</div>
@endif
</div> </div>
<div class="modal-footer justify-content-between"> <div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>

View File

@ -0,0 +1,67 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => 'Pengajuan Sidang Akhir'])
@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 Sidang Akhir</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-sidangakhir.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,192 @@
<!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 SKRIPSI</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_skripsi_id}}</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 proposal skripsi/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>
<h4 style="text-align: center;">FORMULIR PERSETUJUAN JUDUL SKRIPSI</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>
</table>
<p style="margin-top: 10px;">Menyetujui judul tugas akhir mahasiswa tersebut yang akan dicantumkan dalam transkrip adalah sebagai berikut:</p>
<table border="0" style="margin-top:5px; padding-left:1em;">
<tr>
<td style="vertical-align: text-top; width:33%;"> Judul Skripsi Bahasa Indonesia</td>
<td style="vertical-align: text-top;">:</td>
<td style="text-align:left; margin:0; padding:0; vertical-align: text-top; width:67%;">{{$judul_skripsi_id}}</td>
</tr>
<tr>
<td style="vertical-align: text-top;"> Judul Skripsi Bahasa Inggris</td>
<td style="vertical-align: text-top;">:</td>
<td style="text-align:left; margin:0; padding:0; vertical-align: text-top;">{{$judul_skripsi_en}}</td>
</tr>
</table>
<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>
</body>
</html>

View File

@ -0,0 +1,106 @@
<!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-sidangakhir.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_skripsi_id">Judul Skripsi Bahasa Indonesia:</label>
<input type="text" name="judul_skripsi_id" id="judul_skripsi_id" class="form-control" readonly value="{{ $data->judul_skripsi_id}}">
<label for="judul_skripsi_en">Judul Skripsi Bahasa Inggris:</label>
<input type="text" name="judul_skripsi_en" id="judul_skripsi_en" class="form-control" readonly value="{{ $data->judul_skripsi_en}}">
<label for="nilai_plagiasi">Nilai Plagiasi (%):</label>
<input type="text" name="nilai_plagiasi" id="nilai_plagiasi" class="form-control" readonly value="{{ $data->nilai_plagiasi}}">
<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,274 @@
<!-- 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 Sidang Akhir</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 Sidang Akhir</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->dpu_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-sidangakhir.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a>
</div>
</div>
@if($datas->ttd_operator != '-')
<div class="row mt-3">
<div class="col">
<label for="resend">Kirim Ulang Email :</label>
<form action="{{ route('layanan-sidangakhir.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="dpu">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke DPU</button>
</form>
<div class="mt-1"></div>
<form action="{{ route('layanan-sidangakhir.resend',['caseid'=>$datas->caseid]) }}" method="post">
@csrf
<input type="hidden" name="jenis" value="mahasiswa">
<button type="submit" id="resend" class="btn btn-default btn-block">Kirim Ulang Ke Mahasiswa</button>
</form>
</div>
</div>
@endif
</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-sidangakhir.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-sidangakhir.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-sidangakhir.tambah')}}", '_blank');
}
},"csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');
});
</script>
@endpush

View File

@ -0,0 +1,219 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => 'Pengajuan Sidang Akhir'])
@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 Sidang Akhir</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-sidangakhir.cari') }}" class="btn btn-success btn-sm">Klik Disini</a>
</div>
<form action="{{ route('layanan-sidangakhir.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 -->
@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>
@foreach($bagian as $item)
<option value="{{$item->id}}">{{$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">
<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 -->
@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="judul_skripsi_id">Judul Skripsi / Tugas Akhir Dalam Bahasa Indonesia</label>
<input type="text" name="judul_skripsi_id" id="judul_skripsi_id" class="form-control" placeholder="Masukkan Judul Skripsi / Tugas Akhir Dalam Bahasa Indonesia" required>
<label for="judul_skripsi_en">Judul Skripsi / Tugas Akhir Dalam Bahasa Inggris</label>
<input type="text" name="judul_skripsi_en" id="judul_skripsi_en" class="form-control" placeholder="Masukkan Judul Skripsi / Tugas Akhir Dalam Bahasa Inggris" required>
</div>
</div>
<div class="row">
<div class="col">
<label for="nilai_plagiasi">Nilai Plagiasi / Similarity Skripsi</label>
<input type="number" class="form-control" name="nilai_plagiasi" placeholder="Masukkan Nilai Plagiasi / Similarity Sempro" 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_transkrip">Bukti Transkrip (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="bukti_transkrip" id="bukti_transkrip" 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_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

@ -70,6 +70,14 @@
</p> </p>
</a> </a>
</li> </li>
<li class="nav-item">
<a href="{{ route('layanan-sidangakhir.tambah') }}" class="nav-link {{ Request::is('layanan-sidangakhir/tambah') ? 'active' : '' }}">
<i class="nav-icon fas fa-book"></i>
<p>
Pengajuan Sidang Akhir
</p>
</a>
</li>
<li class="nav-header">-</li> <li class="nav-header">-</li>
<li class="nav-item"> <li class="nav-item">
<a href="{{ route('monitoring.index') }}" class="nav-link {{ Request::is('monitoring') ? 'active' : '' }}"> <a href="{{ route('monitoring.index') }}" class="nav-link {{ Request::is('monitoring') ? 'active' : '' }}">

View File

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

View File

@ -0,0 +1,99 @@
<!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_skripsi_id">Judul Skripsi Bahasa Indonesia :</label>
<input type="text" name="judul_skripsi_id" id="judul_skripsi_id" class="form-control" readonly value="{{ $data->judul_skripsi_id}}">
<label for="judul_skripsi_en">Judul Skripsi Bahasa Inggris :</label>
<input type="text" name="judul_skripsi_en" id="judul_skripsi_en" class="form-control" readonly value="{{ $data->judul_skripsi_en}}">
<label for="nilai_plagiasi">Nilai Plagiasi Turnitin (%):</label>
<input type="text" name="nilai_plagiasi" id="nilai_plagiasi" class="form-control" readonly value="{{ $data->nilai_plagiasi}} %">
<div class="mt-2">
<label for="cetak">Cetak PDF Surat Pernyataan :</label>
<a href="{{ route('layanan-sidangakhir.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

@ -7,6 +7,7 @@
use App\Http\Controllers\UserController; use App\Http\Controllers\UserController;
use App\Http\Controllers\LayananPengajuanDpuDpaController; use App\Http\Controllers\LayananPengajuanDpuDpaController;
use App\Http\Controllers\LayananSeminarProposal; use App\Http\Controllers\LayananSeminarProposal;
use App\Http\Controllers\LayananSidangAkhirController;
use App\Http\Controllers\MahasiswaController; use App\Http\Controllers\MahasiswaController;
use App\Http\Controllers\MonitoringController; use App\Http\Controllers\MonitoringController;
use App\Http\Controllers\SesiLoginController; use App\Http\Controllers\SesiLoginController;
@ -42,10 +43,17 @@
Route::get('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'index'])->name('layanan-dpudpa.index'); Route::get('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'index'])->name('layanan-dpudpa.index');
Route::DELETE('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'destroy'])->name('layanan-dpudpa.destroy'); Route::DELETE('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'destroy'])->name('layanan-dpudpa.destroy');
Route::POST('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'terima'])->name('layanan-dpudpa.terima'); Route::POST('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'terima'])->name('layanan-dpudpa.terima');
Route::POST('/layanan-dpudpa/resend/{caseid}', [LayananPengajuanDpuDpaController::class, 'resend'])->name('layanan-dpudpa.resend');
//layanan Pengajuan Seminar Proposal //layanan Pengajuan Seminar Proposal
Route::get('/layanan-sempro', [LayananSeminarProposal::class, 'index'])->name('layanan-sempro.index'); Route::get('/layanan-sempro', [LayananSeminarProposal::class, 'index'])->name('layanan-sempro.index');
Route::DELETE('/layanan-sempro', [LayananSeminarProposal::class, 'destroy'])->name('layanan-sempro.destroy'); Route::DELETE('/layanan-sempro', [LayananSeminarProposal::class, 'destroy'])->name('layanan-sempro.destroy');
Route::POST('/layanan-sempro', [LayananSeminarProposal::class, 'terima'])->name('layanan-sempro.terima'); Route::POST('/layanan-sempro', [LayananSeminarProposal::class, 'terima'])->name('layanan-sempro.terima');
Route::POST('/layanan-sempro/resend/{caseid}', [LayananSeminarProposal::class, 'resend'])->name('layanan-sempro.resend');
//layanan Pengajuan Sidang Akhir
Route::get('/layanan-sidangakhir', [LayananSidangAkhirController::class, 'index'])->name('layanan-sidangakhir.index');
Route::DELETE('/layanan-sidangakhir', [LayananSidangAkhirController::class, 'destroy'])->name('layanan-sidangakhir.destroy');
Route::POST('/layanan-sidangakhir', [LayananSidangAkhirController::class, 'terima'])->name('layanan-sidangakhir.terima');
Route::POST('/layanan-sidangakhir/resend/{caseid}', [LayananSidangAkhirController::class, 'resend'])->name('layanan-sidangakhir.resend');
//User //User
Route::get('/users', [UserController::class, 'index'])->name('users.index'); Route::get('/users', [UserController::class, 'index'])->name('users.index');
@ -80,6 +88,14 @@
Route::get('/layanan-sempro/cetak/{caseid}', [LayananSeminarProposal::class, 'cetak'])->name('layanan-sempro.cetak'); 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::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::POST('/layanan-sempro/dpu/{caseid}', [LayananSeminarProposal::class, 'submitettd'])->name('layanan-sempro.submitettd');
//Layanan Pengajuan SidangAkhir
Route::get('/layanan-sidangakhir/cari', [LayananSidangAkhirController::class, 'cari'])->name('layanan-sidangakhir.cari');
Route::post('/layanan-sidangakhir/cari', [LayananSidangAkhirController::class, 'search'])->name('layanan-sidangakhir.search');
Route::get('/layanan-sidangakhir/tambah', [LayananSidangAkhirController::class, 'tambah'])->name('layanan-sidangakhir.tambah');
Route::post('/layanan-sidangakhir/tambah', [LayananSidangAkhirController::class, 'store'])->name('layanan-sidangakhir.store');
Route::get('/layanan-sidangakhir/cetak/{caseid}', [LayananSidangAkhirController::class, 'cetak'])->name('layanan-sidangakhir.cetak');
Route::get('/layanan-sidangakhir/dpu/{caseid}', [LayananSidangAkhirController::class, 'ettd'])->name('layanan-sidangakhir.ettd');
Route::POST('/layanan-sidangakhir/dpu/{caseid}', [LayananSidangAkhirController::class, 'submitettd'])->name('layanan-sidangakhir.submitettd');
Route::get('/monitoring', [MonitoringController::class, 'index'])->name('monitoring.index'); Route::get('/monitoring', [MonitoringController::class, 'index'])->name('monitoring.index');
Route::post('/monitoring', [MonitoringController::class, 'search'])->name('monitoring.search'); Route::post('/monitoring', [MonitoringController::class, 'search'])->name('monitoring.search');