connect(); header('Content-Type: application/json'); if (!isset($_GET['bypassSaya'])) { $loginMhs = requireSessionRole('mhs'); $nim = $loginMhs['nim']; } else { $loginDosen = isset($_SESSION['login-dosen']) ? $_SESSION['login-dosen'] : null; $loginAdmin = isset($_SESSION['login-admin']) ? $_SESSION['login-admin'] : null; if (!is_array($loginDosen) && !is_array($loginAdmin)) { jsonResponse(['status' => 403, 'msg' => 'Forbidden'], 403); } } $idRekapHasil = isset($_GET['idRekapHasil']) ? (int) $_GET['idRekapHasil'] : 0; $jenis = isset($_GET['jenis']) ? trim((string) $_GET['jenis']) : ''; if ($idRekapHasil <= 0 || $jenis === '') { jsonResponse(['status' => 0, 'msg' => 'Parameter tidak lengkap'], 422); } $sql = 'SELECT * FROM tbrekaphasil WHERE id = :idRekapHasil'; $stmt = $dbh->prepare($sql); $stmt->bindParam(':idRekapHasil', $idRekapHasil); $stmt->execute(); $rekap = $stmt->fetch(PDO::FETCH_ASSOC); if (!$rekap) { jsonResponse(['status' => 0, 'msg' => 'Data Not Found'], 404); } if (!isset($_GET['bypassSaya'])) { if ($rekap['nim'] !== $nim) { jsonResponse(['status' => 403, 'msg' => 'Forbidden'], 403); } } elseif (!is_array($loginAdmin)) { $dosenNip = isset($loginDosen['nip']) ? (string) $loginDosen['nip'] : ''; $allowedNips = [ (string) $rekap['pemb1'], (string) $rekap['pemb2'], (string) $rekap['peng1'], (string) $rekap['peng2'], ]; if ($dosenNip === '' || !in_array($dosenNip, $allowedNips, true)) { jsonResponse(['status' => 403, 'msg' => 'Forbidden'], 403); } } $sql = 'SELECT * FROM tb_verif_berkas WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenisSidang'; $stmt = $dbh->prepare($sql); $stmt->bindParam(':idRekapHasil', $idRekapHasil); $stmt->bindParam(':jenisSidang', $jenis); $stmt->execute(); $catatanAdmin = ''; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $catatanAdmin = $row['catatanDariAdmin']; } $sql = 'SELECT * FROM tb_berkas_sidang WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenisSidang'; $stmt = $dbh->prepare($sql); $stmt->bindParam(':idRekapHasil', $idRekapHasil); $stmt->bindParam(':jenisSidang', $jenis); $stmt->execute(); $listBerkas = []; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $namaBerkas = $row['nama']; $idBerkas = $row['idBerkas']; $driveId = $row['driveId']; $status = $row['status']; if ($driveId != null && $driveId != '') { $driveId = 'https://drive.google.com/open?id='.$driveId; } array_push($listBerkas, [ 'id' => $idBerkas, 'nama' => $namaBerkas, 'file' => $driveId, 'status' => $status, ]); } $berkasSidang = []; switch ($jenis) { case 'Sidang': $berkasSidang = [ 'ktm' => ['judul' => 'Kartu Tanda Mahasiswa (KTM) terakhir', 'data' => null], 'spp' => ['judul' => 'Tanda Bukti Pembayaran SPP terakhir', 'data' => null], 'foto' => ['judul' => 'Pas Photo ukuran 3x4 = 3 lembar (Warna Latar Belakang Biru)', 'data' => null], 'lirs' => ['judul' => 'Lembaran Isian Rencana Studi (LIRS) terakhir', 'data' => null], 'transkrip' => ['judul' => 'Rekapitulasi Nilai Terakhir (Transkrip)', 'data' => null], 'buktiAbsen' => ['judul' => 'Bukti Absen Seminar Outline Skripsi', 'data' => null], 'beritaAcaraSeminarOutline' => ['judul' => 'Berita Acara Seminar Outline Skripsi', 'data' => null], 'suratRekomendasiSidang' => ['judul' => 'Surat Rekomendasi Pelaksanaan Sidang Akhir Skripsi Secara Daring dari Jurusan/Program Studi', 'data' => null], 'bebasReferensiTeknik' => ['judul' => 'Bebas Referensi Fakultas Teknik', 'data' => null], 'bebasReferensiUntan' => ['judul' => 'Bebas Referensi UNTAN', 'data' => null], 'bebasReferensiPerpusDaerah' => ['judul' => 'Bebas Referensi Perpustakaan Daerah', 'data' => null], 'TI08' => ['judul' => 'Siap Sidang TI. 08', 'data' => null], 'buktiUploadJurnal' => ['judul' => 'Bukti Upload Jurnal ( Teknik Informatika)', 'data' => null], 'ifTA07' => ['judul' => 'Format IF-TA-07', 'data' => null], 'b4' => ['judul' => 'Kartu Konsultasi Skripsi (B4)', 'data' => null], 'b1' => ['judul' => 'Format B.1', 'data' => null], 'b5' => ['judul' => 'Format B.5', 'data' => null], 'suratWisuda' => ['judul' => 'Surat Pernyataan Wisuda', 'data' => null], 'biodataSarjana' => ['judul' => 'Biodata Sarjana Baru', 'data' => null], 'ijazahSMA' => ['judul' => 'Ijazah SMA', 'data' => null], 'toefl' => ['judul' => 'Sertifikat TOEFL (nilai min. 425)', 'data' => null], 'kartuKeluarga' => ['judul' => 'Kartu Keluarga', 'data' => null], 'ktp' => ['judul' => 'KTP', 'data' => null], 'skripsi' => ['judul' => 'Skripsi/Tugas Akhir', 'data' => null], ]; break; default: echo json_encode(['status' => 0, 'msg' => 'Jenis tidak dikenali']); exit; } foreach ($berkasSidang as $key => $val) { foreach ($listBerkas as $key2 => $val2) { if ($key == $val2['nama']) { $berkasSidang[$key]['data'] = $val2; } } } echo json_encode(utf8ize(['status' => 1, 'data' => $berkasSidang, 'catatanAdmin' => $catatanAdmin]));