Skip to content

Commit

Permalink
add variationPrices module
Browse files Browse the repository at this point in the history
  • Loading branch information
bahram1249 committed Jul 1, 2024
1 parent fd680f0 commit 3e80966
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,6 @@ export class CalculateCommentScoreService {
new QueryOptionsBuilder()
.filter({ id: commentId })
.filter({ statusId: ProductCommentStatusEnum.confirm })
.filter(
Sequelize.where(
Sequelize.fn(
'isnull',
Sequelize.col('ECProductComment.isDeleted'),
0,
),
{
[Op.eq]: 0,
},
),
)
.build(),
);
if (!comment) {
Expand Down Expand Up @@ -94,6 +82,18 @@ export class CalculateCommentScoreService {
])
.filter({ entityId: product.id })
.filter({ statusId: ProductCommentStatusEnum.confirm })
.filter(
Sequelize.where(
Sequelize.fn(
'isnull',
Sequelize.col('ECProductComment.isDeleted'),
0,
),
{
[Op.eq]: 0,
},
),
)
.raw(true)
.build(),
);
Expand Down
13 changes: 11 additions & 2 deletions apps/e-commerce/src/report/admin-sale/admin-sale.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,18 @@ export class AdminSaleService {
.init(false)
.nonDeleted()
.onlyPaid()
.includeInventoryPrice()
.addBeginDate(filter.beginDate)
.addEndDate(filter.endDate);

if (filter.vendorId) {
queryBuilder = queryBuilder.onlyVendor(filter.vendorId);
}

if (filter.variationPriceId) {
queryBuilder = queryBuilder.addVariationPriceId(filter.variationPriceId);
}

const count = await this.orderDetailRepository.count(queryBuilder.build());

queryBuilder = queryBuilder
Expand Down Expand Up @@ -95,7 +100,7 @@ export class AdminSaleService {
.includeProduct()
.includeInventory()
.includeVendor()
.includeInventoryPrice()

.offset(filter.offset)
.limit(filter.limit);

Expand Down Expand Up @@ -127,13 +132,18 @@ export class AdminSaleService {
.init(true)
.nonDeleted()
.onlyPaid()
.includeInventoryPrice()
.addBeginDate(filter.beginDate)
.addEndDate(filter.endDate);

if (filter.vendorId) {
queryBuilder = queryBuilder.onlyVendor(filter.vendorId);
}

if (filter.variationPriceId) {
queryBuilder = queryBuilder.addVariationPriceId(filter.variationPriceId);
}

queryBuilder = queryBuilder
.attributes([
[
Expand Down Expand Up @@ -218,7 +228,6 @@ export class AdminSaleService {
'profitAmount',
],
])
.includeInventoryPrice()
.rawQuery(true);

const findOptions = queryBuilder.build();
Expand Down
12 changes: 12 additions & 0 deletions apps/e-commerce/src/report/admin-sale/dto/admin-sale-dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,16 @@ export class AdminSaleDto {
})
@Type(() => Number)
vendorId?: number;

@ApiProperty({
required: true,
type: IsNumber,
description: 'variationPriceId',
})
@IsInt({
message: i18nValidationMessage<I18nTranslations>('validation.NUMBER'),
})
@Type(() => Number)
@IsOptional()
variationPriceId?: number;
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ import { ECOrder } from '@rahino/database/models/ecommerce-eav/ec-order.entity';
import { ECProduct } from '@rahino/database/models/ecommerce-eav/ec-product.entity';
import { ECVendor } from '@rahino/database/models/ecommerce-eav/ec-vendor.entity';
import { OrderStatusEnum } from '@rahino/ecommerce/util/enum';
import { Order } from '@rahino/query-filter';
import { QueryOptionsBuilder } from '@rahino/query-filter/sequelize-query-builder';
import { FindAttributeOptions, Op, Sequelize } from 'sequelize';
import { FindAttributeOptions, GroupOption, Op, Sequelize } from 'sequelize';

@Injectable({ scope: Scope.REQUEST })
export class SaleQueryBuilderService {
Expand Down Expand Up @@ -53,6 +54,15 @@ export class SaleQueryBuilderService {
return this;
}

addVariationPriceId(variationPriceId: number) {
this.builder = this.builder.filter(
Sequelize.where(Sequelize.col('inventoryPrice.variationPriceId'), {
[Op.eq]: variationPriceId,
}),
);
return this;
}

onlyVendor(vendorId: number) {
this.builder = this.builder.filter({ vendorId: vendorId });
return this;
Expand Down Expand Up @@ -167,7 +177,9 @@ export class SaleQueryBuilderService {

includeInventoryPrice() {
this.builder = this.builder.thenInlcude({
attributes: this.groupByQuery ? [] : ['id', 'buyPrice'],
attributes: this.groupByQuery
? []
: ['id', 'buyPrice', 'variationPriceId'],
model: ECInventoryPrice,
as: 'inventoryPrice',
required: true,
Expand All @@ -180,6 +192,16 @@ export class SaleQueryBuilderService {
return this;
}

group(group: GroupOption) {
this.builder = this.builder.group(group);
return this;
}

order(orderArg: Order) {
this.builder = this.builder.order(orderArg);
return this;
}

build() {
return this.builder.build();
}
Expand Down
12 changes: 12 additions & 0 deletions apps/e-commerce/src/report/vendor-sale/dto/vendor-sale-dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,16 @@ export class VendorSaleDto {
})
@Type(() => Number)
vendorId: number;

@ApiProperty({
required: true,
type: IsNumber,
description: 'variationPriceId',
})
@IsInt({
message: i18nValidationMessage<I18nTranslations>('validation.NUMBER'),
})
@Type(() => Number)
@IsOptional()
variationPriceId?: number;
}
13 changes: 11 additions & 2 deletions apps/e-commerce/src/report/vendor-sale/vendor-sale.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,14 @@ export class VendorSaleService {
.init(false)
.nonDeleted()
.onlyPaid()
.includeInventoryPrice()
.addBeginDate(filter.beginDate)
.addEndDate(filter.endDate);

if (filter.variationPriceId) {
queryBuilder = queryBuilder.addVariationPriceId(filter.variationPriceId);
}

if (filter.vendorId) {
queryBuilder = queryBuilder.onlyVendor(filter.vendorId);
}
Expand Down Expand Up @@ -113,7 +118,7 @@ export class VendorSaleService {
.includeProduct()
.includeInventory()
.includeVendor()
.includeInventoryPrice()

.offset(filter.offset)
.limit(filter.limit);

Expand Down Expand Up @@ -156,13 +161,18 @@ export class VendorSaleService {
.init(true)
.nonDeleted()
.onlyPaid()
.includeInventoryPrice()
.addBeginDate(filter.beginDate)
.addEndDate(filter.endDate);

if (filter.vendorId) {
queryBuilder = queryBuilder.onlyVendor(filter.vendorId);
}

if (filter.variationPriceId) {
queryBuilder = queryBuilder.addVariationPriceId(filter.variationPriceId);
}

queryBuilder = queryBuilder
.attributes([
[
Expand Down Expand Up @@ -247,7 +257,6 @@ export class VendorSaleService {
'profitAmount',
],
])
.includeInventoryPrice()
.rawQuery(true);

const findOptions = queryBuilder.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ export class QueryOptionsBuilder {
this.options.subQuery = flag;
return this;
}
build(): Omit<FindAndCountOptions<any>, 'group'> {
build(): FindAndCountOptions<any> {
//Omit<FindAndCountOptions<any>, 'group'> {
return this.options;
}
transaction(transaction: Transaction) {
Expand Down

0 comments on commit 3e80966

Please sign in to comment.