@zeniai/client-epic-state 4.8.23 → 4.8.24
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.
|
@@ -125,8 +125,18 @@ const getTotalPayments = (startDate, endDate, frequency, currentInstance) => {
|
|
|
125
125
|
pastPayments = currentInstance.instance - 1;
|
|
126
126
|
}
|
|
127
127
|
let totalPayments = 0;
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
switch (frequency) {
|
|
129
|
+
case 'weekly':
|
|
130
|
+
case 'biweekly':
|
|
131
|
+
totalPayments = endDate.diff(currentStartDate, 'day') / getRecurringFrequencyInDays(frequency);
|
|
132
|
+
break;
|
|
133
|
+
case 'monthly':
|
|
134
|
+
totalPayments = endDate.diff(currentStartDate, 'month');
|
|
135
|
+
break;
|
|
136
|
+
case 'quarterly':
|
|
137
|
+
totalPayments = endDate.diff(currentStartDate, 'quarter');
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
130
140
|
return Math.floor(totalPayments + pastPayments) + 1; //+1 to include startDate
|
|
131
141
|
};
|
|
132
142
|
exports.getTotalPayments = getTotalPayments;
|
|
@@ -138,17 +148,40 @@ const getEndDate = (startDate, frequency, totalPayments, currentInstance) => {
|
|
|
138
148
|
currentStartDate = currentInstance.vendorReceiveDate;
|
|
139
149
|
currentTotalPayments = totalPayments - currentInstance.instance + 1;
|
|
140
150
|
}
|
|
141
|
-
|
|
142
|
-
|
|
151
|
+
switch (frequency) {
|
|
152
|
+
case 'weekly':
|
|
153
|
+
case 'biweekly':
|
|
154
|
+
endDate = currentStartDate.add(getRecurringFrequencyInDays(frequency) * (currentTotalPayments - 1), 'day');
|
|
155
|
+
break;
|
|
156
|
+
case 'monthly':
|
|
157
|
+
endDate = currentStartDate.add(currentTotalPayments - 1, 'month');
|
|
158
|
+
break;
|
|
159
|
+
case 'quarterly':
|
|
160
|
+
endDate = currentStartDate.add(currentTotalPayments - 1, 'quarter');
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
143
163
|
return endDate;
|
|
144
164
|
};
|
|
145
165
|
exports.getEndDate = getEndDate;
|
|
146
166
|
function getRecurringBillInstances(startDate, frequency, totalPayments, currentInstance, billAmount) {
|
|
147
167
|
const updatedInstances = [];
|
|
148
|
-
const
|
|
168
|
+
const getRecurringFrequencyWithOffset = (frequency) => {
|
|
169
|
+
switch (frequency) {
|
|
170
|
+
case 'weekly':
|
|
171
|
+
return { offSetValue: getRecurringFrequencyInDays(frequency), offSetUnit: 'day' };
|
|
172
|
+
case 'biweekly':
|
|
173
|
+
return { offSetValue: getRecurringFrequencyInDays(frequency), offSetUnit: 'day' };
|
|
174
|
+
case 'monthly':
|
|
175
|
+
return { offSetValue: 1, offSetUnit: 'month' };
|
|
176
|
+
case 'quarterly':
|
|
177
|
+
return { offSetValue: 1, offSetUnit: 'quarter' };
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
const { offSetValue, offSetUnit } = getRecurringFrequencyWithOffset(frequency);
|
|
149
181
|
for (let i = 0; i < totalPayments; i++) {
|
|
150
|
-
updatedInstances.push(Object.assign({ instance: currentInstance + i, isDeleted: false, amount: billAmount }, checkIfHolidayAndGetNextDate(startDate.add(i * offSetValue,
|
|
182
|
+
updatedInstances.push(Object.assign({ instance: currentInstance + i, isDeleted: false, amount: billAmount }, checkIfHolidayAndGetNextDate(startDate.add(i * offSetValue, offSetUnit))));
|
|
151
183
|
}
|
|
184
|
+
;
|
|
152
185
|
return updatedInstances;
|
|
153
186
|
}
|
|
154
187
|
function getRecurringFrequencyInDays(frequency) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "4.8.
|
|
3
|
+
"version": "4.8.24",
|
|
4
4
|
"description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|