Files
spota-dev/dosen/page/skripsi/berkas_mahasiswa.php
Power BI Dev efdb11db3f Add SPOTA core PHP application
Add the main admin, dosen, mahasiswa, API, and service code needed to run the core legacy application with configurable upload storage.
2026-05-02 10:08:52 +07:00

310 lines
11 KiB
PHP

<div class="row">
<div class="col-sm-12">
<ol class="breadcrumb">
<li>
<i class="clip-home-3"></i>
<a href="<?php echo DOSEN_PAGE; ?>">
Home
</a>
</li>
<li class="active">
Penilaian
</li>
</ol>
<div class="page-header">
<h1> Penilaian Tugas Akhir <small></small></h1>
</div>
</div>
</div>
<?php
$db = new dB($dbsetting);
$nip = $_SESSION['login-dosen']['nip'];
$prodi = $_SESSION['login-dosen']['prodi'];
$check = "SELECT * FROM tbrekaphasil WHERE idProdi='$prodi'";
$db->runQuery($check);
$db2 = new dB($dbsetting);
if ($db->dbRows() > 0) {
$tab = "SELECT tbjadwal.id as idJadwal, tbjadwal.judul, tbjadwal.ruangan, tbjadwal.start, tbjadwal.jenis, t.* FROM tbjadwal LEFT JOIN (SELECT tbrekaphasil.*, tbmhs.idmhs, tbmhs.nmLengkap FROM tbrekaphasil LEFT JOIN tbmhs ON tbrekaphasil.nim = tbmhs.nim) t ON tbjadwal.idMhs = t.idmhs WHERE (t.pemb1 = '$nip' OR t.pemb2 = '$nip' OR t.peng1 = '$nip' OR t.peng2 = '$nip') ORDER BY start DESC";
$db->runQuery($tab); ?>
<div class="row">
<div class="col-md-12">
<!-- start: DYNAMIC TABLE PANEL -->
<div class="panel panel-default">
<div class="panel-body">
<table class="table table-striped table-bordered table-hover table-full-width" id="sample_1">
<thead>
<tr>
<th></th>
<th width="500px">Tugas Akhir Mahasiswa</th>
<th>Status Saya</th>
<th>Jenis</th>
<th>Waktu Sidang</th>
<th>Status</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
while ($table = $db->dbFetch()) {
$idJadwal = $table['idJadwal'];
$dbPemb1 = $table['pemb1'];
$dbPemb2 = $table['pemb2'];
$dbPeng1 = $table['peng1'];
$dbPeng2 = $table['peng2'];
$jenisSidang = $table['jenis'];
$idRekap = $table['id'];
$statusPemb = '';
$sql = "SELECT * FROM tb_verif_berkas WHERE idRekapHasil = '$idRekap' AND jenisSidang = '$jenisSidang'";
$db2->runQuery($sql);
if ($db2->dbRows() > 0) {
while ($dataVerif = $db2->dbFetch()) {
$verifPemb1 = $dataVerif['verifPemb1'];
$verifPemb2 = $dataVerif['verifPemb2'];
$verifPeng1 = $dataVerif['verifPeng1'];
$verifPeng2 = $dataVerif['verifPeng2'];
}
}
$valVerifPemb = 0;
$labelStatus = '<span class="label label-warning">Belum Diverifikasi</span>';
$statusDosen = '-';
if ($dbPemb1 == $nip) {
$statusDosen = 'Pembimbing 1';
$statusPemb = 'pemb1';
if ($verifPemb1 == '1') {
$labelStatus = '<span class="label label-success">Sudah Diverifikasi</span>';
$valVerifPemb = 1;
}
}
if ($dbPemb2 == $nip) {
$statusDosen = 'Pembimbing 2';
$statusPemb = 'pemb2';
if ($verifPemb2 == '1') {
$labelStatus = '<span class="label label-success">Sudah Diverifikasi</span>';
$valVerifPemb = 1;
}
}
if ($dbPeng1 == $nip) {
$statusDosen = 'Penguji 1';
$statusPemb = 'peng1';
if ($verifPeng1 == '1') {
$labelStatus = '<span class="label label-success">Sudah Diverifikasi</span>';
$valVerifPemb = 1;
}
}
if ($dbPeng2 == $nip) {
$statusDosen = 'Penguji 2';
$statusPemb = 'peng2';
if ($verifPeng2 == '1') {
$labelStatus = '<span class="label label-success">Sudah Diverifikasi</span>';
$valVerifPemb = 1;
}
}
$dbJenis = $table['jenis'];
$jenisSidang = '-';
switch ($dbJenis) {
case 'Outline': $jenisSidang = 'Sidang Outline'; break;
case 'Sidang': $jenisSidang = 'Sidang Akhir'; break;
case 'SidHas': $jenisSidang = 'Sidang Hasil'; break;
} ?>
<tr>
<td align="center"><i class="clip-bulb"></i></td>
<td><?php echo "<a href=?page=skripsi&menu=history&nim=$table[nim]><b>$table[judul]</b></a><br><br> <p>Oleh <i>$table[nmLengkap]</i></p>"; ?></td>
<td><?php echo $statusDosen; ?></td>
<td><?php echo $jenisSidang; ?></td>
<td><?php echo $table['start']; ?><br>Ruangan : <?php echo $table['ruangan']; ?></td>
<td><?php echo $labelStatus; ?></td>
<td>
<button type="button" class="btn btn-primary" onClick="showVerifBerkas('<?php echo $idRekap; ?>-<?php echo $dbJenis; ?>-<?php echo $valVerifPemb; ?>-<?php echo $statusPemb; ?>')">Ubah</button>
</td>
</tr>
<?php
} ?>
</tbody>
</table>
</div>
</div>
<!-- end: DYNAMIC TABLE PANEL -->
</div>
</div>
<div class="modal fade" id="berkasModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Berkas Mahasiswa</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<table class="table table-striped table-bordered table-hover ">
<thead>
<tr>
<th>No</th>
<th>Nama Berkas</th>
<th>File</th>
<th>Verifikasi Admin</th>
</tr>
</thead>
<tbody id="isiTabelBerkas"></tbody>
</table>
<input type="checkbox" id="checkBoxVerifBerkas"> Dengan ini saya menyatakan bahwa saya sudah mengecek kelengkapan berkas mahasiswa ini
<button class="btn btn-primary " onClick="simpanVerifBerkas()" style="margin-top:1rem;width:100%">Simpan</button>
</div>
</div>
</div>
</div>
<script>
let currentIdRekapBerkas = 0;
let currentJenisRekapBerkas = '';
let currentStatusPemb = '';
function showVerifBerkas(data){
let split = data.split('-');
currentIdRekapBerkas = split[0];
currentJenisRekapBerkas = split[1];
currentStatusPemb = split[3];
$('#berkasModal').modal('show');
if(split[2] == "1"){
$("#checkBoxVerifBerkas").prop('checked', true);
}else{
$("#checkBoxVerifBerkas").prop('checked', false);
}
refreshTabelBerkas();
}
function refreshTabelBerkas(){
let url = `../steven/API/getBerkasSidangMahasiswa.php?bypassSaya&idRekapHasil=${currentIdRekapBerkas}&jenis=${currentJenisRekapBerkas}`;
$('#isiTabelBerkas').html(`<tr><td colspan="4" style="text-align:center">Mengambil data</td></tr>`);
$.ajax({
url: url,
type:'GET',
dataType:'json',
contentType: false,
cache: false,
processData:false,
beforeSend:function(){
// $("#loading").show();
},
success:function(json){
const data = json.data;
let isiTabel = ``;
let no = 1;
for (var key in data) {
if (data.hasOwnProperty(key)){
const berkas = data[key];
const judul = berkas.judul;
const dataBerkas = berkas.data;
let adaBerkas = true;
if(dataBerkas == undefined || dataBerkas == null){
adaBerkas= false;
}else{
if(dataBerkas.file == null || dataBerkas.file == ""){
adaBerkas = false;
}
}
if(adaBerkas){
const verifikasiAdmin = Number(dataBerkas.status);
let labelVerif = `<span class="label label-warning">Belum diverifikasi</span>`;
if(verifikasiAdmin == 1){
labelVerif = `<span class="label label-success">Sudah diverifikasi</span>`;
}
isiTabel += `<tr><td>${no}</td><td>${judul}</td><td><a href="${dataBerkas.file}" target="_blank"><button class="btn btn-primary">Lihat File</button></a></td><td>${labelVerif}</td></tr>`;
}else{
isiTabel += `<tr><td>${no}</td><td>${judul}</td><td colspan="2">Belum diupload</td></tr>`;
}
no++;
}
}
$('#isiTabelBerkas').html(isiTabel);
},
error: function (jqXHR, exception) {
$('#isiTabelBerkas').html(`<tr><td colspan="4" style="text-align:center">Gagal mengambil data ${jqXHR.responseText} <br><button class="btn btn-primary" onClick="refreshTabelBerkas()">Coba Lagi</button></td></tr>`);
}
});
}
function simpanVerifBerkas(){
let valOK = 0;
if($('#checkBoxVerifBerkas').is(":checked")){
valOK = 1;
}
let formData = new FormData();
formData.append("verif", valOK);
formData.append("idRekap", currentIdRekapBerkas);
formData.append("jenis", currentJenisRekapBerkas);
formData.append("sebagai", currentStatusPemb);
$.ajax({
url:`../steven/API/verifBerkasDosen.php`,
type:'POST',
data:formData,
dataType:'json',
mimeType:'multipart/form-data',
contentType: false,
cache: false,
processData:false,
beforeSend:function(){
},
success:function(json){
if(json.status){
$('#berkasModal').modal('hide');
$.gritter.add({
title:'Sukses',
time: 1000,
text: json.msg,
after_close: function(){
location.reload();
}
});
}else{
$.gritter.add({
title:'Kesalahan',
time: 4000,
text: json.msg
});
}
},
error: function (jqXHR, exception) {
$.gritter.add({
title:'Kesalahan',
time: 4000,
text: jqXHR.responseText
});
}
});
}
</script>
<!-- end: PAGE CONTENT-->
<?php
} else {
echo "<div class='alert alert-danger'>Tidak Ada Data</div>";
}
?>