Skip to content
Snippets Groups Projects
Commit a013ac5b authored by Chiquita Ahsanunnisa's avatar Chiquita Ahsanunnisa
Browse files

fix: rev 1

parent bd69b193
2 merge requests!58final release,!40story: revisi rekap pendaftaran dosbim
......@@ -15,7 +15,7 @@ import { Pengguna, RoleEnum } from "src/entities/pengguna.entity";
import { Topik } from "src/entities/topik.entity";
import { generateQueryBuilderOrderByObj } from "src/helper/sorting";
import { validateId } from "src/helper/validation";
import { ArrayContains, DataSource, In, Repository } from "typeorm";
import { ArrayContains, Brackets, DataSource, In, Repository } from "typeorm";
import {
FindAllNewestRegRespDto,
IdDto,
......@@ -25,6 +25,7 @@ import {
UpdatePembimbingBodyDto,
UpdateStatusBodyDto,
} from "./registrasi-tesis.dto";
import * as dayjs from "dayjs";
@Injectable()
export class RegistrasiTesisService {
......@@ -270,17 +271,17 @@ export class RegistrasiTesisService {
if (options.search)
baseQuery.andWhere(
"mahasiswa.nama LIKE '%' || :search || '%' OR mahasiswa.nim LIKE '%' || :search || '%'",
{
search: options.search,
},
new Brackets((qb) =>
qb
.where("mahasiswa.nama ILIKE :search", {
search: `%${options.search}%`,
})
.orWhere("mahasiswa.nim ILIKE :search", {
search: `%${options.search}%`,
}),
),
);
if (options.idPenerima)
baseQuery.andWhere("penerima.id = :idPenerima", {
idPenerima: options.idPenerima,
});
if (options.status)
baseQuery.andWhere("pt.status = :status", {
status: options.status,
......@@ -383,6 +384,15 @@ export class RegistrasiTesisService {
dto: UpdateInterviewBodyDto,
idPenerima?: string,
) {
const minDate = new Date();
minDate.setDate(minDate.getDate() + 2);
if (dayjs(dto.date).isBefore(dayjs(minDate).endOf("d"))) {
throw new BadRequestException(
"Interview date must be at least 2 days from now",
);
}
const newestReg = await this.getNewestRegByMhs(mahasiswaId, periode);
if (newestReg && idPenerima && newestReg.penerima.id !== idPenerima) {
......@@ -465,14 +475,6 @@ export class RegistrasiTesisService {
) {
const newestReg = await this.getNewestRegByMhs(mahasiswaId, periode);
const penerimaId = newestReg.penerima.id;
if (!dosen_ids.includes(penerimaId)) {
throw new BadRequestException(
"Pembimbing pertama harus menjadi dosen pembimbing juga",
);
}
if (newestReg.status !== RegStatus.APPROVED)
throw new BadRequestException(
"Cannot update pembimbing on non-approved registration",
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment