listo la reservacion
This commit is contained in:
+29
-20
@@ -1,12 +1,13 @@
|
|||||||
import { Request, Response } from 'express'
|
import { Request, Response } from 'express'
|
||||||
import { getRepository, QueryBuilder } from 'typeorm'
|
import { getRepository } from 'typeorm'
|
||||||
import { Equipo } from '@src/entity/Equipo'
|
import { Equipo } from '@src/entity/Equipo'
|
||||||
import { Prestamo } from '@src/entity/Prestamo'
|
import { Prestamo } from '@src/entity/Prestamo'
|
||||||
import { Usuario } from '@src/entity/Usuario'
|
import { Usuario } from '@src/entity/Usuario'
|
||||||
import { Operador } from '@src/entity/Operador'
|
import { Operador } from '@src/entity/Operador'
|
||||||
import * as moment from 'moment'
|
import * as moment from 'moment'
|
||||||
|
import { Mesa } from '@src/entity/Mesa'
|
||||||
export class PrestamoController {
|
export class PrestamoController {
|
||||||
static async prestamo (request: Request, res: Response) {
|
static async crear (request: Request, res: Response) {
|
||||||
const usuarioRepository = await getRepository(Usuario)
|
const usuarioRepository = await getRepository(Usuario)
|
||||||
const equipoRepository = await getRepository(Equipo)
|
const equipoRepository = await getRepository(Equipo)
|
||||||
const prestamoRepository = await getRepository(Prestamo)
|
const prestamoRepository = await getRepository(Prestamo)
|
||||||
@@ -72,7 +73,7 @@ export class PrestamoController {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
static async confirmarPrestamo (req: Request, res: Response) {
|
static async confirmar (req: Request, res: Response) {
|
||||||
const prestamoRepository = getRepository(Prestamo)
|
const prestamoRepository = getRepository(Prestamo)
|
||||||
const operadorRepository = getRepository(Operador)
|
const operadorRepository = getRepository(Operador)
|
||||||
|
|
||||||
@@ -111,27 +112,40 @@ export class PrestamoController {
|
|||||||
const equipoRepository = getRepository(Equipo)
|
const equipoRepository = getRepository(Equipo)
|
||||||
const prestamoRepository = getRepository(Prestamo)
|
const prestamoRepository = getRepository(Prestamo)
|
||||||
const operadorRepository = getRepository(Operador)
|
const operadorRepository = getRepository(Operador)
|
||||||
|
const mesaRepository = getRepository(Mesa)
|
||||||
|
|
||||||
const prestamo = await prestamoRepository.findOne(req.body.prestamoId, {
|
const { prestamoId, operadorId } = req.body
|
||||||
relations: ['equipo']
|
|
||||||
|
const prestamo = await prestamoRepository.findOne(prestamoId, {
|
||||||
|
relations: ['equipo', 'usuario', 'mesa']
|
||||||
})
|
})
|
||||||
if (!prestamo) {
|
if (!prestamo) {
|
||||||
res.status(400).json({ err: 'Prestamo no encontrado' })
|
res.status(400).json({ err: 'Prestamo no encontrado' })
|
||||||
}
|
}
|
||||||
const operador = await operadorRepository.findOne(req.body.operadorId)
|
const operador = await operadorRepository.findOne(operadorId)
|
||||||
if (!operador) {
|
if (!operador) {
|
||||||
res.status(400).json({ err: 'Operador no encontrado' })
|
res.status(400).json({ err: 'Operador no encontrado' })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!prestamo.usuario.interno) {
|
||||||
|
prestamo.mesa.activo = false
|
||||||
|
}
|
||||||
prestamo.activo = false
|
prestamo.activo = false
|
||||||
prestamo.equipo.activo = false
|
prestamo.equipo.activo = false
|
||||||
prestamo.operadorRegreso = operador
|
prestamo.operadorRegreso = operador
|
||||||
|
try {
|
||||||
await equipoRepository.save(prestamo.equipo)
|
if (!prestamo.usuario.interno) {
|
||||||
await prestamoRepository.save(prestamo)
|
await mesaRepository.save(prestamo.mesa)
|
||||||
res.status(200).json(prestamo)
|
}
|
||||||
|
await equipoRepository.save(prestamo.equipo)
|
||||||
|
await prestamoRepository.save(prestamo)
|
||||||
|
res.status(200).send('Prestamo regresado Exitosamente')
|
||||||
|
} catch (err) {
|
||||||
|
res.status(400).json({ err: err.message })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async estatusPrestamo (req: Request, res: Response) {
|
static async estatus (req: Request, res: Response) {
|
||||||
const repository = getRepository(Prestamo)
|
const repository = getRepository(Prestamo)
|
||||||
const { usuarioId } = req.query
|
const { usuarioId } = req.query
|
||||||
console.log(usuarioId)
|
console.log(usuarioId)
|
||||||
@@ -139,26 +153,21 @@ export class PrestamoController {
|
|||||||
const prestamo = await repository
|
const prestamo = await repository
|
||||||
.createQueryBuilder('prestamo')
|
.createQueryBuilder('prestamo')
|
||||||
.leftJoinAndSelect('prestamo.usuario', 'usuario')
|
.leftJoinAndSelect('prestamo.usuario', 'usuario')
|
||||||
|
.leftJoinAndSelect('prestamo.mesa', 'mesa')
|
||||||
.where('usuario.id = :usuarioId', { usuarioId })
|
.where('usuario.id = :usuarioId', { usuarioId })
|
||||||
.andWhere('prestamo.activo = :activo', { activo: true })
|
.andWhere('prestamo.activo = :activo', { activo: true })
|
||||||
.getOne()
|
.getOne()
|
||||||
|
|
||||||
// const prestamo = await repository.find({
|
|
||||||
// relations: ['usuario'],
|
|
||||||
// where: {
|
|
||||||
// usuarioId,
|
|
||||||
// activo: true
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
if (!prestamo) {
|
if (!prestamo) {
|
||||||
res.status(400).json({ err: 'El usuario no tiene prestamos activos' })
|
res.status(200).json({ err: 'El usuario no tiene prestamos activos' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log(prestamo)
|
||||||
|
|
||||||
res.status(200).json(prestamo)
|
res.status(200).json(prestamo)
|
||||||
}
|
}
|
||||||
|
|
||||||
static async cancelarPrestamo (req: Request, res: Response) {
|
static async cancelar (req: Request, res: Response) {
|
||||||
const repository = getRepository(Prestamo)
|
const repository = getRepository(Prestamo)
|
||||||
|
|
||||||
const { prestamoId } = req.body
|
const { prestamoId } = req.body
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import * as moment from 'moment'
|
|||||||
import { Horario } from '@src/entity/Horario'
|
import { Horario } from '@src/entity/Horario'
|
||||||
import { Usuario } from '@src/entity/Usuario'
|
import { Usuario } from '@src/entity/Usuario'
|
||||||
import { Equipo } from '@src/entity/Equipo'
|
import { Equipo } from '@src/entity/Equipo'
|
||||||
|
import { Operador } from '@src/entity/Operador'
|
||||||
|
import { Mesa } from '@src/entity/Mesa'
|
||||||
|
|
||||||
export class ResevacionController {
|
export class ResevacionController {
|
||||||
static async espaciosDisponibles (req: Request, res: Response) {
|
static async espaciosDisponibles (req: Request, res: Response) {
|
||||||
@@ -45,6 +47,7 @@ export class ResevacionController {
|
|||||||
|
|
||||||
if (!horario) {
|
if (!horario) {
|
||||||
res.status(400).json({ err: 'El horario no existe' })
|
res.status(400).json({ err: 'El horario no existe' })
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const prestamoActivo = await prestamoRepository
|
const prestamoActivo = await prestamoRepository
|
||||||
@@ -56,6 +59,7 @@ export class ResevacionController {
|
|||||||
|
|
||||||
if (prestamoActivo) {
|
if (prestamoActivo) {
|
||||||
res.status(400).json({ err: 'El usuario tiene un prestamo activo' })
|
res.status(400).json({ err: 'El usuario tiene un prestamo activo' })
|
||||||
|
return
|
||||||
}
|
}
|
||||||
const equipo = await equipoRepository
|
const equipo = await equipoRepository
|
||||||
.createQueryBuilder('equipo')
|
.createQueryBuilder('equipo')
|
||||||
@@ -67,6 +71,10 @@ export class ResevacionController {
|
|||||||
.orderBy('equipo.updatedAt', 'ASC')
|
.orderBy('equipo.updatedAt', 'ASC')
|
||||||
.getOne()
|
.getOne()
|
||||||
|
|
||||||
|
if (!equipo) {
|
||||||
|
res.status(400).json({ err: 'Ya no hay equipos' })
|
||||||
|
return
|
||||||
|
}
|
||||||
const prestamo = new Prestamo()
|
const prestamo = new Prestamo()
|
||||||
const horamax = horario.hora.split('-')[1].split(':')[0]
|
const horamax = horario.hora.split('-')[1].split(':')[0]
|
||||||
const m = moment()
|
const m = moment()
|
||||||
@@ -91,4 +99,88 @@ export class ResevacionController {
|
|||||||
prestamo
|
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 })
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,8 +117,8 @@ export class UsuarioController {
|
|||||||
|
|
||||||
const usuarioInterno = {
|
const usuarioInterno = {
|
||||||
nombre: 'Arturo',
|
nombre: 'Arturo',
|
||||||
apellidoPaterno: 'holdda',
|
apellidoPaterno: 'Guerrero',
|
||||||
apellidoMaterno: 'holdda',
|
apellidoMaterno: 'Lopez',
|
||||||
institucion: 'Fes acatlan',
|
institucion: 'Fes acatlan',
|
||||||
carrera: 'Matematicas aplicadas',
|
carrera: 'Matematicas aplicadas',
|
||||||
interno: true
|
interno: true
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import { Router } from 'express'
|
|||||||
import { PrestamoController } from '@src/controller/Prestamo'
|
import { PrestamoController } from '@src/controller/Prestamo'
|
||||||
const router = Router()
|
const router = Router()
|
||||||
|
|
||||||
router.post('/', PrestamoController.prestamo)
|
router.post('/', PrestamoController.crear)
|
||||||
router.put('/regreso', PrestamoController.regreso)
|
router.put('/regreso', PrestamoController.regreso)
|
||||||
router.put('/confirmar', PrestamoController.confirmarPrestamo)
|
router.put('/confirmar', PrestamoController.confirmar)
|
||||||
router.get('/estatus', PrestamoController.estatusPrestamo)
|
router.get('/estatus', PrestamoController.estatus)
|
||||||
router.put('/cancelar', PrestamoController.cancelarPrestamo)
|
router.put('/cancelar', PrestamoController.cancelar)
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
|||||||
@@ -5,5 +5,6 @@ const router = Router()
|
|||||||
|
|
||||||
router.post('/', ResevacionController.reservar)
|
router.post('/', ResevacionController.reservar)
|
||||||
router.get('/espacios', ResevacionController.espaciosDisponibles)
|
router.get('/espacios', ResevacionController.espaciosDisponibles)
|
||||||
|
router.put('/confirmar', ResevacionController.confirmar)
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
|||||||
Reference in New Issue
Block a user