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

View File

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

View File

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

View File

@ -629,4 +629,14 @@ export class PrestamoController {
this.validarUsuarioService.validarOperador(operador); this.validarUsuarioService.validarOperador(operador);
return this.prestamoService.findAll(operador, query); 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, Between,
FindManyOptions, FindManyOptions,
FindOptionsWhere, FindOptionsWhere,
IsNull,
LessThanOrEqual, LessThanOrEqual,
Like, Like,
MoreThanOrEqual, MoreThanOrEqual,
@ -952,4 +953,39 @@ export class PrestamoService {
usuario: { id_usuario: infoPrestamo.id_usuario }, 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ó' };
});
}
} }