connect(); header('Content-Type: application/json'); $loginDosen = requireSessionRole('dosen'); $idRekapHasil = isset($_POST['idRekap']) ? (int) $_POST['idRekap'] : 0; $jenis = isset($_POST['jenis']) ? trim((string) $_POST['jenis']) : ''; $verif = isset($_POST['verif']) ? (int) $_POST['verif'] : 0; $sebagai = isset($_POST['sebagai']) ? trim((string) $_POST['sebagai']) : ''; if ($idRekapHasil <= 0 || $jenis === '' || $sebagai === '') { jsonResponse(['status' => false, 'msg' => 'Parameter tidak lengkap'], 422); } $sql = 'SELECT pemb1, pemb2, peng1, peng2 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' => false, 'msg' => 'Data Not Found'], 404); } $dosenNip = isset($loginDosen['nip']) ? (string) $loginDosen['nip'] : ''; switch ($sebagai) { case 'pemb1': $fieldName = 'verifPemb1'; $expectedNip = (string) $rekap['pemb1']; break; case 'pemb2': $fieldName = 'verifPemb2'; $expectedNip = (string) $rekap['pemb2']; break; case 'peng1': $fieldName = 'verifPeng1'; $expectedNip = (string) $rekap['peng1']; break; case 'peng2': $fieldName = 'verifPeng2'; $expectedNip = (string) $rekap['peng2']; break; default: jsonResponse(['status' => false, 'msg' => 'Status Dosen Tidak Dikenali'], 422); } if ($expectedNip === '' || $expectedNip !== $dosenNip) { jsonResponse(['status' => false, 'msg' => 'Forbidden'], 403); } $sql = 'SELECT id FROM tb_verif_berkas WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenis'; $stmt = $dbh->prepare($sql); $stmt->bindParam(':idRekapHasil', $idRekapHasil); $stmt->bindParam(':jenis', $jenis); $stmt->execute(); if ($stmt->rowCount() === 0) { $sql = 'INSERT INTO tb_verif_berkas(idRekapHasil, jenisSidang, catatanDariAdmin, verifPemb1, verifPemb2, verifPeng1, verifPeng2) VALUES(:idRekapHasil, :jenis, "", 0, 0, 0, 0)'; $stmt = $dbh->prepare($sql); $stmt->bindParam(':idRekapHasil', $idRekapHasil); $stmt->bindParam(':jenis', $jenis); $stmt->execute(); } $sql = "UPDATE tb_verif_berkas SET {$fieldName} = :verif WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenis"; $stmt = $dbh->prepare($sql); $stmt->bindParam(':verif', $verif); $stmt->bindParam(':idRekapHasil', $idRekapHasil); $stmt->bindParam(':jenis', $jenis); $stmt->execute(); echo json_encode([ 'status' => true, 'msg' => 'Verifikasi berhasil', ]);