carga masiva equipo a medias
This commit is contained in:
parent
3f34526041
commit
23755c50bf
@ -27,7 +27,7 @@ export class CarritoService {
|
||||
) {
|
||||
const modulo = await this.moduloService.findById(id_modulo);
|
||||
const tipoCarrito =
|
||||
await this.institucionTipoCarritoService.findTipoCaritoById(
|
||||
await this.institucionTipoCarritoService.findTipoCarritoById(
|
||||
id_tipo_carrito,
|
||||
);
|
||||
|
||||
@ -49,6 +49,22 @@ export class CarritoService {
|
||||
}));
|
||||
}
|
||||
|
||||
async existeCarrito(id_modulo: number | Modulo, carrito: string) {
|
||||
const modulo =
|
||||
typeof id_modulo === 'number'
|
||||
? await this.moduloService.findById(id_modulo)
|
||||
: id_modulo;
|
||||
|
||||
return this.repository
|
||||
.findOne({ modulo, carrito })
|
||||
.then((existeCarrito) => {
|
||||
if (existeCarrito)
|
||||
throw new ConflictException(
|
||||
'Ya existe un carrito con este nombre, intenta con otro.',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
findById(id_carrito: number) {
|
||||
return this.repository.findOne({ id_carrito }).then((carrito) => {
|
||||
if (!carrito) throw new NotFoundException('No existe este carrito.');
|
||||
@ -88,19 +104,29 @@ export class CarritoService {
|
||||
});
|
||||
}
|
||||
|
||||
async existeCarrito(id_modulo: number | Modulo, carrito: string) {
|
||||
async findCarrito(
|
||||
id_modulo: number | Modulo,
|
||||
id_tipo_carrito: number | TipoCarrito,
|
||||
carrito: string,
|
||||
validarNoExiste = true,
|
||||
) {
|
||||
const modulo =
|
||||
typeof id_modulo === 'number'
|
||||
? await this.moduloService.findById(id_modulo)
|
||||
: id_modulo;
|
||||
const tipoCarrito =
|
||||
typeof id_tipo_carrito === 'number'
|
||||
? await this.institucionTipoCarritoService.findTipoCarritoById(
|
||||
id_tipo_carrito,
|
||||
)
|
||||
: id_tipo_carrito;
|
||||
|
||||
return this.repository
|
||||
.findOne({ modulo, carrito })
|
||||
.then((existeCarrito) => {
|
||||
if (existeCarrito)
|
||||
throw new ConflictException(
|
||||
'Ya existe un carrito con este nombre, intenta con otro.',
|
||||
);
|
||||
.findOne({ modulo, carrito, tipoCarrito })
|
||||
.then((carrito) => {
|
||||
if (validarNoExiste && !carrito)
|
||||
throw new ConflictException('No existe este carrito.');
|
||||
return carrito;
|
||||
});
|
||||
}
|
||||
|
||||
@ -119,7 +145,7 @@ export class CarritoService {
|
||||
? await this.moduloService.findById(attrs.id_modulo)
|
||||
: null;
|
||||
const tipoCarrito = attrs.id_modulo
|
||||
? await this.institucionTipoCarritoService.findTipoCaritoById(
|
||||
? await this.institucionTipoCarritoService.findTipoCarritoById(
|
||||
attrs.id_tipo_carrito,
|
||||
)
|
||||
: null;
|
||||
|
@ -5,6 +5,8 @@ import { EquipoService } from './equipo.service';
|
||||
import { Equipo } from './entity/equipo.entity';
|
||||
import { EquipoPrograma } from './entity/equipo-programa.entity';
|
||||
import { EquipoTipoEntrada } from './entity/equipo-tipo-entrada.entity';
|
||||
import { CarritoModule } from '../carrito/carrito.module';
|
||||
import { InstitucionModule } from '../institucion/institucion.module';
|
||||
import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module';
|
||||
import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/institucion-tipo-carrito.module';
|
||||
import { InstitucionTipoEntradaModule } from '../institucion-tipo-entrada/institucion-tipo-entrada.module';
|
||||
@ -13,6 +15,8 @@ import { StatusModule } from '../status/status.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
CarritoModule,
|
||||
InstitucionModule,
|
||||
InstitucionProgramaModule,
|
||||
InstitucionTipoCarritoModule,
|
||||
InstitucionTipoEntradaModule,
|
||||
|
@ -4,11 +4,15 @@ import { Repository } from 'typeorm';
|
||||
import { Equipo } from './entity/equipo.entity';
|
||||
import { EquipoPrograma } from '../equipo/entity/equipo-programa.entity';
|
||||
import { EquipoTipoEntrada } from '../equipo/entity/equipo-tipo-entrada.entity';
|
||||
import { InstitucionProgramaService } from 'src/institucion-programa/institucion-programa.service';
|
||||
import { CarritoService } from '../carrito/carrito.service';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
|
||||
import { InstitucionTipoEntradaService } from 'src/institucion-tipo-entrada/institucion-tipo-entrada.service';
|
||||
import { InstitucionTipoEntradaService } from '../institucion-tipo-entrada/institucion-tipo-entrada.service';
|
||||
import { ModuloService } from '../modulo/modulo.service';
|
||||
import { StatusService } from 'src/status/status.service';
|
||||
import { StatusService } from '../status/status.service';
|
||||
import { Institucion } from '../institucion/entity/institucion.entity';
|
||||
import { Carrito } from '../carrito/entity/carrito.entity';
|
||||
|
||||
@Injectable()
|
||||
export class EquipoService {
|
||||
@ -18,6 +22,8 @@ export class EquipoService {
|
||||
private equipoProgramaRepository: Repository<EquipoPrograma>,
|
||||
@InjectRepository(EquipoTipoEntrada)
|
||||
private equipoTipoEntradaRepository: Repository<EquipoTipoEntrada>,
|
||||
private carritoService: CarritoService,
|
||||
private institucionService: InstitucionService,
|
||||
private institucionProgramaService: InstitucionProgramaService,
|
||||
private institucionTipoCarritoService: InstitucionTipoCarritoService,
|
||||
private institucionTipoEntradaService: InstitucionTipoEntradaService,
|
||||
@ -25,7 +31,25 @@ export class EquipoService {
|
||||
private statusService: StatusService,
|
||||
) {}
|
||||
|
||||
async create() {}
|
||||
async create(
|
||||
carrito: Carrito,
|
||||
equipo: string,
|
||||
marca: string,
|
||||
modelo: string,
|
||||
numero_inventario: string,
|
||||
numero_serie: string,
|
||||
) {
|
||||
return this.equipoRepository.save(
|
||||
this.equipoRepository.create({
|
||||
carrito,
|
||||
equipo,
|
||||
marca,
|
||||
modelo,
|
||||
numero_inventario,
|
||||
numero_serie,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
async findAll(filtros: {
|
||||
pagina: string;
|
||||
@ -46,7 +70,7 @@ export class EquipoService {
|
||||
)
|
||||
: null;
|
||||
const tipoCarrito = filtros.id_tipo_carrito
|
||||
? await this.institucionTipoCarritoService.findTipoCaritoById(
|
||||
? await this.institucionTipoCarritoService.findTipoCarritoById(
|
||||
parseInt(filtros.id_tipo_carrito),
|
||||
)
|
||||
: null;
|
||||
@ -110,6 +134,52 @@ export class EquipoService {
|
||||
});
|
||||
}
|
||||
|
||||
async findByNumeroInventario(
|
||||
id_institucion: number | Institucion,
|
||||
numero_inventario: string,
|
||||
validarNoExiste = true,
|
||||
) {
|
||||
const institucion =
|
||||
typeof id_institucion === 'number'
|
||||
? await this.institucionService.findById(id_institucion)
|
||||
: id_institucion;
|
||||
|
||||
return this.equipoRepository
|
||||
.findOne({
|
||||
join: {
|
||||
alias: 'e',
|
||||
innerJoinAndSelect: {
|
||||
c: 'e.carrito',
|
||||
m: 'c.modulo',
|
||||
i: 'm.institucion',
|
||||
},
|
||||
},
|
||||
where: { numero_inventario, carrito: { modulo: { institucion } } },
|
||||
})
|
||||
.then((equipo) => {
|
||||
if (validarNoExiste && !equipo)
|
||||
throw new NotFoundException('No existe este equipo.');
|
||||
return equipo;
|
||||
});
|
||||
}
|
||||
|
||||
async findEquipo(
|
||||
id_carrito: number | Carrito,
|
||||
equipo: string,
|
||||
validarNoExiste = true,
|
||||
) {
|
||||
const carrito =
|
||||
typeof id_carrito === 'number'
|
||||
? await this.carritoService.findById(id_carrito)
|
||||
: id_carrito;
|
||||
|
||||
return this.equipoRepository.findOne({ carrito, equipo }).then((equipo) => {
|
||||
if (validarNoExiste && !equipo)
|
||||
throw new NotFoundException('No existe este equipo.');
|
||||
return equipo;
|
||||
});
|
||||
}
|
||||
|
||||
update(attrs: Partial<Equipo>) {
|
||||
return this.findById(attrs.id_equipo)
|
||||
.then((equipo) => {
|
||||
|
@ -72,20 +72,6 @@ export class InstitucionTipoCarritoService {
|
||||
return this.findAllByIdInstitucion(id_institucion, true);
|
||||
}
|
||||
|
||||
findTipoCarritoById(id_tipo_carrito) {
|
||||
return this.repositoryTipoCarrito
|
||||
.findOne({
|
||||
id_tipo_carrito,
|
||||
})
|
||||
.then((institucionTipoCarrito) => {
|
||||
if (!institucionTipoCarrito)
|
||||
throw new NotFoundException(
|
||||
'No existe esta institucion tipo carrito.',
|
||||
);
|
||||
return institucionTipoCarrito;
|
||||
});
|
||||
}
|
||||
|
||||
findInstitucionTipoCarritoById(id_institucion_tipo_carrito) {
|
||||
return this.repositoryInstitucionTipoCarrito
|
||||
.findOne({
|
||||
@ -100,7 +86,7 @@ export class InstitucionTipoCarritoService {
|
||||
});
|
||||
}
|
||||
|
||||
findTipoCaritoById(id_tipo_carrito: number) {
|
||||
findTipoCarritoById(id_tipo_carrito: number) {
|
||||
return this.repositoryTipoCarrito
|
||||
.findOne({ id_tipo_carrito })
|
||||
.then((tipoCarrito) => {
|
||||
@ -110,6 +96,16 @@ export class InstitucionTipoCarritoService {
|
||||
});
|
||||
}
|
||||
|
||||
findTipoCarritoByTipoCarrito(tipo_carrito: string, validarNoExiste = true) {
|
||||
return this.repositoryTipoCarrito
|
||||
.findOne({ tipo_carrito })
|
||||
.then((tipoCarrito) => {
|
||||
if (validarNoExiste && !tipoCarrito)
|
||||
throw new NotFoundException('No existe este tipo carrito.');
|
||||
return tipoCarrito;
|
||||
});
|
||||
}
|
||||
|
||||
update(attrs: Partial<InstitucionTipoCarrito>) {
|
||||
return this.findInstitucionTipoCarritoById(
|
||||
attrs.id_institucion_tipo_carrito,
|
||||
|
@ -60,6 +60,23 @@ export class ModuloService {
|
||||
});
|
||||
}
|
||||
|
||||
async findModulo(
|
||||
id_institucion: number | Institucion,
|
||||
modulo: string,
|
||||
validarNoExiste = true,
|
||||
) {
|
||||
const institucion =
|
||||
typeof id_institucion === 'number'
|
||||
? await this.institucionService.findById(id_institucion)
|
||||
: id_institucion;
|
||||
|
||||
return this.repository.findOne({ institucion, modulo }).then((modulo) => {
|
||||
if (validarNoExiste && !modulo)
|
||||
throw new ConflictException('No existe este módulo.');
|
||||
return modulo;
|
||||
});
|
||||
}
|
||||
|
||||
update(attrs: Partial<Modulo>) {
|
||||
return this.findById(attrs.id_modulo)
|
||||
.then(async (modulo) => {
|
||||
|
@ -68,7 +68,7 @@ export class PrestamoService {
|
||||
? await this.moduloService.findById(parseInt(filtros.id_modulo))
|
||||
: null;
|
||||
const tipoCarrito = filtros.id_tipo_carrito
|
||||
? await this.institucionTipoCarritoService.findTipoCaritoById(
|
||||
? await this.institucionTipoCarritoService.findTipoCarritoById(
|
||||
parseInt(filtros.id_tipo_carrito),
|
||||
)
|
||||
: null;
|
||||
|
@ -1,10 +1,21 @@
|
||||
export class UploadFileCargaMasivaEquipoDto {
|
||||
modulo: number;
|
||||
carrito: number;
|
||||
tipo: string;
|
||||
equipo: string;
|
||||
numero_inventario: string;
|
||||
numero_serie: string;
|
||||
entradas: string;
|
||||
programas?: string
|
||||
carrito: string;
|
||||
|
||||
entradas: string;
|
||||
|
||||
equipo: string;
|
||||
|
||||
marca: string;
|
||||
|
||||
modelo: string;
|
||||
|
||||
modulo: string;
|
||||
|
||||
numero_inventario: string;
|
||||
|
||||
numero_serie: string;
|
||||
|
||||
tipo: string;
|
||||
|
||||
programas?: string;
|
||||
}
|
||||
|
@ -1,12 +0,0 @@
|
||||
import { IsNumber, IsNumberString } from 'class-validator';
|
||||
|
||||
export class UploadFileEquipo {
|
||||
@IsNumberString()
|
||||
id_carrito: string;
|
||||
|
||||
@IsNumberString()
|
||||
id_programa: string;
|
||||
|
||||
@IsNumberString()
|
||||
id_status: string;
|
||||
}
|
@ -12,7 +12,6 @@ import { FileInterceptor } from '@nestjs/platform-express';
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { UploadFileService } from './upload-file.service';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { UploadFileEquipo } from './dto/upload-file-equipo';
|
||||
|
||||
@Controller('upload-file')
|
||||
@ApiTags('upload-file')
|
||||
@ -23,13 +22,11 @@ export class UploadFileController {
|
||||
@UseInterceptors(FileInterceptor('csv'))
|
||||
cargaMasivaEquipos(
|
||||
@UploadedFile() file: Express.Multer.File,
|
||||
@Query() query: UploadFileEquipo,
|
||||
@Query() query: IdInstitucionDto,
|
||||
) {
|
||||
return this.uploadFileService.createEquipos(
|
||||
file,
|
||||
parseInt(query.id_carrito),
|
||||
parseInt(query.id_programa),
|
||||
parseInt(query.id_status),
|
||||
parseInt(query.id_institucion),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,8 @@ import { EquipoModule } from '../equipo/equipo.module';
|
||||
import { InstitucionModule } from '../institucion/institucion.module';
|
||||
import { InstitucionCarreraModule } from '../institucion-carrera/institucion-carrera.module';
|
||||
import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module';
|
||||
import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/institucion-tipo-carrito.module';
|
||||
import { ModuloModule } from 'src/modulo/modulo.module';
|
||||
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
|
||||
import { UsuarioModule } from '../usuario/usuario.module';
|
||||
|
||||
@ -17,6 +19,8 @@ import { UsuarioModule } from '../usuario/usuario.module';
|
||||
InstitucionModule,
|
||||
InstitucionCarreraModule,
|
||||
InstitucionProgramaModule,
|
||||
InstitucionTipoCarritoModule,
|
||||
ModuloModule,
|
||||
MulterModule.register({
|
||||
dest: './upload',
|
||||
fileFilter: (req, file, cb) => {
|
||||
|
@ -4,41 +4,42 @@ 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 { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { CarritoService } from '../carrito/carrito.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 { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
import { InstitucionTipoCarritoService } from 'src/institucion-tipo-carrito/institucion-tipo-carrito.service';
|
||||
import { ModuloService } from 'src/modulo/modulo.service';
|
||||
import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service';
|
||||
import { UsuarioService } from '../usuario/usuario.service';
|
||||
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
import { UploadFileCargaMasivaUsuarioDto } from './dto/upload-file-carga-masiva-usuario.dto';
|
||||
import { UploadFileCargaMasivaEquipoDto } from './dto/upload-file-carga-masiva-equipo.dto';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { Equipo } from '../equipo/entity/equipo.entity';
|
||||
|
||||
@Injectable()
|
||||
export class UploadFileService {
|
||||
constructor(
|
||||
private carritoService: CarritoService,
|
||||
private equipoService: EquipoService,
|
||||
private institucionService: InstitucionService,
|
||||
private institucionCarreraService: InstitucionCarreraService,
|
||||
private carritoService: CarritoService,
|
||||
private institucionProgramaService: InstitucionProgramaService,
|
||||
private institucionTipoCarritoService: InstitucionTipoCarritoService,
|
||||
private moduloService: ModuloService,
|
||||
private tipoUsuarioService: TipoUsuarioService,
|
||||
private usuarioService: UsuarioService,
|
||||
private institucionProgramaService: InstitucionProgramaService,
|
||||
) {}
|
||||
//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.carritoService.findById(id_carrito);
|
||||
const errores: string[] = [];
|
||||
|
||||
if (!file)
|
||||
throw new BadRequestException('No se mando el archivo de equipos.');
|
||||
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[] = [];
|
||||
const mensajes: string[] = [];
|
||||
const equiposNuevos: Equipo[] = [];
|
||||
|
||||
if (!file) throw new BadRequestException('No se mando ningún archivo.');
|
||||
return csvtojson()
|
||||
.fromFile(path)
|
||||
.then(async (equipos: [UploadFileCargaMasivaEquipoDto]) => {
|
||||
@ -46,40 +47,118 @@ export class UploadFileService {
|
||||
let error = this.errorBase(i);
|
||||
|
||||
if (
|
||||
!equipos[i].modulo ||
|
||||
!equipos[i].carrito ||
|
||||
!equipos[i].tipo ||
|
||||
!equipos[i].entradas ||
|
||||
!equipos[i].equipo ||
|
||||
!equipos[i].marca ||
|
||||
!equipos[i].modelo ||
|
||||
!equipos[i].modulo ||
|
||||
!equipos[i].numero_inventario ||
|
||||
!equipos[i].numero_serie ||
|
||||
!equipos[i].entradas ||
|
||||
!equipos[i].programas
|
||||
!equipos[i].tipo
|
||||
) {
|
||||
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 (!equipos[i].entradas) error += ' falta del campo entradas';
|
||||
if (error != this.errorBase(i)) error += ',';
|
||||
if (!equipos[i].equipo) error += ' falta del campo equipo';
|
||||
if (error != this.errorBase(i)) error += ',';
|
||||
if (!equipos[i].marca) error += ' falta del campo marca';
|
||||
if (error != this.errorBase(i)) error += ',';
|
||||
if (!equipos[i].modelo) error += ' falta del campo modelo';
|
||||
if (error != this.errorBase(i)) error += ',';
|
||||
if (!equipos[i].modulo) error += ' falta del campo modulo';
|
||||
if (error != this.errorBase(i)) error += ',';
|
||||
if (!equipos[i].numero_inventario)
|
||||
error += ' falta del campo número de inventario';
|
||||
error += ' falta del campo numero_inventario';
|
||||
if (error != this.errorBase(i)) error += ',';
|
||||
if (!equipos[i].numero_serie)
|
||||
error += ' falta del campo número de serie';
|
||||
error += ' falta del campo numero_serie';
|
||||
if (error != this.errorBase(i)) error += ',';
|
||||
if (!equipos[i].entradas) error += ' falta del campo entradas';
|
||||
errores.push(`${error}.`);
|
||||
if (!equipos[i].tipo) error += ' falta del campo tipo';
|
||||
errores.push(error + '.');
|
||||
continue;
|
||||
}
|
||||
|
||||
const programa =
|
||||
await this.institucionProgramaService.findProgramaByPrograma(
|
||||
equipos[i].programas,
|
||||
const tipoCarrito =
|
||||
await this.institucionTipoCarritoService.findTipoCarritoByTipoCarrito(
|
||||
equipos[i].tipo,
|
||||
false,
|
||||
);
|
||||
const modulo = await this.moduloService.findModulo(
|
||||
institucion,
|
||||
equipos[i].modulo,
|
||||
false,
|
||||
);
|
||||
const carrito =
|
||||
tipoCarrito && modulo
|
||||
? await this.carritoService.findCarrito(
|
||||
modulo,
|
||||
tipoCarrito,
|
||||
equipos[i].modulo,
|
||||
false,
|
||||
)
|
||||
: null;
|
||||
let equipo = carrito
|
||||
? await this.equipoService.findEquipo(
|
||||
carrito,
|
||||
equipos[i].equipo,
|
||||
false,
|
||||
)
|
||||
: null;
|
||||
|
||||
if (!tipoCarrito || !modulo || !carrito) {
|
||||
if (!tipoCarrito) error += ' no existe este tipo de carrito.';
|
||||
if (!modulo) error += ' no existe este módulo.';
|
||||
if (!carrito) error += ' no existe este carrito.';
|
||||
continue;
|
||||
}
|
||||
|
||||
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;
|
||||
// }
|
||||
} else {
|
||||
equipo = await this.equipoService.findByNumeroInventario(
|
||||
institucion,
|
||||
equipos[i].numero_inventario,
|
||||
false,
|
||||
);
|
||||
if (equipo) {
|
||||
error += ' ya existe un equipo con ese número de inventario.';
|
||||
continue;
|
||||
}
|
||||
await this.equipoService
|
||||
.create(
|
||||
carrito,
|
||||
equipos[i].equipo,
|
||||
equipos[i].marca,
|
||||
equipos[i].modelo,
|
||||
equipos[i].numero_inventario,
|
||||
equipos[i].numero_serie,
|
||||
)
|
||||
.then((equipo) => {
|
||||
equiposNuevos.push(equipo);
|
||||
});
|
||||
}
|
||||
}
|
||||
return {
|
||||
response: {
|
||||
message: 'Se subió y cargó correctamente tu archivo csv.',
|
||||
mensajes,
|
||||
equiposNuevos,
|
||||
errores,
|
||||
},
|
||||
path,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user