@darkpos/pricing 1.0.59 → 1.0.60
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__/mocks/addItemMock.js +0 -17775
- package/__TEST__/modifier/mocks/toggleModifier_no1.json +1 -13315
- package/__TEST__/modifier/mocks/toggleModifier_no2.json +0 -13314
- package/__TEST__/modifier/mocks/toggleModifier_no3.json +0 -13314
- package/__TEST__/modifier.test.js +0 -1
- package/__TEST__/order/addItem.test.js +0 -4
- package/__TEST__/order/order.test.js +0 -2
- package/lib/item/findOriginalItem.js +3 -3
- package/lib/item/getItemPrice.js +4 -9
- package/lib/item/removeModifier.js +5 -22
- package/lib/item/removeModifiers.js +2 -2
- package/lib/item/removeModifiersByQuantity.js +1 -0
- package/lib/modifier/getGroupModifiers.js +9 -6
- package/lib/modifier/getGroupRelatedModifiers.js +11 -19
- package/lib/modifier/getItemModifiers.js +1 -9
- package/lib/modifier/getRelatedModifiers.js +5 -7
- package/lib/modifier/index.js +0 -4
- package/lib/modifier/isPreferences.js +1 -1
- package/lib/order/addItem.js +4 -5
- package/lib/order/addItemModifier.js +11 -18
- package/lib/order/addModifierToAllItems.js +2 -2
- package/lib/order/getOrderItemSubscriptions.js +2 -2
- package/lib/order/removeItemModifier.js +2 -3
- package/lib/order/setCustomer.js +7 -4
- package/lib/order/updateItemQuantity.js +2 -2
- package/package.json +2 -2
- package/lib/modifier/getLaundryModifiers.js +0 -9
- package/lib/modifier/getStarchModifier.js +0 -9
|
@@ -34,7 +34,6 @@ describe('addItem function', () => {
|
|
|
34
34
|
order,
|
|
35
35
|
item,
|
|
36
36
|
itemIndex: -1, // No existing item in order
|
|
37
|
-
cache: addItemObj.cache, // Assuming some cache object
|
|
38
37
|
overridenQuantity: -1, // No overridden quantity
|
|
39
38
|
});
|
|
40
39
|
|
|
@@ -79,7 +78,6 @@ describe('addItem function', () => {
|
|
|
79
78
|
order,
|
|
80
79
|
item,
|
|
81
80
|
itemIndex: -1, // Assuming no explicit index
|
|
82
|
-
cache: addItemObj.cache, // Assuming some cache object
|
|
83
81
|
overridenQuantity: -1, // No overridden quantity
|
|
84
82
|
});
|
|
85
83
|
|
|
@@ -111,7 +109,6 @@ describe('addItem function', () => {
|
|
|
111
109
|
order,
|
|
112
110
|
item,
|
|
113
111
|
itemIndex: -1, // Assuming no explicit index
|
|
114
|
-
cache: addItemObj.cache, // Assuming some cache object
|
|
115
112
|
overridenQuantity: 5, // Override quantity to 5
|
|
116
113
|
});
|
|
117
114
|
|
|
@@ -191,7 +188,6 @@ describe('addItem function', () => {
|
|
|
191
188
|
order,
|
|
192
189
|
item,
|
|
193
190
|
itemIndex: -1, // Assuming no explicit index
|
|
194
|
-
cache: addItemObj.cache, // Assuming some cache object
|
|
195
191
|
overridenQuantity: -1, // No overridden quantity
|
|
196
192
|
});
|
|
197
193
|
|
|
@@ -3127,7 +3127,6 @@ describe('Order actions', () => {
|
|
|
3127
3127
|
const updatedOrder = pricingService.order.setCustomer({
|
|
3128
3128
|
order,
|
|
3129
3129
|
customer: {},
|
|
3130
|
-
cache: {},
|
|
3131
3130
|
});
|
|
3132
3131
|
|
|
3133
3132
|
expect(updatedOrder).toStrictEqual({
|
|
@@ -3153,7 +3152,6 @@ describe('Order actions', () => {
|
|
|
3153
3152
|
const updatedOrder2 = pricingService.order.setCustomer({
|
|
3154
3153
|
order,
|
|
3155
3154
|
customer: { _id: 'abd', tags: [] },
|
|
3156
|
-
cache: {},
|
|
3157
3155
|
});
|
|
3158
3156
|
|
|
3159
3157
|
expect(updatedOrder2).toStrictEqual({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module.exports = () =>
|
|
2
|
-
function findOriginalItem({ item,
|
|
2
|
+
function findOriginalItem({ item, originalItems }) {
|
|
3
3
|
const original =
|
|
4
|
-
Array.isArray(
|
|
5
|
-
|
|
4
|
+
Array.isArray(originalItems) &&
|
|
5
|
+
originalItems.find(each => each._id === item.itemId);
|
|
6
6
|
|
|
7
7
|
return original || item;
|
|
8
8
|
};
|
package/lib/item/getItemPrice.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
module.exports = ({
|
|
1
|
+
module.exports = ({ modifierActions, utils }) => {
|
|
2
2
|
const { math } = utils;
|
|
3
3
|
|
|
4
4
|
const getCustomerTags = (customer = {}) =>
|
|
5
5
|
((customer && customer.tags) || []).filter(Boolean);
|
|
6
6
|
|
|
7
|
-
return function getItemPrice({ item,
|
|
7
|
+
return function getItemPrice({ item, customer, itemPriceLevels }) {
|
|
8
8
|
const modifiers = item.modifiers || [];
|
|
9
9
|
let { priceLevels } = item;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const orgItem = actions.findOriginalItem({
|
|
14
|
-
item,
|
|
15
|
-
cache,
|
|
16
|
-
});
|
|
17
|
-
({ priceLevels } = orgItem);
|
|
11
|
+
if (Array.isArray(itemPriceLevels)) {
|
|
12
|
+
priceLevels = itemPriceLevels;
|
|
18
13
|
}
|
|
19
14
|
|
|
20
15
|
if (!priceLevels) return item.price || 0;
|
|
@@ -5,15 +5,6 @@ module.exports = ({ modifierActions, _, actions }) => {
|
|
|
5
5
|
const isValid = (itemModifiers, modifier) => {
|
|
6
6
|
if (!modifierActions.findById(itemModifiers, modifier._id)) return false;
|
|
7
7
|
|
|
8
|
-
// 18-SEP-24 - Commenting out due to bug: https://app.clickup.com/t/86duna31h.
|
|
9
|
-
// This logic was preventing required Order Discounts to be removed from the items.
|
|
10
|
-
// if (
|
|
11
|
-
// modifierActions.isRequired(modifier) &&
|
|
12
|
-
// !modifierActions.isGroupOfValues(modifier) &&
|
|
13
|
-
// !modifierActions.isRequiredAndOverride(modifier)
|
|
14
|
-
// )
|
|
15
|
-
// return false;
|
|
16
|
-
|
|
17
8
|
if (
|
|
18
9
|
!modifierActions.isGroupOfItems(modifier) &&
|
|
19
10
|
hasRelatedItems(itemModifiers)
|
|
@@ -23,14 +14,7 @@ module.exports = ({ modifierActions, _, actions }) => {
|
|
|
23
14
|
return true;
|
|
24
15
|
};
|
|
25
16
|
|
|
26
|
-
return function removeModifier({
|
|
27
|
-
item,
|
|
28
|
-
modifier,
|
|
29
|
-
customer,
|
|
30
|
-
cache = {
|
|
31
|
-
items: [],
|
|
32
|
-
},
|
|
33
|
-
}) {
|
|
17
|
+
return function removeModifier({ item, modifier, customer, originalItem }) {
|
|
34
18
|
const nextItem = _.cloneDeep(item);
|
|
35
19
|
const itemModifiers = item.modifiers || [];
|
|
36
20
|
let modifiersToApply = [];
|
|
@@ -39,7 +23,9 @@ module.exports = ({ modifierActions, _, actions }) => {
|
|
|
39
23
|
|
|
40
24
|
// Check for multiple and add them to menuModifiers
|
|
41
25
|
if (modifierActions.hasAddModifiers(modifier)) {
|
|
42
|
-
const relatedModifiers = modifierActions.getRelatedModifiers(
|
|
26
|
+
const relatedModifiers = modifierActions.getRelatedModifiers({
|
|
27
|
+
modifier,
|
|
28
|
+
});
|
|
43
29
|
// Removing only those children who are selected
|
|
44
30
|
const currentModifiersIds = itemModifiers.map(each => each.modifierId);
|
|
45
31
|
modifiersToApply = relatedModifiers.filter(each =>
|
|
@@ -61,15 +47,12 @@ module.exports = ({ modifierActions, _, actions }) => {
|
|
|
61
47
|
);
|
|
62
48
|
|
|
63
49
|
if (hasOverride) {
|
|
64
|
-
const originalItem =
|
|
65
|
-
cache.items.find(_item => _item._id === item.itemId) || item;
|
|
66
|
-
|
|
67
50
|
if (modifierActions.isQuantityOverride(modifier)) nextItem.quantity = 1;
|
|
68
51
|
|
|
69
52
|
if (modifierActions.isPriceOverride(modifier))
|
|
70
53
|
nextItem.price = actions.getItemPrice({
|
|
71
54
|
item: originalItem,
|
|
72
|
-
|
|
55
|
+
itemPriceLevels: originalItem ? originalItem.priceLevels : undefined,
|
|
73
56
|
customer,
|
|
74
57
|
});
|
|
75
58
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
module.exports = ({ actions }) =>
|
|
2
|
-
function removeModifiers({ item, modifiers,
|
|
2
|
+
function removeModifiers({ item, modifiers, originalItem, customer }) {
|
|
3
3
|
const newItem = modifiers.reduce(
|
|
4
4
|
(nextItem, modifier) =>
|
|
5
5
|
actions.removeModifier({
|
|
6
6
|
item: nextItem,
|
|
7
7
|
modifier,
|
|
8
|
-
|
|
8
|
+
originalItem,
|
|
9
9
|
customer,
|
|
10
10
|
}),
|
|
11
11
|
item
|
|
@@ -12,6 +12,7 @@ module.exports = ({ modifierActions }) =>
|
|
|
12
12
|
if (
|
|
13
13
|
modifierActions.isPaymentModifier(modifier) ||
|
|
14
14
|
modifierActions.isCalculatedPaymentModifier(modifier) ||
|
|
15
|
+
modifierActions.isGroupOfModifiers(modifier) ||
|
|
15
16
|
!modifier.modifierId ||
|
|
16
17
|
!modifierActions.isDirect(modifier)
|
|
17
18
|
)
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
module.exports = () =>
|
|
2
|
-
function getGroupModifiers({ modifier
|
|
2
|
+
function getGroupModifiers({ modifier }) {
|
|
3
3
|
const { properties } = modifier;
|
|
4
|
-
if (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
if (
|
|
5
|
+
!properties ||
|
|
6
|
+
!properties.group ||
|
|
7
|
+
!Array.isArray(properties.group.modifiers)
|
|
8
|
+
)
|
|
9
|
+
return [];
|
|
10
|
+
|
|
11
|
+
return properties.group.modifiers;
|
|
9
12
|
};
|
|
@@ -1,25 +1,18 @@
|
|
|
1
|
-
module.exports = ({ actions }) =>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// This method returns all modifiers which are referenced by a modifier
|
|
5
|
-
return function getGroupRelatedModifiers({ cache, modifier }) {
|
|
1
|
+
module.exports = ({ actions }) =>
|
|
2
|
+
// This method returns all modifiers which are in properties.group.modifiers
|
|
3
|
+
function getGroupRelatedModifiers({ modifier }) {
|
|
6
4
|
if (!modifier) return [];
|
|
7
|
-
const
|
|
8
|
-
const modifiers = actions.getGroupModifiers({
|
|
5
|
+
const groupModifiers = actions.getGroupModifiers({
|
|
9
6
|
modifier,
|
|
10
|
-
includeParent: false,
|
|
11
7
|
});
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}, []);
|
|
21
|
-
|
|
22
|
-
if (actions.includesInGroup(modifier))
|
|
9
|
+
if (
|
|
10
|
+
actions.includesInGroup(modifier) &&
|
|
11
|
+
!groupModifiers.some(
|
|
12
|
+
groupMod =>
|
|
13
|
+
groupMod._id === modifier._id || groupMod.modifierId === modifier._id
|
|
14
|
+
)
|
|
15
|
+
)
|
|
23
16
|
groupModifiers.unshift({
|
|
24
17
|
...actions.removeGroupData({ modifier }),
|
|
25
18
|
required: false,
|
|
@@ -27,4 +20,3 @@ module.exports = ({ actions }) => {
|
|
|
27
20
|
|
|
28
21
|
return groupModifiers;
|
|
29
22
|
};
|
|
30
|
-
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module.exports = ({ actions }) =>
|
|
2
|
-
function getItemModifiers({ modifiers, customer
|
|
2
|
+
function getItemModifiers({ modifiers, customer }) {
|
|
3
3
|
const matchedModifiers = actions.getMatchTagsModifiers({
|
|
4
4
|
modifiers,
|
|
5
5
|
entity: customer,
|
|
@@ -13,19 +13,11 @@ module.exports = ({ actions }) =>
|
|
|
13
13
|
.map(each =>
|
|
14
14
|
actions.getRelatedModifiers({
|
|
15
15
|
modifier: each,
|
|
16
|
-
modifiers,
|
|
17
16
|
})
|
|
18
17
|
)
|
|
19
18
|
.reduce((acc, val) => acc.concat(val), []);
|
|
20
19
|
|
|
21
|
-
const starchModifier = actions.getStarchModifier({
|
|
22
|
-
cache,
|
|
23
|
-
modifiers: enabledModifiers,
|
|
24
|
-
starch: customer && customer.properties && customer.properties.starch,
|
|
25
|
-
});
|
|
26
|
-
|
|
27
20
|
const itemModifiers = [...enabledModifiers, ...relatedModifiers];
|
|
28
|
-
if (starchModifier) itemModifiers.push(starchModifier);
|
|
29
21
|
|
|
30
22
|
return itemModifiers.map(each => ({
|
|
31
23
|
...each,
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
function getRelatedModifiers({ modifier
|
|
3
|
-
if (!modifier || !modifier.addModifiers
|
|
4
|
-
|
|
5
|
-
const relatedModifiers = modifier.addModifiers
|
|
6
|
-
.map(each => actions.findById(modifiers, each._id))
|
|
7
|
-
.filter(Boolean);
|
|
1
|
+
module.exports = () =>
|
|
2
|
+
function getRelatedModifiers({ modifier }) {
|
|
3
|
+
if (!modifier || !modifier.addModifiers) return [];
|
|
4
|
+
|
|
5
|
+
const relatedModifiers = modifier.addModifiers;
|
|
8
6
|
|
|
9
7
|
return relatedModifiers;
|
|
10
8
|
};
|
package/lib/modifier/index.js
CHANGED
|
@@ -41,7 +41,6 @@ const getGroupModifiers = require('./getGroupModifiers');
|
|
|
41
41
|
const getImages = require('./getImages');
|
|
42
42
|
const getItemModifiers = require('./getItemModifiers');
|
|
43
43
|
const getInheritedModifiers = require('./getInheritedModifiers');
|
|
44
|
-
const getLaundryModifiers = require('./getLaundryModifiers');
|
|
45
44
|
const getMatchTagsModifiers = require('./getMatchTagsModifiers');
|
|
46
45
|
const getModifierIndex = require('./getModifierIndex');
|
|
47
46
|
const getModifiersByMaxSort = require('./getModifiersByMaxSort');
|
|
@@ -55,7 +54,6 @@ const getRequiredModifiers = require('./getRequiredModifiers');
|
|
|
55
54
|
const getSelectedValues = require('./getSelectedValues');
|
|
56
55
|
const getSubscriptionItem = require('./getSubscriptionItem');
|
|
57
56
|
const getSubscriptionModifiers = require('./getSubscriptionModifiers');
|
|
58
|
-
const getStarchModifier = require('./getStarchModifier');
|
|
59
57
|
const getService = require('./getService');
|
|
60
58
|
const getSplittedModifiers = require('./getSplittedModifiers');
|
|
61
59
|
const getSuggestion = require('./getSuggestion');
|
|
@@ -204,7 +202,6 @@ const modifierActions = (deps = {}) => {
|
|
|
204
202
|
getImages: getImages(innerDeps),
|
|
205
203
|
getInheritedModifiers: getInheritedModifiers(innerDeps),
|
|
206
204
|
getItemModifiers: getItemModifiers(innerDeps),
|
|
207
|
-
getLaundryModifiers: getLaundryModifiers(innerDeps),
|
|
208
205
|
getMatchTagsModifiers: getMatchTagsModifiers(innerDeps),
|
|
209
206
|
getModifierIndex: getModifierIndex(innerDeps),
|
|
210
207
|
getModifiersByMaxSort: getModifiersByMaxSort(innerDeps),
|
|
@@ -218,7 +215,6 @@ const modifierActions = (deps = {}) => {
|
|
|
218
215
|
getSelectedValues: getSelectedValues(innerDeps),
|
|
219
216
|
getSubscriptionItem: getSubscriptionItem(innerDeps),
|
|
220
217
|
getSubscriptionModifiers: getSubscriptionModifiers(innerDeps),
|
|
221
|
-
getStarchModifier: getStarchModifier(innerDeps),
|
|
222
218
|
getService: getService(innerDeps),
|
|
223
219
|
getSplittedModifiers: getSplittedModifiers(innerDeps),
|
|
224
220
|
getSuggestion: getSuggestion(innerDeps),
|
|
@@ -3,6 +3,6 @@ module.exports = ({ settings, _ }) => {
|
|
|
3
3
|
|
|
4
4
|
return function isPreferences(modifier) {
|
|
5
5
|
const preferences = getPreferencesSettings();
|
|
6
|
-
return modifier.group && preferences.includes(modifier.group
|
|
6
|
+
return modifier.group && preferences.includes(modifier.group);
|
|
7
7
|
};
|
|
8
8
|
};
|
package/lib/order/addItem.js
CHANGED
|
@@ -106,7 +106,6 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
106
106
|
order: orderProp,
|
|
107
107
|
item,
|
|
108
108
|
itemIndex,
|
|
109
|
-
cache,
|
|
110
109
|
overridenQuantity,
|
|
111
110
|
}) {
|
|
112
111
|
if (!orderProp || !item) return orderProp;
|
|
@@ -153,8 +152,9 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
153
152
|
|
|
154
153
|
if (!combined) {
|
|
155
154
|
// add price
|
|
155
|
+
|
|
156
156
|
orderItem.price = itemActions.getItemPrice({
|
|
157
|
-
|
|
157
|
+
itemPriceLevels: item.priceLevels,
|
|
158
158
|
customer,
|
|
159
159
|
item: orderItem,
|
|
160
160
|
});
|
|
@@ -178,7 +178,6 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
178
178
|
let requiredModifiers = modifierActions.getItemModifiers({
|
|
179
179
|
modifiers: itemModifiers,
|
|
180
180
|
customer,
|
|
181
|
-
cache,
|
|
182
181
|
});
|
|
183
182
|
// Do not add again if they are already there
|
|
184
183
|
if (
|
|
@@ -203,7 +202,7 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
203
202
|
order,
|
|
204
203
|
item: orderItem,
|
|
205
204
|
combined,
|
|
206
|
-
|
|
205
|
+
originalItem: item,
|
|
207
206
|
});
|
|
208
207
|
|
|
209
208
|
const params = addOrderItem({
|
|
@@ -227,7 +226,7 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
227
226
|
itemIndex: nextItemIndex,
|
|
228
227
|
order: acc,
|
|
229
228
|
modifier,
|
|
230
|
-
|
|
229
|
+
originalItem: item,
|
|
231
230
|
}),
|
|
232
231
|
nextOrder
|
|
233
232
|
);
|
|
@@ -98,11 +98,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
98
98
|
modifier: _modifier,
|
|
99
99
|
item: itemProp,
|
|
100
100
|
customer,
|
|
101
|
-
|
|
102
|
-
modifiers: [],
|
|
103
|
-
items: [],
|
|
104
|
-
itemModifiers: [],
|
|
105
|
-
},
|
|
101
|
+
originalItem,
|
|
106
102
|
onConditionsNotMet,
|
|
107
103
|
}) => {
|
|
108
104
|
const modifier = _modifier; // to avoid no param reassign lint rule
|
|
@@ -164,7 +160,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
164
160
|
};
|
|
165
161
|
item.price = itemActions.getItemPrice({
|
|
166
162
|
item,
|
|
167
|
-
|
|
163
|
+
itemPriceLevels: originalItem ? originalItem.priceLevels : undefined,
|
|
168
164
|
customer,
|
|
169
165
|
});
|
|
170
166
|
}
|
|
@@ -175,7 +171,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
175
171
|
order: orderProp,
|
|
176
172
|
modifier,
|
|
177
173
|
itemIndex,
|
|
178
|
-
|
|
174
|
+
originalItem,
|
|
179
175
|
onConditionsNotMet,
|
|
180
176
|
onError,
|
|
181
177
|
}) {
|
|
@@ -219,7 +215,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
219
215
|
order,
|
|
220
216
|
modifier,
|
|
221
217
|
itemIndex,
|
|
222
|
-
|
|
218
|
+
originalItem,
|
|
223
219
|
});
|
|
224
220
|
return order;
|
|
225
221
|
}
|
|
@@ -237,26 +233,23 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
237
233
|
item = addModifier({
|
|
238
234
|
item,
|
|
239
235
|
modifier,
|
|
240
|
-
|
|
236
|
+
originalItem,
|
|
241
237
|
customer,
|
|
242
238
|
onConditionsNotMet,
|
|
243
239
|
});
|
|
244
240
|
|
|
245
241
|
// Recursive Rules:
|
|
246
242
|
if (modifierActions.hasAddModifiers(modifier)) {
|
|
247
|
-
|
|
248
|
-
modifier
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
relatedModifiers = relatedModifiers.filter(
|
|
252
|
-
each => !modifierActions.contains(item.modifiers, each)
|
|
253
|
-
);
|
|
243
|
+
const relatedModifiers = modifierActions
|
|
244
|
+
.getRelatedModifiers({ modifier })
|
|
245
|
+
.filter(each => !modifierActions.contains(item.modifiers, each));
|
|
246
|
+
|
|
254
247
|
item = relatedModifiers.reduce(
|
|
255
248
|
(acc, each) =>
|
|
256
249
|
addModifier({
|
|
257
250
|
item: acc,
|
|
258
251
|
modifier: each,
|
|
259
|
-
|
|
252
|
+
originalItem,
|
|
260
253
|
customer,
|
|
261
254
|
}),
|
|
262
255
|
item
|
|
@@ -280,7 +273,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
280
273
|
},
|
|
281
274
|
},
|
|
282
275
|
order: acc,
|
|
283
|
-
|
|
276
|
+
originalItem,
|
|
284
277
|
});
|
|
285
278
|
return nextOrder;
|
|
286
279
|
}, order);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module.exports = ({ actions }) =>
|
|
2
|
-
function addModifierToAllItems({ order, modifier,
|
|
2
|
+
function addModifierToAllItems({ order, modifier, originalItems }) {
|
|
3
3
|
if (!order || !Array.isArray(order.items) || !modifier) return order;
|
|
4
4
|
|
|
5
5
|
const nextOrder = Object.entries(order.items).reduce(
|
|
@@ -8,7 +8,7 @@ module.exports = ({ actions }) =>
|
|
|
8
8
|
itemIndex,
|
|
9
9
|
modifier,
|
|
10
10
|
order: acc,
|
|
11
|
-
|
|
11
|
+
originalItems,
|
|
12
12
|
}),
|
|
13
13
|
order
|
|
14
14
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
2
2
|
const { math } = utils;
|
|
3
3
|
|
|
4
|
-
return ({ order, item, combined,
|
|
4
|
+
return ({ order, item, combined, originalItem }) => {
|
|
5
5
|
const [hasSubscription, remaining, used] = actions.hasRemainingSubscription(
|
|
6
6
|
{
|
|
7
7
|
order,
|
|
@@ -20,7 +20,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
20
20
|
orderItem = itemActions.removeModifiers({
|
|
21
21
|
item: orderItem,
|
|
22
22
|
modifiers: subscriptionModifiers,
|
|
23
|
-
|
|
23
|
+
originalItem,
|
|
24
24
|
customer: order.customer,
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -34,14 +34,13 @@ module.exports = ({ actions, modifierActions, itemActions, utils, _ }) => {
|
|
|
34
34
|
order: orderProp,
|
|
35
35
|
modifier,
|
|
36
36
|
itemIndex,
|
|
37
|
-
|
|
37
|
+
originalItem,
|
|
38
38
|
}) {
|
|
39
39
|
const order = _.cloneDeep(orderProp);
|
|
40
40
|
if (!order || itemIndex < 0 || !modifier) return order;
|
|
41
41
|
|
|
42
42
|
let item = actions.getSelectedItem({ order, itemIndex });
|
|
43
43
|
const customer = actions.getCustomer(order);
|
|
44
|
-
const originalItem = cache.items.find(_item => _item._id === item.itemId);
|
|
45
44
|
const contains = modifierActions.contains(item.modifiers, modifier);
|
|
46
45
|
|
|
47
46
|
if (!contains) return order;
|
|
@@ -59,7 +58,7 @@ module.exports = ({ actions, modifierActions, itemActions, utils, _ }) => {
|
|
|
59
58
|
});
|
|
60
59
|
item.price = itemActions.getItemPrice({
|
|
61
60
|
item,
|
|
62
|
-
|
|
61
|
+
itemPriceLevels: originalItem ? originalItem.priceLevels : undefined,
|
|
63
62
|
customer,
|
|
64
63
|
});
|
|
65
64
|
order.items[itemIndex] = item;
|
package/lib/order/setCustomer.js
CHANGED
|
@@ -2,7 +2,7 @@ module.exports = ({ itemActions, modifierActions, _ }) => {
|
|
|
2
2
|
const getTags = customer =>
|
|
3
3
|
(customer.tags || []).map(tag => tag.toLowerCase());
|
|
4
4
|
|
|
5
|
-
return function setCustomer({ order, customer,
|
|
5
|
+
return function setCustomer({ order, customer, originalItems }) {
|
|
6
6
|
if (!order) return null;
|
|
7
7
|
|
|
8
8
|
const { items = [] } = order;
|
|
@@ -20,19 +20,22 @@ module.exports = ({ itemActions, modifierActions, _ }) => {
|
|
|
20
20
|
|
|
21
21
|
nextOrder.items = items.map(nextItem => {
|
|
22
22
|
const { itemModifiers, ...item } = nextItem;
|
|
23
|
-
const originalItem = itemActions.findOriginalItem({
|
|
23
|
+
const originalItem = itemActions.findOriginalItem({
|
|
24
|
+
item,
|
|
25
|
+
originalItems,
|
|
26
|
+
});
|
|
27
|
+
|
|
24
28
|
if (!originalItem) return item;
|
|
25
29
|
|
|
26
30
|
const newModifiers = modifierActions.getItemModifiers({
|
|
27
31
|
modifiers: itemModifiers,
|
|
28
32
|
customer,
|
|
29
|
-
cache,
|
|
30
33
|
});
|
|
31
34
|
|
|
32
35
|
const price = itemActions.getItemPrice({
|
|
33
36
|
item,
|
|
34
37
|
customer,
|
|
35
|
-
|
|
38
|
+
itemPriceLevels: originalItem.priceLevels,
|
|
36
39
|
});
|
|
37
40
|
|
|
38
41
|
const filterExistingModifiers = () =>
|
|
@@ -5,7 +5,7 @@ module.exports = ({ actions, settings, _ }) => {
|
|
|
5
5
|
quantity,
|
|
6
6
|
itemIndex,
|
|
7
7
|
reset,
|
|
8
|
-
|
|
8
|
+
originalItem,
|
|
9
9
|
}) {
|
|
10
10
|
const item = actions.getSelectedItem({ order, itemIndex });
|
|
11
11
|
const isBefore = orderSettings.useKeypadOnItemAdd === 'before';
|
|
@@ -27,7 +27,7 @@ module.exports = ({ actions, settings, _ }) => {
|
|
|
27
27
|
const result = actions.addItem({
|
|
28
28
|
order,
|
|
29
29
|
item: { isPending: true },
|
|
30
|
-
|
|
30
|
+
originalItem,
|
|
31
31
|
overridenQuantity: quantity,
|
|
32
32
|
});
|
|
33
33
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darkpos/pricing",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.60",
|
|
4
4
|
"description": "Pricing calculator",
|
|
5
5
|
"author": "Dark POS",
|
|
6
6
|
"license": "ISC",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"supertest": "^6.2.3",
|
|
46
46
|
"supervisor": "^0.12.0"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "35464665224775509b837dfca3405adc2c7a881a"
|
|
49
49
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module.exports = ({ actions }) =>
|
|
2
|
-
function getStarchModifier({ modifiers, starch, cache = {} }) {
|
|
3
|
-
const laundryModifiers = actions.getLaundryModifiers(modifiers);
|
|
4
|
-
|
|
5
|
-
if (cache && cache.modifiers && laundryModifiers.length && starch)
|
|
6
|
-
return actions.findById(cache.modifiers, starch);
|
|
7
|
-
|
|
8
|
-
return null;
|
|
9
|
-
};
|