Skip to content

Commit fd4b641

Browse files
committed
Move to net
1 parent 5fcdef2 commit fd4b641

7 files changed

Lines changed: 39 additions & 18 deletions

File tree

packages/core/src/directors/BasePricingSheet.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,19 @@ export interface PricingSheetParams<Calculation extends PricingCalculation> {
4242
export const BasePricingSheet = <Calculation extends PricingCalculation>(
4343
params: PricingSheetParams<Calculation>,
4444
): IBasePricingSheet<Calculation> => {
45+
const calculation = params.calculation || [];
46+
4547
const pricingSheet: IBasePricingSheet<Calculation> = {
46-
calculation: params.calculation || [],
48+
calculation,
4749
currencyCode: params.currencyCode,
4850
quantity: params.quantity,
4951

5052
getRawPricingSheet() {
51-
return this.calculation;
53+
return calculation;
5254
},
5355

5456
isValid() {
55-
return this.calculation.length > 0;
57+
return calculation.length > 0;
5658
},
5759

5860
sum(filter) {
@@ -95,20 +97,20 @@ export const BasePricingSheet = <Calculation extends PricingCalculation>(
9597
(row: Calculation) =>
9698
!!row && (filter[filterKey] === undefined || row[filterKey] === filter[filterKey]),
9799
),
98-
this.calculation,
100+
calculation,
99101
);
100102

101103
return filteredCalculation;
102104
},
103105

104106
resetCalculation(calculationSheet) {
105107
calculationSheet.filterBy().forEach(({ amount, ...row }: Calculation) => {
106-
this.calculation.push({
108+
pricingSheet.calculation.push({
107109
...row,
108110
amount: amount * -1,
109111
} as Calculation);
110112
});
111-
return this.calculation;
113+
return pricingSheet.calculation;
112114
},
113115
};
114116

packages/core/src/directors/OrderPricingSheet.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,11 @@ export const OrderPricingSheet = (
9494
});
9595
},
9696

97-
gross() {
98-
// tax is included 2 times, this is only true for Order Pricing!
99-
return basePricingSheet.sum() - this.taxSum();
100-
},
101-
102-
net() {
103-
return basePricingSheet.sum() - this.taxSum() - this.taxSum();
97+
discountSum(discountId) {
98+
return basePricingSheet.sum({
99+
category: OrderPricingRowCategory.Discounts,
100+
discountId,
101+
});
104102
},
105103

106104
total({ category, useNetPrice, discountId } = { useNetPrice: false }) {

packages/plugins/src/pricing/order-delivery.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const OrderDelivery: IOrderPricingAdapter = {
3232
currencyCode: order.currencyCode,
3333
});
3434
const tax = pricing.taxSum();
35-
const shipping = pricing.gross();
35+
const shipping = pricing.net();
3636

3737
pricingAdapter
3838
.resultSheet()

packages/plugins/src/pricing/order-discount.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,12 @@ export const OrderDiscount: IOrderPricingAdapter<OrderDiscountConfiguration> = {
9999
Math.max(0, Math.min(amountLeft, leftInFeesToSplit)),
100100
);
101101
amountLeft -= deliveryAndPaymentDiscountAmount;
102-
const discountAmount = (itemsDiscountAmount + deliveryAndPaymentDiscountAmount) * -1;
102+
const discountAmount =
103+
(itemsDiscountAmount +
104+
deliveryAndPaymentDiscountAmount -
105+
itemsTaxAmount -
106+
deliveryAndPaymentTaxAmount) *
107+
-1;
103108
const taxAmount = (itemsTaxAmount + deliveryAndPaymentTaxAmount) * -1;
104109
if (discountAmount) {
105110
pricingAdapter.resultSheet().addDiscount({

packages/plugins/src/pricing/order-items.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const OrderItems: IOrderPricingAdapter = {
3434
quantity: orderPosition.quantity,
3535
});
3636
const tax = pricing.taxSum();
37-
const items = pricing.gross();
37+
const items = pricing.net();
3838
return {
3939
taxes: current.taxes + tax,
4040
items: current.items + items,

packages/plugins/src/pricing/order-payment.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const OrderPayment: IOrderPricingAdapter = {
3333
currencyCode: order.currencyCode,
3434
});
3535
const tax = pricing.taxSum();
36-
const paymentFees = pricing.gross();
36+
const paymentFees = pricing.net();
3737

3838
pricingAdapter
3939
.resultSheet()

tests/seeds/orders.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ export const SimpleOrder = {
2020
category: 'ITEMS',
2121
amount: 30000,
2222
},
23-
{ category: 'TAXES', amount: 2144.8467966573808 },
23+
{ category: 'ITEMS', amount: -2144.8467966573808 },
24+
{ category: 'TAXES', amount: 2144.8467966573808, baseCategory: 'ITEMS' },
2425
{
2526
category: 'PAYMENT',
2627
amount: 0,
@@ -115,6 +116,7 @@ export const SimplePosition = {
115116
isTaxable: false,
116117
isNetPrice: false,
117118
rate: 0.077,
119+
baseCategory: 'ITEM',
118120
meta: {
119121
adapter: 'shop.unchained.pricing.product-swiss-tax',
120122
},
@@ -214,9 +216,14 @@ export const DiscountedOrder = {
214216
category: 'ITEMS',
215217
amount: 100000,
216218
},
219+
{
220+
category: 'ITEMS',
221+
amount: -7149.489322191272,
222+
},
217223
{
218224
category: 'TAXES',
219225
amount: 7149.489322191272,
226+
baseCategory: 'ITEMS',
220227
},
221228
{
222229
category: 'PAYMENT',
@@ -231,9 +238,16 @@ export const DiscountedOrder = {
231238
amount: -10000,
232239
discountId: 'discounted-order-discount',
233240
},
241+
{
242+
category: 'DISCOUNTS',
243+
amount: 714.9489322191266,
244+
discountId: 'discounted-order-discount',
245+
},
234246
{
235247
category: 'TAXES',
236248
amount: -714.9489322191266,
249+
baseCategory: 'DISCOUNTS',
250+
discountId: 'discounted-order-discount',
237251
},
238252
],
239253
};
@@ -304,6 +318,7 @@ export const DiscountedPosition = {
304318
category: 'TAX',
305319
amount: 8579.387186629523,
306320
rate: 0.077,
321+
baseCategory: 'ITEM',
307322
meta: {
308323
adapter: 'shop.unchained.pricing.product-swiss-tax',
309324
},
@@ -321,6 +336,7 @@ export const DiscountedPosition = {
321336
category: 'TAX',
322337
amount: -4289.6935933147615,
323338
rate: 0.077,
339+
baseCategory: 'DISCOUNT',
324340
meta: {
325341
adapter: 'shop.unchained.pricing.product-swiss-tax',
326342
},

0 commit comments

Comments
 (0)