@darkpos/pricing 1.0.12 → 1.0.14

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.
@@ -0,0 +1,14 @@
1
+ module.exports = ({ utils }) => {
2
+ const { math } = utils;
3
+
4
+ return function getCreditModifiersTotal(modifiers) {
5
+ if (!Array.isArray(modifiers)) return 0;
6
+
7
+ const creditModifiers = modifiers.filter(mod => mod.type === 'credit');
8
+
9
+ return creditModifiers.reduce(
10
+ (acc, modifier) => math.add(acc, modifier.properties.maxAmount || 0),
11
+ 0
12
+ );
13
+ };
14
+ };
@@ -0,0 +1,16 @@
1
+ module.exports = ({ utils }) => {
2
+ const { math } = utils;
3
+
4
+ return function getFixedModifiersTotal(modifiers) {
5
+ if (!Array.isArray(modifiers)) return 0;
6
+
7
+ const fixedModifiers = modifiers.filter(
8
+ mod => mod.compute.type === 'fixed'
9
+ );
10
+
11
+ return fixedModifiers.reduce(
12
+ (acc, modifier) => math.add(acc, modifier.compute.amount || 0),
13
+ 0
14
+ );
15
+ };
16
+ };
@@ -1,5 +1,61 @@
1
1
  module.exports = ({ utils }) => {
2
2
  const { math, helpers } = utils;
3
+
4
+ const divideModifierAmount = ({
5
+ totalOriginOrder,
6
+ modifierAmount,
7
+ totalSplitedOrder,
8
+ }) =>
9
+ totalOriginOrder
10
+ ? math.div(
11
+ math.mul(modifierAmount, totalSplitedOrder || 0),
12
+ totalOriginOrder
13
+ )
14
+ : 0;
15
+
16
+ const splitCreditModifier = ({
17
+ modifier,
18
+ totalOriginOrder,
19
+ totalSplitedOrder,
20
+ }) => {
21
+ const maxAmount = divideModifierAmount({
22
+ modifierAmount: modifier.properties.maxAmount,
23
+ totalOriginOrder,
24
+ totalSplitedOrder,
25
+ });
26
+ return {
27
+ ...modifier,
28
+ compute: {
29
+ ...modifier.compute,
30
+ _id: helpers.getObjectID(),
31
+ },
32
+ properties: {
33
+ ...modifier.properties,
34
+ maxAmount,
35
+ },
36
+ };
37
+ };
38
+
39
+ const splitFixedModifier = ({
40
+ modifier,
41
+ totalOriginOrder,
42
+ totalSplitedOrder,
43
+ }) => {
44
+ const amount = divideModifierAmount({
45
+ modifierAmount: modifier.compute.amount,
46
+ totalOriginOrder,
47
+ totalSplitedOrder,
48
+ });
49
+ return {
50
+ ...modifier,
51
+ compute: {
52
+ ...modifier.compute,
53
+ _id: helpers.getObjectID(),
54
+ amount,
55
+ },
56
+ };
57
+ };
58
+
3
59
  return function getSplittedModifiers(
4
60
  modifiers,
5
61
  totalOriginOrder,
@@ -7,22 +63,25 @@ module.exports = ({ utils }) => {
7
63
  ) {
8
64
  return modifiers.map(each => {
9
65
  const modifier = { ...each };
10
- const { compute = {} } = modifier;
11
- if (compute.type === 'fixed' && compute.amount) {
12
- const amount = totalOriginOrder
13
- ? math.div(
14
- math.mul(compute.amount, totalSplitedOrder || 0),
15
- totalOriginOrder
16
- )
17
- : 0;
18
- return {
19
- ...modifier,
20
- _id: helpers.getObjectID(),
21
- compute: {
22
- ...compute,
23
- amount,
24
- },
25
- };
66
+
67
+ if (modifier.type === 'credit') {
68
+ return splitCreditModifier({
69
+ modifier,
70
+ totalOriginOrder,
71
+ totalSplitedOrder,
72
+ });
73
+ }
74
+
75
+ if (
76
+ modifier.compute &&
77
+ modifier.compute.type === 'fixed' &&
78
+ modifier.compute.amount
79
+ ) {
80
+ return splitFixedModifier({
81
+ modifier,
82
+ totalOriginOrder,
83
+ totalSplitedOrder,
84
+ });
26
85
  }
27
86
  return modifier;
28
87
  });
@@ -0,0 +1,4 @@
1
+ module.exports = () =>
2
+ function hasFixedModifier(modifiers) {
3
+ return modifiers.some(mod => mod.type === 'credit');
4
+ };
@@ -0,0 +1,4 @@
1
+ module.exports = () =>
2
+ function hasFixedModifier(modifiers) {
3
+ return modifiers.some(mod => mod.compute && mod.compute.type === 'fixed');
4
+ };
@@ -61,6 +61,8 @@ const getSplittedModifiers = require('./getSplittedModifiers');
61
61
  const getSuggestion = require('./getSuggestion');
62
62
  const getUnhiddenModifiers = require('./getUnhiddenModifiers');
63
63
  const getUsingCount = require('./getUsingCount');
64
+ const getFixedModifiersTotal = require('./getFixedModifiersTotal');
65
+ const getCreditModifiersTotal = require('./getCreditModifiersTotal');
64
66
  const hasAddModifiers = require('./hasAddModifiers');
65
67
  const hasAllTag = require('./hasAllTag');
66
68
  const hasAttribute = require('./hasAttribute');
@@ -70,6 +72,8 @@ const hasDisplayPrompt = require('./hasDisplayPrompt');
70
72
  const hasMatchTags = require('./hasMatchTags');
71
73
  const hasModifier = require('./hasModifier');
72
74
  const hasRelatedItems = require('./hasRelatedItems');
75
+ const hasFixedModifier = require('./hasFixedModifier');
76
+ const hasCreditModifier = require('./hasCreditModifier');
73
77
  const includePiecesInQuantity = require('./includePiecesInQuantity');
74
78
  const includesInGroup = require('./includesInGroup');
75
79
  const isTrackUsageSubscription = require('./isTrackUsageSubscription');
@@ -184,6 +188,8 @@ const modifierActions = (deps = {}) => {
184
188
  getSuggestion: getSuggestion(innerDeps),
185
189
  getUnhiddenModifiers: getUnhiddenModifiers(innerDeps),
186
190
  getUsingCount: getUsingCount(innerDeps),
191
+ getFixedModifiersTotal: getFixedModifiersTotal(innerDeps),
192
+ getCreditModifiersTotal: getCreditModifiersTotal(innerDeps),
187
193
  hasAddModifiers: hasAddModifiers(innerDeps),
188
194
  hasAllTag: hasAllTag(innerDeps),
189
195
  hasNoTags: hasNoTags(innerDeps),
@@ -194,6 +200,8 @@ const modifierActions = (deps = {}) => {
194
200
  hasRelatedItems: hasRelatedItems(innerDeps),
195
201
  hasAttribute: hasAttribute(innerDeps),
196
202
  hasAttributes: hasAttributes(innerDeps),
203
+ hasFixedModifier: hasFixedModifier(innerDeps),
204
+ hasCreditModifier: hasCreditModifier(innerDeps),
197
205
  includePiecesInQuantity: includePiecesInQuantity(innerDeps),
198
206
  includesInGroup: includesInGroup(innerDeps),
199
207
  isTrackUsageSubscription: isTrackUsageSubscription(innerDeps),
@@ -1,12 +1,4 @@
1
- module.exports = ({
2
- actions,
3
- itemActions,
4
- modifierActions,
5
- utils,
6
- settings,
7
- _,
8
- }) => {
9
- const { math } = utils;
1
+ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
10
2
  const orderSettings = _.get(settings, 'order');
11
3
 
12
4
  const getQuantity = ({ order, item, pendingItemIndex = -1 }) => {
@@ -55,46 +47,6 @@ module.exports = ({
55
47
  };
56
48
  };
57
49
 
58
- const getSubscription = ({ order, item, combined, cache }) => {
59
- const [hasSubscription, remaining, used] = actions.hasRemainingSubscription(
60
- {
61
- order,
62
- item,
63
- combined,
64
- }
65
- );
66
- let orderItem = item;
67
-
68
- if (!hasSubscription) return orderItem;
69
-
70
- const subscriptionModifiers = modifierActions.getSubscriptionModifiers(
71
- orderItem.modifiers
72
- );
73
- if (!_.isEmpty(subscriptionModifiers)) {
74
- orderItem = itemActions.removeModifiers({
75
- item: orderItem,
76
- modifiers: subscriptionModifiers,
77
- cache,
78
- customer: order.customer,
79
- });
80
- }
81
-
82
- const { quantity, price } = orderItem;
83
- let numberOfUses = quantity;
84
- if (remaining) {
85
- const left = remaining - (used || 0);
86
- if (quantity > left) numberOfUses = left;
87
- }
88
-
89
- const modifier = modifierActions.createSubscriptionModifier({
90
- amount: math.mul(numberOfUses, price),
91
- properties: { subscription: { numberOfUses } },
92
- });
93
- orderItem.modifiers.push(modifier);
94
-
95
- return orderItem;
96
- };
97
-
98
50
  const addOrderItem = ({ itemIndex, order, item }) => {
99
51
  if (itemIndex > -1) {
100
52
  const updatedOrder = actions.updateItem({
@@ -241,7 +193,7 @@ module.exports = ({
241
193
  if (!_.isEmpty(requiredModifiers))
242
194
  modifiersToAdd.push(...requiredModifiers);
243
195
 
244
- orderItem = getSubscription({
196
+ orderItem = actions.getOrderItemSubscriptions({
245
197
  order,
246
198
  item: orderItem,
247
199
  combined,
@@ -0,0 +1,34 @@
1
+ module.exports = ({ utils, actions, modifierActions }) => {
2
+ const { math } = utils;
3
+
4
+ return function adjustCreditModifiersDifference({ subOrders, difference }) {
5
+ const selectedSubOrderIndex = subOrders.findIndex(
6
+ subOrder =>
7
+ modifierActions.hasCreditModifier(subOrder.modifiers) &&
8
+ actions.isOpen(subOrder) &&
9
+ subOrder.total > difference
10
+ );
11
+
12
+ if (selectedSubOrderIndex !== -1) {
13
+ const subOrderToUpdate = {
14
+ ...subOrders[selectedSubOrderIndex],
15
+ };
16
+ const modifierToUpdateIdx = subOrderToUpdate.modifiers.findIndex(
17
+ mod => mod.type === 'credit'
18
+ );
19
+ const prevAmount =
20
+ subOrderToUpdate.modifiers[modifierToUpdateIdx].properties.maxAmount;
21
+
22
+ subOrderToUpdate.modifiers[modifierToUpdateIdx].properties.maxAmount =
23
+ math.add(prevAmount, difference);
24
+
25
+ subOrders.splice(
26
+ selectedSubOrderIndex,
27
+ 1,
28
+ actions.calculate(subOrderToUpdate)
29
+ );
30
+ }
31
+
32
+ return subOrders;
33
+ };
34
+ };
@@ -0,0 +1,36 @@
1
+ module.exports = ({ utils, actions, modifierActions }) => {
2
+ const { math } = utils;
3
+
4
+ return function adjustFixedModifiersDifference({ subOrders, difference }) {
5
+ const selectedSubOrderIndex = subOrders.findIndex(
6
+ subOrder =>
7
+ modifierActions.hasFixedModifier(subOrder.modifiers) &&
8
+ actions.isOpen(subOrder) &&
9
+ subOrder.total > difference
10
+ );
11
+
12
+ if (selectedSubOrderIndex !== -1) {
13
+ const subOrderToUpdate = {
14
+ ...subOrders[selectedSubOrderIndex],
15
+ };
16
+
17
+ const modifierToUpdateIdx = subOrderToUpdate.modifiers.findIndex(
18
+ mod => mod.compute.type === 'fixed'
19
+ );
20
+ const prevAmount =
21
+ subOrderToUpdate.modifiers[modifierToUpdateIdx].compute.amount;
22
+
23
+ subOrderToUpdate.modifiers[modifierToUpdateIdx].compute.amount = math.add(
24
+ prevAmount,
25
+ difference
26
+ );
27
+ subOrders.splice(
28
+ selectedSubOrderIndex,
29
+ 1,
30
+ actions.calculate(subOrderToUpdate)
31
+ );
32
+ }
33
+
34
+ return subOrders;
35
+ };
36
+ };
@@ -0,0 +1,15 @@
1
+ module.exports = ({ utils, modifierActions }) => {
2
+ const { math } = utils;
3
+
4
+ return function getCreditModifiersTotal(orders) {
5
+ if (!Array.isArray(orders)) return 0;
6
+ return orders.reduce(
7
+ (acc, subOrder) =>
8
+ math.add(
9
+ acc,
10
+ modifierActions.getCreditModifiersTotal(subOrder.modifiers)
11
+ ),
12
+ 0
13
+ );
14
+ };
15
+ };
@@ -0,0 +1,15 @@
1
+ module.exports = ({ utils, modifierActions }) => {
2
+ const { math } = utils;
3
+
4
+ return function getFixedModifiersTotal(orders) {
5
+ if (!Array.isArray(orders)) return 0;
6
+ return orders.reduce(
7
+ (acc, subOrder) =>
8
+ math.add(
9
+ acc,
10
+ modifierActions.getFixedModifiersTotal(subOrder.modifiers)
11
+ ),
12
+ 0
13
+ );
14
+ };
15
+ };
@@ -0,0 +1,43 @@
1
+ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
2
+ const { math } = utils;
3
+
4
+ return ({ order, item, combined, cache }) => {
5
+ const [hasSubscription, remaining, used] = actions.hasRemainingSubscription(
6
+ {
7
+ order,
8
+ item,
9
+ combined,
10
+ }
11
+ );
12
+ let orderItem = item;
13
+
14
+ if (!hasSubscription) return orderItem;
15
+
16
+ const subscriptionModifiers = modifierActions.getSubscriptionModifiers(
17
+ orderItem.modifiers
18
+ );
19
+ if (!_.isEmpty(subscriptionModifiers)) {
20
+ orderItem = itemActions.removeModifiers({
21
+ item: orderItem,
22
+ modifiers: subscriptionModifiers,
23
+ cache,
24
+ customer: order.customer,
25
+ });
26
+ }
27
+
28
+ const { quantity, price } = orderItem;
29
+ let numberOfUses = quantity;
30
+ if (remaining) {
31
+ const left = remaining - (used || 0);
32
+ if (quantity > left) numberOfUses = left;
33
+ }
34
+
35
+ const modifier = modifierActions.createSubscriptionModifier({
36
+ amount: math.mul(numberOfUses, price),
37
+ properties: { subscription: { numberOfUses } },
38
+ });
39
+ orderItem.modifiers.push(modifier);
40
+
41
+ return orderItem;
42
+ };
43
+ };
@@ -8,6 +8,7 @@ const getSelectedItem = require('./getSelectedItem');
8
8
  const updateItem = require('./updateItem');
9
9
  const removeItemByIndex = require('./removeItemByIndex');
10
10
  const addItem = require('./addItem');
11
+ const getOrderItemSubscriptions = require('./getOrderItemSubscriptions');
11
12
  const duplicateItem = require('./duplicateItem');
12
13
  const getCustomer = require('./getCustomer');
13
14
  const setCustomer = require('./setCustomer');
@@ -71,6 +72,14 @@ const getScheduleByCustomer = require('./getScheduleByCustomer');
71
72
  const pickEndDate = require('./pickEndDate');
72
73
  const getAppliedCredit = require('./getAppliedCredit');
73
74
  const addCreditModifier = require('./addCreditModifier');
75
+ const adjustCreditModifiersDifference = require('./adjustCreditModifiersDifference');
76
+ const adjustFixedModifiersDifference = require('./adjustFixedModifiersDifference');
77
+ const getCreditModifiersTotal = require('./getCreditModifiersTotal');
78
+ const getFixedModifiersTotal = require('./getFixedModifiersTotal');
79
+ const splitAndCalculate = require('./splitAndCalculate');
80
+ const spreadModifiers = require('./spreadModifiers');
81
+ const validateCreditModifiersTotal = require('./validateCreditModifiersTotal');
82
+ const validateFixedModifiersTotal = require('./validateFixedModifiersTotal');
74
83
 
75
84
  const orderActions = (deps = {}) => {
76
85
  const actions = {};
@@ -90,6 +99,7 @@ const orderActions = (deps = {}) => {
90
99
  updateItem: updateItem(innerDeps),
91
100
  removeItemByIndex: removeItemByIndex(innerDeps),
92
101
  addItem: addItem(innerDeps),
102
+ getOrderItemSubscriptions: getOrderItemSubscriptions(innerDeps),
93
103
  duplicateItem: duplicateItem(innerDeps),
94
104
  getCustomer: getCustomer(innerDeps),
95
105
  setCustomer: setCustomer(innerDeps),
@@ -154,6 +164,14 @@ const orderActions = (deps = {}) => {
154
164
  pickEndDate: pickEndDate(innerDeps),
155
165
  getAppliedCredit: getAppliedCredit(innerDeps),
156
166
  addCreditModifier: addCreditModifier(innerDeps),
167
+ adjustCreditModifiersDifference: adjustCreditModifiersDifference(innerDeps),
168
+ adjustFixedModifiersDifference: adjustFixedModifiersDifference(innerDeps),
169
+ getCreditModifiersTotal: getCreditModifiersTotal(innerDeps),
170
+ getFixedModifiersTotal: getFixedModifiersTotal(innerDeps),
171
+ splitAndCalculate: splitAndCalculate(innerDeps),
172
+ spreadModifiers: spreadModifiers(innerDeps),
173
+ validateCreditModifiersTotal: validateCreditModifiersTotal(innerDeps),
174
+ validateFixedModifiersTotal: validateFixedModifiersTotal(innerDeps),
157
175
  });
158
176
 
159
177
  Object.keys(freezedActions).forEach(actionName => {
@@ -0,0 +1,16 @@
1
+ module.exports = ({ actions, modifierActions }) =>
2
+ function splitAndCalculate({ parentOrder, subOrders }) {
3
+ if (!parentOrder || !Array.isArray(subOrders)) return [];
4
+ return subOrders.map(each => {
5
+ const { subTotal } = actions.calculate(each);
6
+ const newOrder = {
7
+ ...each,
8
+ modifiers: modifierActions.getSplittedModifiers(
9
+ parentOrder.modifiers,
10
+ parentOrder.subTotal,
11
+ subTotal
12
+ ),
13
+ };
14
+ return actions.calculate(newOrder);
15
+ });
16
+ };
@@ -1,13 +1,13 @@
1
1
  module.exports = ({
2
2
  utils,
3
3
  _,
4
+ actions,
4
5
  itemActions,
5
6
  modifierActions,
6
- actions,
7
7
  settings,
8
8
  }) => {
9
9
  const orderSettings = _.get(settings, 'order');
10
- const { date, math, helpers } = utils;
10
+ const { date, helpers } = utils;
11
11
  const noteDefaults = {
12
12
  message: '',
13
13
  attributes: [],
@@ -17,25 +17,6 @@ module.exports = ({
17
17
  __typename: 'Note',
18
18
  };
19
19
 
20
- const getSplitModifiers = (modifiers, totalOriginOrder, totalSplitedOrder) =>
21
- modifiers.map(each => {
22
- const modifier = { ...each };
23
- if (modifier.type === 'fixed' && modifier.amount) {
24
- const amount = totalOriginOrder
25
- ? math.div(
26
- math.mul(modifier.amount, totalSplitedOrder || 0),
27
- totalOriginOrder
28
- )
29
- : 0;
30
- return {
31
- ...modifier,
32
- _id: helpers.getObjectID(),
33
- amount,
34
- };
35
- }
36
- return modifier;
37
- });
38
-
39
20
  const joinItemQuantity = orders =>
40
21
  orders.map(order => {
41
22
  const items = order.items.reduce((arr, item) => {
@@ -67,29 +48,29 @@ module.exports = ({
67
48
 
68
49
  const getOrder =
69
50
  ({ order, name }) =>
70
- (items, index) => {
71
- let displayId = '';
72
- if (orderSettings.allowSuborder)
73
- displayId = `${order.displayId}-${index}`;
74
- else if (index === 1) displayId = order.displayId;
75
- return {
76
- ...order,
77
- _id: helpers.getObjectID(),
78
- displayId,
79
- discount: 0,
80
- tax: 0,
81
- parentId: orderSettings.allowSuborder ? order._id : null,
82
- items,
83
- modifiers: [],
84
- notes: [
85
- ...(order.notes || []),
86
- {
87
- ...noteDefaults,
88
- message: `Split from ${order.displayId}, for department ${name}`,
89
- },
90
- ],
51
+ (items, index) => {
52
+ let displayId = '';
53
+ if (orderSettings.allowSuborder)
54
+ displayId = `${order.displayId}-${index}`;
55
+ else if (index === 1) displayId = order.displayId;
56
+ return {
57
+ ...order,
58
+ _id: helpers.getObjectID(),
59
+ displayId,
60
+ discount: 0,
61
+ tax: 0,
62
+ parentId: orderSettings.allowSuborder ? order._id : null,
63
+ items,
64
+ modifiers: [],
65
+ notes: [
66
+ ...(order.notes || []),
67
+ {
68
+ ...noteDefaults,
69
+ message: `Split from ${order.displayId}, for department ${name}`,
70
+ },
71
+ ],
72
+ };
91
73
  };
92
- };
93
74
 
94
75
  const getDepartmentName = item => {
95
76
  const deps = itemActions.getDepartmentModifiers(item);
@@ -127,7 +108,7 @@ module.exports = ({
127
108
  newOrder =>
128
109
  newOrder.items &&
129
110
  itemActions.getItemsTotalPieces(newOrder.items) + totalPieces <=
130
- maxItems &&
111
+ maxItems &&
131
112
  departmentName === getDepartmentName(newOrder.items[0])
132
113
  );
133
114
  if (index > -1) splitOrders[index].items.push(item);
@@ -139,13 +120,11 @@ module.exports = ({
139
120
 
140
121
  splitOrders = joinItemQuantity(splitOrders);
141
122
 
142
- return splitOrders.map(each => {
143
- const { subTotal } = actions.calculate(each);
144
- const newOrder = {
145
- ...each,
146
- modifiers: getSplitModifiers(order.modifiers, order.subTotal, subTotal),
147
- };
148
- return actions.calculate(newOrder);
123
+ splitOrders = actions.spreadModifiers({
124
+ parentOrder: order,
125
+ subOrders: splitOrders,
149
126
  });
127
+
128
+ return splitOrders;
150
129
  };
151
130
  };
@@ -0,0 +1,21 @@
1
+ module.exports = ({ actions }) =>
2
+ function spreadModifiers({ parentOrder, subOrders }) {
3
+ let subOrdersWithCalculatedModifiers = actions.splitAndCalculate({
4
+ parentOrder,
5
+ subOrders,
6
+ });
7
+
8
+ // Validation
9
+
10
+ subOrdersWithCalculatedModifiers = actions.validateFixedModifiersTotal({
11
+ parentOrder,
12
+ subOrders: [...subOrdersWithCalculatedModifiers],
13
+ });
14
+
15
+ subOrdersWithCalculatedModifiers = actions.validateCreditModifiersTotal({
16
+ parentOrder,
17
+ subOrders: [...subOrdersWithCalculatedModifiers],
18
+ });
19
+
20
+ return subOrdersWithCalculatedModifiers;
21
+ };
@@ -0,0 +1,23 @@
1
+ module.exports = ({ utils, actions, modifierActions }) => {
2
+ const { math } = utils;
3
+
4
+ return function validateCreditModifiersTotal({ parentOrder, subOrders }) {
5
+ const creditModifiersTotalAmount = modifierActions.getCreditModifiersTotal(
6
+ parentOrder.modifiers
7
+ );
8
+ const subOrdersCreditModifiersTotalAmount =
9
+ actions.getCreditModifiersTotal(subOrders);
10
+
11
+ if (creditModifiersTotalAmount !== subOrdersCreditModifiersTotalAmount) {
12
+ return actions.adjustCreditModifiersDifference({
13
+ subOrders: [...subOrders],
14
+ difference: math.sub(
15
+ creditModifiersTotalAmount,
16
+ subOrdersCreditModifiersTotalAmount
17
+ ),
18
+ });
19
+ }
20
+
21
+ return subOrders;
22
+ };
23
+ };
@@ -0,0 +1,23 @@
1
+ module.exports = ({ utils, actions, modifierActions }) => {
2
+ const { math } = utils;
3
+
4
+ return function validateFixedModifiersTotal({ parentOrder, subOrders }) {
5
+ const fixedModifiersTotalAmount = modifierActions.getFixedModifiersTotal(
6
+ parentOrder.modifiers
7
+ );
8
+ const subOrdersFixedModifiersTotalAmount =
9
+ actions.getFixedModifiersTotal(subOrders);
10
+
11
+ if (fixedModifiersTotalAmount !== subOrdersFixedModifiersTotalAmount) {
12
+ return actions.adjustFixedModifiersDifference({
13
+ subOrders: [...subOrders],
14
+ difference: math.sub(
15
+ fixedModifiersTotalAmount,
16
+ subOrdersFixedModifiersTotalAmount
17
+ ),
18
+ });
19
+ }
20
+
21
+ return subOrders;
22
+ };
23
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darkpos/pricing",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "Pricing calculator",
5
5
  "author": "Dark POS",
6
6
  "license": "ISC",
@@ -35,5 +35,5 @@
35
35
  "supertest": "^6.2.3",
36
36
  "supervisor": "^0.12.0"
37
37
  },
38
- "gitHead": "c4950f95d5e9b9a8d9af97699a9f7f2acd1d35ca"
38
+ "gitHead": "67ed395c1d86589b37c5adcb74606a8db7423536"
39
39
  }