Commit 711be276 by Alfiro Pratama

Ubah Luaran menjadi Lp. Magang, add Required Form Pendanaan (swal-seleksi internal), Perintilan

parent 9cf90b69
......@@ -119,8 +119,8 @@ class LuaranController extends Controller
public function dosen($id)
{
//
$title = 'Proposal Luaran Mahasiswa';
$proposal = Proposal::with(['rluaran', 'rPeriode'])->find(decrypt($id));
$title = 'Laporan Magang Mahasiswa';
$proposal = Proposal::with(['rLuaran', 'rPeriode'])->find(decrypt($id));
$data = [
'proposal' => $proposal,
......
......@@ -30,6 +30,7 @@ class MonevController extends Controller
$year = !is_null($request->year) ? $request->year : now()->year;
$jadwal = JadwalKegiatan::where('periode_id', $periode->where('status', 1)->first()->periode_id)
->where('nama','Monev Internal '.$id)->first();
// $jadwal = now();
$title = 'Monev Internal '.$id;
$proposal = MonevInternal::with(['rProposal', 'rJenisMonev', 'rNilaiMonevAll'])
......@@ -88,7 +89,8 @@ class MonevController extends Controller
//
$id = explode('__', decrypt($id));
// $proposal = MonevInternal::with(['rProposal'])->find($id[0]);
$proposal = MonevInternal::with(['rProposal'])->where('proposal_id', $id[0])->first();
$proposal = MonevInternal::with(['rProposal'])->where('id', $id[0])->first();
// dd($id);
if($id[1] == 'logbook'){ $title = 'Upload Logbook'; }
elseif($id[1] == 'kemajuan'){ $title = 'Upload Laporan Kemajuan';}
......@@ -102,6 +104,8 @@ class MonevController extends Controller
$label = 'Upload Logbook';
} elseif ($id[1] == 'produk') {
$label = 'Upload Video Produk Akhir';
} elseif ($id[1] == 'kemajuan') {
$label = 'Upload Laporan Kemajuan';
} elseif ($id[1] == 'akhir') {
$label = 'Upload Laporan Akhir';
} elseif ($id[2] == 'II') {
......
......@@ -25,6 +25,8 @@ use App\Models\JenisPenilaianMonev;
use App\Http\Controllers\Controller;
use App\Models\ReviewerProposalDetil;
use function PHPUnit\Framework\isNull;
class DaftarMonevController extends Controller
{
private const periode_id = '9857a29d-521f-413a-b811-94cda7b45897';
......@@ -92,7 +94,7 @@ class DaftarMonevController extends Controller
$path = [
'07cda89b-94ca-42a3-a197-8fc1260ebcfb' => 'monev/I',
'21a49a70-33bb-49f1-9fd9-ebe52fa4336c' => 'monev/I'
'21a49a70-33bb-49f1-9fd9-ebe52fa4336c' => 'monev/II'
];
foreach($records as $record){
......@@ -106,9 +108,9 @@ class DaftarMonevController extends Controller
$identitas_ketua = str_replace('###', '<br>', $record->identitas_ketua);
$identitas_dospem = str_replace('###', '<br>', $record->identitas_dospem);
$logbook = '<a href="https://statik.unesa.ac.id/simpmw/'.$path[$record->jenis_monev_id].'/logbook/'.$record->logbook_file.'" class="btn btn-primary btn-sm waves-effect waves-light" role="button">Review <i class="fas fa-search"></i></a>';
$laporan_kemajuan = '<a href="https://statik.unesa.ac.id/simpmw/'.$path[$record->jenis_monev_id].'/kemajuan/'.$record->kemajuan_file.'" class="btn btn-primary btn-sm waves-effect waves-light" role="button">Review <i class="fas fa-search"></i></a>';
$laporan_luaran = '<a href="#" class="btn btn-primary btn-sm waves-effect waves-light" role="button">Review <i class="fas fa-search"></i></a>';
$logbook = is_null($record->logbook_file) ? '<span class="badge bg-danger">File logbook belum diunggah</span>' : '<a href="https://statik.unesa.ac.id/simpmw/'.$path[$record->jenis_monev_id].'/logbook/'.$record->logbook_file.'" class="btn btn-primary btn-sm waves-effect waves-light" role="button" target="_blank">Review <i class="fas fa-search"></i></a>';
$laporan_kemajuan = is_null($record->kemajuan_file) ? '<span class="badge bg-danger">File laporan kemajuan belum diunggah</span>' : '<a href="https://statik.unesa.ac.id/simpmw/'.$path[$record->jenis_monev_id].'/kemajuan/'.$record->kemajuan_file.'" class="btn btn-primary btn-sm waves-effect waves-light" role="button" target="_blank">Review <i class="fas fa-search"></i></a>';
$laporan_luaran = '<a href="' . route('reviewer.luaran-reviewer', encrypt($record->proposal_id)) . '" class="btn btn-primary btn-sm waves-effect waves-light" role="button" target="_blank">Review <i class="fas fa-search"></i></a>';
$url = "https://statik.unesa.ac.id/simpmw/proposal/".$record->periode."/".$record->upload_dokumen;
......@@ -152,7 +154,6 @@ class DaftarMonevController extends Controller
{
$aksi = '<a href="'.$nilai.'" class="btn btn-icon-sm btn-warning btn-sm">Beri nilai<i class="fas fa-arrow-alt-circle-right"></i></a>';
}
$data_arr[] = array(
"monev_internal_id" => $monev_internal_id,
"kode" => $kode,
......
......@@ -41,6 +41,7 @@
<th>No</th>
<th>Jenis</th>
<th>Judul</th>
<th>Keterangan</th>
<th>File</th>
</tr>
</thead>
......@@ -51,8 +52,8 @@
<td>{{ $loop->iteration }}</td>
<td>{{ $item->jenis_luaran }}</td>
<td>{{ $item->judul }}</td>
<td>{{ $item->keterangan_luaran }}</td>
<td><a href="https://statik.unesa.ac.id/simpmw/luaran/{{ $item->jenis_luaran }}/{{ $item->file_luaran }}" target="_blank" title="Logbook" class="btn btn-info btn-sm waves-effect waves-light"> <i class="fas fa-search"></i> Lihat</a></td>
</tr>
@endforeach
</tbody>
......
......@@ -64,7 +64,7 @@
<th>Judul Proposal</th>
<th width="10%">Catatan Harian (Logbook)</th>
<th width="10%">Laporan Kemajuan</th>
<th width="10%">Luaran</th>
<th width="10%">Laporan Magang / Lainnya</th>
<th>Aksi</th>
</tr>
</thead>
......@@ -92,7 +92,7 @@
@endif
</td>
<td>
<a href="{{ URL::to('dosen/luaran-dosen/'.encrypt($item->rProposal->proposal_id)) }}" type="button" class="btn btn-success btn-sm waves-effect waves-light"> <i class="fas fa-newspaper"></i> Luaran</a>
<a href="{{ URL::to('dosen/luaran-dosen/'.encrypt($item->rProposal->proposal_id)) }}" type="button" class="btn btn-success btn-sm waves-effect waves-light"> <i class="fas fa-newspaper"></i> Lihat</a>
</td>
<td>
<button data-bs-toggle="modal" data-bs-target="{{ '#lihat'.$item->proposal_id }}" href="{{ URL::to('dosen/kelompok-new', encrypt($item->proposal_id)) }}" class="btn btn-success btn-sm"> <i class="fas fa-search"></i> Hasil Penilaian</button>
......
......@@ -80,6 +80,7 @@
<td align="center">{{ $item->rProposal->judul }}</td>
<td align="center">
@if(is_null($item->logbook_file))
{{-- @dd($item->id); --}}
<a href="{{ URL::to('mahasiswa/monev-revisi/'.encrypt($item->id.'__logbook__I')) }}" type="button" class="btn btn-warning btn-sm waves-effect waves-light"> <i class="fas fa-file-upload"></i> Upload</a>
@else
<a href="https://statik.unesa.ac.id/simpmw/monev/I/logbook/{{ $item->logbook_file }}" target="_blank" title="Logbook" class="btn btn-info btn-sm waves-effect waves-light"> <i class="fas fa-search"></i> Lihat</a>
......@@ -97,7 +98,7 @@
</td>
<td align="center">
<button data-bs-toggle="modal" data-bs-target="{{ '#lihat'.$item->id }}" class="btn btn-success btn-sm form-control mb-2"><i class="fas fa-search"></i> Hasil Penilaian</button>
<a href="{{ URL::to('mahasiswa/monev-revisi/'.encrypt($item->proposal_id.'__proposal__I')) }}" type="button" class="btn btn-danger btn-sm waves-effect waves-light form-control" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Revisi Proposal"><i class="fas fa-file-upload"></i> Revisi</a>
<a href="{{ URL::to('mahasiswa/monev-revisi/'.encrypt($item->id.'__proposal__I')) }}" type="button" class="btn btn-danger btn-sm waves-effect waves-light form-control" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Revisi Proposal"><i class="fas fa-file-upload"></i> Revisi Proposal</a>
<div id="{{ 'lihat'.$item->id }}" class="modal fade" tabindex="-1" role="dialog"
aria-labelledby="lihatLabel" aria-hidden="true">
......
......@@ -35,6 +35,7 @@
<h4 class="card-title">{!! $title !!}</h4>
<p class="card-title-desc"></p>
<div class="row mb-3">
{{-- @dd($proposal->id); --}}
<input class="form-control" type="hidden" id="monev_id" name="monev_id" value="{{ $proposal->id }}" >
<input class="form-control" type="hidden" id="type" name="type" value="{{ $type }}" >
<input class="form-control" type="hidden" id="monev" name="monev" value="{{ $monev }}" >
......@@ -72,11 +73,18 @@
</div>
@else
<div class="col-sm-10">
<div class="row">
<div class="col-8">
<input type="file" name="file" class="form-control" id="input-file" accept="application/pdf">
@if ($errors->has('file'))
<span class="text-danger">{{ $errors->first('file') }}</span>
@endif
<input type="file" name="file" class="form-control" id="input-form">
<iframe id="view-pdf" width="80%" height="80%" src="" frameborder="0"></iframe>
</div>
<div class="col-4">
<button type="button" class="btn btn-warning form-control" id="btnPreview">Preview</button>
</div>
</div>
{{-- <iframe id="view-pdf" width="80%" height="80%" src="" frameborder="0"></iframe> --}}
</div>
@endif
</div>
......@@ -93,19 +101,70 @@
</div>
</div> <!-- end col -->
</div> <!-- end row -->
<!-- Modal Preview -->
<div class="modal fade" id="pdfModal" tabindex="-1" role="dialog" aria-labelledby="pdfModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content" style="height: 80vh;">
<div class="modal-header">
<h5 class="modal-title" id="pdfModalLabel">Preview PDF</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">{{-- <span aria-hidden="true">&times;</span> --}}</button>
</div>
<div class="modal-body">
{{-- <iframe id="pdfViewer" width="100%" height="100%" frameborder="0"></iframe> --}}
{{-- <iframe id="view-pdf" width="100%" height="450" frameborder="0" src="{{ $proposal ? 'https://statik.unesa.ac.id/simpkm/proposal/'.$proposal->rPeriode->nama.'/'.$proposal->upload_dokumen : '' }} "></iframe> --}}
<iframe id="view-pdf" width="100%" height="100%"></iframe>
</div>
</div>
</div>
</div>
@endsection
@section('js')
<script>
$(function(){
$('#input-file').change(function(){
var input = this;
var url = window.URL.createObjectURL(this.files[0]);
$('#view-pdf').attr('src',url);
$('#view-pdf').attr('height','500px');
})
})
// $(function(){
// $('#input-form').change(function(){
// var input = this;
// var url = window.URL.createObjectURL(this.files[0]);
// $('#view-pdf').attr('src',url);
// $('#view-pdf').attr('height','500px');
// })
// })
document.getElementById('btnPreview').addEventListener('click', function() {
var fileInput = document.getElementById('input-file');
var file = fileInput.files[0];
// Konversi ukuran maksimum menjadi bytes (5MB = 5 * 1024 * 1024 bytes)
var maxSize = 5 * 1024 * 1024;
if (file) {
if (file.type === "application/pdf") {
if (file.size <= maxSize) {
var reader = new FileReader();
reader.onload = function(e) {
var pdfData = e.target.result;
var iframe = document.getElementById('view-pdf');
iframe.src = pdfData;
var modal = new bootstrap.Modal(document.getElementById('pdfModal'));
modal.show();
};
reader.readAsDataURL(file);
} else {
alert("Ukuran file lebih dari 5MB. Harap unggah file yang lebih kecil.");
}
} else {
alert("Harap unggah file PDF untuk preview/submit.");
}
} else {
alert("Harap pilih file untuk diunggah.");
}
});
</script>
@endsection
......@@ -266,39 +266,41 @@
})
});
function confirmFinal(reqId, reqStatus)
{
if(reqStatus == '1')
{
function confirmFinal(reqId, reqStatus) {
if (reqStatus == '1') {
var kata = "Lolos seleksi!";
var desc = "meloloskan";
var dataModal = {
title: "Apakah Anda Yakin?",
text: "Anda akan "+desc+" data ini!. Berikan nominal dana yang disetujui",
text: "Anda akan " + desc + " data ini!\nBerikan nominal dana yang disetujui",
input: 'text',
icon: "warning",
showCancelButton: !0,
confirmButtonText: "Ya, "+ kata,
confirmButtonText: "Ya, " + kata,
cancelButtonText: "Tidak, Kembali!",
confirmButtonClass: "btn btn-success mt-2",
cancelButtonClass: "btn btn-danger ms-2 mt-2",
buttonsStyling: !1,
allowOutsideClick: !1,
showLoaderOnConfirm: true
};
showLoaderOnConfirm: true,
preConfirm: (value) => {
if (!value) {
Swal.showValidationMessage('Jumlah nominal dana yang disetujui harus diisi');
}
else
{
return value;
}
};
} else {
var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
var dataModal = {
title: "Apakah Anda Yakin?",
text: "Anda akan "+desc+" data ini!",
text: "Anda akan " + desc + " data ini!",
icon: "warning",
showCancelButton: !0,
confirmButtonText: "Ya, "+ kata,
confirmButtonText: "Ya, " + kata,
cancelButtonText: "Tidak, Kembali!",
confirmButtonClass: "btn btn-success mt-2",
cancelButtonClass: "btn btn-danger ms-2 mt-2",
......@@ -307,40 +309,40 @@
showLoaderOnConfirm: true
};
var dataAjax = {"_token": "{{ csrf_token() }}", id:reqId, status: reqStatus, dana: 0};
var dataAjax = {"_token": "{{ csrf_token() }}", id: reqId, status: reqStatus, dana: 0};
}
Swal.fire(dataModal).then((result) => {
if (result.value){
if (result.value) {
let dana = 0;
if(reqStatus == '1'){
if (reqStatus == '1') {
dana = result.value;
}
console.log(result.value);
$.ajax({
url:"{{ route('operator.seleksi-internal.approval') }}",
type:'POST',
data:{"_token": "{{ csrf_token() }}", id:reqId, status: reqStatus, dana:dana},
url: "{{ route('operator.seleksi-internal.approval') }}",
type: 'POST',
data: {"_token": "{{ csrf_token() }}", id: reqId, status: reqStatus, dana: dana},
dataType: "JSON",
})
.done(function(response){
swal.fire('Updated!', response.message, response.status).then(function(){
.done(function(response) {
swal.fire('Updated!', response.message, response.status).then(function() {
oTable.draw();
});
})
.fail(function(){
.fail(function() {
swal.fire('Oops...', 'Something went wrong with ajax !', 'error');
});
}
else
{
} else {
if (!result.dismiss) {
swal.fire('Batal!', 'Data batal diproses, karena belum input jumlah nominal dana yang disetujui.', 'error');
} else {
swal.fire('Batal!', 'Data batal diproses.', 'error');
}
})
}
});
}
function revisi(id)
{
......
......@@ -35,17 +35,18 @@
@if((($jadwal->tanggal_mulai <= Carbon\Carbon::now()) && ($jadwal->tanggal_selesai >= Carbon\Carbon::now())) || $jadwal->tanggal_mulai <= Carbon\Carbon::now())
<div class="table-responsive">
<table id="example" class="table table-bordered dt-responsive wrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<thead align="center" style="vertical-align: middle;">
<tr>
<th>id</th>
<th>No.</th>
<th>Kode Kelompok</th>
<th>Identitas Ketua</th>
<th>Identitas <br>Dosen Pembimbing</th>
<th>Jenis <br>PMW</th>
<th>Identitas Dosen Pembimbing</th>
<th>Jenis PMW</th>
<th>Judul Proposal</th>
<th>Catatan Harian <br>(Logbook)</th>
<th>Laporan <br>Kemajuan</th>
<th>Laporan <br>Luaran</th>
<th>Catatan Harian<br>(Logbook)</th>
<th>Laporan Kemajuan</th>
<th>Laporan Luaran</th>
<th>Nilai</th>
</tr>
</thead>
......@@ -76,15 +77,18 @@
},
columns: [
{ data: 'monev_internal_id' },
{ data: 'kode' },
{ data: null, render: function (data, type, row, meta) {
return meta.row + meta.settings._iDisplayStart + 1;
}, className: 'text-center' },
{ data: 'kode', className: 'text-center' },
{ data: 'identitas_ketua' },
{ data: 'identitas_dospem' },
{ data: 'jenis_pkm' },
{ data: 'judul' },
{ data: 'logbook' },
{ data: 'laporan_kemajuan' },
{ data: 'laporan_luaran' },
{ data: 'aksi' },
{ data: 'jenis_pkm', className: 'text-center' },
{ data: 'judul', className: 'text-center' },
{ data: 'logbook', className: 'text-center' },
{ data: 'laporan_kemajuan', className: 'text-center' },
{ data: 'laporan_luaran', className: 'text-center' },
{ data: 'aksi', className: 'text-center' },
],
columnDefs: [
{
......
......@@ -112,7 +112,8 @@
<input name="reviewer_monev_id" type="hidden" value="{{ $reviewer_monev->reviewer_monev_id?:'' }}">
<input name="jenis_monev_id" type="hidden" value="{{ $monev->jenis_monev_id?:'' }}">
<button type="submit" class="btn btn-primary waves-effect waves-light me-1"> Submit </button>
<button type="reset" class="btn btn-secondary waves-effect"> Cancel </button>
<button type="reset" class="btn btn-secondary waves-effect"> Reset </button>
<a href="javascript:history.back()" class="btn btn-danger waves-effect"> Cancel </a>
</div>
</div>
{{ Form::close() }}
......
......@@ -227,6 +227,8 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::get('monev-internal/{id}', [DaftarMonevController::class, 'index'])->name('monev-internal');
Route::resource('monev-internal', DaftarMonevController::class)->except(['index']);
Route::get('getDaftarMonev', [DaftarMonevController::class, 'getData'])->name('getDaftarMonev');
Route::get('/luaran/{id}', [luaranMahasiswa::class, 'dosen'])->name('luaran-reviewer');
});
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment