feat: add endpoint get product history price
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
|
||||
import { EntityNotFoundError, IsNull, Repository } from 'typeorm';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { ProductCategories } from '../entities/product-category.entity';
|
||||
import { ProductHistoryPrice } from '../entities/product-history-price.entity';
|
||||
|
||||
@Injectable()
|
||||
@@ -34,4 +33,49 @@ export class ProductHistoryPriceService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async findOneByProductId(
|
||||
page: number,
|
||||
productId: string,
|
||||
supplierId: string,
|
||||
) {
|
||||
try {
|
||||
const query = this.productHistoryPriceService
|
||||
.createQueryBuilder('product_history_price')
|
||||
.leftJoin('product_history_price.product', 'product')
|
||||
.where({ product: productId })
|
||||
.andWhere('product_history_price.endDate IS NULL');
|
||||
|
||||
if (supplierId !== 'null' && supplierId) {
|
||||
query.andWhere('product.supplier = :supplierId', {
|
||||
supplierId: supplierId,
|
||||
});
|
||||
}
|
||||
|
||||
const data = await query
|
||||
.orderBy('product_history_price.createdAt', 'DESC')
|
||||
.skip(page * 10)
|
||||
.take(10)
|
||||
.getMany();
|
||||
|
||||
const totalData = await query.getCount();
|
||||
|
||||
return {
|
||||
data,
|
||||
count: totalData,
|
||||
};
|
||||
} catch (e) {
|
||||
if (e instanceof EntityNotFoundError) {
|
||||
throw new HttpException(
|
||||
{
|
||||
statusCode: HttpStatus.NOT_FOUND,
|
||||
error: 'Product History Price not found',
|
||||
},
|
||||
HttpStatus.NOT_FOUND,
|
||||
);
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user