diff --git a/src/bitacora_mesa/bitacora_mesa.service.ts b/src/bitacora_mesa/bitacora_mesa.service.ts index c65ef86..a46d9ae 100644 --- a/src/bitacora_mesa/bitacora_mesa.service.ts +++ b/src/bitacora_mesa/bitacora_mesa.service.ts @@ -14,8 +14,7 @@ export class BitacoraMesaService { ) { } async assignment(dto: CreateBitacoraMesaDto) { - - // VALIDAR: el alumno ya tiene una mesa activa + const alumnoConMesa = await this.bitacoraMesaRepository .createQueryBuilder('bitacora') .where('bitacora.id_alumno_inscrito = :id_alumno_inscrito', { diff --git a/src/costo/costo.controller.ts b/src/costo/costo.controller.ts index 59883e8..79ef6fd 100644 --- a/src/costo/costo.controller.ts +++ b/src/costo/costo.controller.ts @@ -4,7 +4,7 @@ import { JwtAuthGuard } from 'src/user/jwt.guard'; @Controller('costo') export class CostoController { - constructor(private readonly costoService: CostoService) {} + constructor(private readonly costoService: CostoService) { } @UseGuards(JwtAuthGuard) @Get() @@ -12,4 +12,9 @@ export class CostoController { return this.costoService.findAll(); } + @UseGuards(JwtAuthGuard) + @Get('/:id_servicio') + find(@Param('id_servicio') id_servicio: number) { + return this.costoService.find(id_servicio); + } } diff --git a/src/costo/costo.service.ts b/src/costo/costo.service.ts index a974a81..a989633 100644 --- a/src/costo/costo.service.ts +++ b/src/costo/costo.service.ts @@ -6,9 +6,14 @@ import { Repository } from 'typeorm'; @Injectable() export class CostoService { constructor(@InjectRepository(Costo) - private readonly CostoRepository: Repository) { } + private readonly CostoRepository: Repository) {} + findAll() { return this.CostoRepository.find(); } + find(id_servicio: number) { + return this.CostoRepository.find({ where: { id_servicio } }); + } + } diff --git a/src/mesa/mesa.controller.ts b/src/mesa/mesa.controller.ts index 8ba9638..356f17c 100644 --- a/src/mesa/mesa.controller.ts +++ b/src/mesa/mesa.controller.ts @@ -19,6 +19,12 @@ export class MesaController { return this.mesaService.findAllActivo(); } + @UseGuards(JwtAuthGuard) + @Get('uso') + async findActiveMesas() { + return this.mesaService.findActiveMesas(); + } + @UseGuards(JwtAuthGuard) @Patch(':id') async updateActivo( diff --git a/src/mesa/mesa.service.ts b/src/mesa/mesa.service.ts index 03b63b7..c6189ec 100644 --- a/src/mesa/mesa.service.ts +++ b/src/mesa/mesa.service.ts @@ -119,4 +119,27 @@ export class MesaService { activo: nuevoActivo, }; } + + findActiveMesas() { + return this.mesaRepository + .createQueryBuilder('mesa') + .select([ + 'mesa.id_mesa AS id_mesa', + ` + EXISTS ( + SELECT 1 + FROM bitacora_mesa bm + WHERE bm.id_mesa = mesa.id_mesa + AND TIMESTAMPDIFF( + SECOND, + NOW(), + DATE_ADD(bm.tiempo_entrada, INTERVAL bm.tiempo_asignado MINUTE) + ) > 0 + ) AS ocupado + `, + ]) + .where('mesa.activo = 1') + .orderBy('mesa.id_mesa', 'ASC') + .getRawMany(); + } } diff --git a/src/user/user.controller.ts b/src/user/user.controller.ts index c4facd9..e94f755 100644 --- a/src/user/user.controller.ts +++ b/src/user/user.controller.ts @@ -28,7 +28,6 @@ export class UserController { return this.userService.getAllPerfil(); } - @UseGuards(JwtAuthGuard) @Post() async Login(@Body() data: Login, @Res() res: Response) { return this.userService.Login(data, res);