Add consultation module assets and libraries
This commit is contained in:
183
konsultasi/API/web/getKonsultasiHistory.php
Normal file
183
konsultasi/API/web/getKonsultasiHistory.php
Normal file
@@ -0,0 +1,183 @@
|
||||
<?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,
|
||||
]));
|
||||
Reference in New Issue
Block a user