listo la reservacion
This commit is contained in:
@@ -5,6 +5,8 @@ import * as moment from 'moment'
|
||||
import { Horario } from '@src/entity/Horario'
|
||||
import { Usuario } from '@src/entity/Usuario'
|
||||
import { Equipo } from '@src/entity/Equipo'
|
||||
import { Operador } from '@src/entity/Operador'
|
||||
import { Mesa } from '@src/entity/Mesa'
|
||||
|
||||
export class ResevacionController {
|
||||
static async espaciosDisponibles (req: Request, res: Response) {
|
||||
@@ -45,6 +47,7 @@ export class ResevacionController {
|
||||
|
||||
if (!horario) {
|
||||
res.status(400).json({ err: 'El horario no existe' })
|
||||
return
|
||||
}
|
||||
|
||||
const prestamoActivo = await prestamoRepository
|
||||
@@ -56,6 +59,7 @@ export class ResevacionController {
|
||||
|
||||
if (prestamoActivo) {
|
||||
res.status(400).json({ err: 'El usuario tiene un prestamo activo' })
|
||||
return
|
||||
}
|
||||
const equipo = await equipoRepository
|
||||
.createQueryBuilder('equipo')
|
||||
@@ -67,6 +71,10 @@ export class ResevacionController {
|
||||
.orderBy('equipo.updatedAt', 'ASC')
|
||||
.getOne()
|
||||
|
||||
if (!equipo) {
|
||||
res.status(400).json({ err: 'Ya no hay equipos' })
|
||||
return
|
||||
}
|
||||
const prestamo = new Prestamo()
|
||||
const horamax = horario.hora.split('-')[1].split(':')[0]
|
||||
const m = moment()
|
||||
@@ -91,4 +99,88 @@ export class ResevacionController {
|
||||
prestamo
|
||||
})
|
||||
}
|
||||
|
||||
static async confirmar (req: Request, res: Response) {
|
||||
const prestamoRepository = getRepository(Prestamo)
|
||||
const operadorRepository = getRepository(Operador)
|
||||
const mesaRepository = getRepository(Mesa)
|
||||
|
||||
const mesa = await mesaRepository
|
||||
.createQueryBuilder('mesa')
|
||||
.where('mesa.activo = :activo', { activo: false })
|
||||
.orderBy('mesa.updatedAt', 'ASC')
|
||||
.getOne()
|
||||
|
||||
const { prestamoId, operadorId } = req.body
|
||||
|
||||
if (!mesa) {
|
||||
res.status(400).json({
|
||||
err: 'Ya no hay mesas disponbles'
|
||||
})
|
||||
return
|
||||
}
|
||||
const prestamo = await prestamoRepository.findOne(prestamoId, {
|
||||
relations: ['equipo']
|
||||
})
|
||||
if (!prestamo) {
|
||||
res.status(400).json({
|
||||
err: 'El prestamo no existe'
|
||||
})
|
||||
return
|
||||
}
|
||||
const operador = await operadorRepository.findOne(operadorId)
|
||||
|
||||
if (!operador) {
|
||||
res.status(400).json({
|
||||
err: 'El operador no existe'
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
mesa.activo = true
|
||||
|
||||
prestamo.operadorEntrega = operador
|
||||
prestamo.reservado = false
|
||||
prestamo.activo = true
|
||||
prestamo.mesa = mesa
|
||||
|
||||
try {
|
||||
await mesaRepository.save(mesa)
|
||||
await prestamoRepository.save(prestamo)
|
||||
res.status(200).json(prestamo)
|
||||
} catch (err) {
|
||||
res.status(400).json({ err: err.message })
|
||||
}
|
||||
}
|
||||
|
||||
static async regreso (req: Request, res: Response) {
|
||||
const equipoRepository = getRepository(Equipo)
|
||||
const prestamoRepository = getRepository(Prestamo)
|
||||
const operadorRepository = getRepository(Operador)
|
||||
const mesaRepository = getRepository(Mesa)
|
||||
|
||||
const prestamo = await prestamoRepository.findOne(req.body.prestamoId, {
|
||||
relations: ['equipo', 'mesa']
|
||||
})
|
||||
if (!prestamo) {
|
||||
res.status(400).json({ err: 'Prestamo no encontrado' })
|
||||
}
|
||||
const operador = await operadorRepository.findOne(req.body.operadorId)
|
||||
if (!operador) {
|
||||
res.status(400).json({ err: 'Operador no encontrado' })
|
||||
}
|
||||
prestamo.activo = false
|
||||
prestamo.equipo.activo = false
|
||||
prestamo.operadorRegreso = operador
|
||||
prestamo.mesa.activo = false
|
||||
|
||||
try {
|
||||
await equipoRepository.save(prestamo.equipo)
|
||||
await mesaRepository.save(prestamo.mesa)
|
||||
await prestamoRepository.save(prestamo)
|
||||
res.status(200).json(prestamo)
|
||||
} catch (err) {
|
||||
res.status(400).json({ err: err.message })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user