Add SPOTA core PHP application

Add the main admin, dosen, mahasiswa, API, and service code needed to run the core legacy application with configurable upload storage.
This commit is contained in:
Power BI Dev
2026-05-02 10:08:52 +07:00
parent 874dbbe8e8
commit efdb11db3f
221 changed files with 43273 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
<?php
session_start();
include '../../steven/conf/koneksiPDO.php';
include '../../steven/conf/function.php';
$conn = new createCon();
$dbh = $conn->connect();
header('Content-Type: application/json');
if (!isset($_SESSION['login-dosen'])) {
echo json_encode(['status' => 403, 'msg' => 'Forbidden']);
exit;
}
$nim = $_GET['nim'];
$url = "https://informatika.untan.ac.id/API/public/get_detail_mahasiswa.php?key=MfQE6ej2ffxEKgVx7YXVA3HbHg3d4hRhXyBnRnYgkjwuSaLNW2V5PxeVSKWySUsbbhVyEWVSs&nim=$nim";
$getDetailMahasiswa = file_get_contents($url);
$decodedDetailMahasiswa = json_decode($getDetailMahasiswa, true);
if(!isset($decodedDetailMahasiswa['status'])){
echo json_encode([
'status' => 0,
'msg' => 'Tidak dapat mengakses API biodata informatika',
]);
exit;
}
if($decodedDetailMahasiswa['status'] == "0"){
echo json_encode([
'status' => 0,
'msg' => $decodedDetailMahasiswa['msg'],
]);
exit;
}
$data = $decodedDetailMahasiswa['data'];
echo json_encode(utf8ize(['status' => 1, 'data' => $data]));
?>

View File

@@ -0,0 +1,144 @@
<?php
session_start();
include '../../steven/conf/koneksiPDO.php';
include '../../steven/conf/function.php';
$conn = new createCon();
$dbh = $conn->connect();
header('Content-Type: application/json');
if (!isset($_SESSION['login-dosen'])) {
echo json_encode(['status' => 403, 'msg' => 'Forbidden']);
exit;
}
$lewat = intval($_GET['lewat']);
$bimbingan = intval($_GET['bimbingan']);
$nipDosen = $_SESSION['login-dosen']['nip'];
$whereLewat = '';
$whereBimbingan = '';
$time1Year = strtotime(date('Y-m-d').' -1 year');
$date1Year = date('Y-m-d', $time1Year);
if ($lewat == 0) {
$whereLewat = " AND tgl_kep >= '$date1Year'";
}
if ($lewat == 1) {
$whereLewat = " AND tgl_kep < '$date1Year'";
}
if ($bimbingan == 0) {
$whereBimbingan = " AND (pemb1 = '$nipDosen' OR pemb2 = '$nipDosen') ";
}
$listTahunMasukMahasiswa = [];
$sql = "SELECT * FROM tbmhs";
$stmt = $dbh->prepare($sql);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$nimDb = $row['nim'];
$thnMasukDb = $row['thnmasuk'];
$listTahunMasukMahasiswa[$nimDb] = intval($thnMasukDb);
}
$sql = "SELECT * FROM tbrekaphasil LEFT JOIN (SELECT tbjadwal.id as idJadwal, tbjadwal.idMhs as idMahasiswa, tbmhs.nim as nimMahasiswa FROM tbjadwal LEFT JOIN tbmhs ON tbjadwal.idMhs = tbmhs.idmhs WHERE tbjadwal.jenis = 'Sidang' AND tbjadwal.publish = 'Y') tJadwal ON tbrekaphasil.nim = tJadwal.nimMahasiswa WHERE kep_akhir = 1 $whereLewat $whereBimbingan ORDER BY tgl_kep ASC";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$currentYear = date('Y');
$limitYear = $currentYear - 8;
$listData = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$idJadwal = $row['idJadwal'];
$nim = $row['nim'];
if(isset($listTahunMasukMahasiswa[$nim])){
$tahunMasuk = $listTahunMasukMahasiswa[$nim];
if($tahunMasuk < $limitYear){
continue;
}
}
if ($idJadwal == null) {
$nim = $row['nim'];
$sql = "SELECT * FROM tbmhs WHERE nim = '$nim'";
$stmt1 = $dbh->prepare($sql);
$stmt1->bindParam(':nim', $nim);
$stmt1->execute();
$namaMahasiswa = '';
$idMhs = '';
while ($row1 = $stmt1->fetch(PDO::FETCH_ASSOC)) {
$namaMahasiswa = $row1['nmLengkap'];
$idMhs = $row1['idmhs'];
}
$sql = "SELECT * FROM tbjadwal WHERE idMhs = '$idMhs' AND jenis = 'Outline'";
$stmt1 = $dbh->prepare($sql);
$stmt1->execute();
$tanggalSeminar = null;
while ($row1 = $stmt1->fetch(PDO::FETCH_ASSOC)) {
$tanggalSeminar = $row1['start'];
$arrTglSeminar = explode(' ', $tanggalSeminar);
if (sizeof($arrTglSeminar) > 0) {
$arrYmd = explode('-', $arrTglSeminar[0]);
$tanggalSeminar = $arrYmd[2].'-'.$arrYmd[1].'-'.$arrYmd[0];
}
}
$tglKep = $row['tgl_kep'];
$date1 = date_create(date('Y-m-d'));
$date2 = date_create($tglKep);
$diff = date_diff($date1, $date2);
$diffHari = intval($diff->format('%a'));
$lewatHari = intval($diff->format('%d'));
$diffTahun = intval($diff->format('%y'));
$diffBulan = intval($diff->format('%m'));
if ($diffTahun > 0) {
$diffBulan = ($diffTahun * 12) + $diffBulan;
}
if ($lewatHari > 0) {
++$diffBulan;
}
if ($diffBulan > 12) {
$diffBulan = 12;
}
array_push($listData, [
'id' => $row['idpraoutline'],
'nama' => $namaMahasiswa,
'nim' => $row['nim'],
'judul' => $row['judul_final'],
'pemb1' => $row['pemb1'],
'pemb2' => $row['pemb2'],
'peng1' => $row['peng1'],
'peng2' => $row['peng2'],
'tglKeputusan' => date('d-m-Y', strtotime($row['tgl_kep'])),
'semester' => $row['semester'],
'tahun' => $row['tahun_ajaran'],
'waktuBerjalan' => $diffHari,
'bulanBerjalan' => $diffBulan,
'tanggalSeminar' => $tanggalSeminar,
]);
}
}
echo json_encode(utf8ize($listData));

View File

@@ -0,0 +1,147 @@
<?php
session_start();
include '../../steven/conf/koneksiPDO.php';
include '../../steven/conf/function.php';
$conn = new createCon();
$dbh = $conn->connect();
header('Content-Type: application/json');
if (!isset($_SESSION['login-dosen'])) {
echo json_encode(['status' => 403, 'msg' => 'Forbidden']);
exit;
}
$lewat = intval($_GET['lewat']);
$bimbingan = intval($_GET['bimbingan']);
$nipDosen = $_SESSION['login-dosen']['nip'];
$whereLewat = '';
$whereBimbingan = '';
$time1Year = strtotime(date('Y-m-d').' -1 year');
$date1Year = date('Y-m-d', $time1Year);
if ($lewat == 0) {
$whereLewat = " AND start >= '$date1Year'";
}
if ($lewat == 1) {
$whereLewat = " AND start < '$date1Year'";
}
if ($bimbingan == 0) {
$whereBimbingan = " AND (pemb1 = '$nipDosen' OR pemb2 = '$nipDosen') ";
}
$listTahunMasukMahasiswa = [];
$sql = "SELECT * FROM tbmhs";
$stmt = $dbh->prepare($sql);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$nimDb = $row['nim'];
$thnMasukDb = $row['thnmasuk'];
$listTahunMasukMahasiswa[$nimDb] = intval($thnMasukDb);
}
$sql = "SELECT * FROM tbrekaphasil LEFT JOIN (SELECT tbjadwal.id as idJadwal, tbjadwal.idMhs as idMahasiswa, tbmhs.nim as nimMahasiswa, start as tanggalSeminar, thnmasuk FROM tbjadwal LEFT JOIN tbmhs ON tbjadwal.idMhs = tbmhs.idmhs WHERE tbjadwal.jenis = 'Outline' AND tbjadwal.publish = 'Y' $whereLewat) tJadwal ON tbrekaphasil.nim = tJadwal.nimMahasiswa WHERE kep_akhir = 1 $whereBimbingan ORDER BY tanggalSeminar ASC";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$currentYear = date('Y');
$limitYear = $currentYear - 8;
$listData = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$idJadwal = $row['idJadwal'];
$nim = $row['nim'];
if(isset($listTahunMasukMahasiswa[$nim])){
$tahunMasuk = $listTahunMasukMahasiswa[$nim];
if($tahunMasuk < $limitYear){
continue;
}
}
$idMhs = $row['idMahasiswa'];
$tanggalSeminar = $row['tanggalSeminar'];
$tanggalSeminarYmd = $row['tanggalSeminar'];
$arrTglSeminar = explode(' ', $tanggalSeminar);
if (sizeof($arrTglSeminar) > 0) {
//$tanggalSeminar = date('d-m-Y', $arrTglSeminar[0]);
$arrYmd = explode('-', $arrTglSeminar[0]);
$tanggalSeminar = $arrYmd[2].'-'.$arrYmd[1].'-'.$arrYmd[0];
}
if ($idJadwal != null) {
$nim = $row['nim'];
$sql = "SELECT * FROM tbjadwal WHERE idMhs = '$idMhs' AND jenis = 'Sidang'";
$stmt1 = $dbh->prepare($sql);
$stmt1->execute();
if ($stmt1->rowCount() > 0) {
continue;
}
$sql = "SELECT * FROM tbmhs WHERE nim = '$nim'";
$stmt1 = $dbh->prepare($sql);
//$stmt1->bindParam(':nim', $nim);
$stmt1->execute();
$namaMahasiswa = '';
while ($row1 = $stmt1->fetch(PDO::FETCH_ASSOC)) {
$namaMahasiswa = $row1['nmLengkap'];
}
$tglKep = $row['tgl_kep'];
$date1 = date_create(date('Y-m-d'));
$date2 = date_create($tanggalSeminarYmd);
$diff = date_diff($date1, $date2);
$diffHari = intval($diff->format('%a'));
$lewatHari = intval($diff->format('%d'));
$diffTahun = intval($diff->format('%y'));
$diffBulan = intval($diff->format('%m'));
if ($diffTahun > 0) {
$diffBulan = ($diffTahun * 12) + $diffBulan;
}
if ($lewatHari > 0) {
++$diffBulan;
}
if ($diffBulan > 12) {
$diffBulan = 12;
}
array_push($listData, [
'id' => $row['idpraoutline'],
'nama' => $namaMahasiswa,
'nim' => $row['nim'],
'tanggalSeminar' => $tanggalSeminar,
'judul' => $row['judul_final'],
'pemb1' => $row['pemb1'],
'pemb2' => $row['pemb2'],
'peng1' => $row['peng1'],
'peng2' => $row['peng2'],
'tglKeputusan' => date('d-m-Y', strtotime($row['tgl_kep'])),
'semester' => $row['semester'],
'tahun' => $row['tahun_ajaran'],
'waktuBerjalan' => $diffHari,
'bulanBerjalan' => $diffBulan,
]);
}
}
echo json_encode(utf8ize($listData));

View File

@@ -0,0 +1,136 @@
<?php
session_start();
include '../../steven/conf/koneksiPDO.php';
include '../../steven/conf/function.php';
$conn = new createCon();
$dbh = $conn->connect();
header('Content-Type: application/json');
if (!isset($_SESSION['login-dosen'])) {
echo json_encode(['status' => 403, 'msg' => 'Forbidden']);
exit;
}
$status = $_GET['status'];
$sumber = $_GET['sumber'];
$kk = "all";
if(isset($_GET['kk'])){
$kk = $_GET['kk'];
}
$idDosen = $_SESSION['login-dosen']['id'];
$whereDosen = "";
if($sumber == "0"){
$whereDosen = "WHERE idDosen = '$idDosen' ";
}
$sql = "SELECT * FROM tbdosen";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$listNamaDosen = [];
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$listNamaDosen[$row['iddosen']] = $row['nmLengkap'];
}
$sql = "SELECT * FROM tb_kelompok_keahlian";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$listKK = [];
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$listKK[$row['idKK']] = $row;
}
$sql = "SELECT tData.*, tbmhs.nim, tbmhs.nmLengkap FROM (SELECT * FROM tb_penawaran_judul LEFT JOIN (SELECT t.idPenawaranAmbil, t.idMhs, t.statusPengambilan, t.waktuPengambilan, t.waktuVerifikasi, r.maxWaktu
FROM (
SELECT idPenawaranAmbil, MAX(waktuPengambilan) as maxWaktu
FROM tb_ambil_judul
GROUP BY idPenawaranAmbil
) r
INNER JOIN tb_ambil_judul t
ON t.idPenawaranAmbil = r.idPenawaranAmbil AND t.waktuPengambilan = r.maxWaktu) as tAmbil ON tb_penawaran_judul.idPenawaran = tAmbil.idPenawaranAmbil $whereDosen) tData LEFT JOIN tbmhs ON tData.idMhs = tbmhs.idmhs ORDER BY waktuInput DESC";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$listData = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$judul = $row['judul'];
$idPenawaran = $row['idPenawaran'];
$waktuInput = $row['waktuInput'];
$statusDb = $row['statusPengambilan'];
$namaMhs = $row['nmLengkap'];
$nimMhs = $row['nim'];
$deskripsi = $row['deskripsi'];
$kkDb = $row['kk'];
if($kk != "all"){
if($kk != $kkDb){
continue;
}
}
if($statusDb == "2"){
$namaMhs = null;
}
if($status != "Semua"){
if($status == "Belum Diambil"){
if(!($statusDb == null || $statusDb == "2")){
continue;
}
}
if($status == "Belum Diproses"){
if(!($statusDb == "0")){
continue;
}
}
if($status == "Diterima"){
if(!($statusDb == "1")){
continue;
}
}
}
$saya = false;
if($row['idDosen'] == $idDosen){
$saya = true;
}
$namaDosen = '-';
if(isset($listNamaDosen[$row['idDosen']])){
$namaDosen = $listNamaDosen[$row['idDosen']];
}
$labelKK = "<label class='label label-default'>-</label>";
if(isset($listKK[$kkDb])){
$warnaKK = $listKK[$kkDb]['warnaLabel'];
$namaKK = $listKK[$kkDb]['namaKK'];
$labelKK = "<label class='label label-$warnaKK'>$namaKK</label>";
}
array_push($listData, [
'id' => $idPenawaran,
'judul' => $judul,
'waktuInput' => date('d-m-Y H:i:s', strtotime($waktuInput)),
'status' => $statusDb,
'nama' => $namaMhs,
'nim' => $nimMhs,
'deskripsi' => $deskripsi,
'diuploadSaya' => $saya,
'namaDosen' => $namaDosen,
'kk' => $kkDb,
'label' => $labelKK,
]);
}
echo json_encode(utf8ize($listData));
?>

View File

@@ -0,0 +1,83 @@
<?php
session_start();
include '../../steven/conf/koneksiPDO.php';
include '../../steven/conf/function.php';
$conn = new createCon();
$dbh = $conn->connect();
header('Content-Type: application/json');
if (!isset($_SESSION['login-dosen'])) {
echo json_encode(['status' => 403, 'msg' => 'Forbidden']);
exit;
}
$dateStart = $_GET['dateStart'];
$dateEnd = $_GET['dateEnd'];
$idDosen = $_SESSION['login-dosen']['id'];
$sql = "SELECT * FROM tbjadwal LEFT JOIN tbmhs ON tbjadwal.idMhs = tbmhs.idmhs WHERE start >= :start AND start <= :end AND publish = 'Y' AND (idPemb1 = '$idDosen' OR idPemb2 = '$idDosen' OR idPeng1 = '$idDosen' OR idPeng2 = '$idDosen')";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':start', $dateStart);
$stmt->bindParam(':end', $dateEnd);
$stmt->execute();
$listOutline = [];
$listSidHas = [];
$listSidang = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nimMahasiswa = $row['nim'];
$namaMahasiswa = $row['nmLengkap'];
$judul = $row['judul'];
$tanggal = date('d-m-Y H:i:s', strtotime($row['start']));
$sebagai = '';
if($row['idPemb1'] == $idDosen){
$sebagai = 'Pembimbing 1';
}
if($row['idPemb2'] == $idDosen){
$sebagai = 'Pembimbing 2';
}
if($row['idPeng1'] == $idDosen){
$sebagai = 'Penguji 1';
}
if($row['idPeng2'] == $idDosen){
$sebagai = 'Penguji 2';
}
$data = [
'nim' => $nimMahasiswa,
'nama' => $namaMahasiswa,
'judul' => $judul,
'tanggal' => $tanggal,
'sebagai' => $sebagai,
];
switch($row['jenis']){
case 'Outline' :
array_push($listOutline, $data);
break;
case 'SidHas' :
array_push($listSidHas, $data);
break;
case 'Sidang' :
array_push($listSidang, $data);
break;
}
}
echo json_encode(utf8ize([
'dateStart' => date('d-m-Y', strtotime($dateStart)),
'dateEnd' => date('d-m-Y', strtotime($dateEnd)),
'outline' => $listOutline,
'sidHas' => $listSidHas,
'sidang' => $listSidang,
]));