carga masiva usuario a espera de prueba

This commit is contained in:
xXpuma99Xx 2022-06-02 14:22:27 -05:00
parent 8204119ed9
commit a308dc9c80
3 changed files with 57 additions and 36 deletions

View File

@ -1,13 +1,13 @@
export class UploadFileCargaMasivaUsuarioDto { export class UploadFileCargaMasivaUsuarioDto {
carrera?: string;
numero_cuenta?: string;
tipo_usuario?: string;
nombres: string; nombres: string;
apellido_p: string; apellido_p: string;
apellido_m: string; apellido_m: string;
carrera?: string;
numero_cuenta?: string;
tipo_usuario?: string;
} }

View File

@ -1,3 +1,4 @@
import * as fs from 'fs';
import { import {
Controller, Controller,
Get, Get,
@ -8,13 +9,13 @@ import {
UseInterceptors, UseInterceptors,
} from '@nestjs/common'; } from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express'; import { FileInterceptor } from '@nestjs/platform-express';
import { ApiTags } from '@nestjs/swagger';
import { UploadFileService } from './upload-file.service'; import { UploadFileService } from './upload-file.service';
import { IdInstitucionDto } from '../dto/id-institucion.dto'; import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { UploadFileEquipo } from './dto/upload-file-equipo' import { UploadFileEquipo } from './dto/upload-file-equipo';
import { ApiTags } from '@nestjs/swagger';
@Controller('upload-file') @Controller('upload-file')
// @ApiTags('upload-file') @ApiTags('upload-file')
export class UploadFileController { export class UploadFileController {
constructor(private uploadFileService: UploadFileService) {} constructor(private uploadFileService: UploadFileService) {}
@ -26,7 +27,9 @@ export class UploadFileController {
) { ) {
return this.uploadFileService.createEquipos( return this.uploadFileService.createEquipos(
file, file,
parseInt(query.id_carrito), parseInt(query.id_programa), parseInt(query.id_status) parseInt(query.id_carrito),
parseInt(query.id_programa),
parseInt(query.id_status),
); );
} }
@ -36,10 +39,12 @@ export class UploadFileController {
@UploadedFile() file: Express.Multer.File, @UploadedFile() file: Express.Multer.File,
@Query() query: IdInstitucionDto, @Query() query: IdInstitucionDto,
) { ) {
return this.uploadFileService.createUsuarios( return this.uploadFileService
file, .createUsuarios(file, parseInt(query.id_institucion))
parseInt(query.id_institucion), .then((res) => {
); fs.unlink(res.path, (err) => {});
return res.response;
});
} }
@Get('download-logo') @Get('download-logo')

View File

@ -13,6 +13,7 @@ import { UsuarioService } from '../usuario/usuario.service';
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service'; import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
import { UploadFileCargaMasivaUsuarioDto } from './dto/upload-file-carga-masiva-usuario.dto'; import { UploadFileCargaMasivaUsuarioDto } from './dto/upload-file-carga-masiva-usuario.dto';
import { UploadFileCargaMasivaEquipoDto } from './dto/upload-file-carga-masiva-equipo.dto'; import { UploadFileCargaMasivaEquipoDto } from './dto/upload-file-carga-masiva-equipo.dto';
import { Usuario } from 'src/usuario/entity/usuario.entity';
@Injectable() @Injectable()
export class UploadFileService { export class UploadFileService {
@ -87,8 +88,9 @@ export class UploadFileService {
const institucion = await this.institucionService.findById(id_institucion); const institucion = await this.institucionService.findById(id_institucion);
const errores: string[] = []; const errores: string[] = [];
const mensajes: string[] = []; const mensajes: string[] = [];
const usuariosNuevos: Usuario[] = [];
if (!file) throw new BadRequestException('No se mando un archivo.'); if (!file) throw new BadRequestException('No se mando ningún archivo.');
return csvtojson() return csvtojson()
.fromFile(path) .fromFile(path)
.then(async (usuarios: [UploadFileCargaMasivaUsuarioDto]) => { .then(async (usuarios: [UploadFileCargaMasivaUsuarioDto]) => {
@ -158,31 +160,45 @@ export class UploadFileService {
continue; continue;
} }
if (usuario) { if (usuario) {
usuario.tipoUsuario = tipoUsuario; if (
usuario.activo = true; usuario.tipoUsuario.id_tipo_usuario != tipoUsuario.id_tipo_usuario
if (institucionCarrera) )
usuario.tipoUsuario = tipoUsuario;
if (!usuario.activo) usuario.activo = true;
if (
institucionCarrera &&
usuario.institucionCarrera.id_institucion_carrera !=
institucionCarrera.id_institucion_carrera
)
usuario.institucionCarrera = institucionCarrera; usuario.institucionCarrera = institucionCarrera;
await this.usuarioService await this.usuarioService
.update(usuario) .update(usuario)
.then((usuarioUpdated) => {}); .then(({ message }) => mensajes.push(message));
} else { } else
} await this.usuarioService
// await this.usuarioService .create(
// .create( usuarios[i].numero_cuenta,
// usuarios[i].numero_cuenta, `${usuarios[i].apellido_p.trim()} ${usuarios[
// institucion.id_institucion, i
// tipoUsuario.id_tipo_usuario, ].apellido_m.trim()} ${usuarios[i].nombres.trim()}`,
// carrera ? carrera.id_carrera : null, institucion,
// ) tipoUsuario,
// .then((usuario) => {}); institucionCarrera ? institucionCarrera : null,
)
.then((res) => {
usuariosNuevos.push(res.usuario);
mensajes.push(res.message);
});
} }
return fs.unlink(path, (err) => { return {
console.log(err); response: {
}); message: 'Se subió y cargó correctamente tu archivo csv.',
}) mensajes,
.then((res) => { usuariosNuevos,
console.log(res); errores,
return { message: 'Se subió y cargo correctamente tu archivo csv.' }; },
path,
};
}); });
} }