From ab518b8766bed5eb010b825b841b568ed05c41a4 Mon Sep 17 00:00:00 2001 From: mfadiln2018 Date: Wed, 31 Aug 2022 01:30:14 +0700 Subject: [PATCH] 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 5f04229..899a5c5 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,