From 8b1ecc5166075043854fe99f5db87fb6679fce43 Mon Sep 17 00:00:00 2001 From: Andres2908 Date: Thu, 12 May 2022 09:37:24 -0500 Subject: [PATCH] avance de la carga masiva de equipos --- .../upload-file-carga-masiva-equipo.dto.ts | 10 ++++ src/upload-file/upload-file.service.ts | 60 +++++++++++++------ 2 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 src/upload-file/dto/upload-file-carga-masiva-equipo.dto.ts diff --git a/src/upload-file/dto/upload-file-carga-masiva-equipo.dto.ts b/src/upload-file/dto/upload-file-carga-masiva-equipo.dto.ts new file mode 100644 index 0000000..34f768b --- /dev/null +++ b/src/upload-file/dto/upload-file-carga-masiva-equipo.dto.ts @@ -0,0 +1,10 @@ +export class UploadFileCargaMasivaEquipoDto { + modulo: number; + carrito: number; + tipo: string; + equipo: string; + numero_inventario: string; + numero_serie: string; + entradas: string; + programas?: string +} diff --git a/src/upload-file/upload-file.service.ts b/src/upload-file/upload-file.service.ts index 1576f63..eb657fd 100644 --- a/src/upload-file/upload-file.service.ts +++ b/src/upload-file/upload-file.service.ts @@ -8,9 +8,11 @@ import { CarreraService } from '../carrera/carrera.service'; import { EquipoService } from '../equipo/equipo.service'; import { InstitucionService } from '../institucion/institucion.service'; import { InstitucionCarreraService } from '../institucion-carrera/institucion-carrera.service'; +import { CarritoService } from '../carrito/carrito.service' 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' @Injectable() export class UploadFileService { @@ -19,32 +21,52 @@ export class UploadFileService { private equipoService: EquipoService, private institucionService: InstitucionService, private institucionCarreraService: InstitucionCarreraService, + private carritoService: CarritoService, private tipoUsuarioService: TipoUsuarioService, private usuarioService: UsuarioService, ) {} + //programa y status + async createEquipos(file: Express.Multer.File, id_carrito: number, id_programa: number, id_status: number) { + const path = `${file.destination}/${file.fieldname}` + const carrito = await this.carreraService.findById(id_carrito) + const errores: string[] = [] - async createEquipos(file: Express.Multer.File, id_institucion: number) { - const path = `${file.destination}/${file.filename}`; - const institucion = await this.institucionService.findById(id_institucion); - const errores: string[] = []; - - if (!file) throw new BadRequestException('No se mando un archivo.'); - csvtojson() + if (!file) throw new BadRequestException('No se mando el archivo de equipos.') + return csvtojson() .fromFile(path) - .then(async (equipos) => { + .then(async (equipos: [UploadFileCargaMasivaEquipoDto]) => { for (let i = 0; i < equipos.length; i++) { - if(!equipos[i].modulo) errores.push(`${this.errorBase(i)} falta el campo modulo en el archivo`) - if(!equipos[i].carrito) errores.push(`${this.errorBase(i)} falta el campo carrito en el archivo`) - if(!equipos[i].tipo) errores.push(`${this.errorBase(i)} falta el campo tipo en el archivo`) - if(!equipos[i].equipo) errores.push(`${this.errorBase(i)} falta el campo equipo en el archivo`) - if(!equipos[i].numero_inventario) errores.push(`${this.errorBase(i)} falta el campo numero_inventario en el archivo`) - if(!equipos[i].numero_serie) errores.push(`${this.errorBase(i)} falta el campo numero_serie en el archivo`) - if(!equipos[i].modulo) errores.push(`${this.errorBase(i)} falta el campo modulo en el archivo`) - if(!equipos[i].entradas) errores.push(`${this.errorBase(i)} falta el campo entradas en el archivo`) - // faltan los programas - if(!equipos[i].programas) errores.push(`${this.errorBase(i)} falta el campo programas en el archivo`) + let error = this.errorBase(i) + + if(!equipos[i].modulo || + !equipos[i].carrito || + !equipos[i].tipo || + !equipos[i].equipo || + !equipos[i].numero_inventario || + !equipos[i].numero_serie || + !equipos[i].entradas) { + if (!equipos[i].modulo) + error += 'falta el campo de modulo' + if (error != this.errorBase(i)) error += ','; + if (!equipos[i].carrito) + error += ' falta del campo carrito'; + if (error != this.errorBase(i)) error += ','; + if (!equipos[i].tipo) error += ' falta del campo tipo (tipo de equipo)'; + if (error != this.errorBase(i)) error += ','; + if (!equipos[i].equipo) error += ' falta del campo equipo'; + if (error != this.errorBase(i)) error += ','; + if (!equipos[i].numero_inventario) error += ' falta del campo número de inventario'; + if (error != this.errorBase(i)) error += ','; + if (!equipos[i].numero_serie) error += ' falta del campo número de serie'; + if (error != this.errorBase(i)) error += ','; + if (!equipos[i].entradas) error += ' falta del campo entradas'; + errores.push(`${error}.`); + continue; + } + + // const } - }); + }) } async createUsuarios(file: Express.Multer.File, id_institucion: number) {