diff --git a/src/product/product.service.ts b/src/product/product.service.ts index 14ba472..8457093 100644 --- a/src/product/product.service.ts +++ b/src/product/product.service.ts @@ -429,6 +429,30 @@ export class ProductService { } } + async findOneActive(code: string, type: string) { + try { + return await this.productRepository.findOneOrFail({ + relations: ['supplier'], + where: { + code: code, + status: 'ACTIVE', + }, + }); + } 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) { try { return await this.productRepository.findOneOrFail({ diff --git a/src/transaction/transaction.service.ts b/src/transaction/transaction.service.ts index be86fb7..8399508 100644 --- a/src/transaction/transaction.service.ts +++ b/src/transaction/transaction.service.ts @@ -310,7 +310,7 @@ export class TransactionService { 'prepaid', ); - if (productData.status == 'NOT ACTIVE') { + if (!productData.status.includes('ACTIVE')) { throw new HttpException( { statusCode: HttpStatus.INTERNAL_SERVER_ERROR, @@ -333,7 +333,7 @@ export class TransactionService { ); //GET PRODUCT - const product = await this.productService.findOne( + const product = await this.productService.findOneActive( orderTransactionDto.productCode, 'prepaid' ); @@ -467,7 +467,7 @@ export class TransactionService { 'prepaid', ); - if (productData.status == 'NOT ACTIVE') { + if (!productData.status.includes('ACTIVE')) { throw new HttpException( { statusCode: HttpStatus.INTERNAL_SERVER_ERROR, @@ -484,7 +484,7 @@ export class TransactionService { ); //GET PRODUCT AND PRICE - const product = await this.productService.findOne( + const product = await this.productService.findOneActive( orderTransactionDto.productCode, 'prepaid', );