@darkpos/pricing 1.0.43 → 1.0.45

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 (79) hide show
  1. package/__TEST__/item/getItemsModifierDescription.test.js +75 -78
  2. package/__TEST__/mocks/addItemMock.js +18729 -19357
  3. package/__TEST__/mocks/partially-paid/order-modifiers.json +48 -51
  4. package/__TEST__/mocks/partially-paid/order-partially-paid.json +893 -860
  5. package/__TEST__/mocks/scripts/calculate-partially-paid/index.js +2 -2
  6. package/__TEST__/mocks/scripts/calculate-unpaid/index.js +2 -2
  7. package/__TEST__/mocks/unpaid/order-modifiers.json +48 -52
  8. package/__TEST__/modifier/calculate.test.js +1 -0
  9. package/__TEST__/modifier/getMatchTagsModifiers.test.js +72 -18
  10. package/__TEST__/modifier/getModifierIndex.test.js +10 -7
  11. package/__TEST__/modifier/getRecommendedModifiers.test.js +6 -4
  12. package/__TEST__/modifier/hasAttribute.test.js +11 -5
  13. package/__TEST__/modifier/hasMatchTags.test.js +33 -11
  14. package/__TEST__/modifier/sort.test.js +1 -1
  15. package/__TEST__/order/conditionsNotMet.test.js +133 -0
  16. package/__TEST__/order/manualSplit.test.js +104 -0
  17. package/__TEST__/order/order-payment-modifier.test.js +1117 -0
  18. package/__TEST__/order/order.test.js +53 -105
  19. package/__TEST__/order/pickEndDate.test.js +7 -153
  20. package/__TEST__/order/validateConditionsCalculate.test.js +396 -0
  21. package/lib/constants/index.js +1 -1
  22. package/lib/index.js +11 -2
  23. package/lib/item/calculate.js +93 -18
  24. package/lib/item/getAmounts.js +14 -0
  25. package/lib/item/getBalance.js +0 -1
  26. package/lib/item/getItemModifiersDescription.js +1 -0
  27. package/lib/item/getItemsBalance.js +9 -0
  28. package/lib/item/getItemsTotals.js +27 -0
  29. package/lib/item/getTotal.js +3 -1
  30. package/lib/item/hasPaymentMethodType.js +17 -0
  31. package/lib/item/hasPaymentModifierWithPaymentId.js +9 -0
  32. package/lib/item/index.js +15 -8
  33. package/lib/item/removePaymentModifiersByPaymentId.js +13 -0
  34. package/lib/modifier/areConditionsMet.js +61 -0
  35. package/lib/modifier/calculatePaymentDiscountModifier.js +31 -0
  36. package/lib/modifier/calculatePaymentFeeModifier.js +27 -0
  37. package/lib/modifier/calculatePaymentModifier.js +67 -0
  38. package/lib/modifier/createDiscountModifier.js +2 -1
  39. package/lib/modifier/createFeeModifier.js +2 -1
  40. package/lib/modifier/getChildren.js +8 -0
  41. package/lib/modifier/getComputedAmount.js +9 -0
  42. package/lib/modifier/hasPaymentMethodType.js +14 -0
  43. package/lib/modifier/index.js +33 -9
  44. package/lib/modifier/isCalculatedPaymentModifier.js +4 -0
  45. package/lib/modifier/isChild.js +6 -0
  46. package/lib/modifier/isDiscount.js +6 -2
  47. package/lib/modifier/isFee.js +5 -2
  48. package/lib/modifier/isPaymentMethodModifier.js +4 -1
  49. package/lib/modifier/isPaymentTypeModifier.js +4 -1
  50. package/lib/modifier/isPercentage.js +10 -0
  51. package/lib/modifier/isValid.js +12 -0
  52. package/lib/modifier/sort.js +28 -0
  53. package/lib/modifier/validate.js +14 -0
  54. package/lib/modifier/validateDateDaysDiff.js +30 -0
  55. package/lib/modifier/validateInArr.js +12 -0
  56. package/lib/modifier/validateNumberCondition.js +20 -0
  57. package/lib/modifier/validateRequiredModifiers.js +16 -0
  58. package/lib/order/addItemModifier.js +72 -28
  59. package/lib/order/applyPayment.js +61 -0
  60. package/lib/order/calculate.js +45 -22
  61. package/lib/order/getBalance.js +0 -1
  62. package/lib/order/getOrdersBalance.js +8 -0
  63. package/lib/order/index.js +9 -10
  64. package/lib/order/manualSplit.js +34 -0
  65. package/lib/order/manualSplitByQuantity.js +50 -0
  66. package/lib/store/getRecommendedEndDate.js +13 -0
  67. package/lib/store/index.js +25 -0
  68. package/package.json +6 -4
  69. package/lib/item/getBalanceToPay.js +0 -12
  70. package/lib/item/getTotals.js +0 -40
  71. package/lib/item/markModifiersAsLocked.js +0 -11
  72. package/lib/modifier/createPaymentModifier.js +0 -12
  73. package/lib/modifier/findByPaymentMethod.js +0 -10
  74. package/lib/modifier/findByPaymentType.js +0 -10
  75. package/lib/modifier/getLockedModifiers.js +0 -5
  76. package/lib/order/markModifiersAsLocked.js +0 -14
  77. package/lib/order/removeModifiersWithPaymentMethods.js +0 -29
  78. package/lib/order/removeModifiersWithPaymentTypes.js +0 -27
  79. package/lib/{order → store}/pickEndDate.js +2 -2
@@ -1,10 +0,0 @@
1
- module.exports = ({ actions }) =>
2
- function findByPaymentType({ modifiers, paymentType = '' }) {
3
- if (!Array.isArray(modifiers) || !paymentType) return null;
4
-
5
- return modifiers.find(
6
- each =>
7
- actions.isPaymentTypeModifier(each) &&
8
- each.conditions.paymentTypes.includes(paymentType)
9
- );
10
- };
@@ -1,5 +0,0 @@
1
- module.exports = () =>
2
- function getLockedModifiers(modifiers = []) {
3
- if (!Array.isArray(modifiers)) return [];
4
- return modifiers.filter(modifier => modifier.locked);
5
- };
@@ -1,14 +0,0 @@
1
- module.exports = ({ itemActions }) =>
2
- function markModifiersAsLocked({ order, modifierIds }) {
3
- if (!order || !Array.isArray(order.modifiers)) return {};
4
-
5
- return {
6
- ...order,
7
- modifiers: order.modifiers.map(mod =>
8
- modifierIds.includes(mod._id) ? { ...mod, locked: true } : mod
9
- ),
10
- items: (order.items || []).map(item =>
11
- itemActions.markModifiersAsLocked({ item, modifierIds })
12
- ),
13
- };
14
- };
@@ -1,29 +0,0 @@
1
- module.exports = () => {
2
- const hasPaymentMethods = modifier =>
3
- modifier.conditions &&
4
- Array.isArray(modifier.conditions.paymentMethods) &&
5
- modifier.conditions.paymentMethods.length;
6
-
7
- return function removeModifiersWithPaymentMethods({
8
- order,
9
- applyItems = false,
10
- }) {
11
- if (!order || !Array.isArray(order.modifiers)) return order;
12
-
13
- const newOrder = { ...order };
14
- newOrder.modifiers = order.modifiers.filter(
15
- each => !hasPaymentMethods(each)
16
- );
17
-
18
- if (applyItems && Array.isArray(order.items)) {
19
- newOrder.items = order.items.map(item => {
20
- if (!Array.isArray(item.modifiers)) return item;
21
- return {
22
- ...item,
23
- modifiers: item.modifiers.filter(each => !hasPaymentMethods(each)),
24
- };
25
- });
26
- }
27
- return newOrder;
28
- };
29
- };
@@ -1,27 +0,0 @@
1
- module.exports = () => {
2
- const hasPaymentTypes = modifier =>
3
- modifier.conditions &&
4
- Array.isArray(modifier.conditions.paymentTypes) &&
5
- modifier.conditions.paymentTypes.length;
6
-
7
- return function removeModifiersWithPaymentTypes({
8
- order,
9
- applyItems = false,
10
- }) {
11
- if (!order || !Array.isArray(order.modifiers)) return order;
12
-
13
- const newOrder = { ...order };
14
- newOrder.modifiers = order.modifiers.filter(each => !hasPaymentTypes(each));
15
-
16
- if (applyItems && Array.isArray(order.items)) {
17
- newOrder.items = order.items.map(item => {
18
- if (!Array.isArray(item.modifiers)) return item;
19
- return {
20
- ...item,
21
- modifiers: item.modifiers.filter(each => !hasPaymentTypes(each)),
22
- };
23
- });
24
- }
25
- return newOrder;
26
- };
27
- };
@@ -46,8 +46,6 @@ module.exports = ({ settings, _, moment }) => {
46
46
  /**
47
47
  * setting the hour and minute so we can compare with closedDays
48
48
  */
49
- if (hour !== undefined) endDateTZ.set('hour', hour);
50
- if (minute !== undefined) endDateTZ.set('minute', minute);
51
49
  closedDays.forEach(closed => {
52
50
  const closedDay = moment(closed.date);
53
51
  closedDay.set('hour', hour);
@@ -56,6 +54,8 @@ module.exports = ({ settings, _, moment }) => {
56
54
  endDateTZ.add(1, 'days');
57
55
  }
58
56
  });
57
+ if (hour !== undefined) endDateTZ.set('hour', hour);
58
+ if (minute !== undefined) endDateTZ.set('minute', minute);
59
59
 
60
60
  return moment.utc(endDateTZ).format();
61
61
  };