From 1ac8a6541a18b45c232c576b440d4a6da16d83f8 Mon Sep 17 00:00:00 2001 From: IO420 <320154041@pcpuma.acatlan.unam.mx> Date: Thu, 29 Jan 2026 11:13:00 -0600 Subject: [PATCH] added ep table --- src/bitacora_mesa/bitacora_mesa.controller.ts | 5 ++++ src/bitacora_mesa/bitacora_mesa.service.ts | 27 +++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/bitacora_mesa/bitacora_mesa.controller.ts b/src/bitacora_mesa/bitacora_mesa.controller.ts index e730b32..e1ad2bd 100644 --- a/src/bitacora_mesa/bitacora_mesa.controller.ts +++ b/src/bitacora_mesa/bitacora_mesa.controller.ts @@ -34,6 +34,11 @@ export class BitacoraMesaController { return this.bitacoraMesaService.findByCuenta(+id_cuenta); } + @Get('/table/:id_mesa') + findByTable(@Param('id_mesa') id_mesa: number) { + return this.bitacoraMesaService.findByTable(id_mesa); + } + @Patch('cancelar/:id') cancelationByMachine( @Param('id') id: number, diff --git a/src/bitacora_mesa/bitacora_mesa.service.ts b/src/bitacora_mesa/bitacora_mesa.service.ts index ac2cba0..3b0c3f1 100644 --- a/src/bitacora_mesa/bitacora_mesa.service.ts +++ b/src/bitacora_mesa/bitacora_mesa.service.ts @@ -56,13 +56,36 @@ export class BitacoraMesaService { return student; } - async cancelation(id_bitacora_mesa: number, nuevoTiempo: number) { + async findByTable(id_mesa: number) { + const student = await this.bitacoraMesaRepository + .createQueryBuilder('bitacora') + .leftJoinAndSelect('bitacora.alumno_inscrito', 'alumnoInscrito') + .leftJoinAndSelect('alumnoInscrito.alumno', 'alumno') + .leftJoinAndSelect('alumno.carrera', 'carrera') + .leftJoinAndSelect('bitacora.mesa', 'mesa') + .where('mesa.id_mesa = :id_mesa', { id_mesa }) + + .andWhere( + `TIMESTAMPDIFF(SECOND,NOW(),DATE_ADD(bitacora.tiempo_entrada, INTERVAL bitacora.tiempo_asignado MINUTE)) > 0`, + ) + + .orderBy('bitacora.tiempo_entrada', 'DESC') + .getOne(); + + if (!student) { + throw new NotFoundException('Mesa no asignada'); + } + + return student; + } + + async cancelation(id_bitacora_mesa: number, nuevoTiempo: number) { const bitacora = await this.bitacoraMesaRepository.findOne({ where: { id_bitacora_mesa }, }); if (!bitacora) { - throw new NotFoundException('alumno sin mesa asignada'); + throw new NotFoundException('Mesa no encontrada'); } bitacora.tiempo_asignado -= nuevoTiempo;