From ef1ef4d42902bab0e7cc590b2a74a3ab883a682e Mon Sep 17 00:00:00 2001 From: ilham Date: Thu, 23 Dec 2021 20:18:29 +0700 Subject: [PATCH] fix: upload product --- src/product/dto/product/upload-product.dto.ts | 3 +++ src/product/product.controller.ts | 7 +++++-- src/product/product.service.ts | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/product/dto/product/upload-product.dto.ts b/src/product/dto/product/upload-product.dto.ts index c6cceb4..00f025d 100644 --- a/src/product/dto/product/upload-product.dto.ts +++ b/src/product/dto/product/upload-product.dto.ts @@ -3,4 +3,7 @@ import { IsNotEmpty, IsUUID } from 'class-validator'; export class UploadProductDto { @IsNotEmpty() fileName: string; + + @IsNotEmpty() + supplierCode: string; } diff --git a/src/product/product.controller.ts b/src/product/product.controller.ts index 939e9df..fee15ec 100644 --- a/src/product/product.controller.ts +++ b/src/product/product.controller.ts @@ -72,7 +72,10 @@ export class ProductController { @Post('upload-product') async createProductBaseOnCSV(@Body() uploadProductDto: UploadProductDto) { - await this.productService.processUploadCSV(uploadProductDto.fileName); + await this.productService.processUploadCSV( + uploadProductDto.fileName, + uploadProductDto.supplierCode, + ); return { data: 'Done', @@ -104,7 +107,7 @@ export class ProductController { @Get('test') async test(@Request() req) { - const data = await this.productService.processUploadCSV(''); + const data = await this.productService.processUploadCSV('',''); return { data, diff --git a/src/product/product.service.ts b/src/product/product.service.ts index d6d3dd2..c585f55 100644 --- a/src/product/product.service.ts +++ b/src/product/product.service.ts @@ -50,7 +50,9 @@ export class ProductService { return this.productRepository.findOneOrFail(result.identifiers[0].id); } - async processUploadCSV(uploadFile: string) { + async processUploadCSV(uploadFile: string, supplierCode: string) { + const supplierData = await this.supplierService.findByCode(supplierCode); + const data = await parsingFile(uploadFile); data.shift(); await Promise.all( @@ -67,6 +69,7 @@ export class ProductService { const productData = await this.productRepository.findOne({ code: it[0], + supplier: supplierData, }); if (productData) { //TODO : Handle Update Product @@ -109,6 +112,7 @@ export class ProductService { code: it[0], status: it[5] == 'active' ? 'ACTIVE' : 'NOT ACTIVE', sub_categories: subCategories, + supplier: supplierData, }); await this.productHistoryPrice.insert({