Add consultation module assets and libraries

This commit is contained in:
Power BI Dev
2026-05-02 10:11:07 +07:00
parent a52c2a8462
commit 5fb1151fea
1239 changed files with 392281 additions and 0 deletions

View 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,
]));