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