prestamo okay

This commit is contained in:
arturo
2020-08-28 11:29:44 -05:00
parent 4ccd7b674d
commit 9865e76ba9
13 changed files with 1157 additions and 35 deletions
+2 -2
View File
@@ -63,14 +63,14 @@ export class CarritoController {
const carritoFind = await carritoRepository.findOne({
where: {
kiosko: data.kiosko,
sobrenombre: data.alias_carrito,
alias: data.alias_carrito,
tipo: tipoFind
}
})
if (!carritoFind) {
carrito.kiosko = data.kiosko
carrito.sobrenombre = data.alias_carrito
carrito.alias = data.alias_carrito
carrito.tipo = !tipoFind ? tipo : tipoFind
}
@@ -5,14 +5,15 @@ import { Prestamo } from '@src/entity/Prestamo'
import { Usuario } from '@src/entity/Usuario'
import { Operador } from '@src/entity/Operador'
import * as moment from 'moment'
export class EquipoController {
export class PrestamoController {
static async prestamo (request: Request, res: Response) {
const usuarioRepository = await getRepository(Usuario)
const operadorRepository = await getRepository(Operador)
const equipoRepository = await getRepository(Equipo)
const prestamoRepository = await getRepository(Prestamo)
const usuario = await usuarioRepository.findOne(request.body.idUsuario, {
const { usuarioId, tipoId } = request.body
const usuario = await usuarioRepository.findOne(usuarioId, {
select: ['id', 'baja', 'multa']
})
@@ -21,33 +22,30 @@ export class EquipoController {
return
}
if (usuario.baja) {
res.status(400).json({ err: 'El usuario esta dado de baja' })
return
}
const prestamoActivo = await prestamoRepository
.createQueryBuilder('prestamo')
.where('prestamo.usuarioId = :idUsuario', { idUsuario: usuario.id })
.andWhere('prestamo.activo = true')
.orWhere('prestamo.reservado = true')
.getOne()
console.log(prestamoActivo)
if (prestamoActivo) {
res.status(400).json({ err: 'El usuario tiene un prestamo activo' })
return
}
const operador = await operadorRepository.findOne(request.body.idOperador, {
select: ['id', 'admin']
})
if (!operador) {
res.status(400).json({ err: 'Operador no encontrado' })
return
}
const equipo = await equipoRepository
.createQueryBuilder('equipo')
.leftJoinAndSelect('equipo.carrito', 'carrito')
.leftJoinAndSelect('carrito.tipo', 'tipo')
.where('equipo.activo = :activo', { activo: false })
.andWhere('carrito.kiosko = :kiosko', { kiosko: 1 })
.andWhere('tipo.nombre = :tipo', { tipo: 'chromebook' })
.andWhere('tipo.id = :tipoId', { tipoId })
.orderBy('equipo.updatedAt', 'ASC')
.getOne()
@@ -57,7 +55,6 @@ export class EquipoController {
prestamo.equipo = equipo
prestamo.usuario = usuario
prestamo.operadorEntrega = operador
const m = moment()
.add({ hours: 2, minutes: 35 })
.format('MMMM Do YYYY, h:mm:ss a')
@@ -69,6 +66,7 @@ export class EquipoController {
prestamo.qr = `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${prestamo.id}`
console.log(prestamo)
res.status(200).json({
prestamo
})
@@ -78,7 +76,9 @@ export class EquipoController {
const prestamoRepository = getRepository(Prestamo)
const operadorRepository = getRepository(Operador)
const prestamo = await prestamoRepository.findOne(req.body.prestamoId, {
const { prestamoId, operadorId } = req.body
const prestamo = await prestamoRepository.findOne(prestamoId, {
relations: ['equipo']
})
if (!prestamo) {
@@ -87,7 +87,7 @@ export class EquipoController {
})
return
}
const operador = await operadorRepository.findOne(req.body.operadorId)
const operador = await operadorRepository.findOne(operadorId)
if (!operador) {
res.status(400).json({
@@ -96,11 +96,15 @@ export class EquipoController {
return
}
prestamo.operadorRegreso = operador
prestamo.operadorEntrega = operador
prestamo.reservado = false
prestamo.activo = true
res.status(200).json(prestamo)
try {
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) {
@@ -126,4 +130,39 @@ export class EquipoController {
await prestamoRepository.save(prestamo)
res.status(200).json(prestamo)
}
static async estatusPrestamo (req: Request, res: Response) {
const repository = getRepository(Prestamo)
const { prestamoId } = req.query
const prestamo = await repository.findOne(+prestamoId)
if (!prestamo) {
res.status(400).json({ err: 'El prestamo no existe' })
return
}
res.status(200).json(prestamo)
}
static async cancelarPrestamo (req: Request, res: Response) {
const repository = getRepository(Prestamo)
const { prestamoId } = req.body
const prestamo = await repository.findOne(prestamoId)
if (!prestamo) {
res.status(400).json({ err: 'El prestamo no existe' })
}
prestamo.reservado = false
try {
await repository.save(prestamo)
res.status(200).send('Cancelado correctamente')
} catch (err) {
res.status(400).json({ err: err.message })
}
}
}
+12
View File
@@ -0,0 +1,12 @@
import { Request } from 'express'
import { Response } from 'express-serve-static-core'
import { getRepository } from 'typeorm'
import { Tipo } from '@src/entity/Tipo'
export class TipoController {
static async getAll (req: Request, res: Response) {
const repository = await getRepository(Tipo)
const tipos = await repository.find()
res.status(200).json(tipos)
}
}
+1 -1
View File
@@ -17,7 +17,7 @@ export class Carrito {
id: number
@Column()
sobrenombre: number
alias: number
@Column()
kiosko: number
-10
View File
@@ -1,10 +0,0 @@
import { Router } from 'express'
import { EquipoController } from '@src/controller/Equipo'
const router = Router()
router.post('/prestamo', EquipoController.prestamo)
router.post('/regreso', EquipoController.regreso)
router.post('/confirmar', EquipoController.confirmarPrestamo)
export default router
+4 -2
View File
@@ -3,13 +3,15 @@ import { Router } from 'express'
import usuario from './usuario'
import operador from './operador'
import carrito from './carrito'
import equipo from './equipo'
import prestamo from './prestamo'
import tipo from './tipo'
const routes = Router()
routes.use('/operador', operador)
routes.use('/usuario', usuario)
routes.use('/carrito', carrito)
routes.use('/equipo', equipo)
routes.use('/prestamo', prestamo)
routes.use('/tipo', tipo)
export default routes
+11
View File
@@ -0,0 +1,11 @@
import { Router } from 'express'
import { PrestamoController } from '@src/controller/Prestamo'
const router = Router()
router.post('/', PrestamoController.prestamo)
router.put('/regreso', PrestamoController.regreso)
router.put('/confirmar', PrestamoController.confirmarPrestamo)
router.get('/estatus', PrestamoController.estatusPrestamo)
router.put('/cancelar', PrestamoController.cancelarPrestamo)
export default router
+8
View File
@@ -0,0 +1,8 @@
import { Router } from 'express'
import { TipoController } from '@src/controller/Tipo'
const router = Router()
router.get('/', TipoController.getAll)
export default router