equipo con programas y tipos de entrada
This commit is contained in:
@@ -75,7 +75,9 @@ import { InformacionCarritoView } from './carrito/entity/views/informacion-carri
|
||||
import { FullInformacionCarritoView } from './carrito/entity/views/full-informacion-carrito.view';
|
||||
import { FullInformacionEquipoView } from './equipo/entity/views/full-informacion-equipo.view';
|
||||
import { InformacionEquipoView } from './equipo/entity/views/informacion-equipo.view';
|
||||
import { FullInformacionEquipoProgramaView } from './equipo-programa/entity/views/full-informacion-equipo-programa.view';
|
||||
import { InformacionEquipoProgramaView } from './equipo-programa/entity/views/informacion-equipo-programa.view';
|
||||
import { FullInformacionEquipoTipoEntradaView } from './equipo-tipo-entrada/entity/views/full-informacion-equipo-tipo-entrada.view';
|
||||
import { InformacionEquipoTipoEntradaView } from './equipo-tipo-entrada/entity/views/informacion-equipo-tipo-entrada.view';
|
||||
import { InformacionInstitucionView } from './institucion/entity/views/informacion-institucion.view';
|
||||
import { MinInformacionInstitucionView } from './institucion/entity/views/min-informacion-institucion.view';
|
||||
@@ -150,7 +152,9 @@ import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuar
|
||||
FullInformacionCarritoView,
|
||||
FullInformacionEquipoView,
|
||||
InformacionEquipoView,
|
||||
FullInformacionEquipoProgramaView,
|
||||
InformacionEquipoProgramaView,
|
||||
FullInformacionEquipoTipoEntradaView,
|
||||
InformacionEquipoTipoEntradaView,
|
||||
InformacionInstitucionView,
|
||||
MinInformacionInstitucionView,
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
|
||||
import { EquipoPrograma } from '../equipo-programa.entity';
|
||||
import { Programa } from '../../../institucion-programa/entity/programa.entity';
|
||||
|
||||
@ViewEntity({
|
||||
expression: (dataSource: DataSource) =>
|
||||
dataSource
|
||||
.createQueryBuilder()
|
||||
.select('ep.id_equipo_programa', 'id_equipo_programa')
|
||||
.addSelect('ep.id_equipo', 'id_equipo')
|
||||
.addSelect('ep.id_programa', 'id_programa')
|
||||
.addSelect('p.programa', 'programa')
|
||||
.from(EquipoPrograma, 'ep')
|
||||
.innerJoin(Programa, 'p', 'p.id_programa = ep.id_programa'),
|
||||
})
|
||||
export class FullInformacionEquipoProgramaView {
|
||||
@ViewColumn()
|
||||
id_equipo_programa: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_equipo: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_programa: number;
|
||||
|
||||
@ViewColumn()
|
||||
programa: string;
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { EquipoProgramaController } from './equipo-programa.controller';
|
||||
import { EquipoProgramaService } from './equipo-programa.service';
|
||||
import { EquipoPrograma } from '../equipo-programa/entity/equipo-programa.entity';
|
||||
import { FullInformacionEquipoProgramaView } from './entity/views/full-informacion-equipo-programa.view';
|
||||
import { InformacionEquipoProgramaView } from './entity/views/informacion-equipo-programa.view';
|
||||
import { EquipoModule } from '../equipo/equipo.module';
|
||||
import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module';
|
||||
@@ -14,7 +15,11 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'
|
||||
forwardRef(() => EquipoModule),
|
||||
InstitucionProgramaModule,
|
||||
PassportModule.register({ defaultStrategy: 'jwt' }),
|
||||
TypeOrmModule.forFeature([EquipoPrograma, InformacionEquipoProgramaView]),
|
||||
TypeOrmModule.forFeature([
|
||||
EquipoPrograma,
|
||||
FullInformacionEquipoProgramaView,
|
||||
InformacionEquipoProgramaView,
|
||||
]),
|
||||
ValidarUsuarioModule,
|
||||
],
|
||||
controllers: [EquipoProgramaController],
|
||||
|
||||
@@ -10,6 +10,7 @@ import { Repository } from 'typeorm';
|
||||
import { Equipo } from '../equipo/entity/equipo.entity';
|
||||
import { EquipoPrograma } from './entity/equipo-programa.entity';
|
||||
import { Programa } from '../institucion-programa/entity/programa.entity';
|
||||
import { FullInformacionEquipoProgramaView } from './entity/views/full-informacion-equipo-programa.view';
|
||||
import { InformacionEquipoProgramaView } from './entity/views/informacion-equipo-programa.view';
|
||||
import { EquipoService } from '../equipo/equipo.service';
|
||||
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
@@ -20,6 +21,8 @@ export class EquipoProgramaService {
|
||||
constructor(
|
||||
@InjectRepository(EquipoPrograma)
|
||||
private repository: Repository<EquipoPrograma>,
|
||||
@InjectRepository(FullInformacionEquipoProgramaView)
|
||||
private fullInformacionEquipoProgramaView: Repository<FullInformacionEquipoProgramaView>,
|
||||
@InjectRepository(InformacionEquipoProgramaView)
|
||||
private informacionEquipoProgramaView: Repository<InformacionEquipoProgramaView>,
|
||||
@Inject(forwardRef(() => EquipoService))
|
||||
@@ -147,6 +150,28 @@ export class EquipoProgramaService {
|
||||
});
|
||||
}
|
||||
|
||||
findFullInfoEquipoProgramaAllByIdEquipo(id_equipo: number) {
|
||||
return this.fullInformacionEquipoProgramaView
|
||||
.find({
|
||||
where: { id_equipo },
|
||||
})
|
||||
.then((infoEquipoProgramas) => {
|
||||
const equipoProgramas: EquipoPrograma[] = [];
|
||||
|
||||
for (let i = 0; i < infoEquipoProgramas.length; i++)
|
||||
equipoProgramas.push(
|
||||
this.repository.create({
|
||||
id_equipo_programa: infoEquipoProgramas[i].id_equipo_programa,
|
||||
programa: {
|
||||
id_programa: infoEquipoProgramas[i].id_programa,
|
||||
programa: infoEquipoProgramas[i].programa,
|
||||
},
|
||||
}),
|
||||
);
|
||||
return equipoProgramas;
|
||||
});
|
||||
}
|
||||
|
||||
informacionEquipoPrograma(id_equipo: number, id_programa: number) {
|
||||
return this.informacionEquipoProgramaView.findOne({
|
||||
where: { id_equipo, id_programa },
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
|
||||
import { EquipoTipoEntrada } from '../equipo-tipo-entrada.entity';
|
||||
import { TipoEntrada } from '../../../institucion-tipo-entrada/entity/tipo-entrada.entity';
|
||||
|
||||
@ViewEntity({
|
||||
expression: (dataSource: DataSource) =>
|
||||
dataSource
|
||||
.createQueryBuilder()
|
||||
.select('ete.id_equipo_tipo_entrada', 'id_equipo_tipo_entrada')
|
||||
.addSelect('ete.id_equipo', 'id_equipo')
|
||||
.addSelect('ete.id_tipo_entrada', 'id_tipo_entrada')
|
||||
.addSelect('te.tipo_entrada', 'tipo_entrada')
|
||||
.from(EquipoTipoEntrada, 'ete')
|
||||
.innerJoin(TipoEntrada, 'te', 'te.id_tipo_entrada = ete.id_tipo_entrada'),
|
||||
})
|
||||
export class FullInformacionEquipoTipoEntradaView {
|
||||
@ViewColumn()
|
||||
id_equipo_tipo_entrada: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_equipo: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_tipo_entrada: number;
|
||||
|
||||
@ViewColumn()
|
||||
tipo_entrada: string;
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { forwardRef, Module } from '@nestjs/common';
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { EquipoTipoEntradaController } from './equipo-tipo-entrada.controller';
|
||||
import { EquipoTipoEntradaService } from './equipo-tipo-entrada.service';
|
||||
import { EquipoTipoEntrada } from '../equipo-tipo-entrada/entity/equipo-tipo-entrada.entity';
|
||||
import { FullInformacionEquipoTipoEntradaView } from './entity/views/full-informacion-equipo-tipo-entrada.view';
|
||||
import { InformacionEquipoTipoEntradaView } from './entity/views/informacion-equipo-tipo-entrada.view';
|
||||
import { EquipoModule } from '../equipo/equipo.module';
|
||||
import { InstitucionTipoEntradaModule } from '../institucion-tipo-entrada/institucion-tipo-entrada.module';
|
||||
@@ -11,11 +12,12 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
EquipoModule,
|
||||
forwardRef(() => EquipoModule),
|
||||
InstitucionTipoEntradaModule,
|
||||
PassportModule.register({ defaultStrategy: 'jwt' }),
|
||||
TypeOrmModule.forFeature([
|
||||
EquipoTipoEntrada,
|
||||
FullInformacionEquipoTipoEntradaView,
|
||||
InformacionEquipoTipoEntradaView,
|
||||
]),
|
||||
ValidarUsuarioModule,
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
import { ConflictException, Injectable } from '@nestjs/common';
|
||||
import {
|
||||
ConflictException,
|
||||
forwardRef,
|
||||
Inject,
|
||||
Injectable,
|
||||
} from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Equipo } from '../equipo/entity/equipo.entity';
|
||||
import { EquipoTipoEntrada } from './entity/equipo-tipo-entrada.entity';
|
||||
import { TipoEntrada } from '../institucion-tipo-entrada/entity/tipo-entrada.entity';
|
||||
import { FullInformacionEquipoTipoEntradaView } from './entity/views/full-informacion-equipo-tipo-entrada.view';
|
||||
import { InformacionEquipoTipoEntradaView } from './entity/views/informacion-equipo-tipo-entrada.view';
|
||||
import { EquipoService } from '../equipo/equipo.service';
|
||||
import { InstitucionTipoEntradaService } from '../institucion-tipo-entrada/institucion-tipo-entrada.service';
|
||||
@@ -14,7 +20,10 @@ export class EquipoTipoEntradaService {
|
||||
@InjectRepository(EquipoTipoEntrada)
|
||||
private repository: Repository<EquipoTipoEntrada>,
|
||||
@InjectRepository(InformacionEquipoTipoEntradaView)
|
||||
private fullInformacionEquipoTipoEntradaView: Repository<FullInformacionEquipoTipoEntradaView>,
|
||||
@InjectRepository(FullInformacionEquipoTipoEntradaView)
|
||||
private informacionEquipoTipoEntradaView: Repository<InformacionEquipoTipoEntradaView>,
|
||||
@Inject(forwardRef(() => EquipoService))
|
||||
private equipoService: EquipoService,
|
||||
private institucionTipoEntradaService: InstitucionTipoEntradaService,
|
||||
) {}
|
||||
@@ -80,6 +89,29 @@ export class EquipoTipoEntradaService {
|
||||
});
|
||||
}
|
||||
|
||||
findFullInfoEquipoTipoEntradaAllByIdEquipo(id_equipo: number) {
|
||||
return this.fullInformacionEquipoTipoEntradaView
|
||||
.find({
|
||||
where: { id_equipo },
|
||||
})
|
||||
.then((infoEquipoTipoEntradas) => {
|
||||
const equipoProgramas: EquipoTipoEntrada[] = [];
|
||||
|
||||
for (let i = 0; i < infoEquipoTipoEntradas.length; i++)
|
||||
equipoProgramas.push(
|
||||
this.repository.create({
|
||||
id_equipo_tipo_entrada:
|
||||
infoEquipoTipoEntradas[i].id_equipo_tipo_entrada,
|
||||
tipoEntrada: {
|
||||
id_tipo_entrada: infoEquipoTipoEntradas[i].id_tipo_entrada,
|
||||
tipo_entrada: infoEquipoTipoEntradas[i].tipo_entrada,
|
||||
},
|
||||
}),
|
||||
);
|
||||
return equipoProgramas;
|
||||
});
|
||||
}
|
||||
|
||||
informacionEquipoTipoEntrada(id_equipo: number, id_tipo_entrada: number) {
|
||||
return this.informacionEquipoTipoEntradaView.findOne({
|
||||
where: { id_equipo, id_tipo_entrada },
|
||||
|
||||
@@ -21,23 +21,20 @@ import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carri
|
||||
.addSelect('e.numero_inventario', 'numero_inventario')
|
||||
.addSelect('e.numero_serie', 'numero_serie')
|
||||
.addSelect('e.prestado', 'prestado')
|
||||
.addSelect('c.activo', 'activo_carrito')
|
||||
.addSelect('c.carrito', 'carrito')
|
||||
.addSelect('c.id_modulo', 'id_modulo')
|
||||
.addSelect('c.id_tipo_carrito', 'id_tipo_carrito')
|
||||
.addSelect('ma.marca', 'marca')
|
||||
.addSelect('mo.modelo', 'modelo')
|
||||
.addSelect('s.status', 'status')
|
||||
.addSelect('m.activo', 'activo_modulo')
|
||||
.addSelect('m.id_institucion', 'id_institucion')
|
||||
.addSelect('m.modulo', 'modulo')
|
||||
.addSelect('tc.tipo_carrito', 'tipo_carrito')
|
||||
.addSelect('i.activo', 'activo_institucion')
|
||||
.addSelect('i.institucion', 'institucion')
|
||||
.from(Equipo, 'e')
|
||||
.innerJoin(Carrito, 'c', 'c.id_carrito = e.id_carrito')
|
||||
.innerJoin(Marca, 'ma', 'ma.id_marca = e.id_marca')
|
||||
.innerJoin(Modelo, 'mo', 'mo.id_modelo = e.modelo')
|
||||
.innerJoin(Modelo, 'mo', 'mo.id_modelo = e.id_modelo')
|
||||
.innerJoin(Status, 's', 's.id_status = e.id_status')
|
||||
.innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo')
|
||||
.innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito')
|
||||
@@ -52,15 +49,6 @@ export class FullInformacionEquipoView {
|
||||
@ViewColumn()
|
||||
id_equipo: number;
|
||||
|
||||
@ViewColumn()
|
||||
activo_carrito: boolean;
|
||||
|
||||
@ViewColumn()
|
||||
activo_institucion: boolean;
|
||||
|
||||
@ViewColumn()
|
||||
activo_modulo: boolean;
|
||||
|
||||
@ViewColumn()
|
||||
carrito: string;
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { FullInformacionEquipoView } from './entity/views/full-informacion-equip
|
||||
import { InformacionEquipoView } from './entity/views/informacion-equipo.view';
|
||||
import { CarritoModule } from '../carrito/carrito.module';
|
||||
import { EquipoProgramaModule } from '../equipo-programa/equipo-programa.module';
|
||||
import { EquipoTipoEntradaModule } from '../equipo-tipo-entrada/equipo-tipo-entrada.module';
|
||||
import { InstitucionModule } from '../institucion/institucion.module';
|
||||
import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module';
|
||||
import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/institucion-tipo-carrito.module';
|
||||
@@ -24,6 +25,7 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'
|
||||
imports: [
|
||||
CarritoModule,
|
||||
forwardRef(() => EquipoProgramaModule),
|
||||
forwardRef(() => EquipoTipoEntradaModule),
|
||||
InstitucionModule,
|
||||
InstitucionProgramaModule,
|
||||
InstitucionTipoCarritoModule,
|
||||
|
||||
@@ -22,6 +22,7 @@ import { InformacionEquipoView } from './entity/views/informacion-equipo.view';
|
||||
import { FullInformacionEquipoView } from './entity/views/full-informacion-equipo.view';
|
||||
import { CarritoService } from '../carrito/carrito.service';
|
||||
import { EquipoProgramaService } from '../equipo-programa/equipo-programa.service';
|
||||
import { EquipoTipoEntradaService } from '../equipo-tipo-entrada/equipo-tipo-entrada.service';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
|
||||
@@ -44,6 +45,8 @@ export class EquipoService {
|
||||
private carritoService: CarritoService,
|
||||
@Inject(forwardRef(() => EquipoProgramaService))
|
||||
private equipoProgramaService: EquipoProgramaService,
|
||||
@Inject(forwardRef(() => EquipoTipoEntradaService))
|
||||
private equipoTipoEntradaService: EquipoTipoEntradaService,
|
||||
private institucionService: InstitucionService,
|
||||
private institucionProgramaService: InstitucionProgramaService,
|
||||
private institucionTipoCarritoService: InstitucionTipoCarritoService,
|
||||
@@ -391,11 +394,21 @@ export class EquipoService {
|
||||
},
|
||||
}),
|
||||
)
|
||||
.then((infoEquipo) => {
|
||||
.then(async (infoEquipo) => {
|
||||
if (!infoEquipo)
|
||||
throw new NotFoundException(
|
||||
'No existe un equipo de cómputo con este número de inventario.',
|
||||
);
|
||||
|
||||
const programas =
|
||||
await this.equipoProgramaService.findFullInfoEquipoProgramaAllByIdEquipo(
|
||||
infoEquipo.id_equipo,
|
||||
);
|
||||
const tiposEntradas =
|
||||
await this.equipoTipoEntradaService.findFullInfoEquipoTipoEntradaAllByIdEquipo(
|
||||
infoEquipo.id_equipo,
|
||||
);
|
||||
|
||||
return this.repository.create({
|
||||
id_equipo: infoEquipo.id_equipo,
|
||||
equipo: infoEquipo.equipo,
|
||||
@@ -429,6 +442,8 @@ export class EquipoService {
|
||||
id_status: infoEquipo.id_status,
|
||||
status: infoEquipo.status,
|
||||
},
|
||||
programas,
|
||||
tiposEntradas,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user