From f0be8ca0677bfd09db4f2e6f587fa13a6d098bcf Mon Sep 17 00:00:00 2001 From: Muhammad Fadli Date: Fri, 28 Apr 2023 19:13:23 +0700 Subject: [PATCH] - fix get product partner hide markup price --- src/product/product.service.ts | 69 +++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/src/product/product.service.ts b/src/product/product.service.ts index b20edbb..59ed630 100644 --- a/src/product/product.service.ts +++ b/src/product/product.service.ts @@ -405,7 +405,8 @@ export class ProductService { ); } - const baseQuery = await this.productRepository + const baseQuery = user.roles.name == 'Admin' ? + await this.productRepository .createQueryBuilder('product') .leftJoin('product.sub_categories', 'sub_categories') .leftJoin('product.supplier', 'supplier') @@ -458,6 +459,71 @@ export class ProductService { 'current_price.price as price', ]) .addSelect('history_status.status', 'status') + .distinct() + // .addSelect( + // '(current_price.price + current_price.mark_up_price) as price', + // ); + + // if ( + // subCategories != 'null' && + // subCategories && + // subCategories != 'undefined' + // ) { + // baseQuery.where('product.sub_categories_id = :id', { + // id: subCategories, + // }); + // } +: + await this.productRepository + .createQueryBuilder('product') + .leftJoin('product.sub_categories', 'sub_categories') + .leftJoin('product.supplier', 'supplier') + // .leftJoinAndSelect( + // 'product.supplier', + // 'supplier', + // 'supplier.status = true', + // { + // status: true + // } + // + // ) + .innerJoinAndMapOne( + 'product.currentPrice', + 'product.priceHistory', + 'current_price', + 'current_price.partner_id = :id_partner and current_price.end_date is NULL', + { + id_partner: user.partner.id, + }, + ) + .innerJoinAndMapOne( + 'product.currentStatus', + 'product.statusHistory', + 'history_status', + 'history_status.partner_id = :id_partner and history_status.deleted_at is NULL', + { + id_partner: user.partner.id, + }, + ) + // .where(`history_status.partner_id = :id_partner`, { + // partner: user.partner.id, + // }) + .where(`history_status.status = 'ACTIVE'`, { + status: 'ACTIVE', + }) + .andWhere('supplier.status = TRUE', { + status: true + }) + .select(['product.id']) + .addSelect([ + 'product.name', + 'product.code', + 'product.type', + 'product.supplier_id', + 'sub_categories.name', + 'current_price.price as price', + ]) + .addSelect('history_status.status', 'status') .distinct(); // .addSelect( // '(current_price.price + current_price.mark_up_price) as price', @@ -472,7 +538,6 @@ export class ProductService { // id: subCategories, // }); // } - if (subCategories && filterSubCategories.length > 0) { baseQuery .where('product.sub_categories_id IN (:...subCategoryId)', {