asignacion de mesas asigna una por usuario
This commit is contained in:
@@ -3,6 +3,8 @@ import { CreateBitacoraMesaDto } from './dto/create-bitacora_mesa.dto';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { BitacoraMesa } from './entities/bitacora_mesa.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
import { BadRequestException } from '@nestjs/common';
|
||||
|
||||
|
||||
@Injectable()
|
||||
export class BitacoraMesaService {
|
||||
@@ -11,17 +13,40 @@ export class BitacoraMesaService {
|
||||
private readonly bitacoraMesaRepository: Repository<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 },
|
||||
});
|
||||
async assignment(dto: CreateBitacoraMesaDto) {
|
||||
|
||||
return this.bitacoraMesaRepository.save(bitacora);
|
||||
// VALIDAR: el alumno ya tiene una mesa activa
|
||||
const alumnoConMesa = await this.bitacoraMesaRepository
|
||||
.createQueryBuilder('bitacora')
|
||||
.where('bitacora.id_alumno_inscrito = :id_alumno_inscrito', {
|
||||
id_alumno_inscrito: dto.id_alumno_inscrito,
|
||||
})
|
||||
.andWhere(
|
||||
`TIMESTAMPDIFF(
|
||||
SECOND,
|
||||
NOW(),
|
||||
DATE_ADD(bitacora.tiempo_entrada, INTERVAL bitacora.tiempo_asignado MINUTE)
|
||||
) > 0`,
|
||||
)
|
||||
.getOne();
|
||||
|
||||
if (alumnoConMesa) {
|
||||
throw new BadRequestException(
|
||||
'El alumno ya tiene una mesa asignada',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
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() {
|
||||
return this.bitacoraMesaRepository.find({
|
||||
relations: ['mesa', 'alumno_inscrito'],
|
||||
|
||||
Reference in New Issue
Block a user