108 lines
3.7 KiB
PHP
108 lines
3.7 KiB
PHP
<?php
|
|
|
|
session_start();
|
|
|
|
include '../../conf/koneksiPDO.php';
|
|
include '../../conf/function.php';
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
$search = $_GET['search']['value'];
|
|
$length = intval($_GET['length']);
|
|
$start = intval($_GET['start']);
|
|
$draw = $_GET['draw'];
|
|
$orderBy = $_GET['orderBy'];
|
|
$searchText = '%'.$search.'%';
|
|
|
|
$conn = new createCon();
|
|
$dbh = $conn->connect();
|
|
|
|
if (!isset($_SESSION['konsulDosen'])) {
|
|
echo getUnauthorizedMessage();
|
|
exit();
|
|
}
|
|
|
|
$orderQ = '';
|
|
switch ($orderBy) {
|
|
case 'judulTerbaru': $orderQ = ' ORDER BY tugas_akhir.idTugasAkhir DESC '; break;
|
|
case 'konsultasiTerbaru': $orderQ = ' ORDER BY waktuTerakhirKonsul DESC '; break;
|
|
case 'konsultasiTerlama': $orderQ = ' ORDER BY waktuTerakhirKonsul ASC '; break;
|
|
}
|
|
|
|
$whereSelesai = '';
|
|
if (isset($_GET['selesai'])) {
|
|
$selesai = $_GET['selesai'];
|
|
if ($selesai != 'all') {
|
|
$selesai = intval($selesai);
|
|
$whereSelesai = " AND selesai = '$selesai' ";
|
|
}
|
|
}
|
|
|
|
$nipDosen = $_SESSION['konsulDosen']['nip'];
|
|
|
|
$sql = "SELECT * FROM tugas_akhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim LEFT JOIN (SELECT * FROM konsultasi GROUP BY idTugasAkhir) t ON tugas_akhir.idTugasAkhir = t.idTugasAkhir WHERE (pemb1 = '$nipDosen' OR pemb2 = '$nipDosen') AND (judul LIKE :search OR nama LIKE :search2 OR tugas_akhir.nim LIKE :search3) AND keputusan = '1' $whereSelesai";
|
|
$stmt = $dbh->prepare($sql);
|
|
$stmt->bindParam(':search', $searchText);
|
|
$stmt->bindParam(':search2', $searchText);
|
|
$stmt->bindParam(':search3', $searchText);
|
|
$stmt->execute();
|
|
|
|
$totalData = $stmt->rowCount();
|
|
|
|
$sqlLimit = "SELECT tugas_akhir.idTugasAkhir, judul, nama, tugas_akhir.nim, semester, waktuTerakhirKonsul, selesai FROM tugas_akhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim LEFT JOIN (SELECT idTugasAkhir, MAX(timestamp) AS waktuTerakhirKonsul FROM konsultasi GROUP BY idTugasAkhir) t ON tugas_akhir.idTugasAkhir = t.idTugasAkhir WHERE (pemb1 = '$nipDosen' OR pemb2 = '$nipDosen') AND (judul LIKE :search OR nama LIKE :search2 OR tugas_akhir.nim LIKE :search3) AND keputusan = '1' $whereSelesai $orderQ LIMIT $start, $length";
|
|
$stmt = $dbh->prepare($sqlLimit);
|
|
$stmt->bindParam(':search', $searchText);
|
|
$stmt->bindParam(':search2', $searchText);
|
|
$stmt->bindParam(':search3', $searchText);
|
|
$stmt->execute();
|
|
$data = [];
|
|
|
|
$no = 1;
|
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
$noPushed = $start + $no;
|
|
$idTA = $row['idTugasAkhir'];
|
|
$judul = $row['judul'];
|
|
$nama = $row['nama'];
|
|
$nim = $row['nim'];
|
|
$semester = $row['semester'];
|
|
|
|
$waktuTerakhirKonsul = $row['waktuTerakhirKonsul'];
|
|
if ($waktuTerakhirKonsul == '') {
|
|
$diffDay = '';
|
|
$terakhirKonsulText = '-';
|
|
} else {
|
|
$timeAwal = intval($waktuTerakhirKonsul);
|
|
$timeAkhir = time();
|
|
$datediff = $timeAkhir - $timeAwal;
|
|
|
|
$diffDay = round($datediff / (60 * 60 * 24));
|
|
|
|
if ($diffDay < 0) {
|
|
$diffDay = 0;
|
|
}
|
|
$terakhirKonsulText = date('d-m-Y', $waktuTerakhirKonsul).'<br>('.$diffDay.' Hari)';
|
|
}
|
|
|
|
array_push($data, [
|
|
$noPushed,
|
|
$judul,
|
|
$nama.'<br>NIM <b>'.$nim.'</b>',
|
|
$semester,
|
|
$terakhirKonsulText,
|
|
$idTA,
|
|
intval($row['selesai']),
|
|
]
|
|
);
|
|
++$no;
|
|
}
|
|
|
|
$recordsTotal = $totalData;
|
|
|
|
$res = [];
|
|
$res['draw'] = $draw;
|
|
$res['recordsTotal'] = $recordsTotal;
|
|
$res['recordsFiltered'] = $recordsTotal;
|
|
$res['data'] = $data;
|
|
|
|
echo json_encode($res);
|