@darkpos/pricing 1.0.93 → 1.0.96

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 (39) hide show
  1. package/__TEST__/item.test.js +47 -60
  2. package/__TEST__/manualTest.test.js +1 -3
  3. package/__TEST__/modifier/addItemModifier.test.js +181 -60
  4. package/__TEST__/modifier/getInvalidRequiredModifiers.test.js +0 -1
  5. package/__TEST__/modifier/overrideModifiers.test.js +196 -0
  6. package/__TEST__/modifier.test.js +1 -4
  7. package/__TEST__/order/order-payment-modifier.test.js +3 -11
  8. package/__TEST__/order/order.test.js +0 -15
  9. package/lib/item/calculate.js +66 -18
  10. package/lib/item/getBasePrice.js +1 -3
  11. package/lib/item/getItemPrice.js +1 -12
  12. package/lib/item/getPriceWithoutModifiers.js +7 -5
  13. package/lib/item/index.js +6 -0
  14. package/lib/item/isOverwrittenPrice.js +4 -0
  15. package/lib/item/isOverwrittenQuantity.js +4 -0
  16. package/lib/item/overrideNotes.js +24 -0
  17. package/lib/item/removeModifier.js +1 -22
  18. package/lib/item/removeModifiers.js +1 -2
  19. package/lib/modifier/areConditionsMet.js +1 -1
  20. package/lib/modifier/calculate.js +20 -2
  21. package/lib/modifier/createDescription.js +6 -3
  22. package/lib/modifier/duplicate.js +3 -0
  23. package/lib/modifier/getOverrideAmount.js +7 -0
  24. package/lib/modifier/getOverrideNote.js +5 -0
  25. package/lib/modifier/getServiceOverride.js +5 -0
  26. package/lib/modifier/index.js +18 -12
  27. package/lib/modifier/{isManual.js → isManualOverride.js} +1 -1
  28. package/lib/modifier/{isMultiplier.js → isMultiplierOverride.js} +1 -1
  29. package/lib/modifier/isNotesOverride.js +7 -0
  30. package/lib/modifier/isOverrideSubtotal.js +9 -0
  31. package/lib/modifier/{isService.js → isServiceOverride.js} +1 -1
  32. package/lib/modifier/isTotalOverride.js +7 -0
  33. package/lib/order/addItem.js +10 -12
  34. package/lib/order/addItemModifier.js +9 -64
  35. package/lib/order/removeItemModifier.js +2 -33
  36. package/package.json +4 -2
  37. package/lib/modifier/createAmountOverrideModifier.js +0 -18
  38. package/lib/modifier/getService.js +0 -5
  39. package/lib/modifier/mutateModifier.js +0 -23
@@ -686,7 +686,7 @@ describe('Order actions', () => {
686
686
  modifiers: [
687
687
  {
688
688
  _id: '671818d40e5dd150d9830904',
689
- attributes: ['override'],
689
+ attributes: [],
690
690
  modifierId: '62cdbfd01ee1b4001932818f',
691
691
  _parentId: null,
692
692
  locked: null,
@@ -705,15 +705,7 @@ describe('Order actions', () => {
705
705
  recommended: false,
706
706
  default: false,
707
707
  code: '',
708
- properties: {
709
- override: {
710
- field: 'price',
711
- type: 'manual',
712
- multiplier: true,
713
- },
714
- group: null,
715
- sort: null,
716
- },
708
+ properties: {},
717
709
  _computed: {
718
710
  amount: 0,
719
711
  description: 'Alice Blue',
@@ -1093,7 +1085,7 @@ describe('Order actions', () => {
1093
1085
  expect(resultedOrder.items[0].modifiers[0]._computed).toEqual(
1094
1086
  expect.objectContaining({
1095
1087
  amount: 0,
1096
- description: 'Alice Blue (0 Unit @ $13.50/Unit)',
1088
+ description: 'Alice Blue',
1097
1089
  })
1098
1090
  );
1099
1091
 
@@ -3300,9 +3300,6 @@ describe('Order actions', () => {
3300
3300
  totalPaid: 0,
3301
3301
  notes: [],
3302
3302
  subTotals: {},
3303
- properties: {
3304
- basePrice: 0,
3305
- },
3306
3303
  };
3307
3304
 
3308
3305
  const item2 = {
@@ -3322,9 +3319,6 @@ describe('Order actions', () => {
3322
3319
  total: 12,
3323
3320
  totalPaid: 0,
3324
3321
  subTotals: {},
3325
- properties: {
3326
- basePrice: 12,
3327
- },
3328
3322
  };
3329
3323
 
3330
3324
  const order = {
@@ -3474,9 +3468,6 @@ describe('Order actions', () => {
3474
3468
  totalPaid: 0,
3475
3469
  notes: [],
3476
3470
  subTotals: {},
3477
- properties: {
3478
- basePrice: 0,
3479
- },
3480
3471
  };
3481
3472
 
3482
3473
  const item2 = {
@@ -3496,9 +3487,6 @@ describe('Order actions', () => {
3496
3487
  total: 12,
3497
3488
  totalPaid: 0,
3498
3489
  subTotals: {},
3499
- properties: {
3500
- basePrice: 12,
3501
- },
3502
3490
  };
3503
3491
 
3504
3492
  const order = {
@@ -3648,9 +3636,6 @@ describe('Order actions', () => {
3648
3636
  totalPaid: 0,
3649
3637
  notes: [],
3650
3638
  subTotals: {},
3651
- properties: {
3652
- basePrice: 0,
3653
- },
3654
3639
  _id: 1,
3655
3640
  };
3656
3641
 
@@ -28,8 +28,18 @@ module.exports = ({ _, utils, actions, modifierActions }) => {
28
28
  _actual: 0,
29
29
  };
30
30
 
31
+ if (actions.isOverwrittenPrice(item)) {
32
+ item.price = item.properties.overwrittenPrice;
33
+ item.properties.overwrittenPrice = undefined;
34
+ }
35
+
36
+ if (actions.isOverwrittenQuantity(item)) {
37
+ item.quantity = item.properties.overwrittenQuantity;
38
+ item.properties.overwrittenQuantity = undefined;
39
+ }
40
+
31
41
  const price = parseFloat(actions.getPriceWithoutModifiers({ item }));
32
- const quantity = parseInt(item.quantity, 10);
42
+ let quantity = parseInt(item.quantity, 10);
33
43
  subTotals._simple = math.mul(price, quantity);
34
44
 
35
45
  const modifiers = [];
@@ -51,15 +61,11 @@ module.exports = ({ _, utils, actions, modifierActions }) => {
51
61
  })
52
62
  );
53
63
 
54
- const amountOverride = validatedModifiers.find(each =>
55
- modifierActions.isAmountOverride(each)
56
- );
57
-
58
64
  const modifiersToCompute = validatedModifiers.filter(
59
65
  each =>
60
- !modifierActions.isOverride(each) &&
61
- each.compute &&
62
- each.compute.type &&
66
+ ((each.compute && each.compute.type) ||
67
+ (modifierActions.isOverride(each) &&
68
+ !modifierActions.isNotesOverride(each))) &&
63
69
  modifierActions.isValid(each)
64
70
  );
65
71
 
@@ -86,15 +92,14 @@ module.exports = ({ _, utils, actions, modifierActions }) => {
86
92
  );
87
93
  });
88
94
 
89
- if (amountOverride) modifiersToCompute.push(amountOverride);
90
-
91
95
  const modifiersToNotCompute = validatedModifiers
92
96
  .filter(
93
97
  each =>
94
98
  modifierActions.isPaymentModifier(each) ||
95
99
  !modifiersToCompute.find(
96
100
  ceach => ceach.modifierId === each.modifierId
97
- )
101
+ ) ||
102
+ modifierActions.isNotesOverride(each)
98
103
  )
99
104
  .map(each =>
100
105
  modifierActions.calculate(each, {
@@ -108,6 +113,18 @@ module.exports = ({ _, utils, actions, modifierActions }) => {
108
113
  let computedPrice = price;
109
114
  let total = math.mul(computedPrice, quantity);
110
115
 
116
+ validatedModifiers.forEach(mod => {
117
+ if (
118
+ modifierActions.isNotesOverride(mod) &&
119
+ modifierActions.isValid(mod)
120
+ ) {
121
+ item.notes = actions.overrideNotes({
122
+ item,
123
+ message: modifierActions.getOverrideNote(mod),
124
+ }).notes;
125
+ }
126
+ });
127
+
111
128
  if (modifiersToCompute.length || paymentModifiersToCompute.length) {
112
129
  // sort modifiers based on sort
113
130
  const sortedModifiers = modifierActions.sort([
@@ -151,6 +168,32 @@ module.exports = ({ _, utils, actions, modifierActions }) => {
151
168
  });
152
169
  }
153
170
 
171
+ if (modifierActions.isPriceOverride(modifier)) {
172
+ let priceOverride = modifierActions.getOverrideAmount(modifier);
173
+
174
+ if (modifierActions.isMultiplierOverride(modifier)) {
175
+ priceOverride = math.mul(priceOverride, price);
176
+ }
177
+
178
+ subTotals._simple = math.mul(priceOverride, quantity);
179
+ item.properties = {
180
+ ...(item.properties ? item.properties : {}),
181
+ overwrittenPrice: item.price,
182
+ };
183
+ item.price = priceOverride;
184
+ }
185
+
186
+ if (modifierActions.isQuantityOverride(modifier)) {
187
+ const newQuantity = modifierActions.getOverrideAmount(modifier);
188
+ item.properties = {
189
+ ...(item.properties ? item.properties : {}),
190
+ overwrittenQuantity: item.quantity,
191
+ };
192
+ subTotals._simple = math.mul(price, newQuantity);
193
+ item.quantity = parseInt(newQuantity, 10);
194
+ quantity = parseInt(newQuantity, 10);
195
+ }
196
+
154
197
  _modifier = modifierActions.calculate(
155
198
  { ..._modifier },
156
199
  {
@@ -179,13 +222,18 @@ module.exports = ({ _, utils, actions, modifierActions }) => {
179
222
  accumulatedAmount = math.add(accumulatedAmount, _computed.amount);
180
223
  prvSort = sort;
181
224
 
182
- ({ subTotals, total } = actions.getTotals({
183
- subTotals,
184
- amountToAdd: computedAmount,
185
- included,
186
- type,
187
- direct,
188
- }));
225
+ if (
226
+ !modifierActions.isOverride(modifier) ||
227
+ modifierActions.isOverrideSubtotal(modifier)
228
+ ) {
229
+ ({ subTotals, total } = actions.getTotals({
230
+ subTotals,
231
+ amountToAdd: computedAmount,
232
+ included,
233
+ type,
234
+ direct,
235
+ }));
236
+ }
189
237
  }
190
238
  }
191
239
 
@@ -1,7 +1,5 @@
1
1
  module.exports = () =>
2
2
  function getBasePrice(item) {
3
3
  if (!item) return 0;
4
- if (!item.properties || typeof item.properties.basePrice !== 'number')
5
- return item.price;
6
- return item.properties.basePrice;
4
+ return item.price || 0;
7
5
  };
@@ -1,6 +1,4 @@
1
- module.exports = ({ modifierActions, utils }) => {
2
- const { math } = utils;
3
-
1
+ module.exports = ({ modifierActions }) => {
4
2
  const getCustomerTags = (customer = {}) =>
5
3
  ((customer && customer.tags) || []).filter(Boolean);
6
4
 
@@ -38,15 +36,6 @@ module.exports = ({ modifierActions, utils }) => {
38
36
 
39
37
  const { value } = maxPriceLevel;
40
38
 
41
- const overridPriceModifier = modifiers.find(each =>
42
- modifierActions.isPriceOverride(each)
43
- );
44
- if (overridPriceModifier && overridPriceModifier.compute) {
45
- if (modifierActions.isMultiplier(overridPriceModifier))
46
- return math.mul(value, overridPriceModifier.compute.amount);
47
- return overridPriceModifier.compute.amount;
48
- }
49
-
50
39
  return value;
51
40
  };
52
41
  };
@@ -1,21 +1,23 @@
1
- module.exports = ({ modifierActions }) =>
1
+ module.exports = ({ actions, modifierActions }) =>
2
2
  /* eslint-disable no-restricted-syntax */
3
3
  function getPriceWithoutModifiers({ item }) {
4
+ const basePrice = actions.getBasePrice(item);
5
+
4
6
  if (
5
7
  !item ||
6
8
  !Array.isArray(item.modifiers) ||
7
- typeof item.price !== 'number'
9
+ typeof basePrice !== 'number'
8
10
  )
9
- return item.price;
11
+ return basePrice;
10
12
 
11
13
  const calculatedModifiers = item.modifiers.filter(modifier =>
12
14
  modifierActions.isExtractCalculatedValue({ modifier })
13
15
  );
14
16
 
15
- if (calculatedModifiers.length === 0) return item.price;
17
+ if (calculatedModifiers.length === 0) return basePrice;
16
18
 
17
19
  const sortedModifiers = modifierActions.sort([...calculatedModifiers]);
18
- let computedPrice = item.price;
20
+ let computedPrice = basePrice;
19
21
 
20
22
  for (const modifier of sortedModifiers) {
21
23
  computedPrice = modifierActions.getPriceWithoutModifier({
package/lib/item/index.js CHANGED
@@ -63,6 +63,9 @@ const isSomeTagsMatch = require('./isSomeTagsMatch');
63
63
  const getTotals = require('./getTotals');
64
64
  const patchItem = require('./patchItem');
65
65
  const getUpdatedStatus = require('./getUpdatedStatus');
66
+ const isOverwrittenPrice = require('./isOverwrittenPrice');
67
+ const isOverwrittenQuantity = require('./isOverwrittenQuantity');
68
+ const overrideNotes = require('./overrideNotes');
66
69
 
67
70
  const itemActions = (deps = {}) => {
68
71
  const actions = {};
@@ -139,6 +142,9 @@ const itemActions = (deps = {}) => {
139
142
  getTotals: getTotals(innerDeps),
140
143
  patchItem: patchItem(innerDeps),
141
144
  getUpdatedStatus: getUpdatedStatus(innerDeps),
145
+ isOverwrittenPrice: isOverwrittenPrice(innerDeps),
146
+ isOverwrittenQuantity: isOverwrittenQuantity(innerDeps),
147
+ overrideNotes: overrideNotes(innerDeps),
142
148
  });
143
149
 
144
150
  Object.keys(freezedActions).forEach(actionName => {
@@ -0,0 +1,4 @@
1
+ module.exports = () =>
2
+ function isOverwrittenPrice(item) {
3
+ return item && item.properties && item.properties.overwrittenPrice;
4
+ };
@@ -0,0 +1,4 @@
1
+ module.exports = () =>
2
+ function isOverwrittenQuantity(item) {
3
+ return item && item.properties && item.properties.overwrittenQuantity;
4
+ };
@@ -0,0 +1,24 @@
1
+ module.exports = ({ settings, _, moment, utils }) => {
2
+ const timezone = _.get(settings, 'localization.timezone', 'America/New_York');
3
+ const { helpers } = utils;
4
+
5
+ return function overrideNotes({ item, message }) {
6
+ if (!item) return undefined;
7
+
8
+ return {
9
+ ...item,
10
+ notes: [
11
+ {
12
+ _id: helpers.getObjectID(),
13
+ attributes: [],
14
+ date: moment().tz(timezone),
15
+ user: null,
16
+ message,
17
+ type: '',
18
+ name: 'override',
19
+ url: '',
20
+ },
21
+ ],
22
+ };
23
+ };
24
+ };
@@ -3,13 +3,7 @@ module.exports = ({ modifierActions, _, actions }) => {
3
3
  !!modifierActions.findById(itemModifiers, modifier._id) &&
4
4
  (!modifier.required || !modifier._parentId);
5
5
 
6
- return function removeModifier({
7
- item,
8
- modifier,
9
- customer,
10
- originalItem,
11
- order,
12
- }) {
6
+ return function removeModifier({ item, modifier, order }) {
13
7
  const nextItem = _.cloneDeep(item);
14
8
  const itemModifiers = item.modifiers || [];
15
9
 
@@ -52,21 +46,6 @@ module.exports = ({ modifierActions, _, actions }) => {
52
46
  )
53
47
  );
54
48
 
55
- const hasOverride = nextModifiers.find(each =>
56
- modifierActions.isOverride(each)
57
- );
58
-
59
- if (hasOverride) {
60
- if (modifierActions.isQuantityOverride(modifier)) nextItem.quantity = 1;
61
-
62
- if (modifierActions.isPriceOverride(modifier))
63
- nextItem.price = actions.getItemPrice({
64
- item: originalItem,
65
- itemPriceLevels: originalItem ? originalItem.priceLevels : undefined,
66
- customer,
67
- });
68
- }
69
-
70
49
  return {
71
50
  ...nextItem,
72
51
  modifiers: nextModifiers,
@@ -1,11 +1,10 @@
1
1
  module.exports = ({ actions }) =>
2
- function removeModifiers({ item, modifiers, originalItem, customer, order }) {
2
+ function removeModifiers({ item, modifiers, customer, order }) {
3
3
  const newItem = modifiers.reduce(
4
4
  (nextItem, modifier) =>
5
5
  actions.removeModifier({
6
6
  item: nextItem,
7
7
  modifier,
8
- originalItem,
9
8
  customer,
10
9
  order,
11
10
  }),
@@ -58,7 +58,7 @@ module.exports = ({ actions, utils }) => {
58
58
  }
59
59
  }
60
60
  return actions.validateItemNumber(
61
- itemSetIndex,
61
+ totalItemsLength,
62
62
  conditionValue,
63
63
  condition.operand
64
64
  );
@@ -13,6 +13,15 @@ module.exports = ({ _, constants, utils, actions }) => {
13
13
  ) {
14
14
  const modifier = _modifier;
15
15
  const compute = getComputeModField(modifier);
16
+
17
+ if (actions.isOverride(_modifier)) {
18
+ if (actions.isAmountOverride(_modifier)) {
19
+ compute.type = 'fixed';
20
+ compute.action = 'add';
21
+ }
22
+ compute.amount = actions.getOverrideAmount(_modifier);
23
+ }
24
+
16
25
  const { type, amount: computeAmount = 0 } = compute;
17
26
  const _computed = {
18
27
  amount: 0,
@@ -55,7 +64,8 @@ module.exports = ({ _, constants, utils, actions }) => {
55
64
  if (
56
65
  (!actions.isOverride(_modifier) &&
57
66
  actions.isQuantityMultiplier(_modifier)) ||
58
- (actions.isAmountOverride(_modifier) && actions.isMultiplier(_modifier))
67
+ (actions.isAmountOverride(_modifier) &&
68
+ actions.isMultiplierOverride(_modifier))
59
69
  ) {
60
70
  _computed.amount = math.mul(_computed.amount, options.quantity);
61
71
  }
@@ -68,6 +78,10 @@ module.exports = ({ _, constants, utils, actions }) => {
68
78
  ) {
69
79
  _computed.amount = math.mul(options.maxDiscountAmount, -1);
70
80
  }
81
+
82
+ if (actions.isTotalOverride(_modifier)) {
83
+ _computed.amount = math.sub(compute.amount, options.maxDiscountAmount);
84
+ }
71
85
  }
72
86
 
73
87
  _computed.description = actions.createDescription({
@@ -79,6 +93,10 @@ module.exports = ({ _, constants, utils, actions }) => {
79
93
  price: options.basePrice || options.price,
80
94
  });
81
95
 
82
- return { ..._.cloneDeep(modifier), _computed };
96
+ return {
97
+ ..._.cloneDeep(modifier),
98
+ compute: compute.amount ? compute : null,
99
+ _computed,
100
+ };
83
101
  };
84
102
  };
@@ -1,4 +1,4 @@
1
- module.exports = ({ actions, localization, _ }) =>
1
+ module.exports = ({ actions, localization, _, utils }) =>
2
2
  function createDescription({ modifier, price }) {
3
3
  const { _computed, compute, name } = modifier;
4
4
 
@@ -10,13 +10,16 @@ module.exports = ({ actions, localization, _ }) =>
10
10
 
11
11
  const localBasePrice = localization.formatAmount(price || 0);
12
12
 
13
- const isMultiplier = actions.isMultiplier(modifier);
13
+ const isMultiplier = actions.isMultiplierOverride(modifier);
14
14
 
15
15
  description = `${name}${localAmount ? ` (${localAmount})` : ''}`;
16
16
 
17
17
  if (actions.isPriceOverride(modifier)) {
18
+ const dividedPrice = localization.formatAmount(
19
+ price && compute.amount ? utils.math.div(price, compute.amount) : 0
20
+ );
18
21
  description = isMultiplier
19
- ? `${name} (${compute.amount} Unit @ ${localBasePrice}/Unit)`
22
+ ? `${name} (${compute.amount} Unit @ ${dividedPrice}/Unit)`
20
23
  : `${name} (${localization.formatAmount(compute.amount)}/Unit)`;
21
24
  }
22
25
 
@@ -7,6 +7,9 @@ module.exports = ({ utils }) => {
7
7
  ...modifier,
8
8
  modifierId: modifier.modifierId || modifier._id,
9
9
  _id: helpers.getObjectID(),
10
+ compute: {
11
+ ...(modifier.compute || {}),
12
+ },
10
13
  };
11
14
  };
12
15
  };
@@ -0,0 +1,7 @@
1
+ module.exports = ({ actions }) =>
2
+ function getOverrideAmount(modifier) {
3
+ if (!actions.isOverride(modifier)) return 0;
4
+ const computeAmount = modifier.compute && modifier.compute.amount;
5
+ const { fixedValue } = modifier.properties.override;
6
+ return computeAmount || (typeof fixedValue === 'number' && fixedValue) || 0;
7
+ };
@@ -0,0 +1,5 @@
1
+ module.exports = ({ actions }) =>
2
+ function getOverrideNote(modifier) {
3
+ if (!actions.isOverride(modifier)) return '';
4
+ return modifier.properties.override.fixedValue;
5
+ };
@@ -0,0 +1,5 @@
1
+ module.exports = ({ actions }) =>
2
+ function getServiceOverride(modifier) {
3
+ if (!actions.isServiceOverride(modifier)) return null;
4
+ return modifier.properties.override.service;
5
+ };
@@ -3,7 +3,6 @@ const calculate = require('./calculate');
3
3
  const contains = require('./contains');
4
4
  const convertMenuModifiers = require('./convertMenuModifiers');
5
5
  const create = require('./create');
6
- const createAmountOverrideModifier = require('./createAmountOverrideModifier');
7
6
  const createCreditModifier = require('./createCreditModifier');
8
7
  const createDiscountModifier = require('./createDiscountModifier');
9
8
  const createFeeModifier = require('./createFeeModifier');
@@ -48,7 +47,7 @@ const getRecommendedModifiers = require('./getRecommendedModifiers');
48
47
  const getRequiredModifiers = require('./getRequiredModifiers');
49
48
  const getSubscriptionItem = require('./getSubscriptionItem');
50
49
  const getSubscriptionModifiers = require('./getSubscriptionModifiers');
51
- const getService = require('./getService');
50
+ const getServiceOverride = require('./getServiceOverride');
52
51
  const getSplittedModifiers = require('./getSplittedModifiers');
53
52
  const getSuggestion = require('./getSuggestion');
54
53
  const getUnhiddenModifiers = require('./getUnhiddenModifiers');
@@ -76,16 +75,16 @@ const isRemoveModifier = require('./isRemoveModifier');
76
75
  const isGroupOfModifiers = require('./isGroupOfModifiers');
77
76
  const areConditionsMet = require('./areConditionsMet');
78
77
  const isRequiredAndOverride = require('./isRequiredAndOverride');
79
- const isManual = require('./isManual');
78
+ const isManualOverride = require('./isManualOverride');
80
79
  const isPriceOverride = require('./isPriceOverride');
81
80
  const isQuantityOverride = require('./isQuantityOverride');
82
- const isService = require('./isService');
81
+ const isServiceOverride = require('./isServiceOverride');
83
82
  const isSingleValue = require('./isSingleValue');
84
83
  const isGroupOfItems = require('./isGroupOfItems');
85
84
  const isOverride = require('./isOverride');
86
85
  const isDepartment = require('./isDepartment');
87
86
  const isRequired = require('./isRequired');
88
- const isMultiplier = require('./isMultiplier');
87
+ const isMultiplierOverride = require('./isMultiplierOverride');
89
88
  const isAvailablePromotion = require('./isAvailablePromotion');
90
89
  const isAvailableSubscription = require('./isAvailableSubscription');
91
90
  const isPromotion = require('./isPromotion');
@@ -111,7 +110,6 @@ const isFixed = require('./isFixed');
111
110
  const isFixedAdd = require('./isFixedAdd');
112
111
  const isFee = require('./isFee');
113
112
  const isAdd = require('./isAdd');
114
- const mutateModifier = require('./mutateModifier');
115
113
  const isFixedDiscount = require('./isFixedDiscount');
116
114
  const removeLocked = require('./removeLocked');
117
115
  const hasItems = require('./hasItems');
@@ -164,6 +162,11 @@ const getMaxItemQuantity = require('./getMaxItemQuantity');
164
162
  const createDescription = require('./createDescription');
165
163
  const patchModifier = require('./patchModifier');
166
164
  const isPrepayModifier = require('./isPrepayModifier');
165
+ const isTotalOverride = require('./isTotalOverride');
166
+ const getOverrideAmount = require('./getOverrideAmount');
167
+ const getOverrideNote = require('./getOverrideNote');
168
+ const isNotesOverride = require('./isNotesOverride');
169
+ const isOverrideSubtotal = require('./isOverrideSubtotal');
167
170
 
168
171
  const modifierActions = (deps = {}) => {
169
172
  const actions = {};
@@ -178,7 +181,6 @@ const modifierActions = (deps = {}) => {
178
181
  contains: contains(innerDeps),
179
182
  convertMenuModifiers: convertMenuModifiers(innerDeps),
180
183
  create: create(innerDeps),
181
- createAmountOverrideModifier: createAmountOverrideModifier(innerDeps),
182
184
  createCreditModifier: createCreditModifier(innerDeps),
183
185
  createDiscountModifier: createDiscountModifier(innerDeps),
184
186
  createFeeModifier: createFeeModifier(innerDeps),
@@ -224,7 +226,7 @@ const modifierActions = (deps = {}) => {
224
226
  getRequiredModifiers: getRequiredModifiers(innerDeps),
225
227
  getSubscriptionItem: getSubscriptionItem(innerDeps),
226
228
  getSubscriptionModifiers: getSubscriptionModifiers(innerDeps),
227
- getService: getService(innerDeps),
229
+ getServiceOverride: getServiceOverride(innerDeps),
228
230
  getSplittedModifiers: getSplittedModifiers(innerDeps),
229
231
  getSuggestion: getSuggestion(innerDeps),
230
232
  getUnhiddenModifiers: getUnhiddenModifiers(innerDeps),
@@ -249,8 +251,8 @@ const modifierActions = (deps = {}) => {
249
251
  isRemoveModifier: isRemoveModifier(innerDeps),
250
252
  isGroupOfModifiers: isGroupOfModifiers(innerDeps),
251
253
  isRequiredAndOverride: isRequiredAndOverride(innerDeps),
252
- isManual: isManual(innerDeps),
253
- isService: isService(innerDeps),
254
+ isManualOverride: isManualOverride(innerDeps),
255
+ isServiceOverride: isServiceOverride(innerDeps),
254
256
  isQuantityOverride: isQuantityOverride(innerDeps),
255
257
  isPriceOverride: isPriceOverride(innerDeps),
256
258
  isSingleValue: isSingleValue(innerDeps),
@@ -258,7 +260,7 @@ const modifierActions = (deps = {}) => {
258
260
  isOverride: isOverride(innerDeps),
259
261
  isDepartment: isDepartment(innerDeps),
260
262
  isRequired: isRequired(innerDeps),
261
- isMultiplier: isMultiplier(innerDeps),
263
+ isMultiplierOverride: isMultiplierOverride(innerDeps),
262
264
  isAvailablePromotion: isAvailablePromotion(innerDeps),
263
265
  isAvailableSubscription: isAvailableSubscription(innerDeps),
264
266
  isPromotion: isPromotion(innerDeps),
@@ -287,7 +289,6 @@ const modifierActions = (deps = {}) => {
287
289
  isFixedAdd: isFixedAdd(innerDeps),
288
290
  isFee: isFee(innerDeps),
289
291
  isAdd: isAdd(innerDeps),
290
- mutateModifier: mutateModifier(innerDeps),
291
292
  removeGroupData: removeGroupData(innerDeps),
292
293
  isRelatedModifierById: isRelatedModifierById(innerDeps),
293
294
  getGroupedModifiers: getGroupedModifiers(innerDeps),
@@ -341,6 +342,11 @@ const modifierActions = (deps = {}) => {
341
342
  createDescription: createDescription(innerDeps),
342
343
  patchModifier: patchModifier(innerDeps),
343
344
  isPrepayModifier: isPrepayModifier(innerDeps),
345
+ isTotalOverride: isTotalOverride(innerDeps),
346
+ getOverrideAmount: getOverrideAmount(innerDeps),
347
+ getOverrideNote: getOverrideNote(innerDeps),
348
+ isNotesOverride: isNotesOverride(innerDeps),
349
+ isOverrideSubtotal: isOverrideSubtotal(innerDeps),
344
350
  });
345
351
 
346
352
  Object.keys(freezedActions).forEach(actionName => {
@@ -1,5 +1,5 @@
1
1
  module.exports = () =>
2
- function isManual(modifier) {
2
+ function isManualOverride(modifier) {
3
3
  return !!(
4
4
  modifier &&
5
5
  modifier.properties &&
@@ -1,5 +1,5 @@
1
1
  module.exports = () =>
2
- function isMultiplier(modifier) {
2
+ function isMultiplierOverride(modifier) {
3
3
  if (!modifier) return false;
4
4
  const _modifier = modifier.modifier || modifier;
5
5
  return !!(
@@ -0,0 +1,7 @@
1
+ module.exports = ({ actions }) =>
2
+ function isNotesOverride(modifier) {
3
+ return (
4
+ actions.isOverride(modifier) &&
5
+ modifier.properties.override.field === 'notes'
6
+ );
7
+ };
@@ -0,0 +1,9 @@
1
+ module.exports = ({ actions }) =>
2
+ function isOverrideSubtotal(modifier) {
3
+ return (
4
+ actions.isOverride(modifier) &&
5
+ (actions.isAmountOverride(modifier) ||
6
+ actions.isOptionsOverride(modifier) ||
7
+ actions.isTotalOverride(modifier))
8
+ );
9
+ };
@@ -1,5 +1,5 @@
1
1
  module.exports = () =>
2
- function isService(modifier) {
2
+ function isServiceOverride(modifier) {
3
3
  return !!(
4
4
  modifier &&
5
5
  modifier.properties &&
@@ -0,0 +1,7 @@
1
+ module.exports = ({ actions }) =>
2
+ function isTotalOverride(modifier) {
3
+ return (
4
+ actions.isOverride(modifier) &&
5
+ modifier.properties.override.field === 'total'
6
+ );
7
+ };