@darkpos/pricing 1.0.119 → 1.0.121
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__/modifier/getInvalidRequiredModifiers.test.js +38 -0
- package/lib/item/getInvalidRequiredModifiers.js +3 -2
- package/lib/item/getPipeModifiers.js +5 -3
- package/lib/modifier/index.js +2 -0
- package/lib/modifier/isEmptyOverride.js +14 -0
- package/lib/order/addItem.js +0 -5
- package/lib/order/addItemModifier.js +10 -2
- package/lib/order/removeItemModifier.js +6 -4
- package/package.json +2 -2
|
@@ -281,3 +281,41 @@ test('getInvalidRequiredModifiers having related items', () => {
|
|
|
281
281
|
name: 'White',
|
|
282
282
|
});
|
|
283
283
|
});
|
|
284
|
+
|
|
285
|
+
test('getInvalidRequiredModifiers having override modifiers', () => {
|
|
286
|
+
const item = {
|
|
287
|
+
modifiers: [
|
|
288
|
+
{
|
|
289
|
+
_id: '675354ee39a47228afd1f1a4',
|
|
290
|
+
attributes: ['override'],
|
|
291
|
+
modifierId: '6751f7eeb60c71cefee138ee',
|
|
292
|
+
name: 'Override modamount fixed 10',
|
|
293
|
+
group: 'Upcharge',
|
|
294
|
+
type: 'fee',
|
|
295
|
+
tags: ['default', 'all'],
|
|
296
|
+
direct: true,
|
|
297
|
+
required: true,
|
|
298
|
+
properties: {
|
|
299
|
+
override: {
|
|
300
|
+
type: 'fixed',
|
|
301
|
+
field: 'amount',
|
|
302
|
+
fixedValue: undefined,
|
|
303
|
+
multiplier: false,
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
],
|
|
308
|
+
_id: '67dc63610c106ab7d481d7dd',
|
|
309
|
+
itemId: '62cdbfd01ee1b4001932821a',
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
const response = pricingService.item.getInvalidRequiredModifiers({
|
|
313
|
+
item,
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
expect(response.length).toBe(1);
|
|
317
|
+
expect(response[0]).toMatchObject({
|
|
318
|
+
_id: '675354ee39a47228afd1f1a4',
|
|
319
|
+
name: 'Override modamount fixed 10',
|
|
320
|
+
});
|
|
321
|
+
});
|
|
@@ -6,8 +6,9 @@ module.exports = ({ modifierActions, actions }) =>
|
|
|
6
6
|
item.modifiers.forEach(modifier => {
|
|
7
7
|
if (
|
|
8
8
|
modifierActions.isRequired(modifier) &&
|
|
9
|
-
modifierActions.isGroup(modifier) &&
|
|
10
|
-
|
|
9
|
+
((modifierActions.isGroup(modifier) &&
|
|
10
|
+
!actions.hasModifier({ item, modifier, relatedItems })) ||
|
|
11
|
+
modifierActions.isEmptyOverride(modifier))
|
|
11
12
|
) {
|
|
12
13
|
invalidModifiers.push(modifier);
|
|
13
14
|
}
|
|
@@ -3,8 +3,10 @@ module.exports = ({ modifierActions }) =>
|
|
|
3
3
|
if (!item || !Array.isArray(item.modifiers)) return [];
|
|
4
4
|
return item.modifiers.filter(
|
|
5
5
|
modifier =>
|
|
6
|
-
modifierActions.
|
|
7
|
-
|
|
8
|
-
modifierActions.
|
|
6
|
+
(modifierActions.isRequired(modifier) ||
|
|
7
|
+
modifierActions.isDefault(modifier)) &&
|
|
8
|
+
((modifierActions.isGroup(modifier) &&
|
|
9
|
+
modifierActions.enableAutoPopup(modifier)) ||
|
|
10
|
+
modifierActions.isOverride(modifier))
|
|
9
11
|
);
|
|
10
12
|
};
|
package/lib/modifier/index.js
CHANGED
|
@@ -178,6 +178,7 @@ const isKeepRelatedItems = require('./isKeepRelatedItems');
|
|
|
178
178
|
const isSplitDepartment = require('./isSplitDepartment');
|
|
179
179
|
const isModifierValid = require('./isModifierValid');
|
|
180
180
|
const markModifierAsNotValid = require('./markModifierAsNotValid');
|
|
181
|
+
const isEmptyOverride = require('./isEmptyOverride');
|
|
181
182
|
|
|
182
183
|
const modifierActions = (deps = {}) => {
|
|
183
184
|
const actions = {};
|
|
@@ -369,6 +370,7 @@ const modifierActions = (deps = {}) => {
|
|
|
369
370
|
isSplitDepartment: isSplitDepartment(innerDeps),
|
|
370
371
|
isModifierValid: isModifierValid(innerDeps),
|
|
371
372
|
markModifierAsNotValid: markModifierAsNotValid(innerDeps),
|
|
373
|
+
isEmptyOverride: isEmptyOverride(innerDeps),
|
|
372
374
|
});
|
|
373
375
|
|
|
374
376
|
Object.keys(freezedActions).forEach(actionName => {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module.exports = ({ actions }) =>
|
|
2
|
+
function isEmptyOverride(modifier) {
|
|
3
|
+
if (!actions.isOverride(modifier) || actions.isNotesOverride(modifier))
|
|
4
|
+
return false;
|
|
5
|
+
const computeAmount = modifier.compute && modifier.compute.amount;
|
|
6
|
+
const { fixedValue } = modifier.properties.override;
|
|
7
|
+
|
|
8
|
+
console.log({ computeAmount, fixedValue });
|
|
9
|
+
|
|
10
|
+
const result =
|
|
11
|
+
typeof computeAmount !== 'number' && typeof fixedValue !== 'number';
|
|
12
|
+
|
|
13
|
+
return result;
|
|
14
|
+
};
|
package/lib/order/addItem.js
CHANGED
|
@@ -218,10 +218,6 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
218
218
|
let [nextOrder, nextItemIndex] = params;
|
|
219
219
|
const [, , nextItem] = params;
|
|
220
220
|
|
|
221
|
-
const overrideModifiers = modifiersToAdd.filter(modToAdd =>
|
|
222
|
-
modifierActions.isOverride(modToAdd)
|
|
223
|
-
);
|
|
224
|
-
|
|
225
221
|
if (modifiersToAdd.length) {
|
|
226
222
|
nextOrder = modifiersToAdd.reduce(
|
|
227
223
|
(acc, modifier) =>
|
|
@@ -287,7 +283,6 @@ module.exports = ({ actions, itemActions, modifierActions, settings, _ }) => {
|
|
|
287
283
|
updatedOrder: nextOrder,
|
|
288
284
|
itemIndex: nextItemIndex,
|
|
289
285
|
item: nextItem,
|
|
290
|
-
overrideModifiers,
|
|
291
286
|
};
|
|
292
287
|
};
|
|
293
288
|
};
|
|
@@ -67,7 +67,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
const customer = actions.getCustomer(order);
|
|
70
|
-
|
|
70
|
+
let contains =
|
|
71
71
|
!_.isEmpty(item.modifiers) &&
|
|
72
72
|
modifierActions.contains(
|
|
73
73
|
item.modifiers.filter(mod => !modifierActions.isGroupOfModifiers(mod)),
|
|
@@ -99,13 +99,21 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
99
99
|
return order;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
const isOverride = modifierActions.isOverride(modifier);
|
|
103
|
+
|
|
102
104
|
order = actions.removeItemModifier({
|
|
103
105
|
order,
|
|
104
106
|
modifier,
|
|
105
107
|
itemIndex,
|
|
106
108
|
originalItem,
|
|
109
|
+
forceRemove: isOverride,
|
|
107
110
|
});
|
|
108
|
-
|
|
111
|
+
|
|
112
|
+
if (!isOverride) {
|
|
113
|
+
return order;
|
|
114
|
+
}
|
|
115
|
+
contains = false;
|
|
116
|
+
item = actions.getSelectedItem({ order, itemIndex });
|
|
109
117
|
}
|
|
110
118
|
|
|
111
119
|
const modifiersToRemove = itemActions.getModifiersBySingleValueId({
|
|
@@ -17,14 +17,16 @@ module.exports = ({ actions, modifierActions, itemActions, _ }) => {
|
|
|
17
17
|
modifier,
|
|
18
18
|
itemIndex,
|
|
19
19
|
originalItem,
|
|
20
|
+
forceRemove,
|
|
20
21
|
}) {
|
|
21
22
|
const order = _.cloneDeep(orderProp);
|
|
22
23
|
|
|
23
24
|
if (
|
|
24
|
-
!
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
!forceRemove &&
|
|
26
|
+
(!order ||
|
|
27
|
+
itemIndex < 0 ||
|
|
28
|
+
!modifier ||
|
|
29
|
+
modifierActions.isRequired(modifier))
|
|
28
30
|
)
|
|
29
31
|
return order;
|
|
30
32
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darkpos/pricing",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.121",
|
|
4
4
|
"description": "Pricing calculator",
|
|
5
5
|
"author": "Dark POS",
|
|
6
6
|
"license": "ISC",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"supertest": "^6.2.3",
|
|
56
56
|
"supervisor": "^0.12.0"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "01eaaf2b2c151777c248a5368665265c52f31e8b"
|
|
59
59
|
}
|