184 lines
4.1 KiB
PHP
184 lines
4.1 KiB
PHP
<?php
|
|
|
|
session_start();
|
|
include '../../conf/koneksiPDO.php';
|
|
include '../../conf/function.php';
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
$conn = new createCon();
|
|
$dbh = $conn->connect();
|
|
|
|
checkKey('POST', 'token');
|
|
checkKey('POST', 'id');
|
|
checkKey('POST', 'tipe');
|
|
|
|
$token = trim($_POST['token']);
|
|
$tipe = strtolower(trim($_POST['tipe']));
|
|
$idTugasAkhir = intval($_POST['id']);
|
|
|
|
$mahasiswa = false;
|
|
$dosen = false;
|
|
switch ($tipe) {
|
|
case 'mahasiswa': $tabel = 'mahasiswa'; $mahasiswa = true; break;
|
|
case 'dosen': $tabel = 'dosen'; $dosen = true; break;
|
|
default: echo getUnknownTypeMessage(); exit();
|
|
}
|
|
|
|
$sql = "SELECT * FROM $tabel WHERE token = :token";
|
|
$stmt = $dbh->prepare($sql);
|
|
$stmt->bindParam(':token', $token);
|
|
$stmt->execute();
|
|
|
|
$nim = '';
|
|
$nip = '';
|
|
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
if ($mahasiswa) {
|
|
$nim = $row['nim'];
|
|
}
|
|
|
|
if ($dosen) {
|
|
$nip = $row['nip'];
|
|
}
|
|
}
|
|
|
|
$authorized = false;
|
|
|
|
$sql = 'SELECT * FROM tugas_akhir WHERE idTugasAkhir = :id';
|
|
$stmt = $dbh->prepare($sql);
|
|
$stmt->bindParam(':id', $idTugasAkhir);
|
|
$stmt->execute();
|
|
|
|
if ($stmt->rowCount() == 0) {
|
|
echo getKonsultasiNotFoundMessage();
|
|
exit();
|
|
}
|
|
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
$pemb1 = $row['pemb1'];
|
|
$pemb2 = $row['pemb2'];
|
|
|
|
if ($mahasiswa) {
|
|
$nimTA = $row['nim'];
|
|
if ($nim == $nimTA) {
|
|
$authorized = true;
|
|
}
|
|
}
|
|
|
|
if ($dosen) {
|
|
$isPemb1 = false;
|
|
$isPemb2 = false;
|
|
if (($pemb1 == $nip)) {
|
|
$isPemb1 = true;
|
|
$authorized = true;
|
|
}
|
|
|
|
if (($pemb2 == $nip)) {
|
|
$isPemb2 = true;
|
|
$authorized = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!$authorized) {
|
|
echo getUnauthorizedMessage();
|
|
exit();
|
|
}
|
|
|
|
$sql = "SELECT * FROM dosen WHERE nip IN('$pemb1','$pemb2')";
|
|
$stmt = $dbh->prepare($sql);
|
|
$stmt->execute();
|
|
|
|
$namaPemb1 = '-';
|
|
$namaPemb2 = '-';
|
|
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
$nipDb = $row['nip'];
|
|
if ($nipDb == $pemb1) {
|
|
$namaPemb1 = $row['namaDosen'];
|
|
}
|
|
|
|
if ($nipDb == $pemb2) {
|
|
$namaPemb2 = $row['namaDosen'];
|
|
}
|
|
}
|
|
|
|
$sql = 'SELECT * FROM konsultasi WHERE idTugasAkhir = :id ORDER BY DATE(tanggal) DESC';
|
|
$stmt = $dbh->prepare($sql);
|
|
$stmt->bindParam(':id', $idTugasAkhir);
|
|
$stmt->execute();
|
|
|
|
$data = [];
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
$timestamp = $row['timestamp'];
|
|
$waktuText = $row['tanggal'];
|
|
$topik = $row['topik'];
|
|
$timestampDosen1 = intval($row['timestampDosen1']);
|
|
$timestampDosen2 = intval($row['timestampDosen2']);
|
|
$catatanPemb1 = $row['catatanDosen1'];
|
|
$catatanPemb2 = $row['catatanDosen2'];
|
|
if ($catatanPemb1 == '') {
|
|
$catatanPemb1 = 'Tidak Ada Catatan';
|
|
}
|
|
|
|
if ($catatanPemb2 == '') {
|
|
$catatanPemb2 = 'Tidak Ada Catatan';
|
|
}
|
|
|
|
$editable = true;
|
|
if ($timestampDosen1 > 0 || $timestampDosen2 > 0) {
|
|
$editable = false;
|
|
}
|
|
|
|
$verifPemb1 = false;
|
|
if ($timestampDosen1 > 0) {
|
|
$verifPemb1 = true;
|
|
}
|
|
|
|
$verifPemb2 = false;
|
|
if ($timestampDosen2 > 0) {
|
|
$verifPemb2 = true;
|
|
}
|
|
|
|
if ($dosen) {
|
|
if ($isPemb1) {
|
|
if ($verifPemb1) {
|
|
$editable = false;
|
|
} else {
|
|
$editable = true;
|
|
}
|
|
}
|
|
|
|
if ($isPemb2) {
|
|
if ($verifPemb2) {
|
|
$editable = false;
|
|
} else {
|
|
$editable = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
array_push($data, [
|
|
'id' => $row['idKonsul'],
|
|
'waktu' => $waktuText,
|
|
'editable' => $editable,
|
|
'isPemb1' => $isPemb1,
|
|
'isPemb2' => $isPemb2,
|
|
'topik' => $topik,
|
|
'pemb1' => $namaPemb1,
|
|
'verifPemb1' => $verifPemb1,
|
|
'waktuPemb1' => date('d-m-Y H:i:s', $timestampDosen1),
|
|
'catatanPemb1' => $catatanPemb1,
|
|
'pemb2' => $namaPemb2,
|
|
'verifPemb2' => $verifPemb2,
|
|
'waktuPemb2' => date('d-m-Y H:i:s', $timestampDosen2),
|
|
'catatanPemb2' => $catatanPemb2,
|
|
]);
|
|
}
|
|
|
|
echo json_encode(utf8ize([
|
|
'status' => 1,
|
|
'data' => $data,
|
|
]));
|