Merge branch 'development' into 'devops-staging'
Development See merge request empatnusabangsa/ppob/ppob-backend!218
This commit is contained in:
		| @@ -309,11 +309,13 @@ export class ProductService { | |||||||
|       supplier = (await this.supplierService.findByActive()).id; |       supplier = (await this.supplierService.findByActive()).id; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     console.log(supplier, 'asldklaksd') | ||||||
|  |  | ||||||
|     const baseQuery = this.productRepository |     const baseQuery = this.productRepository | ||||||
|       .createQueryBuilder('product') |       .createQueryBuilder('product') | ||||||
|       .leftJoin('product.sub_categories', 'sub_categories') |       .leftJoin('product.sub_categories', 'sub_categories') | ||||||
|  |  | ||||||
|       .leftJoin('product.statusHistory', 'status_history') |       // .leftJoin('product.statusHistory', 'status_history') | ||||||
|  |  | ||||||
|       .leftJoinAndMapOne( |       .leftJoinAndMapOne( | ||||||
|         'product.currentPrice', |         'product.currentPrice', | ||||||
| @@ -321,12 +323,27 @@ export class ProductService { | |||||||
|         'current_price', |         'current_price', | ||||||
|         'current_price.partner_id is NULL and current_price.end_date is NULL', |         'current_price.partner_id is NULL and current_price.end_date is NULL', | ||||||
|       ) |       ) | ||||||
|  |         .innerJoinAndMapOne( | ||||||
|  |             'product.currentStatus', | ||||||
|  |             'product.statusHistory', | ||||||
|  |             'history_status', | ||||||
|  |             `history_status.status = 'ACTIVE' and history_status.deleted_at is NULL`, | ||||||
|  |             { | ||||||
|  |               status: 'ACTIVE', | ||||||
|  |             }, | ||||||
|  |         ) | ||||||
|       .where( |       .where( | ||||||
|         `product.supplier_id = :supplier_id and status_history.status = 'ACTIVE' and status_history.partner_id is NULL`, |         `product.supplier_id = :supplier_id`, | ||||||
|         { |         { | ||||||
|           supplier_id: supplier, |           supplier_id: supplier, | ||||||
|         }, |         }, | ||||||
|       ) |       ) | ||||||
|  |         .where( | ||||||
|  |             `history_status.partner_id is NULL`, | ||||||
|  |             { | ||||||
|  |               partner_id: null, | ||||||
|  |             }, | ||||||
|  |         ) | ||||||
|       .select(['product.id']) |       .select(['product.id']) | ||||||
|       .addSelect(['product.name', 'product.code', 'sub_categories.name']) |       .addSelect(['product.name', 'product.code', 'sub_categories.name']) | ||||||
|       .addSelect('(current_price.price + current_price.mark_up_price) as price') |       .addSelect('(current_price.price + current_price.mark_up_price) as price') | ||||||
| @@ -505,16 +522,14 @@ export class ProductService { | |||||||
|   async findOneActive( |   async findOneActive( | ||||||
|     code: string, |     code: string, | ||||||
|     type: string, |     type: string, | ||||||
|     roles: string, |     productId: string | ||||||
|     supplierId: string, |  | ||||||
|   ) { |   ) { | ||||||
|     if (roles == 'Retail') { |  | ||||||
|       try { |       try { | ||||||
|         return await this.productRepository.findOneOrFail({ |         return await this.productRepository.findOneOrFail({ | ||||||
|           relations: ['supplier'], |           relations: ['supplier'], | ||||||
|           where: { |           where: { | ||||||
|             code: code, |             code: code, | ||||||
|             supplier: supplierId, |             id: productId | ||||||
|           }, |           }, | ||||||
|         }); |         }); | ||||||
|       } catch (e) { |       } catch (e) { | ||||||
| @@ -530,28 +545,7 @@ export class ProductService { | |||||||
|           throw e; |           throw e; | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } else { |  | ||||||
|       try { |  | ||||||
|         return await this.productRepository.findOneOrFail({ |  | ||||||
|           relations: ['supplier'], |  | ||||||
|           where: { |  | ||||||
|             code: code, |  | ||||||
|           }, |  | ||||||
|         }); |  | ||||||
|       } catch (e) { |  | ||||||
|         if (e instanceof EntityNotFoundError) { |  | ||||||
|           throw new HttpException( |  | ||||||
|             { |  | ||||||
|               statusCode: HttpStatus.NOT_FOUND, |  | ||||||
|               error: 'Product not found', |  | ||||||
|             }, |  | ||||||
|             HttpStatus.NOT_FOUND, |  | ||||||
|           ); |  | ||||||
|         } else { |  | ||||||
|           throw e; |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   async findOneById(id: string) { |   async findOneById(id: string) { | ||||||
|   | |||||||
| @@ -1,6 +1,10 @@ | |||||||
| import { IsNotEmpty, IsOptional } from 'class-validator'; | import { IsNotEmpty, IsOptional } from 'class-validator'; | ||||||
|  |  | ||||||
| export class OrderTransactionDto { | export class OrderTransactionDto { | ||||||
|  |  | ||||||
|  |   @IsNotEmpty() | ||||||
|  |   productId: string; | ||||||
|  |  | ||||||
|   @IsNotEmpty() |   @IsNotEmpty() | ||||||
|   productCode: string; |   productCode: string; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -335,14 +335,13 @@ export class TransactionService { | |||||||
|           currentUser.username, |           currentUser.username, | ||||||
|       ); |       ); | ||||||
|  |  | ||||||
|     const supplierData = await this.supplierService.findByCode('IRS'); |     // const supplierData = await this.supplierService.findByCode('IRS'); | ||||||
|  |  | ||||||
|     //GET PRODUCT |     //GET PRODUCT | ||||||
|     const product = await this.productService.findOneActive( |     const product = await this.productService.findOneActive( | ||||||
|         orderTransactionDto.productCode, |         orderTransactionDto.productCode, | ||||||
|         'prepaid', |         'prepaid', | ||||||
|         userData.roles.name, |         orderTransactionDto.productId | ||||||
|         supplierData.id |  | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|       const product_price = await this.productHistoryPriceService.findOne( |       const product_price = await this.productHistoryPriceService.findOne( | ||||||
| @@ -491,16 +490,13 @@ export class TransactionService { | |||||||
|         currentUser.username, |         currentUser.username, | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     const supplierData = await this.supplierService.findByCode('IRS'); |     // const supplierData = await this.supplierService.findByCode('IRS'); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     //GET PRODUCT AND PRICE |     //GET PRODUCT AND PRICE | ||||||
|     const product = await this.productService.findOneActive( |     const product = await this.productService.findOneActive( | ||||||
|         orderTransactionDto.productCode, |         orderTransactionDto.productCode, | ||||||
|         'prepaid', |         'prepaid', | ||||||
|         userData.roles.name, |         orderTransactionDto.productId | ||||||
|         supplierData.id |  | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     const supplier = await this.supplierService.findByCode( |     const supplier = await this.supplierService.findByCode( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user