demo rector
This commit is contained in:
Vendored
+163
@@ -0,0 +1,163 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const typeorm_1 = require("typeorm");
|
||||
const Equipo_1 = require("../entity/Equipo");
|
||||
const Prestamo_1 = require("../entity/Prestamo");
|
||||
const Usuario_1 = require("../entity/Usuario");
|
||||
const Operador_1 = require("../entity/Operador");
|
||||
const moment = require("moment");
|
||||
const Mesa_1 = require("../entity/Mesa");
|
||||
class PrestamoController {
|
||||
static async crear(request, res) {
|
||||
const usuarioRepository = await typeorm_1.getRepository(Usuario_1.Usuario);
|
||||
const equipoRepository = await typeorm_1.getRepository(Equipo_1.Equipo);
|
||||
const prestamoRepository = await typeorm_1.getRepository(Prestamo_1.Prestamo);
|
||||
const { usuarioId, tipoId } = request.body;
|
||||
const usuario = await usuarioRepository.findOne(usuarioId, {
|
||||
select: ['id', 'baja', 'multa']
|
||||
});
|
||||
if (!usuario) {
|
||||
res.status(400).json({ err: 'Usuario no encontrado' });
|
||||
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();
|
||||
if (prestamoActivo) {
|
||||
res.status(400).json({ err: 'El usuario tiene un prestamo activo' });
|
||||
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.id = :tipoId', { tipoId })
|
||||
.orderBy('equipo.updatedAt', 'ASC')
|
||||
.getOne();
|
||||
const prestamo = new Prestamo_1.Prestamo();
|
||||
equipo.activo = true;
|
||||
prestamo.equipo = equipo;
|
||||
prestamo.usuario = usuario;
|
||||
const m = moment()
|
||||
.add({ hours: 2, minutes: 35 })
|
||||
.toLocaleString();
|
||||
prestamo.horaMaxEntrega = m;
|
||||
await equipoRepository.save(equipo);
|
||||
await prestamoRepository.save(prestamo);
|
||||
prestamo.qr = `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${prestamo.id}`;
|
||||
console.log(prestamo);
|
||||
res.status(200).json({
|
||||
prestamo
|
||||
});
|
||||
}
|
||||
static async confirmar(req, res) {
|
||||
const prestamoRepository = typeorm_1.getRepository(Prestamo_1.Prestamo);
|
||||
const operadorRepository = typeorm_1.getRepository(Operador_1.Operador);
|
||||
const { prestamoId, operadorId } = req.body;
|
||||
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;
|
||||
}
|
||||
prestamo.operadorEntrega = operador;
|
||||
prestamo.reservado = false;
|
||||
prestamo.activo = true;
|
||||
try {
|
||||
await prestamoRepository.save(prestamo);
|
||||
res.status(200).json(prestamo);
|
||||
}
|
||||
catch (err) {
|
||||
res.status(400).json({ err: err.message });
|
||||
}
|
||||
}
|
||||
static async regreso(req, res) {
|
||||
const equipoRepository = typeorm_1.getRepository(Equipo_1.Equipo);
|
||||
const prestamoRepository = typeorm_1.getRepository(Prestamo_1.Prestamo);
|
||||
const operadorRepository = typeorm_1.getRepository(Operador_1.Operador);
|
||||
const mesaRepository = typeorm_1.getRepository(Mesa_1.Mesa);
|
||||
const { prestamoId, operadorId } = req.body;
|
||||
const prestamo = await prestamoRepository.findOne(prestamoId, {
|
||||
relations: ['equipo', 'usuario', 'mesa']
|
||||
});
|
||||
if (!prestamo) {
|
||||
res.status(400).json({ err: 'Prestamo no encontrado' });
|
||||
}
|
||||
const operador = await operadorRepository.findOne(operadorId);
|
||||
if (!operador) {
|
||||
res.status(400).json({ err: 'Operador no encontrado' });
|
||||
}
|
||||
if (!prestamo.usuario.interno) {
|
||||
prestamo.mesa.activo = false;
|
||||
}
|
||||
prestamo.activo = false;
|
||||
prestamo.equipo.activo = false;
|
||||
prestamo.operadorRegreso = operador;
|
||||
try {
|
||||
if (!prestamo.usuario.interno) {
|
||||
await mesaRepository.save(prestamo.mesa);
|
||||
}
|
||||
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 estatus(req, res) {
|
||||
const repository = typeorm_1.getRepository(Prestamo_1.Prestamo);
|
||||
const { usuarioId } = req.query;
|
||||
console.log(usuarioId);
|
||||
const prestamo = await repository
|
||||
.createQueryBuilder('prestamo')
|
||||
.leftJoinAndSelect('prestamo.usuario', 'usuario')
|
||||
.leftJoinAndSelect('prestamo.mesa', 'mesa')
|
||||
.where('usuario.id = :usuarioId', { usuarioId })
|
||||
.andWhere('prestamo.activo = :activo', { activo: true })
|
||||
.getOne();
|
||||
if (!prestamo) {
|
||||
res.status(200).json({ err: 'El usuario no tiene prestamos activos' });
|
||||
return;
|
||||
}
|
||||
console.log(prestamo);
|
||||
res.status(200).json(prestamo);
|
||||
}
|
||||
static async cancelar(req, res) {
|
||||
const repository = typeorm_1.getRepository(Prestamo_1.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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.PrestamoController = PrestamoController;
|
||||
//# sourceMappingURL=Prestamo.js.map
|
||||
Reference in New Issue
Block a user