carga masiva usuarios listo

This commit is contained in:
xXpuma99Xx 2022-06-07 10:59:28 -05:00
parent 23755c50bf
commit aa7ee5fdd3
3 changed files with 34 additions and 37 deletions

View File

@ -1,9 +1,6 @@
import * as fs from 'fs';
import * as csvtojson from 'csvtojson';
import { BadRequestException, Injectable } from '@nestjs/common';
import { Institucion } from '../institucion/entity/institucion.entity';
import { InstitucionCarrera } from '../institucion-carrera/entity/institucion-carrera.entity';
import { TipoUsuario } from '../tipo-usuario/entity/tipo-usuario.entity';
import { Equipo } from '../equipo/entity/equipo.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { CarritoService } from '../carrito/carrito.service';
import { EquipoService } from '../equipo/equipo.service';
@ -16,7 +13,6 @@ import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service';
import { UsuarioService } from '../usuario/usuario.service';
import { UploadFileCargaMasivaUsuarioDto } from './dto/upload-file-carga-masiva-usuario.dto';
import { UploadFileCargaMasivaEquipoDto } from './dto/upload-file-carga-masiva-equipo.dto';
import { Equipo } from '../equipo/entity/equipo.entity';
@Injectable()
export class UploadFileService {
@ -115,17 +111,19 @@ export class UploadFileService {
}
if (equipo) {
// if (
// equipo.numero_inventario != equipos[i].numero_inventario ||
// equipo.numero_serie != equipos[i].numero_serie
// ) {
// if (equipo.numero_inventario != equipos[i].numero_inventario)
// error += ' ';
// if (error != this.errorBase(i)) error += ',';
// if (equipo.numero_serie != equipos[i].numero_serie)
// errores.push(error + '.');
// continue;
// }
if (
equipo.numero_inventario != equipos[i].numero_inventario ||
equipo.numero_serie != equipos[i].numero_serie ||
(equipo.numero_inventario == equipos[i].numero_inventario &&
equipo.numero_serie != equipos[i].numero_serie)
) {
if (equipo.numero_inventario != equipos[i].numero_inventario)
error += ' ';
if (error != this.errorBase(i)) error += ',';
if (equipo.numero_serie != equipos[i].numero_serie)
errores.push(error + '.');
continue;
}
} else {
equipo = await this.equipoService.findByNumeroInventario(
institucion,
@ -145,9 +143,7 @@ export class UploadFileService {
equipos[i].numero_inventario,
equipos[i].numero_serie,
)
.then((equipo) => {
equiposNuevos.push(equipo);
});
.then((equipo) => equiposNuevos.push(equipo));
}
}
return {
@ -208,10 +204,11 @@ export class UploadFileService {
);
const carrera =
tipoUsuario &&
usuarios[i].carrera &&
tipoUsuario.id_tipo_usuario > 5
(tipoUsuario.id_tipo_usuario === 5 || usuarios[i].carrera)
? await this.institucionCarreraService.findCarreraByCarrera(
usuarios[i].carrera,
tipoUsuario.id_tipo_usuario === 5
? 'PROFESOR'
: usuarios[i].carrera,
false,
)
: null;
@ -225,14 +222,13 @@ export class UploadFileService {
if (
!tipoUsuario ||
tipoUsuario.id_tipo_usuario < 5 ||
(!carrera && tipoUsuario.id_tipo_usuario < 6) ||
!carrera ||
(carrera && !institucionCarrera)
) {
if (!tipoUsuario) error += ' no existe este tipo de usuario.';
if (tipoUsuario.id_tipo_usuario < 5)
' no se puede asignar este tipo de usuario a este usuario.';
if (!carrera && tipoUsuario.id_tipo_usuario < 6)
error += ' falta del campo carrera para el alumno.';
if (!carrera) error += ' falta del campo carrera para el alumno.';
if (carrera && !institucionCarrera)
error += ' la carrera no pertenece a la institución.';
errores.push(error);
@ -251,7 +247,7 @@ export class UploadFileService {
)
usuario.institucionCarrera = institucionCarrera;
await this.usuarioService
.update(usuario)
.update(usuario, false)
.then(({ message }) => mensajes.push(message));
} else
await this.usuarioService
@ -262,7 +258,7 @@ export class UploadFileService {
].apellido_m.trim()} ${usuarios[i].nombres.trim()}`,
institucion,
tipoUsuario,
institucionCarrera ? institucionCarrera : null,
institucionCarrera,
)
.then((res) => {
usuariosNuevos.push(res.usuario);
@ -284,7 +280,9 @@ export class UploadFileService {
downloadLogo(id_institucion: number) {}
errorBase(index) {
return `Se salto la linea ${index + 2} por:`;
return `Se saltó la linea ${
index + 2
} por el siguiente/los siguientes motivos(s):`;
}
uploadLogo(file: Express.Multer.File, id_institucion: number) {}

View File

@ -34,17 +34,16 @@ export class UsuarioService {
nombre: string,
institucion: Institucion,
tipoUsuario: TipoUsuario,
institucionCarrera?: InstitucionCarrera,
institucionCarrera: InstitucionCarrera,
) {
const data: {
carrera?: InstitucionCarrera;
institucionCarrera: InstitucionCarrera;
institucion: Institucion;
nombre: string;
tipoUsuario: TipoUsuario;
usuario: string;
} = { institucion, nombre, tipoUsuario, usuario };
} = { institucion, nombre, tipoUsuario, usuario, institucionCarrera };
if (institucionCarrera) data.carrera = institucionCarrera;
return this.repository
.save(this.repository.create(data))
.then((usuario) => ({
@ -227,8 +226,8 @@ export class UsuarioService {
.then((_) => ({ message: 'Se registró correctamente un usuario.' }));
}
update(attrs: Partial<Usuario>) {
return this.findById(attrs.id_usuario, true, true)
update(attrs: Partial<Usuario>, validarPassword = true) {
return this.findById(attrs.id_usuario, true, validarPassword)
.then((usuario) => {
Object.assign(usuario, attrs);
return this.repository.save(usuario);

View File

@ -1,4 +1,4 @@
numero_cuenta,nombres,apellido_p,apellido_m,carrra,tipo_usuario
313144567,Nombre 1,Apellido_p 1,Apellido_m 1,Carrera,Alumno
415895839,Nombre 2,Apellido_p 2,Apellido_m 2,Posgrado,Posgrado
numero_cuenta,nombres,apellido_p,apellido_m,carrera,tipo_usuario
313144567,Nombre 1,Apellido_p 1,Apellido_m 1,MATEMATICAS APLICADAS Y COMPUTACION,Alumno
415895839,Nombre 2,Apellido_p 2,Apellido_m 2,MEDICINA VETERINARIA Y ZOOTECNIA,Posgrado
813573,Nombre 3,Apellido_p 3,Apellido_m 3,,Profesor
1 numero_cuenta nombres apellido_p apellido_m carrra carrera tipo_usuario
2 313144567 Nombre 1 Apellido_p 1 Apellido_m 1 Carrera MATEMATICAS APLICADAS Y COMPUTACION Alumno
3 415895839 Nombre 2 Apellido_p 2 Apellido_m 2 Posgrado MEDICINA VETERINARIA Y ZOOTECNIA Posgrado
4 813573 Nombre 3 Apellido_p 3 Apellido_m 3 Profesor