en teoria ya no deben haber duplicados
This commit is contained in:
+4
-4
@@ -10,15 +10,15 @@ import { Socket, Server } from 'socket.io';
|
||||
@WebSocketGateway({
|
||||
cors: {
|
||||
origin: [
|
||||
// 'http://localhost:3176',
|
||||
// 'http://localhost:3186',
|
||||
'http://localhost:3176',
|
||||
'http://localhost:3186',
|
||||
// 'http://132.248.80.196:3155',
|
||||
// 'http://132.248.80.196:3185',
|
||||
// 'https://pmodulospcpuma.unam.mx',
|
||||
// 'https://pmodulospcpuma.unam.mx:3015',
|
||||
// 'https://modulospcpuma.unam.mx',
|
||||
'https://modulospcpuma.unam.mx:3015',
|
||||
'https://betelgeuse.acatlan.unam.mx:3180',
|
||||
// 'https://modulospcpuma.unam.mx:3015',
|
||||
// 'https://betelgeuse.acatlan.unam.mx:3180',
|
||||
],
|
||||
},
|
||||
})
|
||||
|
||||
@@ -32,6 +32,9 @@ export class Equipo {
|
||||
@Column({ type: Boolean, nullable: false, default: false })
|
||||
prestado: boolean;
|
||||
|
||||
@Column({ type: Number, nullable: true, default: null })
|
||||
u: number;
|
||||
|
||||
@ManyToOne(() => Carrito, (carrito) => carrito.equipos, { eager: true })
|
||||
@JoinColumn({ name: 'id_carrito' })
|
||||
carrito: Carrito;
|
||||
|
||||
@@ -27,9 +27,9 @@ import { Modulo } from '../../../modulo/entity/modulo.entity';
|
||||
.innerJoin(EquipoTipoEntrada, 'tes', 'tes.id_equipo = e.id_equipo')
|
||||
.innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo')
|
||||
.innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion')
|
||||
.where('c.activo = 1')
|
||||
.where('i.activo = 1')
|
||||
.andWhere('m.activo = 1')
|
||||
.andWhere('i.activo = 1')
|
||||
.andWhere('c.activo = 1')
|
||||
.andWhere('e.id_status = 1')
|
||||
.orderBy('c.carrito', 'ASC')
|
||||
.addOrderBy('e.equipo', 'ASC'),
|
||||
|
||||
@@ -13,6 +13,7 @@ import { Modulo } from '../../../modulo/entity/modulo.entity';
|
||||
.addSelect('e.id_status', 'id_status')
|
||||
.addSelect('e.numero_inventario', 'numero_inventario')
|
||||
.addSelect('e.prestado', 'prestado')
|
||||
.addSelect('e.u', 'u')
|
||||
.addSelect('c.carrito', 'carrito')
|
||||
.addSelect('c.id_modulo', 'id_modulo')
|
||||
.addSelect('c.id_tipo_carrito', 'id_tipo_carrito')
|
||||
@@ -51,4 +52,7 @@ export class InformacionEquipoView {
|
||||
|
||||
@ViewColumn()
|
||||
prestado: boolean;
|
||||
|
||||
@ViewColumn()
|
||||
u: number;
|
||||
}
|
||||
|
||||
@@ -34,6 +34,8 @@ import { ModuloService } from '../modulo/modulo.service';
|
||||
import { EquipoMotivoService } from '../equipo-motivo/equipo-motivo.service';
|
||||
import { OperadorService } from '../operador/operador.service';
|
||||
import { StatusService } from '../status/status.service';
|
||||
import internal from 'stream';
|
||||
import { retry } from 'rxjs';
|
||||
|
||||
@Injectable()
|
||||
export class EquipoService {
|
||||
@@ -94,6 +96,7 @@ export class EquipoService {
|
||||
equipo: infoEquipo.equipo,
|
||||
numero_inventario: infoEquipo.numero_inventario,
|
||||
prestado: infoEquipo.prestado,
|
||||
u: infoEquipo.u,
|
||||
carrito: {
|
||||
id_carrito: infoEquipo.id_carrito,
|
||||
carrito: infoEquipo.carrito,
|
||||
@@ -252,6 +255,7 @@ export class EquipoService {
|
||||
}
|
||||
|
||||
async findEquipo(
|
||||
id_usuario: number,
|
||||
modulo: Modulo,
|
||||
tipoCarrito: TipoCarrito,
|
||||
programa?: Programa,
|
||||
@@ -281,10 +285,10 @@ export class EquipoService {
|
||||
}
|
||||
|
||||
return this.informacionEquipoPrestamoView
|
||||
.count({ where: busqueda })
|
||||
.then(async (n) => {
|
||||
if (n === 0)
|
||||
await this.informacionEquipoPrestamoView
|
||||
.findOne({ where: busqueda })
|
||||
.then((infoEquipo) => {
|
||||
if (!infoEquipo)
|
||||
return this.informacionEquipoPrestamoView
|
||||
.find({ where: busquedaReseteo })
|
||||
.then(async (infoEquipos) => {
|
||||
for (let i = 0; i < infoEquipos.length; i++)
|
||||
@@ -294,15 +298,35 @@ export class EquipoService {
|
||||
prestado: false,
|
||||
}),
|
||||
);
|
||||
return this.informacionEquipoPrestamoView.findOne({
|
||||
where: busqueda,
|
||||
});
|
||||
})
|
||||
.then((infoEquipo) => {
|
||||
if (!infoEquipo)
|
||||
throw new ConflictException(
|
||||
'No hay un equipo de cómputo que cumpla con las caracteríasticas solicitadas o ya no hay equipos disponibles en este momento. Intenta más tarde o cambia las características.',
|
||||
);
|
||||
return infoEquipo;
|
||||
});
|
||||
return this.informacionEquipoPrestamoView.findOne({ where: busqueda });
|
||||
return infoEquipo;
|
||||
})
|
||||
.then((infoEquipo) => {
|
||||
const equipo = this.repository.create({
|
||||
id_equipo: infoEquipo.id_equipo,
|
||||
u: id_usuario,
|
||||
status: { id_status: 2 },
|
||||
});
|
||||
|
||||
return this.repository.save(equipo);
|
||||
})
|
||||
.then((equipo) => this.findInfoEquipoById(equipo.id_equipo))
|
||||
.then((equipo) => {
|
||||
if (!equipo)
|
||||
if (equipo.u != id_usuario)
|
||||
throw new ConflictException(
|
||||
'No hay un equipo de cómputo que cumpla con las caracteríasticas solicitadas o ya no hay equipos disponibles en este momento. Intenta más tarde o cambia las características.',
|
||||
'Ocurrio un error al tratar de asignarte un equipo de cómputo, intenta de nuevo.',
|
||||
);
|
||||
return this.repository.create({ id_equipo: equipo.id_equipo });
|
||||
return equipo;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -77,6 +77,7 @@ export class PrestamoService {
|
||||
prestamo.fecha_entrega = ahora.toDate();
|
||||
prestamo.cancelado_operador = true;
|
||||
prestamo.operadorRegreso = operadorRegreso;
|
||||
prestamo.equipo.u = null;
|
||||
return this.equipoService
|
||||
.update(prestamo.equipo, null, 6, operadorRegreso, motivo)
|
||||
.then((_) => this.repository.save(prestamo))
|
||||
@@ -101,6 +102,7 @@ export class PrestamoService {
|
||||
prestamo.activo = false;
|
||||
prestamo.fecha_entrega = ahora.toDate();
|
||||
prestamo.cancelado_usuario = true;
|
||||
prestamo.equipo.u = null;
|
||||
return this.equipoService
|
||||
.update(prestamo.equipo, null, 1)
|
||||
.then((_) => this.repository.save(prestamo))
|
||||
@@ -120,7 +122,7 @@ export class PrestamoService {
|
||||
id_programa?: number,
|
||||
id_tipo_entrada?: number,
|
||||
) {
|
||||
const ahora = moment().add(12, 'hour');
|
||||
const ahora = moment();
|
||||
const ahoraStr = ahora.format('YYYY-MM-DD');
|
||||
const sistema = { id_operador: 1 };
|
||||
const modulo = await this.moduloService.findById(id_modulo);
|
||||
@@ -148,35 +150,34 @@ export class PrestamoService {
|
||||
)
|
||||
: null;
|
||||
|
||||
if (ahora.weekday() === 0)
|
||||
throw new ConflictException('No hay servicio los días domingo.');
|
||||
this.validarInstitucionUsuario(usuario.instituciones, modulo);
|
||||
if (!institucionDia.activo)
|
||||
throw new ConflictException(
|
||||
'El día de hoy no hay servicio de préstamo de equipos.',
|
||||
);
|
||||
if (ahora < horaMin)
|
||||
throw new ConflictException(
|
||||
`El servicio inicia a las ${institucionDia.hora_inicio} el día de hoy.`,
|
||||
);
|
||||
if (ahora >= horaExtra)
|
||||
throw new ConflictException(
|
||||
`El servicio terminó a las ${institucionDia.hora_extra} el día de hoy.`,
|
||||
);
|
||||
for (let i = 0; i < institucionDia.horasExcepcion.length; i++) {
|
||||
const horaFin = moment(
|
||||
`${ahoraStr} ${institucionDia.horasExcepcion[i].hora_fin}`,
|
||||
);
|
||||
const horaInicio = moment(
|
||||
`${ahoraStr} ${institucionDia.horasExcepcion[i].hora_inicio}`,
|
||||
);
|
||||
|
||||
if (ahora > horaInicio && ahora < horaFin)
|
||||
throw new ConflictException(
|
||||
`Se suspendió temporalmente el servicio de ${institucionDia.horasExcepcion[i].hora_inicio} a ${institucionDia.horasExcepcion[i].hora_fin}.`,
|
||||
);
|
||||
}
|
||||
// if (ahora.weekday() === 0)
|
||||
// throw new ConflictException('No hay servicio los días domingo.');
|
||||
// this.validarInstitucionUsuario(usuario.instituciones, modulo);
|
||||
// if (!institucionDia.activo)
|
||||
// throw new ConflictException(
|
||||
// 'El día de hoy no hay servicio de préstamo de equipos.',
|
||||
// );
|
||||
// if (ahora < horaMin)
|
||||
// throw new ConflictException(
|
||||
// `El servicio inicia a las ${institucionDia.hora_inicio} el día de hoy.`,
|
||||
// );
|
||||
// if (ahora >= horaExtra)
|
||||
// throw new ConflictException(
|
||||
// `El servicio terminó a las ${institucionDia.hora_extra} el día de hoy.`,
|
||||
// );
|
||||
// for (let i = 0; i < institucionDia.horasExcepcion.length; i++) {
|
||||
// const horaFin = moment(
|
||||
// `${ahoraStr} ${institucionDia.horasExcepcion[i].hora_fin}`,
|
||||
// );
|
||||
// const horaInicio = moment(
|
||||
// `${ahoraStr} ${institucionDia.horasExcepcion[i].hora_inicio}`,
|
||||
// );
|
||||
|
||||
// if (ahora > horaInicio && ahora < horaFin)
|
||||
// throw new ConflictException(
|
||||
// `Se suspendió temporalmente el servicio de ${institucionDia.horasExcepcion[i].hora_inicio} a ${institucionDia.horasExcepcion[i].hora_fin}.`,
|
||||
// );
|
||||
// }
|
||||
return this.informacionPrestamoView
|
||||
.findOne({ where: { activo: 1, id_usuario: usuario.id_usuario } })
|
||||
.then((existePrestamo) => {
|
||||
@@ -185,14 +186,14 @@ export class PrestamoService {
|
||||
'Este usuario ya tiene un préstamo activo.',
|
||||
);
|
||||
return this.equipoService.findEquipo(
|
||||
usuario.id_usuario,
|
||||
modulo,
|
||||
tipoCarrito,
|
||||
programa,
|
||||
tipoEntrada,
|
||||
);
|
||||
})
|
||||
.then((equipo) => this.equipoService.update(equipo, null, 2))
|
||||
.then(({ equipo }) =>
|
||||
.then((equipo) =>
|
||||
this.repository.save(
|
||||
this.repository.create({
|
||||
equipo,
|
||||
@@ -273,7 +274,7 @@ export class PrestamoService {
|
||||
}
|
||||
|
||||
async entregar(operadorEntrega: Operador, id_prestamo: number) {
|
||||
const ahora = moment().add(12, 'hour');
|
||||
const ahora = moment();
|
||||
const ahoraStr = ahora.format('YYYY-MM-DD');
|
||||
const prestamo = await this.findInfoPrestamoById(id_prestamo);
|
||||
const institucionDia =
|
||||
@@ -776,7 +777,7 @@ export class PrestamoService {
|
||||
descripcion?: string,
|
||||
id_institucion_infraccion?: number,
|
||||
) {
|
||||
const ahora = moment().add(12, 'hour');
|
||||
const ahora = moment();
|
||||
const tardanza = Math.trunc(ahora.diff(moment(prestamo.hora_fin)) / 60000);
|
||||
const semanasCastigo = Math.trunc(
|
||||
tardanza / operadorRegreso.institucion.tiempo_entrega,
|
||||
|
||||
Reference in New Issue
Block a user