development #3

Merged
efbe merged 4 commits from development into master 2024-03-15 18:41:02 +07:00
21 changed files with 1156 additions and 129 deletions
Showing only changes of commit 5766154a62 - Show all commits

View File

@ -4,6 +4,7 @@
use App\Jobs\layananPengajuanDpuDpaJob;
use App\Models\Bagian;
use App\Models\Mahasiswa;
use App\Models\PengajuanDpuDpa;
use App\Models\User;
@ -12,6 +13,7 @@
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use SimpleSoftwareIO\QrCode\Facades\QrCode;
use Spatie\Permission\Models\Role;
@ -37,7 +39,8 @@ public function index(){
//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
@ -296,7 +299,7 @@ public function submitettd($url, $caseid, Request $request){
}
}
//belum
//done
public function cetak($caseid){
$get_data = PengajuanDpuDpa::where('caseid',$caseid)->first();
if($get_data->ttd_kombi=='-'){
@ -308,7 +311,7 @@ public function cetak($caseid){
'pengajuan_dpu_dpas.*',
'mahasiswas.nim',
'mahasiswas.nama',
'mahasiswas.bagian',
'bagians.nama_bagian',
'mahasiswas.judul_seminar_proposal',
'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar',
'dosen_dpu.nip as dosen_dpu_nip',
@ -316,7 +319,7 @@ public function cetak($caseid){
'dosen_dpa.nip as dosen_dpa_nip',
)
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('bagians','bagian','=','bagians.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();

View File

@ -2,8 +2,20 @@
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
{
@ -23,12 +35,335 @@ public function index(){
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

@ -3,26 +3,61 @@
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){
$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();
return view('monitoring.dpu_dpa',['title' => 'Monitoring Pengajuan DPU/DPA - '.$caseid,'data' => $data]);
$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

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

11
app/Models/Bagian.php Normal file
View File

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Bagian extends Model
{
use HasFactory;
}

View File

@ -8,4 +8,15 @@
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

@ -13,10 +13,10 @@ public function up(): void
{
Schema::create('pengajuan_sempros', function (Blueprint $table) {
$table->id();
$table->string('caseid');
$table->string('caseid')->default('-');
$table->foreignId('mahasiswas_id')->constrained();
$table->string('ttd_operator');
$table->string('ttd_dpu');
$table->string('ttd_operator')->default('-');
$table->string('ttd_dpu')->default('-');
$table->integer('nilai_plagiasi');
$table->string('bukti_hadir_sempro');
$table->string('bukti_turnitin');

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

@ -66,6 +66,7 @@
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>Nama Mahasiswa</th>
<th>DPU</th>
<th>DPA</th>
<th>Action</th>
@ -76,6 +77,7 @@
<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 class="text-center">

View File

@ -12,7 +12,7 @@
</div>
<!-- /.card-header -->
<div class="card-body">
@if ($errors->any())
@if($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
@ -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

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $title }}</title>
<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">
@ -18,7 +18,6 @@
</div>
</div>
@if($jenis!="Komisi Bimbingan")
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
@ -43,7 +42,7 @@
<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>
<span class="description-text">{{ $data->dosen_dpu_nama_gelar }}</span>
</div>
</div>
</div>
@ -63,7 +62,7 @@
</ul>
</div>
@endif
<form action="{{ route('layanan-dpudpa.submitettd',['url'=> request('url'), 'caseid'=>$data->caseid]) }}" method="post">
<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}}">
@ -85,74 +84,6 @@
</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>

View File

@ -17,12 +17,12 @@
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>Pengajuan DPU / DPA</h1>
<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 DPU / DPA</li>
<li class="breadcrumb-item active">Pengajuan Seminar Proposal</li>
</ol>
</div>
</div>
@ -66,8 +66,8 @@
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>Nama</th>
<th>DPU</th>
<th>DPA</th>
<th>Action</th>
</tr>
</thead>
@ -76,18 +76,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 class="text-center">
<button class="btn btn-primary" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Details</button> |
<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="#LY{{ $datas->id }}" >Terima</button> |
<button class="btn btn-danger" data-toggle="modal" data-target="#LYDelete{{ $datas->id }}" >Tolak</button>
<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="LY{{$datas->id}}">
<div class="modal fade" id="MD{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
@ -104,13 +104,43 @@
<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 }}">
<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 }}">
<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">
<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>
@ -118,7 +148,7 @@
<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">
<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>
@ -132,7 +162,7 @@
<!-- /.modal-dialog -->
</div>
<!-- /.modal-Delete -->
<div class="modal fade" id="LYDelete{{$datas->id}}">
<div class="modal fade" id="MDDelete{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
@ -147,7 +177,7 @@
<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">
<form action="{{ route('layanan-sempro.destroy') }}" method="post">
@csrf @method('DELETE')
<div class="row">
<div class="col">
@ -215,7 +245,7 @@
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-dpudpa.tambah')}}", '_blank');
window.open("{{ route('layanan-sempro.tambah')}}", '_blank');
}
},"csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');

View File

@ -1,5 +1,5 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => 'Pengajuan DPU / DPA'])
@extends('layout.app_guest',['title' => 'Pengajuan Seminar Proposal'])
@section('content')
<!-- Main content -->
@ -8,7 +8,7 @@
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
<div class="card-header">
<h3 class="card-title">Pengajuan Kesediaan DPU / DPA</h3>
<h3 class="card-title">Pengajuan Seminar Proposal</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
@ -35,8 +35,73 @@
</ul>
</div>
@endif
<form action="{{ route('layanan-dpudpa.store') }}" method="post" enctype="multipart/form-data">
<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>
@ -58,7 +123,6 @@
<option value="6">Teknologi Farmasi</option>
<option value="7">Kimia Analisis</option>
<option value="8">Kimia Medisinal</option>
</select>
</div>
<!-- /.col -->
@ -96,8 +160,54 @@
<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>
<label for="file_transkrip">Transkrip Nilai (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="file_transkrip" id="file_transkrip" class="form-control" 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">

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

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

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

@ -28,7 +28,7 @@
});
route::get('/', function(){
return "PROGRESS";
return view('index');
})->name('laman-awal');
Route::get('/home', function(){
@ -65,9 +65,22 @@
//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');
ROute::get('/monitoring/{caseid}', [MonitoringController::class, 'caseid'])->name('monitoring.caseid');
//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');