From 0c617d4c3bfe84bdc7e9113be4417727eea9255d Mon Sep 17 00:00:00 2001 From: Fadli Date: Wed, 31 Aug 2022 07:12:47 +0700 Subject: [PATCH] changes back 'fix: update status product at upload product' --- src/product/product.service.ts | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/product/product.service.ts b/src/product/product.service.ts index f6f2dd3..5f5f85f 100644 --- a/src/product/product.service.ts +++ b/src/product/product.service.ts @@ -63,6 +63,7 @@ export class ProductService { await mapSeries(data, async (it) => { let dataHistoryPrice; let partnerData; + let productStatusPartner; const subCategories = await this.productSubCategoriesService.findOneForCSVParser(it[2]); @@ -76,15 +77,26 @@ export class ProductService { supplier: supplierData, }); + const productStatus = await this.productHistoryStatus.findOne({ + product: productData, + partner: null, + }); + if (productData) { //TODO : Handle Update Product productData.name = it[1]; productData.status = it[5] == 'active' ? 'ACTIVE' : 'NOT ACTIVE'; + await this.productRepository.save(productData); //TODO : Handle History Price if (it[6] != '-' && it[6] != '') { partnerData = await this.partnerService.findOne(it[6]); + productStatusPartner = await this.productHistoryStatus.findOne({ + product: productData, + partner: partnerData.id, + }); + dataHistoryPrice = await this.productHistoryPrice.findOne({ where: { product: productData.id, @@ -93,6 +105,8 @@ export class ProductService { }, }); } else { + productStatus.status = it[5] == 'active' ? 'ACTIVE' : 'NOT ACTIVE'; + await this.productHistoryStatus.save(productStatus); dataHistoryPrice = await this.productHistoryPrice.findOne({ product: productData, partner: IsNull(), @@ -106,12 +120,11 @@ export class ProductService { }); } - await this.productHistoryStatus.insert({ - product: productData, - partner: it[6] != '-' ? partnerData : null, - status: it[5] == 'active' ? 'ACTIVE' : 'NOT ACTIVE', - - }); + if (productStatusPartner) { + await this.productHistoryStatus.update(productStatusPartner.id, { + status: it[5] == 'active' ? 'ACTIVE' : 'NOT ACTIVE', + }); + } await this.productHistoryPrice.insert({ product: productData,