added new ep bitacora mesa
This commit is contained in:
@@ -51,4 +51,10 @@ export class BitacoraMesaController {
|
||||
) {
|
||||
return this.bitacoraMesaService.cancelation(id, tiempo_asignado);
|
||||
}
|
||||
|
||||
@Post('mesas-por-dia')
|
||||
mesasPorDia(@Body() body: { fecha: string }) {
|
||||
return this.bitacoraMesaService.mesasPorFecha(body.fecha);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ export class BitacoraMesaService {
|
||||
return this.bitacoraMesaRepository.find({
|
||||
relations: ['mesa', 'alumno_inscrito'],
|
||||
take: 100,
|
||||
order:{id_bitacora_mesa:"DESC"}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -114,21 +115,50 @@ export class BitacoraMesaService {
|
||||
},
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
async cancelation(id_bitacora_mesa: number, nuevoTiempo: number) {
|
||||
const bitacora = await this.bitacoraMesaRepository.findOne({
|
||||
where: { id_bitacora_mesa },
|
||||
});
|
||||
|
||||
if (!bitacora) {
|
||||
throw new NotFoundException('Mesa no encontrada');
|
||||
}
|
||||
|
||||
bitacora.tiempo_asignado -= nuevoTiempo;
|
||||
async cancelation(id_bitacora_mesa: number, nuevoTiempo: number) {
|
||||
const bitacora = await this.bitacoraMesaRepository.findOne({
|
||||
where: { id_bitacora_mesa },
|
||||
});
|
||||
|
||||
await this.bitacoraMesaRepository.save(bitacora);
|
||||
if (!bitacora) {
|
||||
throw new NotFoundException('Mesa no encontrada');
|
||||
}
|
||||
|
||||
bitacora.tiempo_asignado -= nuevoTiempo;
|
||||
|
||||
await this.bitacoraMesaRepository.save(bitacora);
|
||||
|
||||
return { message: 'Tiempo cancelado' };
|
||||
}
|
||||
|
||||
async mesasPorFecha(fecha: string) {
|
||||
const inicio = new Date(`${fecha}T00:00:00`);
|
||||
const fin = new Date(`${fecha}T23:59:59`);
|
||||
|
||||
const registros = await this.bitacoraMesaRepository
|
||||
.createQueryBuilder('bitacora')
|
||||
.innerJoinAndSelect('bitacora.mesa', 'mesa')
|
||||
.innerJoinAndSelect('bitacora.alumno_inscrito', 'alumnoInscrito')
|
||||
.innerJoinAndSelect('alumnoInscrito.alumno', 'alumno')
|
||||
.where('bitacora.tiempo_entrada BETWEEN :inicio AND :fin', {
|
||||
inicio,
|
||||
fin,
|
||||
})
|
||||
.orderBy('bitacora.tiempo_entrada', 'DESC')
|
||||
.getMany();
|
||||
|
||||
return registros.map(reg => ({
|
||||
no_mesa: reg.mesa?.id_mesa,
|
||||
no_cuenta: reg.alumno_inscrito?.alumno?.id_cuenta,
|
||||
hora_entrada: reg.tiempo_entrada,
|
||||
tiempo_asignado: reg.tiempo_asignado,
|
||||
hora_salida: new Date(
|
||||
new Date(reg.tiempo_entrada).getTime() +
|
||||
reg.tiempo_asignado * 60000
|
||||
),
|
||||
}));
|
||||
}
|
||||
|
||||
return { message: 'Tiempo cancelado' };
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user