@darkpos/pricing 1.0.93 → 1.0.95
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.
- package/__TEST__/item.test.js +46 -48
- package/__TEST__/modifier/addItemModifier.test.js +181 -60
- package/__TEST__/modifier/overrideModifiers.test.js +196 -0
- package/__TEST__/order/order-payment-modifier.test.js +3 -11
- package/lib/item/calculate.js +66 -18
- package/lib/item/getItemPrice.js +1 -12
- package/lib/item/getPriceWithoutModifiers.js +7 -5
- package/lib/item/index.js +6 -0
- package/lib/item/isOverwrittenPrice.js +4 -0
- package/lib/item/isOverwrittenQuantity.js +4 -0
- package/lib/item/overrideNotes.js +24 -0
- package/lib/item/removeModifier.js +1 -22
- package/lib/item/removeModifiers.js +1 -2
- package/lib/modifier/areConditionsMet.js +1 -1
- package/lib/modifier/calculate.js +20 -2
- package/lib/modifier/createDescription.js +1 -1
- package/lib/modifier/duplicate.js +3 -0
- package/lib/modifier/getOverrideAmount.js +7 -0
- package/lib/modifier/getOverrideNote.js +5 -0
- package/lib/modifier/getServiceOverride.js +5 -0
- package/lib/modifier/index.js +18 -12
- package/lib/modifier/{isManual.js → isManualOverride.js} +1 -1
- package/lib/modifier/{isMultiplier.js → isMultiplierOverride.js} +1 -1
- package/lib/modifier/isNotesOverride.js +7 -0
- package/lib/modifier/isOverrideSubtotal.js +9 -0
- package/lib/modifier/{isService.js → isServiceOverride.js} +1 -1
- package/lib/modifier/isTotalOverride.js +7 -0
- package/lib/order/addItem.js +10 -12
- package/lib/order/addItemModifier.js +15 -62
- package/lib/order/removeItemModifier.js +2 -27
- package/package.json +4 -2
- package/lib/modifier/createAmountOverrideModifier.js +0 -18
- package/lib/modifier/getService.js +0 -5
- package/lib/modifier/mutateModifier.js +0 -23
package/lib/item/calculate.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
|
package/lib/item/getItemPrice.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
module.exports = ({ modifierActions
|
|
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
|
|
9
|
+
typeof basePrice !== 'number'
|
|
8
10
|
)
|
|
9
|
-
return
|
|
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
|
|
17
|
+
if (calculatedModifiers.length === 0) return basePrice;
|
|
16
18
|
|
|
17
19
|
const sortedModifiers = modifierActions.sort([...calculatedModifiers]);
|
|
18
|
-
let computedPrice =
|
|
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,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,
|
|
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
|
}),
|
|
@@ -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) &&
|
|
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 {
|
|
96
|
+
return {
|
|
97
|
+
..._.cloneDeep(modifier),
|
|
98
|
+
compute: compute.amount ? compute : null,
|
|
99
|
+
_computed,
|
|
100
|
+
};
|
|
83
101
|
};
|
|
84
102
|
};
|
|
@@ -10,7 +10,7 @@ module.exports = ({ actions, localization, _ }) =>
|
|
|
10
10
|
|
|
11
11
|
const localBasePrice = localization.formatAmount(price || 0);
|
|
12
12
|
|
|
13
|
-
const isMultiplier = actions.
|
|
13
|
+
const isMultiplier = actions.isMultiplierOverride(modifier);
|
|
14
14
|
|
|
15
15
|
description = `${name}${localAmount ? ` (${localAmount})` : ''}`;
|
|
16
16
|
|
|
@@ -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
|
+
};
|
package/lib/modifier/index.js
CHANGED
|
@@ -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
|
|
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
|
|
78
|
+
const isManualOverride = require('./isManualOverride');
|
|
80
79
|
const isPriceOverride = require('./isPriceOverride');
|
|
81
80
|
const isQuantityOverride = require('./isQuantityOverride');
|
|
82
|
-
const
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
253
|
-
|
|
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
|
-
|
|
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 => {
|
package/lib/order/addItem.js
CHANGED
|
@@ -218,18 +218,16 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
218
218
|
);
|
|
219
219
|
|
|
220
220
|
if (modifiersToAdd.length) {
|
|
221
|
-
nextOrder = modifiersToAdd
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
nextOrder
|
|
232
|
-
);
|
|
221
|
+
nextOrder = modifiersToAdd.reduce(
|
|
222
|
+
(acc, modifier) =>
|
|
223
|
+
actions.addItemModifier({
|
|
224
|
+
itemIndex: nextItemIndex,
|
|
225
|
+
order: acc,
|
|
226
|
+
modifier,
|
|
227
|
+
originalItem: item,
|
|
228
|
+
}),
|
|
229
|
+
nextOrder
|
|
230
|
+
);
|
|
233
231
|
}
|
|
234
232
|
|
|
235
233
|
const { reArrangedOrder, newIndex } = reArrangeNewItem({
|