Przeglądaj źródła

feat(core): Pass order arg to OrderItemPriceCalculationStrategy and ChangedPriceHandlingStrategy (#1749)

Alexander Shitikov 3 lat temu
rodzic
commit
01d99d3b78

+ 2 - 0
packages/core/src/config/order/changed-price-handling-strategy.ts

@@ -2,6 +2,7 @@ import { RequestContext } from '../../api/common/request-context';
 import { PriceCalculationResult } from '../../common/types/common-types';
 import { InjectableStrategy } from '../../common/types/injectable-strategy';
 import { OrderItem } from '../../entity/order-item/order-item.entity';
+import { Order } from '../../entity/order/order.entity';
 
 /**
  * @description
@@ -25,5 +26,6 @@ export interface ChangedPriceHandlingStrategy extends InjectableStrategy {
         ctx: RequestContext,
         current: PriceCalculationResult,
         existingItems: OrderItem[],
+        order: Order,
     ): PriceCalculationResult | Promise<PriceCalculationResult>;
 }

+ 2 - 0
packages/core/src/config/order/order-item-price-calculation-strategy.ts

@@ -1,6 +1,7 @@
 import { RequestContext } from '../../api/common/request-context';
 import { PriceCalculationResult } from '../../common/types/common-types';
 import { InjectableStrategy } from '../../common/types/injectable-strategy';
+import { Order } from '../../entity/order/order.entity';
 import { ProductVariant } from '../../entity/product-variant/product-variant.entity';
 
 /**
@@ -56,5 +57,6 @@ export interface OrderItemPriceCalculationStrategy extends InjectableStrategy {
         ctx: RequestContext,
         productVariant: ProductVariant,
         orderLineCustomFields: { [key: string]: any },
+        order: Order,
     ): PriceCalculationResult | Promise<PriceCalculationResult>;
 }

+ 1 - 0
packages/core/src/service/services/order-testing.service.ts

@@ -136,6 +136,7 @@ export class OrderTestingService {
                 ctx,
                 productVariant,
                 orderLine.customFields || {},
+                mockOrder
             );
             const taxRate = productVariant.taxRateApplied;
             const unitPrice = priceIncludesTax ? taxRate.netPriceOf(price) : price;

+ 2 - 0
packages/core/src/service/services/order.service.ts

@@ -1729,6 +1729,7 @@ export class OrderService {
                     ctx,
                     variant,
                     updatedOrderLine.customFields || {},
+                    order
                 );
                 const initialListPrice =
                     updatedOrderLine.items.find(i => i.initialListPrice != null)?.initialListPrice ??
@@ -1738,6 +1739,7 @@ export class OrderService {
                         ctx,
                         priceResult,
                         updatedOrderLine.items,
+                        order,
                     );
                 }
                 for (const item of updatedOrderLine.items) {