falta un update
This commit is contained in:
parent
fccc5f11c5
commit
4c8da74726
@ -80,6 +80,8 @@ import { FullInformacionEquipoProgramaView } from './equipo-programa/entity/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 { FullInformacionInstitucionUsuarioView } from './institucion-usuario/entity/views/full-informacion-institucion-usuario.view';
|
||||
import { InformacionInstitucionUsuarioView } from './institucion-usuario/entity/views/informacion-institucion-usuario.view';
|
||||
import { InformacionModuloView } from './modulo/entity/views/informacion-modulo.view';
|
||||
import { MinInformacionModuloView } from './modulo/entity/views/min-informacion-modulo.view';
|
||||
import { FullInformacionMultaView } from './multa/entity/views/full-informacion-multa.view';
|
||||
@ -157,6 +159,8 @@ import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuar
|
||||
InformacionEquipoProgramaView,
|
||||
FullInformacionEquipoTipoEntradaView,
|
||||
InformacionEquipoTipoEntradaView,
|
||||
FullInformacionInstitucionUsuarioView,
|
||||
InformacionInstitucionUsuarioView,
|
||||
InformacionModuloView,
|
||||
MinInformacionModuloView,
|
||||
FullInformacionMultaView,
|
||||
|
@ -1,28 +0,0 @@
|
||||
// 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;
|
||||
// }
|
@ -0,0 +1,62 @@
|
||||
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
|
||||
import { Carrera } from '../../../institucion-carrera/entity/carrera.entity';
|
||||
import { Institucion } from '../../../institucion/entity/institucion.entity';
|
||||
import { InstitucionCarrera } from '../../../institucion-carrera/entity/institucion-carrera.entity';
|
||||
import { InstitucionUsuario } from '../institucion-usuario.entity';
|
||||
import { Usuario } from '../../../usuario/entity/usuario.entity';
|
||||
|
||||
@ViewEntity({
|
||||
expression: (dataSource: DataSource) =>
|
||||
dataSource
|
||||
.createQueryBuilder()
|
||||
.select('iu.id_institucion_usuario', 'id_institucion_usuario')
|
||||
.addSelect('iu.activo', 'activo')
|
||||
.addSelect('iu.multa', 'multa')
|
||||
.addSelect('iu.id_institucion_carrera', 'id_institucion_carrera')
|
||||
.addSelect('iu.id_usuario', 'id_usuario')
|
||||
.addSelect('ic.id_carrera', 'id_carrera')
|
||||
.addSelect('ic.id_institucion', 'id_institucion')
|
||||
.addSelect('u.correo', 'correo')
|
||||
.addSelect('c.carrera', 'carrera')
|
||||
.addSelect('i.institucion', 'institucion')
|
||||
.from(InstitucionUsuario, 'iu')
|
||||
.innerJoin(
|
||||
InstitucionCarrera,
|
||||
'ic',
|
||||
'ic.id_institucion_carrera = iu.id_institucion_carrera',
|
||||
)
|
||||
.innerJoin(Usuario, 'u', 'u.id_usuario = iu.id_usuario')
|
||||
.innerJoin(Carrera, 'c', 'c.id_carrera = ic.id_carrera')
|
||||
.innerJoin(Institucion, 'i', 'i.id_institucion = ic.id_institucion'),
|
||||
})
|
||||
export class FullInformacionInstitucionUsuarioView {
|
||||
@ViewColumn()
|
||||
id_carrera: number;
|
||||
|
||||
@ViewColumn()
|
||||
activo: number;
|
||||
|
||||
@ViewColumn()
|
||||
carrera: string;
|
||||
|
||||
@ViewColumn()
|
||||
correo: string;
|
||||
|
||||
@ViewColumn()
|
||||
institucion: string;
|
||||
|
||||
@ViewColumn()
|
||||
id_institucion: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_institucion_carrera: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_institucion_usuario: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_usuario: number;
|
||||
|
||||
@ViewColumn()
|
||||
multa: number;
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
|
||||
import { InstitucionUsuario } from '../institucion-usuario.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')
|
||||
.from(InstitucionUsuario, 'ep'),
|
||||
})
|
||||
export class InformacionEquipoProgramaView {
|
||||
@ViewColumn()
|
||||
id_equipo_programa: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_equipo: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_programa: number;
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
|
||||
import { InstitucionCarrera } from '../../../institucion-carrera/entity/institucion-carrera.entity';
|
||||
import { InstitucionUsuario } from '../institucion-usuario.entity';
|
||||
|
||||
@ViewEntity({
|
||||
expression: (dataSource: DataSource) =>
|
||||
dataSource
|
||||
.createQueryBuilder()
|
||||
.select('iu.id_institucion_usuario', 'id_institucion_usuario')
|
||||
.addSelect('iu.activo', 'activo')
|
||||
.addSelect('iu.multa', 'multa')
|
||||
.addSelect('iu.id_institucion_carrera', 'id_institucion_carrera')
|
||||
.addSelect('iu.id_usuario', 'id_usuario')
|
||||
.addSelect('ic.id_carrera', 'id_carrera')
|
||||
.addSelect('ic.id_institucion', 'id_institucion')
|
||||
.from(InstitucionUsuario, 'iu')
|
||||
.innerJoin(
|
||||
InstitucionCarrera,
|
||||
'ic',
|
||||
'ic.id_institucion_carrera = iu.id_institucion_carrera',
|
||||
),
|
||||
})
|
||||
export class InformacionInstitucionUsuarioView {
|
||||
@ViewColumn()
|
||||
id_carrera: number;
|
||||
|
||||
@ViewColumn()
|
||||
activo: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_institucion: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_institucion_carrera: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_institucion_usuario: number;
|
||||
|
||||
@ViewColumn()
|
||||
id_usuario: number;
|
||||
|
||||
@ViewColumn()
|
||||
multa: number;
|
||||
}
|
@ -3,13 +3,19 @@ import { PassportModule } from '@nestjs/passport';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { InstitucionUsuarioService } from './institucion-usuario.service';
|
||||
import { InstitucionUsuario } from './entity/institucion-usuario.entity';
|
||||
import { FullInformacionInstitucionUsuarioView } from './entity/views/full-informacion-institucion-usuario.view';
|
||||
import { InformacionInstitucionUsuarioView } from './entity/views/informacion-institucion-usuario.view';
|
||||
import { InstitucionUsuarioController } from './institucion-usuario.controller';
|
||||
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
PassportModule.register({ defaultStrategy: 'jwt' }),
|
||||
TypeOrmModule.forFeature([InstitucionUsuario]),
|
||||
TypeOrmModule.forFeature([
|
||||
InstitucionUsuario,
|
||||
FullInformacionInstitucionUsuarioView,
|
||||
InformacionInstitucionUsuarioView,
|
||||
]),
|
||||
ValidarUsuarioModule,
|
||||
],
|
||||
providers: [InstitucionUsuarioService],
|
||||
|
@ -4,12 +4,18 @@ import { Repository } from 'typeorm';
|
||||
import { InstitucionCarrera } from '../institucion-carrera/entity/institucion-carrera.entity';
|
||||
import { InstitucionUsuario } from './entity/institucion-usuario.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { FullInformacionInstitucionUsuarioView } from './entity/views/full-informacion-institucion-usuario.view';
|
||||
import { InformacionInstitucionUsuarioView } from './entity/views/informacion-institucion-usuario.view';
|
||||
|
||||
@Injectable()
|
||||
export class InstitucionUsuarioService {
|
||||
constructor(
|
||||
@InjectRepository(InstitucionUsuario)
|
||||
private repository: Repository<InstitucionUsuario>,
|
||||
@InjectRepository(FullInformacionInstitucionUsuarioView)
|
||||
private fullInformacionInstitucionUsuarioView: Repository<FullInformacionInstitucionUsuarioView>,
|
||||
@InjectRepository(InformacionInstitucionUsuarioView)
|
||||
private informacionInstitucionUsuarioView: Repository<InformacionInstitucionUsuarioView>,
|
||||
) {}
|
||||
|
||||
create(institucionCarrera: InstitucionCarrera, usuario: Usuario) {
|
||||
@ -21,51 +27,97 @@ export class InstitucionUsuarioService {
|
||||
}));
|
||||
}
|
||||
|
||||
findAllByIdUsuario(id_usuario: number) {
|
||||
return this.repository.find({
|
||||
join: {
|
||||
alias: 'iu',
|
||||
innerJoinAndSelect: { ic: 'iu.institucionCarrera' },
|
||||
},
|
||||
where: { usuario: { id_usuario } },
|
||||
});
|
||||
}
|
||||
findInfoInstitucionUsuarioAllByIdUsuario(id_usuario: number) {
|
||||
return this.informacionInstitucionUsuarioView
|
||||
.find({ where: { id_usuario } })
|
||||
.then((infoInstitucionUsuarios) => {
|
||||
const institucionUsuarios: InstitucionUsuario[] = [];
|
||||
|
||||
findById(id_institucion_usuario: number) {
|
||||
return this.repository
|
||||
.findOne({ where: { id_institucion_usuario } })
|
||||
.then((institucionUsuario) => {
|
||||
if (!institucionUsuario)
|
||||
throw new ConflictException('No existe este id institución usuario.');
|
||||
return institucionUsuario;
|
||||
for (let i = 0; i < infoInstitucionUsuarios.length; i++)
|
||||
institucionUsuarios.push(
|
||||
this.repository.create({
|
||||
id_institucion_usuario:
|
||||
infoInstitucionUsuarios[i].id_institucion_usuario,
|
||||
activo: infoInstitucionUsuarios[i].activo === 1,
|
||||
multa: infoInstitucionUsuarios[i].multa === 1,
|
||||
institucionCarrera: {
|
||||
id_institucion_carrera:
|
||||
infoInstitucionUsuarios[i].id_institucion_carrera,
|
||||
carrera: { id_carrera: infoInstitucionUsuarios[i].id_carrera },
|
||||
institucion: {
|
||||
id_institucion: infoInstitucionUsuarios[i].id_institucion,
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
return institucionUsuarios;
|
||||
});
|
||||
}
|
||||
|
||||
findByUsuarioInstitucionCarrera(
|
||||
findInfoInstitucionUsuarioById(id_institucion_usuario: number) {
|
||||
return this.informacionInstitucionUsuarioView
|
||||
.findOne({ where: { id_institucion_usuario } })
|
||||
.then((infoInstitucionUsuario) => {
|
||||
if (!infoInstitucionUsuario)
|
||||
throw new ConflictException('No existe este id institución usuario.');
|
||||
return this.repository.create({
|
||||
id_institucion_usuario: infoInstitucionUsuario.id_institucion_usuario,
|
||||
activo: infoInstitucionUsuario.activo === 1,
|
||||
multa: infoInstitucionUsuario.multa === 1,
|
||||
institucionCarrera: {
|
||||
id_institucion_carrera:
|
||||
infoInstitucionUsuario.id_institucion_carrera,
|
||||
carrera: { id_carrera: infoInstitucionUsuario.id_carrera },
|
||||
institucion: {
|
||||
id_institucion: infoInstitucionUsuario.id_institucion,
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
findFullInfoInstitucionUsuarioByUsuarioInstitucionCarrera(
|
||||
usuario: Usuario,
|
||||
institucionCarrera: InstitucionCarrera,
|
||||
) {
|
||||
return this.repository
|
||||
return this.fullInformacionInstitucionUsuarioView
|
||||
.findOne({
|
||||
where: { activo: true, institucionCarrera, usuario },
|
||||
where: {
|
||||
id_institucion_carrera: institucionCarrera.id_institucion_carrera,
|
||||
id_usuario: usuario.id_usuario,
|
||||
},
|
||||
})
|
||||
.then((institucionUsuario) => {
|
||||
if (!institucionUsuario)
|
||||
.then((infoInstitucionUsuario) => {
|
||||
if (!infoInstitucionUsuario || infoInstitucionUsuario.activo === 0)
|
||||
throw new ConflictException(
|
||||
'Verificar sus datos, cualquier duda asistir al módulo PC PUMA.',
|
||||
);
|
||||
return institucionUsuario;
|
||||
return this.repository.create({
|
||||
id_institucion_usuario: infoInstitucionUsuario.id_institucion_usuario,
|
||||
activo: infoInstitucionUsuario.activo === 1,
|
||||
multa: infoInstitucionUsuario.multa === 1,
|
||||
institucionCarrera: {
|
||||
id_institucion_carrera:
|
||||
infoInstitucionUsuario.id_institucion_carrera,
|
||||
carrera: { id_carrera: infoInstitucionUsuario.id_carrera },
|
||||
institucion: {
|
||||
id_institucion: infoInstitucionUsuario.id_institucion,
|
||||
},
|
||||
},
|
||||
usuario: {
|
||||
id_usuario: infoInstitucionUsuario.id_usuario,
|
||||
correo: infoInstitucionUsuario.correo,
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
update(attrs: Partial<InstitucionUsuario>) {
|
||||
return this.findById(attrs.id_institucion_usuario)
|
||||
return this.findInfoInstitucionUsuarioById(attrs.id_institucion_usuario)
|
||||
.then((institucionUsuario) => {
|
||||
Object.assign(institucionUsuario, attrs);
|
||||
return this.repository.save(institucionUsuario);
|
||||
})
|
||||
.then((_) => ({
|
||||
message: 'Se guardaron los cambios correctamente.',
|
||||
}));
|
||||
.then((_) => ({ message: 'Se guardaron los cambios correctamente.' }));
|
||||
}
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ export class MultaService {
|
||||
return this.repository.save(this.repository.create(data));
|
||||
})
|
||||
.then((_) =>
|
||||
this.institucionUsuarioService.findAllByIdUsuario(
|
||||
this.institucionUsuarioService.findInfoInstitucionUsuarioAllByIdUsuario(
|
||||
prestamo.usuario.id_usuario,
|
||||
),
|
||||
)
|
||||
@ -265,9 +265,10 @@ export class MultaService {
|
||||
}
|
||||
|
||||
async quitarMulta(id_institucion_usuario: number) {
|
||||
const institucionUsuario = await this.institucionUsuarioService.findById(
|
||||
id_institucion_usuario,
|
||||
);
|
||||
const institucionUsuario =
|
||||
await this.institucionUsuarioService.findInfoInstitucionUsuarioById(
|
||||
id_institucion_usuario,
|
||||
);
|
||||
|
||||
return this.repository
|
||||
.createQueryBuilder('mu')
|
||||
|
@ -249,27 +249,26 @@ export class UsuarioService {
|
||||
throw new ConflictException(
|
||||
'Verificar sus datos, cualquier duda asistir al módulo PC PUMA.',
|
||||
);
|
||||
return this.institucionUsuarioService.findByUsuarioInstitucionCarrera(
|
||||
return this.institucionUsuarioService.findFullInfoInstitucionUsuarioByUsuarioInstitucionCarrera(
|
||||
existeUsuario,
|
||||
institucionCarrera,
|
||||
);
|
||||
})
|
||||
.then((institucionUsuario) => {
|
||||
const usuario = institucionUsuario.usuario;
|
||||
|
||||
if (!usuario.correo)
|
||||
if (!institucionUsuario.usuario.correo)
|
||||
throw new ConflictException(
|
||||
'Tu institución no te asignó un correo institucional, dirigete al módulo ',
|
||||
'Tu institución no te asignó un correo institucional, dirigete al módulo para solucionarlo.',
|
||||
);
|
||||
|
||||
const arrobaIndex = usuario.correo.indexOf('@');
|
||||
const arrobaIndex = institucionUsuario.usuario.correo.indexOf('@');
|
||||
|
||||
message = `Se creó correctamente tu cuenta, mandamos un correo a ...${usuario.correo.slice(
|
||||
message = `Se creó correctamente tu cuenta, mandamos un correo a ...${institucionUsuario.usuario.correo.slice(
|
||||
arrobaIndex - 3,
|
||||
)} con tus credenciales para acceder a este servicio.`;
|
||||
usuario.telefono = telefono;
|
||||
usuario.password = this.bcryptService.encriptar(password);
|
||||
return this.repository.save(usuario);
|
||||
institucionUsuario.usuario.telefono = telefono;
|
||||
institucionUsuario.usuario.password =
|
||||
this.bcryptService.encriptar(password);
|
||||
return this.repository.save(institucionUsuario.usuario);
|
||||
})
|
||||
.then((usuario) =>
|
||||
this.nodemailerService.sendEmail({
|
||||
|
Loading…
Reference in New Issue
Block a user