@darkpos/pricing 1.0.61 → 1.0.62
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 -2
- package/lib/item/getModifierTags.js +0 -4
- package/lib/item/index.js +0 -2
- package/lib/item/removeModifier.js +2 -14
- package/lib/modifier/index.js +0 -18
- package/lib/order/addItemModifier.js +3 -19
- package/lib/order/removeItemModifier.js +1 -5
- package/package.json +2 -2
- package/lib/item/hasModifierWithValue.js +0 -11
- package/lib/modifier/addFile.js +0 -19
- package/lib/modifier/addImage.js +0 -18
- package/lib/modifier/createGroupValuesModifier.js +0 -29
- package/lib/modifier/getFiles.js +0 -5
- package/lib/modifier/getImages.js +0 -5
- package/lib/modifier/getSelectedValues.js +0 -7
- package/lib/modifier/isEditable.js +0 -10
- package/lib/modifier/isGroupOfValues.js +0 -13
- package/lib/modifier/isValueSelected.js +0 -7
|
@@ -526,7 +526,6 @@ const addItemMock = {
|
|
|
526
526
|
subscription: {},
|
|
527
527
|
override: {},
|
|
528
528
|
group: {
|
|
529
|
-
values: [],
|
|
530
529
|
displayType: 'card',
|
|
531
530
|
enableAutoPopup: false,
|
|
532
531
|
includeInGroup: true,
|
|
@@ -974,7 +973,6 @@ const addItemMock = {
|
|
|
974
973
|
subscription: {},
|
|
975
974
|
override: {},
|
|
976
975
|
group: {
|
|
977
|
-
values: [],
|
|
978
976
|
includeInGroup: true,
|
|
979
977
|
singleValue: false,
|
|
980
978
|
modifiers: [
|
package/lib/item/index.js
CHANGED
|
@@ -21,7 +21,6 @@ const getTotal = require('./getTotal');
|
|
|
21
21
|
const getPendingIndex = require('./getPendingIndex');
|
|
22
22
|
const getItemsTotals = require('./getItemsTotals');
|
|
23
23
|
const getNotIncludedModifiers = require('./getNotIncludedModifiers');
|
|
24
|
-
const hasModifierWithValue = require('./hasModifierWithValue');
|
|
25
24
|
const getItemsTotalPaid = require('./getItemsTotalPaid');
|
|
26
25
|
const getModifierTags = require('./getModifierTags');
|
|
27
26
|
const isRelatedItem = require('./isRelatedItem');
|
|
@@ -80,7 +79,6 @@ const itemActions = (deps = {}) => {
|
|
|
80
79
|
getPendingIndex: getPendingIndex(innerDeps),
|
|
81
80
|
getItemsTotals: getItemsTotals(innerDeps),
|
|
82
81
|
getNotIncludedModifiers: getNotIncludedModifiers(innerDeps),
|
|
83
|
-
hasModifierWithValue: hasModifierWithValue(innerDeps),
|
|
84
82
|
getItemsTotalPaid: getItemsTotalPaid(innerDeps),
|
|
85
83
|
getModifierTags: getModifierTags(innerDeps),
|
|
86
84
|
isRelatedItem: isRelatedItem(innerDeps),
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
module.exports = ({ modifierActions, _, actions }) => {
|
|
2
|
-
const
|
|
3
|
-
!!
|
|
4
|
-
|
|
5
|
-
const isValid = (itemModifiers, modifier) => {
|
|
6
|
-
if (!modifierActions.findById(itemModifiers, modifier._id)) return false;
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
!modifierActions.isGroupOfItems(modifier) &&
|
|
10
|
-
hasRelatedItems(itemModifiers)
|
|
11
|
-
)
|
|
12
|
-
return false;
|
|
13
|
-
|
|
14
|
-
return true;
|
|
15
|
-
};
|
|
2
|
+
const isValid = (itemModifiers, modifier) =>
|
|
3
|
+
!!modifierActions.findById(itemModifiers, modifier._id);
|
|
16
4
|
|
|
17
5
|
return function removeModifier({ item, modifier, customer, originalItem }) {
|
|
18
6
|
const nextItem = _.cloneDeep(item);
|
package/lib/modifier/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
//
|
|
2
|
-
const addFile = require('./addFile');
|
|
3
|
-
const addImage = require('./addImage');
|
|
4
2
|
const calculate = require('./calculate');
|
|
5
3
|
const contains = require('./contains');
|
|
6
4
|
const convertMenuModifiers = require('./convertMenuModifiers');
|
|
@@ -9,7 +7,6 @@ const createAmountOverrideModifier = require('./createAmountOverrideModifier');
|
|
|
9
7
|
const createCreditModifier = require('./createCreditModifier');
|
|
10
8
|
const createDiscountModifier = require('./createDiscountModifier');
|
|
11
9
|
const createFeeModifier = require('./createFeeModifier');
|
|
12
|
-
const createGroupValuesModifier = require('./createGroupValuesModifier');
|
|
13
10
|
const createIndirectModifier = require('./createIndirectModifier');
|
|
14
11
|
const createSubscriptionModifier = require('./createSubscriptionModifier');
|
|
15
12
|
const displayAsCard = require('./displayAsCard');
|
|
@@ -34,11 +31,9 @@ const getDescriptions = require('./getDescriptions');
|
|
|
34
31
|
const getEntityModifiers = require('./getEntityModifiers');
|
|
35
32
|
const getExtendedTags = require('./getExtendedTags');
|
|
36
33
|
const getEntityPromotions = require('./getEntityPromotions');
|
|
37
|
-
const getFiles = require('./getFiles');
|
|
38
34
|
const getGroupOfItemsModifiers = require('./getGroupOfItemsModifiers');
|
|
39
35
|
const getGroupRelatedModifiers = require('./getGroupRelatedModifiers');
|
|
40
36
|
const getGroupModifiers = require('./getGroupModifiers');
|
|
41
|
-
const getImages = require('./getImages');
|
|
42
37
|
const getItemModifiers = require('./getItemModifiers');
|
|
43
38
|
const getInheritedModifiers = require('./getInheritedModifiers');
|
|
44
39
|
const getMatchTagsModifiers = require('./getMatchTagsModifiers');
|
|
@@ -51,7 +46,6 @@ const getProperty = require('./getProperty');
|
|
|
51
46
|
const getRelatedModifiers = require('./getRelatedModifiers');
|
|
52
47
|
const getRecommendedModifiers = require('./getRecommendedModifiers');
|
|
53
48
|
const getRequiredModifiers = require('./getRequiredModifiers');
|
|
54
|
-
const getSelectedValues = require('./getSelectedValues');
|
|
55
49
|
const getSubscriptionItem = require('./getSubscriptionItem');
|
|
56
50
|
const getSubscriptionModifiers = require('./getSubscriptionModifiers');
|
|
57
51
|
const getService = require('./getService');
|
|
@@ -105,10 +99,7 @@ const isGratuity = require('./isGratuity');
|
|
|
105
99
|
const isPaymentMethodModifier = require('./isPaymentMethodModifier');
|
|
106
100
|
const isPaymentTypeModifier = require('./isPaymentTypeModifier');
|
|
107
101
|
const isPreferences = require('./isPreferences');
|
|
108
|
-
const isGroupOfValues = require('./isGroupOfValues');
|
|
109
102
|
const isCompact = require('./isCompact');
|
|
110
|
-
const isValueSelected = require('./isValueSelected');
|
|
111
|
-
const isEditable = require('./isEditable');
|
|
112
103
|
const isCredit = require('./isCredit');
|
|
113
104
|
const purifyModifiers = require('./purifyModifiers');
|
|
114
105
|
const sort = require('./sort');
|
|
@@ -159,8 +150,6 @@ const modifierActions = (deps = {}) => {
|
|
|
159
150
|
};
|
|
160
151
|
|
|
161
152
|
const freezedActions = Object.freeze({
|
|
162
|
-
addFile: addFile(innerDeps),
|
|
163
|
-
addImage: addImage(innerDeps),
|
|
164
153
|
calculate: calculate(innerDeps),
|
|
165
154
|
contains: contains(innerDeps),
|
|
166
155
|
convertMenuModifiers: convertMenuModifiers(innerDeps),
|
|
@@ -169,7 +158,6 @@ const modifierActions = (deps = {}) => {
|
|
|
169
158
|
createCreditModifier: createCreditModifier(innerDeps),
|
|
170
159
|
createDiscountModifier: createDiscountModifier(innerDeps),
|
|
171
160
|
createFeeModifier: createFeeModifier(innerDeps),
|
|
172
|
-
createGroupValuesModifier: createGroupValuesModifier(innerDeps),
|
|
173
161
|
createIndirectModifier: createIndirectModifier(innerDeps),
|
|
174
162
|
createSubscriptionModifier: createSubscriptionModifier(innerDeps),
|
|
175
163
|
displayAsCard: displayAsCard(innerDeps),
|
|
@@ -195,11 +183,9 @@ const modifierActions = (deps = {}) => {
|
|
|
195
183
|
getEntityModifiers: getEntityModifiers(innerDeps),
|
|
196
184
|
getExtendedTags: getExtendedTags(innerDeps),
|
|
197
185
|
getEntityPromotions: getEntityPromotions(innerDeps),
|
|
198
|
-
getFiles: getFiles(innerDeps),
|
|
199
186
|
getGroupRelatedModifiers: getGroupRelatedModifiers(innerDeps),
|
|
200
187
|
getGroupModifiers: getGroupModifiers(innerDeps),
|
|
201
188
|
getGroupOfItemsModifiers: getGroupOfItemsModifiers(innerDeps),
|
|
202
|
-
getImages: getImages(innerDeps),
|
|
203
189
|
getInheritedModifiers: getInheritedModifiers(innerDeps),
|
|
204
190
|
getItemModifiers: getItemModifiers(innerDeps),
|
|
205
191
|
getMatchTagsModifiers: getMatchTagsModifiers(innerDeps),
|
|
@@ -212,7 +198,6 @@ const modifierActions = (deps = {}) => {
|
|
|
212
198
|
getRelatedModifiers: getRelatedModifiers(innerDeps),
|
|
213
199
|
getRecommendedModifiers: getRecommendedModifiers(innerDeps),
|
|
214
200
|
getRequiredModifiers: getRequiredModifiers(innerDeps),
|
|
215
|
-
getSelectedValues: getSelectedValues(innerDeps),
|
|
216
201
|
getSubscriptionItem: getSubscriptionItem(innerDeps),
|
|
217
202
|
getSubscriptionModifiers: getSubscriptionModifiers(innerDeps),
|
|
218
203
|
getService: getService(innerDeps),
|
|
@@ -237,7 +222,6 @@ const modifierActions = (deps = {}) => {
|
|
|
237
222
|
includesInGroup: includesInGroup(innerDeps),
|
|
238
223
|
isTrackUsageSubscription: isTrackUsageSubscription(innerDeps),
|
|
239
224
|
isDirect: isDirect(innerDeps),
|
|
240
|
-
isEditable: isEditable(innerDeps),
|
|
241
225
|
isRemoveModifier: isRemoveModifier(innerDeps),
|
|
242
226
|
isGroupOfModifiers: isGroupOfModifiers(innerDeps),
|
|
243
227
|
isRequiredAndOverride: isRequiredAndOverride(innerDeps),
|
|
@@ -265,9 +249,7 @@ const modifierActions = (deps = {}) => {
|
|
|
265
249
|
isPaymentMethodModifier: isPaymentMethodModifier(innerDeps),
|
|
266
250
|
isPaymentTypeModifier: isPaymentTypeModifier(innerDeps),
|
|
267
251
|
isPreferences: isPreferences(innerDeps),
|
|
268
|
-
isGroupOfValues: isGroupOfValues(innerDeps),
|
|
269
252
|
isCompact: isCompact(innerDeps),
|
|
270
|
-
isValueSelected: isValueSelected(innerDeps),
|
|
271
253
|
isCredit: isCredit(innerDeps),
|
|
272
254
|
isIncluded: isIncluded(innerDeps),
|
|
273
255
|
purifyModifiers: purifyModifiers(innerDeps),
|
|
@@ -18,15 +18,6 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
18
18
|
);
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
const hasBehaivoralFields = modifier => {
|
|
22
|
-
if (
|
|
23
|
-
!modifierActions.hasRelatedItems(modifier) &&
|
|
24
|
-
modifierActions.isGroupOfItems(modifier)
|
|
25
|
-
)
|
|
26
|
-
return true;
|
|
27
|
-
return false;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
21
|
const areConditionsMet = (item, conditions) => {
|
|
31
22
|
const conditionsBag = [];
|
|
32
23
|
if (!conditions || !conditions.rules) return conditionsBag;
|
|
@@ -104,7 +95,6 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
104
95
|
const modifier = _modifier; // to avoid no param reassign lint rule
|
|
105
96
|
let item = { ...itemProp };
|
|
106
97
|
const compute = getComputeModField(modifier);
|
|
107
|
-
if (hasBehaivoralFields(modifier)) return item;
|
|
108
98
|
const conditionsBag = areConditionsMet(item, modifier.conditions);
|
|
109
99
|
const isAmountOverride = modifierActions.isAmountOverride(modifier);
|
|
110
100
|
const isPriceOverride = modifierActions.isPriceOverride(modifier);
|
|
@@ -117,11 +107,8 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
117
107
|
const modifierIndex = item.modifiers.findIndex(
|
|
118
108
|
ieach => ieach.modifierId === modifier._id
|
|
119
109
|
);
|
|
120
|
-
|
|
121
|
-
if (
|
|
122
|
-
modifierActions.isGroupOfValues(modifier) ||
|
|
123
|
-
(modifierActions.isOverride(modifier) && !isAmountOverride)
|
|
124
|
-
) {
|
|
110
|
+
|
|
111
|
+
if (modifierActions.isOverride(modifier) && !isAmountOverride) {
|
|
125
112
|
if (modifierIndex > -1) item.modifiers[modifierIndex] = modifierToAdd;
|
|
126
113
|
else item.modifiers.push(modifierToAdd);
|
|
127
114
|
} else {
|
|
@@ -206,10 +193,7 @@ module.exports = ({ actions, itemActions, modifierActions, utils, _ }) => {
|
|
|
206
193
|
if (
|
|
207
194
|
contains &&
|
|
208
195
|
usingCount >= item.quantity &&
|
|
209
|
-
!(
|
|
210
|
-
modifierActions.isGroupOfValues(modifier) ||
|
|
211
|
-
modifierActions.isOverride(modifier)
|
|
212
|
-
)
|
|
196
|
+
!modifierActions.isOverride(modifier)
|
|
213
197
|
) {
|
|
214
198
|
order = actions.removeItemModifier({
|
|
215
199
|
order,
|
|
@@ -44,11 +44,7 @@ module.exports = ({ actions, modifierActions, itemActions, utils, _ }) => {
|
|
|
44
44
|
const contains = modifierActions.contains(item.modifiers, modifier);
|
|
45
45
|
|
|
46
46
|
if (!contains) return order;
|
|
47
|
-
if (
|
|
48
|
-
modifierActions.isGroupOfValues(modifier) ||
|
|
49
|
-
modifierActions.isRequiredAndOverride(modifier)
|
|
50
|
-
)
|
|
51
|
-
return order;
|
|
47
|
+
if (modifierActions.isRequiredAndOverride(modifier)) return order;
|
|
52
48
|
|
|
53
49
|
// Remove
|
|
54
50
|
item = removeModifier({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darkpos/pricing",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.62",
|
|
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": "46945a727cbb12468ce5e88b5d28a37ec1d321ee"
|
|
49
49
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
module.exports = ({ modifierActions }) =>
|
|
2
|
-
function hasModifierWithValue({ item, modifier, value }) {
|
|
3
|
-
if (!item || !modifier || !item.modifiers) return false;
|
|
4
|
-
const relatedModifier = item.modifiers.find(
|
|
5
|
-
itemModifier => modifier._id === itemModifier.modifierId
|
|
6
|
-
);
|
|
7
|
-
return modifierActions.isValueSelected({
|
|
8
|
-
modifier: relatedModifier,
|
|
9
|
-
value,
|
|
10
|
-
});
|
|
11
|
-
};
|
package/lib/modifier/addFile.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
module.exports = ({ actions }) =>
|
|
2
|
-
function addFile({ modifier, file, add = true }) {
|
|
3
|
-
if (!modifier || !file || !actions.isGroupOfValues(modifier)) return null;
|
|
4
|
-
let files = [...(modifier.properties.group.files || [])];
|
|
5
|
-
|
|
6
|
-
if (add) files.push(file);
|
|
7
|
-
else files = files.filter(each => each._id !== file._id);
|
|
8
|
-
|
|
9
|
-
return {
|
|
10
|
-
...modifier,
|
|
11
|
-
properties: {
|
|
12
|
-
...modifier.properties,
|
|
13
|
-
group: {
|
|
14
|
-
...modifier.properties.group,
|
|
15
|
-
files,
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
};
|
package/lib/modifier/addImage.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
module.exports = ({ actions }) =>
|
|
2
|
-
function addImage({ modifier, image, add = true }) {
|
|
3
|
-
if (!modifier || !image || !actions.isGroupOfValues(modifier)) return null;
|
|
4
|
-
let images = [...(modifier.properties.group.images || [])];
|
|
5
|
-
if (add) images.push(image);
|
|
6
|
-
else images = images.filter(each => each !== image);
|
|
7
|
-
|
|
8
|
-
return {
|
|
9
|
-
...modifier,
|
|
10
|
-
properties: {
|
|
11
|
-
...modifier.properties,
|
|
12
|
-
group: {
|
|
13
|
-
...modifier.properties.group,
|
|
14
|
-
images,
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module.exports = ({ actions }) =>
|
|
2
|
-
function createGroupValuesModifier({ modifier, value, add = false }) {
|
|
3
|
-
if (!modifier || !value || !actions.isGroupOfValues(modifier)) return null;
|
|
4
|
-
|
|
5
|
-
const multiSelect = !actions.isSingleValue(modifier);
|
|
6
|
-
let selectedValues = [];
|
|
7
|
-
const modifierValues = [...modifier.properties.group.values, value];
|
|
8
|
-
|
|
9
|
-
if (!add) {
|
|
10
|
-
selectedValues = [...(modifier.properties.group.selectedValues || [])];
|
|
11
|
-
const remove = selectedValues.includes(value);
|
|
12
|
-
if (remove)
|
|
13
|
-
selectedValues = selectedValues.filter(each => each !== value);
|
|
14
|
-
else if (multiSelect) selectedValues.push(value);
|
|
15
|
-
else selectedValues = [value];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return {
|
|
19
|
-
...modifier,
|
|
20
|
-
properties: {
|
|
21
|
-
...modifier.properties,
|
|
22
|
-
group: {
|
|
23
|
-
...modifier.properties.group,
|
|
24
|
-
selectedValues,
|
|
25
|
-
values: add ? [...new Set(modifierValues)] : [],
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
};
|
package/lib/modifier/getFiles.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
module.exports = ({ actions }) =>
|
|
2
|
-
function getSelectedValues(modifier) {
|
|
3
|
-
if (!actions.isGroupOfValues(modifier)) return null;
|
|
4
|
-
if (Array.isArray(modifier.properties.group.selectedValues))
|
|
5
|
-
return modifier.properties.group.selectedValues.join(', ');
|
|
6
|
-
return null;
|
|
7
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = ({ actions, constants }) => {
|
|
2
|
-
const { Modifier } = constants;
|
|
3
|
-
return function isGroupOfValues(modifier) {
|
|
4
|
-
const { properties = {} } = modifier || {};
|
|
5
|
-
return !!(
|
|
6
|
-
actions.hasAttribute(modifier, Modifier.Attributes.GROUP) &&
|
|
7
|
-
properties &&
|
|
8
|
-
properties.group &&
|
|
9
|
-
((properties.group.values || []).length ||
|
|
10
|
-
(properties.group.selectedValues || []).length)
|
|
11
|
-
);
|
|
12
|
-
};
|
|
13
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
module.exports = ({ actions }) =>
|
|
2
|
-
function isValueSelected({ modifier, value }) {
|
|
3
|
-
if (!modifier || !value) return false;
|
|
4
|
-
if (!actions.isGroupOfValues(modifier)) return false;
|
|
5
|
-
if (!Array.isArray(modifier.properties.group.selectedValues)) return false;
|
|
6
|
-
return modifier.properties.group.selectedValues.includes(value);
|
|
7
|
-
};
|