added new ep bitacora mesa
This commit is contained in:
@@ -51,4 +51,10 @@ export class BitacoraMesaController {
|
|||||||
) {
|
) {
|
||||||
return this.bitacoraMesaService.cancelation(id, tiempo_asignado);
|
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({
|
return this.bitacoraMesaRepository.find({
|
||||||
relations: ['mesa', 'alumno_inscrito'],
|
relations: ['mesa', 'alumno_inscrito'],
|
||||||
take: 100,
|
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