diff --git a/src/upload-file/upload-file.service.ts b/src/upload-file/upload-file.service.ts index 03e1cc8..77cd824 100644 --- a/src/upload-file/upload-file.service.ts +++ b/src/upload-file/upload-file.service.ts @@ -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) {} diff --git a/src/usuario/usuario.service.ts b/src/usuario/usuario.service.ts index ebcd3d9..9e10248 100644 --- a/src/usuario/usuario.service.ts +++ b/src/usuario/usuario.service.ts @@ -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) { - return this.findById(attrs.id_usuario, true, true) + update(attrs: Partial, validarPassword = true) { + return this.findById(attrs.id_usuario, true, validarPassword) .then((usuario) => { Object.assign(usuario, attrs); return this.repository.save(usuario); diff --git a/upload/plantilla_alumnos.csv b/upload/plantilla_alumnos.csv index ba81afd..b19691b 100644 --- a/upload/plantilla_alumnos.csv +++ b/upload/plantilla_alumnos.csv @@ -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 \ No newline at end of file