new ep api to assign and cancel table

This commit is contained in:
2026-01-28 12:51:55 -06:00
parent d322b39aeb
commit 630040857a
8 changed files with 69 additions and 12 deletions
+31 -2
View File
@@ -10,8 +10,16 @@ export class BitacoraMesaService {
@InjectRepository(BitacoraMesa)
private readonly bitacoraMesaRepository: Repository<BitacoraMesa>,
) {}
create(createBitacoraMesaDto: CreateBitacoraMesaDto) {
return 'This action adds a new bitacoraMesa';
async assignment(dto: CreateBitacoraMesaDto) {
const bitacora = this.bitacoraMesaRepository.create({
tiempo_entrada: new Date(),
tiempo_asignado: dto.tiempo_asignado,
mesa: { id_mesa: dto.id_mesa },
alumno_inscrito: { id_alumno_inscrito: dto.id_alumno_inscrito },
});
return this.bitacoraMesaRepository.save(bitacora);
}
findAll() {
@@ -33,6 +41,11 @@ export class BitacoraMesaService {
.leftJoinAndSelect('alumno.carrera', 'carrera')
.leftJoinAndSelect('bitacora.mesa', 'mesa')
.where('alumno.id_cuenta = :id_cuenta', { id_cuenta })
.andWhere(
`TIMESTAMPDIFF(SECOND,NOW(),DATE_ADD(bitacora.tiempo_entrada, INTERVAL bitacora.tiempo_asignado MINUTE)) > 0`,
)
.orderBy('bitacora.tiempo_entrada', 'DESC')
.getOne();
@@ -42,4 +55,20 @@ export class BitacoraMesaService {
return student;
}
async cancelation(id_mesa: number, nuevoTiempo: number) {
const bitacora = await this.bitacoraMesaRepository.findOne({
where: { mesa:{id_mesa} },
});
if (!bitacora) {
throw new NotFoundException('alumno sin mesa asignada');
}
bitacora.tiempo_asignado -= nuevoTiempo;
await this.bitacoraMesaRepository.save(bitacora);
return { message: 'Tiempo cancelado' };
}
}