Merge branch 'master' of https://gitlab.com/empatnusabangsa/ppob/ppob-backend into devops-production
This commit is contained in:
		| @@ -309,11 +309,14 @@ export class ProductService { | ||||
|       supplier = (await this.supplierService.findByActive()).id; | ||||
|     } | ||||
|  | ||||
|     console.log(supplier, 'asldklaksd') | ||||
|  | ||||
|     const baseQuery = this.productRepository | ||||
|       .createQueryBuilder('product') | ||||
|       .leftJoin('product.sub_categories', 'sub_categories') | ||||
|         .leftJoin('product.supplier', 'supplier') | ||||
|  | ||||
|       .leftJoin('product.statusHistory', 'status_history') | ||||
|         // .leftJoin('product.statusHistory', 'status_history') | ||||
|  | ||||
|       .leftJoinAndMapOne( | ||||
|         'product.currentPrice', | ||||
| @@ -321,16 +324,40 @@ export class ProductService { | ||||
|         'current_price', | ||||
|         'current_price.partner_id is NULL and current_price.end_date is NULL', | ||||
|       ) | ||||
|       .where( | ||||
|         `product.supplier_id = :supplier_id and status_history.status = 'ACTIVE' and status_history.partner_id is NULL`, | ||||
|         { | ||||
|           supplier_id: supplier, | ||||
|         }, | ||||
|       ) | ||||
|         .innerJoinAndMapOne( | ||||
|             'product.currentStatus', | ||||
|             'product.statusHistory', | ||||
|             'history_status', | ||||
|             `history_status.status = 'ACTIVE' and history_status.deleted_at is NULL`, | ||||
|             { | ||||
|               status: 'ACTIVE', | ||||
|             }, | ||||
|         ) | ||||
|       // .where( | ||||
|       //   `product.supplier_id = :supplier_id`, | ||||
|       //   { | ||||
|       //     supplier_id: supplier, | ||||
|       //   }, | ||||
|       // ) | ||||
|         .where( | ||||
|             `history_status.partner_id is NULL`, | ||||
|             { | ||||
|               partner_id: null, | ||||
|             }, | ||||
|         ) | ||||
|         .andWhere( | ||||
|             'supplier.status = TRUE', | ||||
|             { | ||||
|               status: true, | ||||
|             }, | ||||
|         ) | ||||
|       .select(['product.id']) | ||||
|       .addSelect(['product.name', 'product.code', 'sub_categories.name']) | ||||
|       .addSelect('(current_price.price + current_price.mark_up_price) as price') | ||||
|       .orderBy('price', 'ASC') | ||||
|         .addSelect('product.supplier_id', 'supplier') | ||||
|         .addSelect('supplier.status', 'status') | ||||
|         .addSelect('history_status.partner_id', 'partner') | ||||
|         .orderBy('price', 'ASC') | ||||
|       .distinct(); | ||||
|  | ||||
|     if (subCategories != 'null' && subCategories) { | ||||
| @@ -380,11 +407,16 @@ export class ProductService { | ||||
|     const baseQuery = await this.productRepository | ||||
|       .createQueryBuilder('product') | ||||
|       .leftJoin('product.sub_categories', 'sub_categories') | ||||
|       .leftJoinAndSelect( | ||||
|         'product.supplier', | ||||
|         'supplier', | ||||
|         'supplier.status = true', | ||||
|       ) | ||||
|         .leftJoin('product.supplier', 'supplier') | ||||
|         // .leftJoinAndSelect( | ||||
|       //   'product.supplier', | ||||
|       //   'supplier', | ||||
|       //   'supplier.status = true', | ||||
|       //     { | ||||
|       //       status: true | ||||
|       //     } | ||||
|       // | ||||
|       // ) | ||||
|       .innerJoinAndMapOne( | ||||
|         'product.currentPrice', | ||||
|         'product.priceHistory', | ||||
| @@ -409,11 +441,15 @@ export class ProductService { | ||||
|       .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.admin_price as admin_price', | ||||
|         'current_price.mark_up_price as markup_price', | ||||
| @@ -505,16 +541,14 @@ export class ProductService { | ||||
|   async findOneActive( | ||||
|     code: string, | ||||
|     type: string, | ||||
|     roles: string, | ||||
|     supplierId: string, | ||||
|     productId: string | ||||
|   ) { | ||||
|     if (roles == 'Retail') { | ||||
|       try { | ||||
|         return await this.productRepository.findOneOrFail({ | ||||
|           relations: ['supplier'], | ||||
|           where: { | ||||
|             code: code, | ||||
|             supplier: supplierId, | ||||
|             id: productId | ||||
|           }, | ||||
|         }); | ||||
|       } catch (e) { | ||||
| @@ -530,28 +564,7 @@ export class ProductService { | ||||
|           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) { | ||||
|   | ||||
| @@ -1,6 +1,10 @@ | ||||
| import { IsNotEmpty, IsOptional } from 'class-validator'; | ||||
|  | ||||
| export class OrderTransactionDto { | ||||
|  | ||||
|   @IsNotEmpty() | ||||
|   productId: string; | ||||
|  | ||||
|   @IsNotEmpty() | ||||
|   productCode: string; | ||||
|  | ||||
|   | ||||
| @@ -335,14 +335,13 @@ export class TransactionService { | ||||
|           currentUser.username, | ||||
|       ); | ||||
|  | ||||
|     const supplierData = await this.supplierService.findByCode('IRS'); | ||||
|     // const supplierData = await this.supplierService.findByCode('IRS'); | ||||
|  | ||||
|     //GET PRODUCT | ||||
|     const product = await this.productService.findOneActive( | ||||
|         orderTransactionDto.productCode, | ||||
|         'prepaid', | ||||
|         userData.roles.name, | ||||
|         supplierData.id | ||||
|         orderTransactionDto.productId | ||||
|     ); | ||||
|  | ||||
|       const product_price = await this.productHistoryPriceService.findOne( | ||||
| @@ -491,16 +490,13 @@ export class TransactionService { | ||||
|         currentUser.username, | ||||
|     ); | ||||
|  | ||||
|     const supplierData = await this.supplierService.findByCode('IRS'); | ||||
|  | ||||
|  | ||||
|     // const supplierData = await this.supplierService.findByCode('IRS'); | ||||
|  | ||||
|     //GET PRODUCT AND PRICE | ||||
|     const product = await this.productService.findOneActive( | ||||
|         orderTransactionDto.productCode, | ||||
|         'prepaid', | ||||
|         userData.roles.name, | ||||
|         supplierData.id | ||||
|         orderTransactionDto.productId | ||||
|     ); | ||||
|  | ||||
|     const supplier = await this.supplierService.findByCode( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user