equipo final
This commit is contained in:
parent
4dc8d557eb
commit
1fa6ad02b6
@ -49,7 +49,7 @@ export class EquipoMotivoService {
|
||||
}
|
||||
|
||||
findAllByIdEquipo(id_equipo: number, pagina: number) {
|
||||
return this.equipoService.findById(id_equipo).then((equipo) =>
|
||||
return this.equipoService.findInfoEquipoById(id_equipo).then((equipo) =>
|
||||
this.repository.findAndCount({
|
||||
where: { equipo },
|
||||
skip: (pagina - 1) * 25,
|
||||
|
@ -37,7 +37,7 @@ export class EquipoProgramaService {
|
||||
) {
|
||||
const equipo =
|
||||
typeof id_equipo === 'number'
|
||||
? await this.equipoService.findById(id_equipo)
|
||||
? await this.equipoService.findInfoEquipoById(id_equipo)
|
||||
: id_equipo;
|
||||
const programa =
|
||||
typeof id_programa === 'number'
|
||||
|
@ -34,7 +34,7 @@ export class EquipoTipoEntradaService {
|
||||
) {
|
||||
const equipo =
|
||||
typeof id_equipo === 'number'
|
||||
? await this.equipoService.findById(id_equipo)
|
||||
? await this.equipoService.findInfoEquipoById(id_equipo)
|
||||
: id_equipo;
|
||||
const tipoEntrada =
|
||||
typeof id_tipo_entrada === 'number'
|
||||
|
@ -19,10 +19,6 @@ export class UpdateEquipoDto {
|
||||
@IsOptional()
|
||||
id_carrito?: number;
|
||||
|
||||
@IsInt()
|
||||
@IsOptional()
|
||||
id_operador?: number;
|
||||
|
||||
@IsInt()
|
||||
@IsOptional()
|
||||
id_status?: number;
|
||||
|
@ -11,9 +11,12 @@ import { Modulo } from '../../../modulo/entity/modulo.entity';
|
||||
dataSource
|
||||
.createQueryBuilder()
|
||||
.select('e.id_equipo', 'id_equipo')
|
||||
.addSelect('e.equipo', 'equipo')
|
||||
.addSelect('e.id_carrito', 'id_carrito')
|
||||
.addSelect('e.id_status', 'id_status')
|
||||
.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')
|
||||
.addSelect('ps.id_equipo_programa', 'id_equipo_programa')
|
||||
@ -35,6 +38,12 @@ import { Modulo } from '../../../modulo/entity/modulo.entity';
|
||||
.addOrderBy('e.equipo', 'ASC'),
|
||||
})
|
||||
export class InformacionEquipoPrestamoView {
|
||||
@ViewColumn()
|
||||
carrito: string;
|
||||
|
||||
@ViewColumn()
|
||||
equipo: string;
|
||||
|
||||
@ViewColumn()
|
||||
id_equipo: number;
|
||||
|
||||
@ -67,4 +76,7 @@ export class InformacionEquipoPrestamoView {
|
||||
|
||||
@ViewColumn()
|
||||
prestado: number;
|
||||
|
||||
@ViewColumn()
|
||||
u: number;
|
||||
}
|
||||
|
@ -189,13 +189,12 @@ export class EquipoController {
|
||||
this.validarUsuarioService.validarAdminOperador(operador);
|
||||
delete data.id_carrito;
|
||||
delete data.id_status;
|
||||
delete data.id_operador;
|
||||
delete data.motivo;
|
||||
return this.equipoService.update(
|
||||
operador,
|
||||
data,
|
||||
body.id_carrito,
|
||||
body.id_status,
|
||||
body.id_operador,
|
||||
body.motivo,
|
||||
);
|
||||
}
|
||||
|
@ -32,7 +32,6 @@ import { MarcaService } from '../marca/marca.service';
|
||||
import { ModeloService } from '../modelo/modelo.service';
|
||||
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';
|
||||
|
||||
@Injectable()
|
||||
@ -59,7 +58,6 @@ export class EquipoService {
|
||||
private moduloService: ModuloService,
|
||||
@Inject(forwardRef(() => EquipoMotivoService))
|
||||
private equipoMotivoService: EquipoMotivoService,
|
||||
private operadorService: OperadorService,
|
||||
private statusService: StatusService,
|
||||
) {}
|
||||
|
||||
@ -88,26 +86,6 @@ export class EquipoService {
|
||||
.then((_) => equipoNuevo);
|
||||
}
|
||||
|
||||
private viewToEquipo(infoEquipo: InformacionEquipoView) {
|
||||
return this.repository.create({
|
||||
id_equipo: infoEquipo.id_equipo,
|
||||
equipo: infoEquipo.equipo,
|
||||
numero_inventario: infoEquipo.numero_inventario,
|
||||
prestado: infoEquipo.prestado,
|
||||
u: infoEquipo.u,
|
||||
carrito: {
|
||||
id_carrito: infoEquipo.id_carrito,
|
||||
carrito: infoEquipo.carrito,
|
||||
modulo: {
|
||||
id_modulo: infoEquipo.id_modulo,
|
||||
institucion: { id_institucion: infoEquipo.id_institucion },
|
||||
},
|
||||
tipoCarrito: { id_tipo_carrito: infoEquipo.id_tipo_carrito },
|
||||
},
|
||||
status: { id_status: infoEquipo.id_status },
|
||||
});
|
||||
}
|
||||
|
||||
async findAll(
|
||||
operador: Operador,
|
||||
filtros: {
|
||||
@ -247,13 +225,6 @@ export class EquipoService {
|
||||
return query.getManyAndCount();
|
||||
}
|
||||
|
||||
findById(id_equipo: number) {
|
||||
return this.repository.findOne({ where: { id_equipo } }).then((equipo) => {
|
||||
if (!equipo) throw new NotFoundException('No existe este id equipo.');
|
||||
return equipo;
|
||||
});
|
||||
}
|
||||
|
||||
async findEquipo(
|
||||
id_usuario: number,
|
||||
modulo: Modulo,
|
||||
@ -283,7 +254,6 @@ export class EquipoService {
|
||||
busqueda.id_tipo_entrada = tipoEntrada.id_tipo_entrada;
|
||||
busquedaReseteo.id_tipo_entrada = tipoEntrada.id_tipo_entrada;
|
||||
}
|
||||
|
||||
return this.informacionEquipoPrestamoView
|
||||
.findOne({ where: busqueda })
|
||||
.then((infoEquipo) => {
|
||||
@ -312,6 +282,11 @@ export class EquipoService {
|
||||
return infoEquipo;
|
||||
})
|
||||
.then((infoEquipo) => {
|
||||
if (infoEquipo.u)
|
||||
throw new ConflictException(
|
||||
'Ocurrio un error al tratar de asignarte un equipo de cómputo, intenta de nuevo.',
|
||||
);
|
||||
|
||||
const equipo = this.repository.create({
|
||||
id_equipo: infoEquipo.id_equipo,
|
||||
u: id_usuario,
|
||||
@ -340,7 +315,7 @@ export class EquipoService {
|
||||
});
|
||||
}
|
||||
|
||||
async findInfoEquipoByNumeroInventario(
|
||||
findInfoEquipoByNumeroInventario(
|
||||
institucion: Institucion,
|
||||
numero_inventario: string,
|
||||
) {
|
||||
@ -459,44 +434,38 @@ export class EquipoService {
|
||||
}
|
||||
|
||||
async update(
|
||||
// operador: Operador,
|
||||
operador: Operador,
|
||||
attrs: Partial<Equipo>,
|
||||
id_carrito?: number,
|
||||
id_status?: number,
|
||||
id_operador?: number | Operador,
|
||||
motivo?: string,
|
||||
) {
|
||||
const carrito = id_carrito
|
||||
? await this.carritoService.findInfoCarritoById(id_carrito)
|
||||
: null;
|
||||
const operador = id_operador
|
||||
? typeof id_operador === 'number'
|
||||
? await this.operadorService.findById(id_operador)
|
||||
: id_operador
|
||||
: null;
|
||||
const status = id_status
|
||||
? await this.statusService.findById(id_status)
|
||||
: null;
|
||||
|
||||
return this.findById(attrs.id_equipo)
|
||||
return this.findInfoEquipoById(attrs.id_equipo)
|
||||
.then(async (equipo) => {
|
||||
if ((attrs.equipo && attrs.equipo != equipo.equipo) || carrito)
|
||||
await this.findInfoEquipoByEquipo(
|
||||
carrito ? carrito : equipo.carrito,
|
||||
attrs.equipo ? attrs.equipo : equipo.equipo,
|
||||
).then((existeEquipo) => {
|
||||
if (existeEquipo)
|
||||
throw new ConflictException(
|
||||
'Ya existe un equipo en este carrito con este nombre, intenta con otro.',
|
||||
);
|
||||
});
|
||||
if (
|
||||
status &&
|
||||
(status.id_status >= 4 ||
|
||||
(equipo.status.id_status >= 4 && status.id_status === 1))
|
||||
) {
|
||||
if (!operador)
|
||||
throw new ConflictException('No se mandó el id operador.');
|
||||
operador.tipoUsuario.id_tipo_usuario > 2 &&
|
||||
operador.institucion.id_institucion !=
|
||||
equipo.carrito.modulo.institucion.id_institucion
|
||||
)
|
||||
throw new ForbiddenException(
|
||||
'No puedes modificar la información este equipo porque no pertenece a tu institución.',
|
||||
);
|
||||
if (status) {
|
||||
if (equipo.status.id_status === 2 || equipo.status.id_status === 3)
|
||||
throw new ConflictException(
|
||||
'No se puede cambiar el status de un equipo si esta apartada o en uso.',
|
||||
);
|
||||
if (status.id_status === 2 || status.id_status === 3)
|
||||
throw new ConflictException(
|
||||
'No se puede cambiar manualmente el status de un equipo a este status.',
|
||||
);
|
||||
if (!motivo)
|
||||
throw new ConflictException(
|
||||
'No se mandó el motivo para el cambio de status.',
|
||||
@ -504,24 +473,56 @@ export class EquipoService {
|
||||
}
|
||||
Object.assign(equipo, attrs);
|
||||
if (status) {
|
||||
if (
|
||||
status.id_status >= 4 ||
|
||||
(equipo.status.id_status >= 4 && status.id_status === 1)
|
||||
)
|
||||
await this.equipoMotivoService.create(
|
||||
equipo,
|
||||
operador,
|
||||
status,
|
||||
motivo,
|
||||
);
|
||||
equipo.status = status;
|
||||
await this.equipoMotivoService.create(
|
||||
equipo,
|
||||
operador,
|
||||
status,
|
||||
motivo,
|
||||
);
|
||||
}
|
||||
if (carrito) equipo.carrito = carrito;
|
||||
return this.repository.save(equipo);
|
||||
})
|
||||
.then((equipo) => ({
|
||||
.then((_) => ({
|
||||
message: 'Se guardaron los cambios correctamente.',
|
||||
equipo,
|
||||
}));
|
||||
}
|
||||
|
||||
async updateStatus(equipo: Equipo, operador?: Operador, motivo?: string) {
|
||||
if (equipo.status.id_status >= 4) {
|
||||
if (!operador) throw new ConflictException('No se mandó el id operador.');
|
||||
if (!motivo)
|
||||
throw new ConflictException(
|
||||
'No se mandó el motivo para el cambio de status.',
|
||||
);
|
||||
await this.equipoMotivoService.create(
|
||||
equipo,
|
||||
operador,
|
||||
equipo.status,
|
||||
motivo,
|
||||
);
|
||||
}
|
||||
return this.repository.save(equipo);
|
||||
}
|
||||
|
||||
private viewToEquipo(infoEquipo: InformacionEquipoView) {
|
||||
return this.repository.create({
|
||||
id_equipo: infoEquipo.id_equipo,
|
||||
equipo: infoEquipo.equipo,
|
||||
numero_inventario: infoEquipo.numero_inventario,
|
||||
prestado: infoEquipo.prestado,
|
||||
u: infoEquipo.u,
|
||||
carrito: {
|
||||
id_carrito: infoEquipo.id_carrito,
|
||||
carrito: infoEquipo.carrito,
|
||||
modulo: {
|
||||
id_modulo: infoEquipo.id_modulo,
|
||||
institucion: { id_institucion: infoEquipo.id_institucion },
|
||||
},
|
||||
tipoCarrito: { id_tipo_carrito: infoEquipo.id_tipo_carrito },
|
||||
},
|
||||
status: { id_status: infoEquipo.id_status },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ export class MultaService {
|
||||
}
|
||||
|
||||
findAllByIdEquipo(id_equipo: number, pagina: number) {
|
||||
return this.equipoService.findById(id_equipo).then((equipo) =>
|
||||
return this.equipoService.findInfoEquipoById(id_equipo).then((equipo) =>
|
||||
this.repository
|
||||
.createQueryBuilder('mu')
|
||||
.innerJoinAndSelect('mu.institucionInfraccion', 'ii')
|
||||
|
@ -76,8 +76,9 @@ export class PrestamoService {
|
||||
prestamo.cancelado_operador = true;
|
||||
prestamo.operadorRegreso = operadorRegreso;
|
||||
prestamo.equipo.u = null;
|
||||
prestamo.equipo.status.id_status = 6;
|
||||
return this.equipoService
|
||||
.update(prestamo.equipo, null, 6, operadorRegreso, motivo)
|
||||
.updateStatus(prestamo.equipo, operadorRegreso, motivo)
|
||||
.then((_) => this.repository.save(prestamo))
|
||||
.then((_) => {
|
||||
this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario);
|
||||
@ -101,8 +102,9 @@ export class PrestamoService {
|
||||
prestamo.fecha_entrega = ahora.toDate();
|
||||
prestamo.cancelado_usuario = true;
|
||||
prestamo.equipo.u = null;
|
||||
prestamo.equipo.status.id_status = 1;
|
||||
return this.equipoService
|
||||
.update(prestamo.equipo, null, 1)
|
||||
.updateStatus(prestamo.equipo)
|
||||
.then((_) => this.repository.save(prestamo))
|
||||
.then((_) => {
|
||||
this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario);
|
||||
@ -254,11 +256,11 @@ export class PrestamoService {
|
||||
if (ahora.diff(moment(prestamos[i].hora_max_recoger)) > 0) {
|
||||
prestamos[i].activo = false;
|
||||
prestamos[i].cancelado_operador = true;
|
||||
prestamos[i].equipo.u = null;
|
||||
prestamos[i].equipo.status.id_status = 1;
|
||||
await this.repository
|
||||
.save(prestamos[i])
|
||||
.then((_) =>
|
||||
this.equipoService.update(prestamos[i].equipo, null, 1),
|
||||
)
|
||||
.then((_) => this.equipoService.updateStatus(prestamos[i].equipo))
|
||||
.then((_) => {
|
||||
this.appGateway.actualizarOperador(
|
||||
prestamos[i].equipo.carrito.modulo.institucion.id_institucion,
|
||||
@ -299,9 +301,10 @@ export class PrestamoService {
|
||||
: ahora.add(operadorEntrega.institucion.tiempo_prestamo, 'm').toDate();
|
||||
prestamo.operadorEntrega = operadorEntrega;
|
||||
prestamo.equipo.prestado = true;
|
||||
prestamo.equipo.status.id_status = 3;
|
||||
return this.repository
|
||||
.save(prestamo)
|
||||
.then((_) => this.equipoService.update(prestamo.equipo, null, 3))
|
||||
.then((_) => this.equipoService.updateStatus(prestamo.equipo))
|
||||
.then((_) => {
|
||||
this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario);
|
||||
this.appGateway.actualizarOperador(
|
||||
@ -792,6 +795,7 @@ export class PrestamoService {
|
||||
prestamo.fecha_entrega = ahora.toDate();
|
||||
prestamo.operadorRegreso = operadorRegreso;
|
||||
prestamo.equipo.u = null;
|
||||
prestamo.equipo.status.id_status = id_status;
|
||||
if (semanasCastigo > 0) {
|
||||
const mensajeTardanza = `El usaurio se tardó: ${tardanza} minutos en entregar el equipo de cómputo.`;
|
||||
|
||||
@ -821,10 +825,8 @@ export class PrestamoService {
|
||||
return this.repository
|
||||
.save(prestamo)
|
||||
.then((_) =>
|
||||
this.equipoService.update(
|
||||
this.equipoService.updateStatus(
|
||||
prestamo.equipo,
|
||||
null,
|
||||
id_status,
|
||||
operadorRegreso,
|
||||
motivo,
|
||||
),
|
||||
|
Loading…
Reference in New Issue
Block a user