@darkpos/pricing 1.0.76 → 1.0.77

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.
@@ -19,10 +19,9 @@ describe('pickEndDate function', () => {
19
19
  test('Get EndDate, today is an Skip date', () => {
20
20
  const schedule = {
21
21
  addDays: 1,
22
- hour: 17,
23
- minute: 0,
24
22
  skipDays: [7],
25
23
  cutHour: { hour: 16, minute: 0 },
24
+ readyHour: { hour: 17, minute: 0 },
26
25
  cutDay: 2,
27
26
  };
28
27
 
@@ -37,8 +36,7 @@ describe('pickEndDate function', () => {
37
36
  test('Order falls on a closed day', () => {
38
37
  const schedule = {
39
38
  addDays: 1,
40
- hour: 14,
41
- minute: 0,
39
+ readyHour: { hour: 14, minute: 0 },
42
40
  skipDays: [7], // Skip Sunday
43
41
  cutHour: { hour: 16, minute: 0 },
44
42
  cutDay: 2,
@@ -55,8 +53,7 @@ describe('pickEndDate function', () => {
55
53
  test('Get endDate if today is friday and Saturday and Sunday are skip days', () => {
56
54
  const schedule = {
57
55
  addDays: 1,
58
- hour: 17,
59
- minute: 0,
56
+ readyHour: { hour: 17, minute: 0 },
60
57
  skipDays: [6, 7], // Skip Saturday and Sunday
61
58
  cutHour: { hour: 16, minute: 0 },
62
59
  cutDay: 5,
@@ -73,8 +70,7 @@ describe('pickEndDate function', () => {
73
70
  test('Order time before cut-off hour', () => {
74
71
  const schedule = {
75
72
  addDays: 0, // Same day
76
- hour: 17,
77
- minute: 0,
73
+ readyHour: { hour: 17, minute: 0 },
78
74
  skipDays: [],
79
75
  cutHour: { hour: 16, minute: 0 }, // Cut-off at 4 PM
80
76
  cutDay: 5,
@@ -90,18 +86,13 @@ describe('pickEndDate function', () => {
90
86
 
91
87
  test('Order time after cut-off hour', () => {
92
88
  const schedule = {
93
- hour: 17,
94
- minute: 0,
89
+ readyHour: { hour: 17, minute: 0 },
95
90
  cutDay: 5,
96
91
  skipDays: [],
97
92
  cutHour: {
98
93
  hour: 0,
99
94
  minute: 0,
100
95
  },
101
- time: {
102
- hour: 16,
103
- minute: 0,
104
- },
105
96
  addDays: 1,
106
97
  recommended: 'nothing_recommended',
107
98
  };
@@ -117,8 +108,7 @@ describe('pickEndDate function', () => {
117
108
  test('Get EndDate, there are skip dates in between', () => {
118
109
  const schedule = {
119
110
  addDays: 1,
120
- hour: 17,
121
- minute: 0,
111
+ readyHour: { hour: 17, minute: 0 },
122
112
  skipDays: [7, 0],
123
113
  cutHour: { hour: 16, minute: 0 },
124
114
  cutDay: 2,
@@ -135,8 +125,7 @@ describe('pickEndDate function', () => {
135
125
  test('Get EndDate, Now date is an skip day', () => {
136
126
  const schedule = {
137
127
  addDays: 1,
138
- hour: 20,
139
- minute: 0,
128
+ readyHour: { hour: 20, minute: 0 },
140
129
  skipDays: [1, 7],
141
130
  cutHour: { hour: 16, minute: 0 },
142
131
  cutDay: 2,
@@ -1,13 +1,22 @@
1
1
  module.exports = ({ actions, settings }) =>
2
2
  function getRecommendedEndDate() {
3
- const defaultSchedule =
3
+ const readySchedule =
4
4
  settings.order &&
5
5
  settings.order.endDate &&
6
- settings.order.endDate.default;
6
+ settings.order.endDate.readySchedule;
7
7
 
8
- return defaultSchedule
9
- ? actions.pickEndDate({
10
- ...defaultSchedule,
11
- })
12
- : null;
8
+ if (readySchedule) {
9
+ const dayOfWeek = new Date().getDay();
10
+ const day = dayOfWeek || 7;
11
+ const schedule = settings.order.endDate.readySchedule.find(item =>
12
+ item.dayOfWeek.includes(day)
13
+ );
14
+ return schedule
15
+ ? actions.pickEndDate({
16
+ ...schedule,
17
+ })
18
+ : null;
19
+ }
20
+
21
+ return null;
13
22
  };
@@ -13,8 +13,7 @@ module.exports = ({ settings, _, moment }) => {
13
13
  return function pickEndDate(schedule = {}) {
14
14
  const {
15
15
  addDays: addDaysParam,
16
- hour,
17
- minute,
16
+ readyHour,
18
17
  skipDays = [],
19
18
  cutHour,
20
19
  cutDay = 0,
@@ -33,13 +32,16 @@ module.exports = ({ settings, _, moment }) => {
33
32
 
34
33
  if (
35
34
  (cutHour && todayHours > cutHour.hour) ||
36
- (todayHours >= cutHour.hour && todayMinutes > cutHour.minute)
35
+ (cutHour && todayHours >= cutHour.hour && todayMinutes > cutHour.minute)
37
36
  ) {
38
37
  endDateTZ = endDateTZ.add(cutDay, 'days');
39
38
  }
40
39
 
41
- if (hour !== undefined) endDateTZ.set('hour', hour);
42
- if (minute !== undefined) endDateTZ.set('minute', minute);
40
+ if (readyHour && readyHour.hour !== undefined)
41
+ endDateTZ.set('hour', readyHour.hour);
42
+ if (readyHour && readyHour.minute !== undefined)
43
+ endDateTZ.set('minute', readyHour.minute);
44
+
43
45
  endDateTZ.set('second', 0);
44
46
 
45
47
  const isSkipDay = endDateIsoWeekDay => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darkpos/pricing",
3
- "version": "1.0.76",
3
+ "version": "1.0.77",
4
4
  "description": "Pricing calculator",
5
5
  "author": "Dark POS",
6
6
  "license": "ISC",
@@ -51,5 +51,5 @@
51
51
  "supertest": "^6.2.3",
52
52
  "supervisor": "^0.12.0"
53
53
  },
54
- "gitHead": "195250ff6ff1f2b38a7c47003006b8d2dcb2048b"
54
+ "gitHead": "5ef669119ac8baec449e3c0aee06151d0cd4ad63"
55
55
  }