list para crear cosas

This commit is contained in:
lemuel 2023-02-10 12:39:23 -06:00
parent dda3fc5987
commit 4e61a200c2
5 changed files with 64 additions and 14 deletions

View File

@ -3,11 +3,11 @@ import {
Entity,
JoinColumn,
ManyToOne,
// OneToMany,
OneToMany,
PrimaryGeneratedColumn,
} from 'typeorm';
import { InstitucionCarrera } from '../../institucion-carrera/entity/institucion-carrera.entity';
// import { Prestamo } from '../../prestamo/entity/prestamo.entity';
import { Prestamo } from '../../prestamo/entity/prestamo.entity';
import { Usuario } from '../../usuario/entity/usuario.entity';
@Entity()
@ -39,6 +39,6 @@ export class InstitucionUsuario {
@JoinColumn({ name: 'id_usuario' })
usuario: Usuario;
// @OneToMany(() => Prestamo, (prestamo) => prestamo.institucionUsuario)
// prestamos: Prestamo[];
@OneToMany(() => Prestamo, (prestamo) => prestamo.institucionUsuario)
prestamos: Prestamo[];
}

View File

@ -47,8 +47,8 @@ export class Prestamo {
@Column({ type: Number, nullable: true })
id_equipo: number;
// @Column({ type: Number, nullable: true })
// id_institucion_usuario: number;
@Column({ type: Number, nullable: true })
id_institucion_usuario: number;
@Column({ type: Number, nullable: true, default: 1 })
id_operador_entrega: number;
@ -63,13 +63,13 @@ export class Prestamo {
@JoinColumn({ name: 'id_equipo' })
equipo: Equipo;
// @ManyToOne(
// () => InstitucionUsuario,
// (institucionUsuario) => institucionUsuario.prestamos,
// { eager: true },
// )
// @JoinColumn({ name: 'id_institucion_usuario' })
// institucionUsuario: InstitucionUsuario;
@ManyToOne(
() => InstitucionUsuario,
(institucionUsuario) => institucionUsuario.prestamos,
{ eager: true },
)
@JoinColumn({ name: 'id_institucion_usuario' })
institucionUsuario: InstitucionUsuario;
@ManyToOne(
() => Operador,

View File

@ -1,8 +1,8 @@
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
import { Carrito } from '../../../carrito/entity/carrito.entity';
import { Prestamo } from '../prestamo.entity';
import { Equipo } from '../../../equipo/entity/equipo.entity';
import { Modulo } from '../../../modulo/entity/modulo.entity';
import { Prestamo } from '../prestamo.entity';
import { Status } from '../../../status/entity/status.entity';
import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carrito.entity';
@ -20,6 +20,7 @@ import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carri
.addSelect('p.hora_inicio', 'hora_inicio')
.addSelect('p.hora_max_recoger', 'hora_max_recoger')
.addSelect('p.id_equipo', 'id_equipo')
.addSelect('p.id_institucion_usuario', 'id_institucion_usuario')
.addSelect('p.id_operador_entrega', 'id_operador_entrega')
.addSelect('p.id_operador_regreso', 'id_operador_regreso')
.addSelect('p.id_usuario', 'id_usuario')
@ -83,6 +84,9 @@ export class InformacionPrestamoView {
@ViewColumn()
id_institucion: number;
@ViewColumn()
id_institucion_usuario: number;
@ViewColumn()
id_modulo: number;

View File

@ -629,4 +629,14 @@ export class PrestamoController {
this.validarUsuarioService.validarOperador(operador);
return this.prestamoService.findAll(operador, query);
}
@Serealize(MessageOutputDto)
@Post('reparar')
@UseGuards(AuthGuard('jwt'))
reparar(@Request() req) {
const superAdmin: Operador = req.user.operador;
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.prestamoService.reparar();
}
}

View File

@ -13,6 +13,7 @@ import {
Between,
FindManyOptions,
FindOptionsWhere,
IsNull,
LessThanOrEqual,
Like,
MoreThanOrEqual,
@ -952,4 +953,39 @@ export class PrestamoService {
usuario: { id_usuario: infoPrestamo.id_usuario },
});
}
reparar() {
return this.informacionPrestamoView
.find({ where: { id_institucion_usuario: IsNull() } })
.then(async (infoPrestamos) => {
for (let i = 0; i < infoPrestamos.length; i++) {
const prestamo = this.viewToPrestamo(infoPrestamos[i]);
const institucionesUsuario =
await this.institucionUsuarioService.findAllByIdUsuarioIdInstitucion(
prestamo.usuario,
prestamo.equipo.carrito.modulo.institucion,
);
if (institucionesUsuario.length === 1) {
prestamo.institucionUsuario = institucionesUsuario[0];
await this.repository.save(prestamo);
} else if (
prestamo.equipo.carrito.tipoCarrito.id_tipo_carrito === 2
) {
console.log(prestamo);
console.log(institucionesUsuario);
console.log(
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++',
);
} else
for (let j = 0; j < institucionesUsuario.length; j++)
if (institucionesUsuario[j].activo) {
prestamo.institucionUsuario = institucionesUsuario[j];
await this.repository.save(prestamo);
break;
}
}
return { message: 'Terminó' };
});
}
}