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
+1 -1
View File
@@ -11,7 +11,7 @@ export class AreaUbicacionService {
) {}
findAll() {
return this.areaUbicacionRepository.find();
return this.areaUbicacionRepository.find({where:{extra:'0'}});
}
findOne(id_area_ubicacion: number) {
+10 -2
View File
@@ -15,8 +15,8 @@ export class BitacoraMesaController {
constructor(private readonly bitacoraMesaService: BitacoraMesaService) {}
@Post()
create(@Body() createBitacoraMesaDto: CreateBitacoraMesaDto) {
return this.bitacoraMesaService.create(createBitacoraMesaDto);
assignment(@Body() createBitacoraMesaDto: CreateBitacoraMesaDto) {
return this.bitacoraMesaService.assignment(createBitacoraMesaDto);
}
@Get()
@@ -33,4 +33,12 @@ export class BitacoraMesaController {
findByCuenta(@Param('id_cuenta') id_cuenta: string) {
return this.bitacoraMesaService.findByCuenta(+id_cuenta);
}
@Patch('cancelar/:id')
cancelationByMachine(
@Param('id') id: number,
@Body('tiempo_asignado') tiempo_asignado: number,
) {
return this.bitacoraMesaService.cancelation(id, tiempo_asignado);
}
}
+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' };
}
}
@@ -1 +1,18 @@
export class CreateBitacoraMesaDto {}
import { IsInt, IsPositive, IsDateString } from 'class-validator';
export class CreateBitacoraMesaDto {
@IsInt()
@IsPositive()
tiempo_asignado: number;
@IsDateString()
tiempo_entrada: string;
@IsInt()
@IsPositive()
id_mesa: number;
@IsInt()
@IsPositive()
id_alumno_inscrito: number;
}
+6 -3
View File
@@ -17,9 +17,12 @@ export class EquipoService {
) {}
findAll() {
return this.equipoRepository.find({
relations: ['areaUbicacion', 'plataforma'],
});
return this.equipoRepository
.createQueryBuilder('equipo')
.innerJoinAndSelect('equipo.areaUbicacion', 'area')
.innerJoinAndSelect('equipo.plataforma', 'plataforma')
.where('area.extra = :extra', { extra: '0' })
.getMany();
}
findActive() {
+1 -1
View File
@@ -4,7 +4,7 @@ import { Entity, PrimaryColumn, Column, OneToMany } from 'typeorm';
@Entity({ name: 'mesa' })
export class Mesa {
@PrimaryColumn({ name: 'id_mesa', type: 'int' })
idMesa: number;
id_mesa: number;
@Column({ name: 'activo', type: 'tinyint', default: 1 })
activo: boolean;
+1 -1
View File
@@ -20,7 +20,7 @@ export class MesaService {
}
async updateActivo(id: number, updateMesaDto: UpdateMesaDto) {
const mesa = await this.mesaRepository.findOne({ where: { idMesa: id } });
const mesa = await this.mesaRepository.findOne({ where: { id_mesa: id } });
if (!mesa) {
throw new NotFoundException(`La mesa no fue encontrada`);
}
+1 -1
View File
@@ -13,7 +13,7 @@ export class ProgramaService {
){}
findAll() {
return this.programaRepository.find();
return this.programaRepository.find({order:{programa:'ASC'}});
}
findOne(id_programa: number) {