@unchainedshop/core-orders 3.0.0-alpha7 → 3.0.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/lib/db/OrderDeliveriesCollection.d.ts +21 -2
  2. package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
  3. package/lib/db/OrderDeliveriesCollection.js +6 -0
  4. package/lib/db/OrderDeliveriesCollection.js.map +1 -1
  5. package/lib/db/OrderDiscountsCollection.d.ts +16 -2
  6. package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
  7. package/lib/db/OrderDiscountsCollection.js +5 -0
  8. package/lib/db/OrderDiscountsCollection.js.map +1 -1
  9. package/lib/db/OrderPaymentsCollection.d.ts +22 -2
  10. package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
  11. package/lib/db/OrderPaymentsCollection.js +6 -0
  12. package/lib/db/OrderPaymentsCollection.js.map +1 -1
  13. package/lib/db/OrderPositionsCollection.d.ts +22 -2
  14. package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
  15. package/lib/db/OrderPositionsCollection.js.map +1 -1
  16. package/lib/db/OrdersCollection.d.ts +33 -2
  17. package/lib/db/OrdersCollection.d.ts.map +1 -1
  18. package/lib/db/OrdersCollection.js +8 -1
  19. package/lib/db/OrdersCollection.js.map +1 -1
  20. package/lib/director/OrderDiscountAdapter.d.ts +2 -2
  21. package/lib/director/OrderDiscountAdapter.d.ts.map +1 -1
  22. package/lib/director/OrderDiscountAdapter.js.map +1 -1
  23. package/lib/director/OrderDiscountDirector.d.ts +1 -1
  24. package/lib/director/OrderDiscountDirector.d.ts.map +1 -1
  25. package/lib/director/OrderDiscountDirector.js.map +1 -1
  26. package/lib/director/OrderPricingAdapter.d.ts +3 -3
  27. package/lib/director/OrderPricingAdapter.d.ts.map +1 -1
  28. package/lib/director/OrderPricingAdapter.js.map +1 -1
  29. package/lib/director/OrderPricingDirector.d.ts +1 -1
  30. package/lib/director/OrderPricingDirector.d.ts.map +1 -1
  31. package/lib/module/buildFindSelector.d.ts +5 -0
  32. package/lib/module/buildFindSelector.d.ts.map +1 -0
  33. package/lib/module/buildFindSelector.js +18 -0
  34. package/lib/module/buildFindSelector.js.map +1 -0
  35. package/lib/module/configureOrderDeliveriesModule.d.ts +14 -27
  36. package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
  37. package/lib/module/configureOrderDeliveriesModule.js +8 -69
  38. package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
  39. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts +24 -0
  40. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts.map +1 -0
  41. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js +101 -0
  42. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js.map +1 -0
  43. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts +36 -0
  44. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts.map +1 -0
  45. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js +162 -0
  46. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js.map +1 -0
  47. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts +23 -0
  48. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts.map +1 -0
  49. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js +97 -0
  50. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js.map +1 -0
  51. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts +37 -0
  52. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts.map +1 -0
  53. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js +166 -0
  54. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js.map +1 -0
  55. package/lib/module/configureOrderDiscountsModule.d.ts +17 -18
  56. package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
  57. package/lib/module/configureOrderDiscountsModule.js +34 -143
  58. package/lib/module/configureOrderDiscountsModule.js.map +1 -1
  59. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts +26 -0
  60. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts.map +1 -0
  61. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js +69 -0
  62. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js.map +1 -0
  63. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts +26 -0
  64. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts.map +1 -0
  65. package/lib/module/configureOrderDiscountsModule_BASE_55046.js +178 -0
  66. package/lib/module/configureOrderDiscountsModule_BASE_55046.js.map +1 -0
  67. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts +25 -0
  68. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts.map +1 -0
  69. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js +65 -0
  70. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js.map +1 -0
  71. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts +27 -0
  72. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts.map +1 -0
  73. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js +182 -0
  74. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js.map +1 -0
  75. package/lib/module/configureOrderPaymentsModule.d.ts +17 -37
  76. package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
  77. package/lib/module/configureOrderPaymentsModule.js +16 -124
  78. package/lib/module/configureOrderPaymentsModule.js.map +1 -1
  79. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts +32 -0
  80. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts.map +1 -0
  81. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js +135 -0
  82. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js.map +1 -0
  83. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts +32 -0
  84. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts.map +1 -0
  85. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js +135 -0
  86. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js.map +1 -0
  87. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts +51 -0
  88. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts.map +1 -0
  89. package/lib/module/configureOrderPaymentsModule_BASE_55464.js +243 -0
  90. package/lib/module/configureOrderPaymentsModule_BASE_55464.js.map +1 -0
  91. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts +51 -0
  92. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts.map +1 -0
  93. package/lib/module/configureOrderPaymentsModule_BASE_55877.js +243 -0
  94. package/lib/module/configureOrderPaymentsModule_BASE_55877.js.map +1 -0
  95. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts +31 -0
  96. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts.map +1 -0
  97. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js +131 -0
  98. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js.map +1 -0
  99. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts +31 -0
  100. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts.map +1 -0
  101. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js +131 -0
  102. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js.map +1 -0
  103. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts +52 -0
  104. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts.map +1 -0
  105. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js +247 -0
  106. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js.map +1 -0
  107. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts +52 -0
  108. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts.map +1 -0
  109. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js +247 -0
  110. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js.map +1 -0
  111. package/lib/module/configureOrderPositionsModule.d.ts +22 -41
  112. package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
  113. package/lib/module/configureOrderPositionsModule.js +22 -85
  114. package/lib/module/configureOrderPositionsModule.js.map +1 -1
  115. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts +44 -0
  116. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts.map +1 -0
  117. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js +138 -0
  118. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js.map +1 -0
  119. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts +60 -0
  120. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts.map +1 -0
  121. package/lib/module/configureOrderPositionsModule_BASE_56197.js +201 -0
  122. package/lib/module/configureOrderPositionsModule_BASE_56197.js.map +1 -0
  123. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts +43 -0
  124. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts.map +1 -0
  125. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js +134 -0
  126. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js.map +1 -0
  127. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts +61 -0
  128. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts.map +1 -0
  129. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js +205 -0
  130. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js.map +1 -0
  131. package/lib/module/configureOrdersModule-mutations.d.ts +5 -11
  132. package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
  133. package/lib/module/configureOrdersModule-mutations.js +11 -50
  134. package/lib/module/configureOrdersModule-mutations.js.map +1 -1
  135. package/lib/module/configureOrdersModule-processing.d.ts +4 -8
  136. package/lib/module/configureOrdersModule-processing.d.ts.map +1 -1
  137. package/lib/module/configureOrdersModule-processing.js +3 -1
  138. package/lib/module/configureOrdersModule-processing.js.map +1 -1
  139. package/lib/module/configureOrdersModule-queries.d.ts +18 -6
  140. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  141. package/lib/module/configureOrdersModule-queries.js +35 -22
  142. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  143. package/lib/module/configureOrdersModule-transformations.d.ts +2 -3
  144. package/lib/module/configureOrdersModule-transformations.d.ts.map +1 -1
  145. package/lib/module/configureOrdersModule-transformations.js +3 -3
  146. package/lib/module/configureOrdersModule-transformations.js.map +1 -1
  147. package/lib/module/configureOrdersModule.d.ts +11 -8
  148. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  149. package/lib/module/configureOrdersModule.js +133 -154
  150. package/lib/module/configureOrdersModule.js.map +1 -1
  151. package/lib/orders-index.d.ts +11 -8
  152. package/lib/orders-index.d.ts.map +1 -1
  153. package/lib/orders-index.js +11 -8
  154. package/lib/orders-index.js.map +1 -1
  155. package/lib/orders-settings.d.ts +4 -8
  156. package/lib/orders-settings.d.ts.map +1 -1
  157. package/lib/orders-settings.js.map +1 -1
  158. package/lib/types.d.ts +7 -22
  159. package/lib/types.d.ts.map +1 -1
  160. package/lib/types.js +0 -5
  161. package/lib/types.js.map +1 -1
  162. package/package.json +9 -12
  163. package/src/db/OrderDeliveriesCollection.ts +25 -2
  164. package/src/db/OrderDiscountsCollection.ts +18 -2
  165. package/src/db/OrderPaymentsCollection.ts +26 -2
  166. package/src/db/OrderPositionsCollection.ts +21 -2
  167. package/src/db/OrdersCollection.ts +44 -2
  168. package/src/module/buildFindSelector.test.ts +8 -8
  169. package/src/module/buildFindSelector.ts +24 -0
  170. package/src/module/configureOrderDeliveriesModule.ts +29 -172
  171. package/src/module/configureOrderDiscountsModule.ts +46 -213
  172. package/src/module/configureOrderPaymentsModule.ts +58 -266
  173. package/src/module/configureOrderPositionsModule.ts +57 -208
  174. package/src/module/configureOrdersModule-mutations.ts +13 -85
  175. package/src/module/configureOrdersModule-queries.ts +61 -29
  176. package/src/module/configureOrdersModule.ts +180 -264
  177. package/src/orders-index.ts +11 -10
  178. package/src/orders-settings.ts +5 -7
  179. package/tsconfig.json +5 -7
  180. package/lib/service/migrateOrderCartService.d.ts +0 -10
  181. package/lib/service/migrateOrderCartService.d.ts.map +0 -1
  182. package/lib/service/migrateOrderCartService.js +0 -32
  183. package/lib/service/migrateOrderCartService.js.map +0 -1
  184. package/lib/service/nextUserCartService.d.ts +0 -11
  185. package/lib/service/nextUserCartService.d.ts.map +0 -1
  186. package/lib/service/nextUserCartService.js +0 -34
  187. package/lib/service/nextUserCartService.js.map +0 -1
  188. package/lib/service/orderServices.d.ts +0 -8
  189. package/lib/service/orderServices.d.ts.map +0 -1
  190. package/lib/service/orderServices.js +0 -7
  191. package/lib/service/orderServices.js.map +0 -1
  192. package/src/db/OrderDiscountTrigger.ts +0 -4
  193. package/src/director/OrderDiscountAdapter.ts +0 -8
  194. package/src/director/OrderDiscountConfiguration.ts +0 -5
  195. package/src/director/OrderDiscountDirector.ts +0 -5
  196. package/src/director/OrderPricingAdapter.ts +0 -61
  197. package/src/director/OrderPricingDirector.ts +0 -72
  198. package/src/director/OrderPricingSheet.ts +0 -146
  199. package/src/module/configureOrdersModule-processing.ts +0 -508
  200. package/src/module/configureOrdersModule-transformations.ts +0 -171
  201. package/src/service/migrateOrderCartService.ts +0 -53
  202. package/src/service/nextUserCartService.ts +0 -54
  203. package/src/service/orderServices.ts +0 -12
  204. package/src/types.ts +0 -129
@@ -1,8 +0,0 @@
1
- import { MigrateOrderCartsService } from './migrateOrderCartService.js';
2
- import { NextUserCartService } from './nextUserCartService.js';
3
- export interface OrderServices {
4
- migrateOrderCarts: MigrateOrderCartsService;
5
- nextUserCart: NextUserCartService;
6
- }
7
- export declare const orderServices: OrderServices;
8
- //# sourceMappingURL=orderServices.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orderServices.d.ts","sourceRoot":"","sources":["../../src/service/orderServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAuB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpF,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,EAAE,aAG3B,CAAC"}
@@ -1,7 +0,0 @@
1
- import { migrateOrderCartsService } from './migrateOrderCartService.js';
2
- import { nextUserCartService } from './nextUserCartService.js';
3
- export const orderServices = {
4
- migrateOrderCarts: migrateOrderCartsService,
5
- nextUserCart: nextUserCartService,
6
- };
7
- //# sourceMappingURL=orderServices.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orderServices.js","sourceRoot":"","sources":["../../src/service/orderServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAA4B,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAuB,MAAM,0BAA0B,CAAC;AAOpF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,iBAAiB,EAAE,wBAAwB;IAC3C,YAAY,EAAE,mBAAmB;CAClC,CAAC"}
@@ -1,4 +0,0 @@
1
- export enum OrderDiscountTrigger {
2
- USER = 'USER',
3
- SYSTEM = 'SYSTEM',
4
- }
@@ -1,8 +0,0 @@
1
- import { BaseDiscountAdapter } from '@unchainedshop/utils';
2
- import { OrderDiscountConfiguration } from './OrderDiscountConfiguration.js';
3
- import { IDiscountAdapter } from '@unchainedshop/utils';
4
-
5
- export const OrderDiscountAdapter: Omit<
6
- IDiscountAdapter<OrderDiscountConfiguration>,
7
- 'key' | 'label' | 'version'
8
- > = BaseDiscountAdapter;
@@ -1,5 +0,0 @@
1
- export interface OrderDiscountConfiguration {
2
- fixedRate?: number;
3
- rate?: number;
4
- isNetPrice?: boolean;
5
- }
@@ -1,5 +0,0 @@
1
- import { BaseDiscountDirector } from '@unchainedshop/utils';
2
- import { OrderDiscountConfiguration } from './OrderDiscountConfiguration.js';
3
-
4
- export const OrderDiscountDirector =
5
- BaseDiscountDirector<OrderDiscountConfiguration>('OrderDiscountDirector');
@@ -1,61 +0,0 @@
1
- import { BasePricingAdapter, IPricingAdapter, BasePricingAdapterContext } from '@unchainedshop/utils';
2
- import { IOrderPricingSheet, OrderPricingCalculation, OrderPricingSheet } from './OrderPricingSheet.js';
3
- import { Order, OrderDelivery, OrderDiscount, OrderPayment, OrderPosition } from '../types.js';
4
- import { User } from '@unchainedshop/core-users';
5
-
6
- export interface OrderPricingAdapterContext extends BasePricingAdapterContext {
7
- currency?: string;
8
- discounts: Array<OrderDiscount>;
9
- order: Order;
10
- orderDelivery: OrderDelivery;
11
- orderPositions: Array<OrderPosition>;
12
- orderPayment: OrderPayment;
13
- user: User;
14
- }
15
-
16
- export interface OrderPricingContext {
17
- order: Order;
18
- orderDelivery: OrderDelivery;
19
- orderPositions: Array<OrderPosition>;
20
- orderPayment: OrderPayment;
21
- }
22
-
23
- export type IOrderPricingAdapter<DiscountConfiguration = unknown> = IPricingAdapter<
24
- OrderPricingAdapterContext,
25
- OrderPricingCalculation,
26
- IOrderPricingSheet,
27
- DiscountConfiguration
28
- >;
29
-
30
- const basePricingAdapter = BasePricingAdapter<OrderPricingAdapterContext, OrderPricingCalculation>();
31
-
32
- export const OrderPricingAdapter: IPricingAdapter<
33
- OrderPricingAdapterContext,
34
- OrderPricingCalculation,
35
- IOrderPricingSheet
36
- > = {
37
- ...basePricingAdapter,
38
-
39
- isActivatedFor: () => {
40
- return false;
41
- },
42
-
43
- actions: (params) => {
44
- const { context } = params;
45
- const { currency } = context;
46
- const baseActions = basePricingAdapter.actions(params);
47
- const resultSheet = OrderPricingSheet({ currency });
48
-
49
- return {
50
- ...baseActions,
51
- calculate: async () => {
52
- const resultRaw = resultSheet.getRawPricingSheet();
53
- resultRaw.forEach(({ amount, category }) =>
54
- basePricingAdapter.log(`Order Pricing Calculation -> ${category} ${amount}`),
55
- );
56
- return resultRaw;
57
- },
58
- resultSheet: () => resultSheet,
59
- };
60
- },
61
- };
@@ -1,72 +0,0 @@
1
- import { BasePricingDirector, PricingDiscount, IPricingDirector } from '@unchainedshop/utils';
2
- import { IOrderPricingSheet, OrderPricingCalculation, OrderPricingSheet } from './OrderPricingSheet.js';
3
- import { Order, OrderDelivery, OrderPayment, OrderPosition } from '../types.js';
4
- import {
5
- IOrderPricingAdapter,
6
- OrderPricingAdapterContext,
7
- OrderPricingContext,
8
- } from './OrderPricingAdapter.js';
9
-
10
- export type OrderPrice = { _id?: string; amount: number; currency: string };
11
-
12
- export type OrderPricingDiscount = PricingDiscount & {
13
- delivery?: OrderDelivery;
14
- item?: OrderPosition;
15
- order?: Order;
16
- payment?: OrderPayment;
17
- };
18
-
19
- export type IOrderPricingDirector<DiscountConfiguration = unknown> = IPricingDirector<
20
- OrderPricingContext,
21
- OrderPricingCalculation,
22
- OrderPricingAdapterContext,
23
- IOrderPricingSheet,
24
- IOrderPricingAdapter<DiscountConfiguration>
25
- >;
26
-
27
- const baseDirector = BasePricingDirector<
28
- OrderPricingContext,
29
- OrderPricingAdapterContext,
30
- OrderPricingCalculation,
31
- IOrderPricingAdapter
32
- >('OrderPricingDirector');
33
-
34
- export const OrderPricingDirector: IOrderPricingDirector = {
35
- ...baseDirector,
36
-
37
- buildPricingContext: async (context, unchainedAPI) => {
38
- const { modules } = unchainedAPI;
39
- const { order } = context;
40
-
41
- const user = await modules.users.findUserById(order.userId);
42
- const discounts = await modules.orders.discounts.findOrderDiscounts({
43
- orderId: order._id,
44
- });
45
-
46
- return {
47
- ...unchainedAPI,
48
- country: order.countryCode,
49
- currency: order.currency,
50
- discounts,
51
- order,
52
- orderDelivery: context.orderDelivery,
53
- orderPayment: context.orderPayment,
54
- orderPositions: context.orderPositions,
55
- user,
56
- };
57
- },
58
-
59
- async actions(pricingContext, unchainedAPI) {
60
- const actions = await baseDirector.actions(pricingContext, unchainedAPI, this.buildPricingContext);
61
- return {
62
- ...actions,
63
- calculationSheet() {
64
- const context = actions.getContext();
65
- return OrderPricingSheet({
66
- calculation: actions.getCalculation(),
67
- currency: context.currency,
68
- });
69
- },
70
- };
71
- },
72
- };
@@ -1,146 +0,0 @@
1
- import {
2
- BasePricingSheet,
3
- IPricingSheet,
4
- IBasePricingSheet,
5
- PricingCalculation,
6
- PricingSheetParams,
7
- } from '@unchainedshop/utils';
8
-
9
- export interface OrderPricingCalculation extends PricingCalculation {
10
- discountId?: string;
11
- }
12
-
13
- export enum OrderPricingRowCategory {
14
- Items = 'ITEMS',
15
- Discounts = 'DISCOUNTS',
16
- Taxes = 'TAXES',
17
- Delivery = 'DELIVERY',
18
- Payment = 'PAYMENT',
19
- }
20
-
21
- export interface IOrderPricingSheet extends IPricingSheet<OrderPricingCalculation> {
22
- addDelivery: (params: { amount: number; taxAmount: number; meta?: any }) => void;
23
- addDiscount: (params: { amount: number; taxAmount: number; discountId: string; meta?: any }) => void;
24
- addItems: (params: { amount: number; taxAmount: number; meta?: any }) => void;
25
- addPayment: (params: { amount: number; taxAmount: number; meta?: any }) => void;
26
- }
27
-
28
- export const OrderPricingSheet = (
29
- params: PricingSheetParams<OrderPricingCalculation>,
30
- ): IOrderPricingSheet => {
31
- const basePricingSheet: IBasePricingSheet<OrderPricingCalculation> = BasePricingSheet(params);
32
-
33
- const addTaxIfAvailabile = (category: string, taxAmount?: number, meta?: any, discountId?: string) => {
34
- if (taxAmount) {
35
- basePricingSheet.calculation.push({
36
- category: OrderPricingRowCategory.Taxes,
37
- amount: taxAmount,
38
- baseCategory: category,
39
- discountId,
40
- meta,
41
- });
42
- }
43
- };
44
-
45
- const pricingSheet: IOrderPricingSheet = {
46
- ...basePricingSheet,
47
-
48
- addItems({ amount, taxAmount, meta }) {
49
- basePricingSheet.calculation.push({
50
- category: OrderPricingRowCategory.Items,
51
- amount,
52
- meta,
53
- });
54
-
55
- addTaxIfAvailabile(OrderPricingRowCategory.Items, taxAmount, meta);
56
- },
57
-
58
- addDiscount({ amount, taxAmount, discountId, meta }) {
59
- basePricingSheet.calculation.push({
60
- category: OrderPricingRowCategory.Discounts,
61
- amount,
62
- discountId,
63
- meta,
64
- });
65
-
66
- addTaxIfAvailabile(OrderPricingRowCategory.Discounts, taxAmount, meta, discountId);
67
- },
68
-
69
- addDelivery({ amount, taxAmount, meta }) {
70
- basePricingSheet.calculation.push({
71
- category: OrderPricingRowCategory.Delivery,
72
- amount,
73
- meta,
74
- });
75
-
76
- addTaxIfAvailabile(OrderPricingRowCategory.Delivery, taxAmount, meta);
77
- },
78
-
79
- addPayment({ amount, taxAmount, meta }) {
80
- basePricingSheet.calculation.push({
81
- category: OrderPricingRowCategory.Payment,
82
- amount,
83
- meta,
84
- });
85
-
86
- addTaxIfAvailabile(OrderPricingRowCategory.Payment, taxAmount, meta);
87
- },
88
-
89
- taxSum(filter) {
90
- return basePricingSheet.sum({
91
- category: OrderPricingRowCategory.Taxes,
92
- ...(filter || {}),
93
- });
94
- },
95
-
96
- gross() {
97
- // tax is included 2 times, this is only true for Order Pricing!
98
- return basePricingSheet.sum() - this.taxSum();
99
- },
100
-
101
- net() {
102
- return basePricingSheet.sum() - this.taxSum() - this.taxSum();
103
- },
104
-
105
- total({ category, useNetPrice, discountId } = { useNetPrice: false }) {
106
- const taxAmount = this.taxSum({ baseCategory: category, discountId });
107
- const amount = this.sum({ category, discountId }) - taxAmount;
108
-
109
- // Sum does not contain taxes when filtering by category, it's net in that case and gross if there is no category
110
- const netAmount = !category ? amount - taxAmount : amount;
111
-
112
- return {
113
- amount: Math.round(useNetPrice ? netAmount : netAmount + taxAmount),
114
- currency: this.currency,
115
- };
116
- },
117
-
118
- discountPrices(explicitDiscountId) {
119
- const discountIds = pricingSheet
120
- .filterBy({
121
- category: OrderPricingRowCategory.Discounts,
122
- discountId: explicitDiscountId,
123
- })
124
- .map(({ discountId }) => discountId);
125
-
126
- return [...new Set(discountIds)]
127
- .map((discountId) => {
128
- const amount = basePricingSheet.sum({
129
- category: OrderPricingRowCategory.Discounts,
130
- discountId,
131
- });
132
- if (!amount) {
133
- return null;
134
- }
135
- return {
136
- discountId,
137
- amount: Math.round(amount),
138
- currency: basePricingSheet.currency,
139
- };
140
- })
141
- .filter(Boolean);
142
- },
143
- };
144
-
145
- return pricingSheet;
146
- };