diff --git a/src/upload-file/dto/upload-file-carga-masiva-usuario.dto.ts b/src/upload-file/dto/upload-file-carga-masiva-usuario.dto.ts index 0b3c220..be76dc1 100644 --- a/src/upload-file/dto/upload-file-carga-masiva-usuario.dto.ts +++ b/src/upload-file/dto/upload-file-carga-masiva-usuario.dto.ts @@ -1,17 +1,17 @@ export class UploadFileCargaMasivaUsuarioDto { - nombres: string; + numero_cuenta: string; - apellido_p: string; + tipo_usuario: string; - apellido_m: string; + apellido_p?: string; + + apellido_m?: string; carrera?: string; correo?: string; - numero_cuenta?: string; + nombres?: string; rfc?: string; - - tipo_usuario?: string; } diff --git a/src/upload-file/upload-file.service.ts b/src/upload-file/upload-file.service.ts index 48f4bd2..bc47d03 100644 --- a/src/upload-file/upload-file.service.ts +++ b/src/upload-file/upload-file.service.ts @@ -364,12 +364,15 @@ export class UploadFileService { errores: string[], usuariosNuevos: InstitucionUsuario[], ) { - let error = this.errorBase(index); + const errorAux = this.errorBase(index); + let error = errorAux; if (!dataUsuario.numero_cuenta || !dataUsuario.tipo_usuario) { if (!dataUsuario.numero_cuenta) error += ' falta del campo numero_cuenta'; - if (error != this.errorBase(index)) error += ','; - if (!dataUsuario.tipo_usuario) error += ' falta del campo tipo_usuario'; + if (!dataUsuario.tipo_usuario) { + if (error != errorAux) error += ','; + error += ' falta del campo tipo_usuario'; + } errores.push(`${error}.`); return; } @@ -431,8 +434,14 @@ export class UploadFileService { await this.institucionUsuarioService .create(institucionCarrera, usuario) .then(({ message }) => mensajes.push(message)); - if (usuario.tipoUsuario.id_tipo_usuario != tipoUsuario.id_tipo_usuario) { - usuario.tipoUsuario = tipoUsuario; + if ( + usuario.tipoUsuario.id_tipo_usuario != tipoUsuario.id_tipo_usuario || + (dataUsuario.correo && usuario.correo != dataUsuario.correo) + ) { + if (usuario.tipoUsuario.id_tipo_usuario != tipoUsuario.id_tipo_usuario) + usuario.tipoUsuario = tipoUsuario; + if (dataUsuario.correo && usuario.correo != dataUsuario.correo) + usuario.correo = dataUsuario.correo; await this.usuarioService .update(usuario, false) .then(({ message }) => mensajes.push(message)); @@ -441,13 +450,28 @@ export class UploadFileService { if ( !dataUsuario.nombres || !dataUsuario.apellido_m || - !dataUsuario.apellido_p + !dataUsuario.apellido_p || + !dataUsuario.correo || + (tipoUsuario.id_tipo_usuario === 5 && !dataUsuario.rfc) ) { - if (!dataUsuario.nombres) error += ' falta del campo nombres'; - if (error != this.errorBase(index)) error += ','; - if (!dataUsuario.apellido_m) error += ' falta del campo apellido_m'; - if (error != this.errorBase(index)) error += ','; - if (!dataUsuario.apellido_p) error += ' falta del campo apellido_p'; + if (tipoUsuario.id_tipo_usuario === 5 && !dataUsuario.rfc) + error += ' falta del campo rfc'; + if (!dataUsuario.nombres) { + if (error != errorAux) error += ','; + error += ' falta del campo nombres'; + } + if (!dataUsuario.apellido_m) { + if (error != errorAux) error += ','; + error += ' falta del campo apellido_m'; + } + if (!dataUsuario.apellido_p) { + if (error != errorAux) error += ','; + error += ' falta del campo apellido_p'; + } + if (!dataUsuario.correo) { + if (error != errorAux) error += ','; + error += ' falta del campo correo'; + } errores.push(`${error}.`); return; } @@ -457,7 +481,7 @@ export class UploadFileService { `${dataUsuario.apellido_p.trim()} ${dataUsuario.apellido_m.trim()} ${dataUsuario.nombres.trim()}`, tipoUsuario, institucionCarrera, - dataUsuario.correo ? dataUsuario.correo : '', + dataUsuario.correo, dataUsuario.rfc ? dataUsuario.rfc : '', ) .then(({ message, institucionUsuario }) => { diff --git a/src/usuario/usuario.service.ts b/src/usuario/usuario.service.ts index a21b213..f8954ae 100644 --- a/src/usuario/usuario.service.ts +++ b/src/usuario/usuario.service.ts @@ -35,7 +35,7 @@ export class UsuarioService { nombre: string, tipoUsuario: TipoUsuario, institucionCarrera: InstitucionCarrera, - correo?: string, + correo: string, rfc?: string, ) { return this.repository @@ -44,7 +44,7 @@ export class UsuarioService { nombre, tipoUsuario, usuario, - correo: correo ? correo : '', + correo, rfc: rfc ? rfc : '', }), )