fixing: get product by supplier and categories

This commit is contained in:
ilham
2021-12-14 22:15:21 +07:00
parent a3ce252e3c
commit 6951d052ff
3 changed files with 42 additions and 14 deletions

View File

@@ -15,6 +15,7 @@ import { productType } from '../helper/enum-list';
import { UpdatePriceProductDto } from './dto/product/update-price-product.dto';
import { Raw } from 'typeorm/browser';
import { UsersService } from '../users/users.service';
import { SupplierService } from '../users/supplier/supplier.service';
export class ProductService {
constructor(
@@ -24,6 +25,7 @@ export class ProductService {
private productHistoryPrice: Repository<ProductHistoryPrice>,
private productSubCategoriesService: ProductSubCategoriesService,
private usersService: UsersService,
private supplierService: SupplierService,
) {}
async create(createProductDto: CreateProductDto) {
@@ -62,13 +64,17 @@ export class ProductService {
});
}
async findAllByCategories(page, categories) {
async findAllByCategories(page, categories, supplier) {
const baseQuery = this.productRepository
.createQueryBuilder('product')
.leftJoin('product.sub_categories', 'sub_categories')
.where('sub_categories.category_id = :id', {
id: categories,
})
.where(
'sub_categories.category_id = :id and product.supplier_id = :supplier_id',
{
id: categories,
supplier_id: supplier,
},
)
.leftJoinAndMapOne(
'product.currentPrice',
'product.priceHistory',
@@ -89,19 +95,20 @@ export class ProductService {
};
}
async findAllByCategoriesAndPartner(
page: number,
categories: string,
username: string,
) {
async findAllForPartner(page: number, categories: string, username: string) {
const user = await this.usersService.findOneByUsername(username);
const supplier = await this.supplierService.findByActive();
const baseQuery = this.productRepository
.createQueryBuilder('product')
.leftJoin('product.sub_categories', 'sub_categories')
.where('sub_categories.category_id = :id', {
id: categories,
})
.where(
'sub_categories.category_id = :id and product.supplier_id = :supplier_id',
{
id: categories,
supplier_id: supplier.id,
},
)
.leftJoinAndMapOne(
'product.currentPrice',
'product.priceHistory',