@escapenavigator/utils 1.9.31 → 1.9.33
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/dist/get-cancelation-fee-amount/index.d.ts +2 -1
- package/dist/get-cancelation-fee-amount/index.js +9 -6
- package/dist/get-cancelation-fee-amount/index.test.js +14 -0
- package/dist/get-order-cancelation-state/index.d.ts +2 -1
- package/dist/get-order-cancelation-state/index.js +2 -1
- package/dist/get-order-cancelation-state/index.test.js +8 -0
- package/package.json +3 -3
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { QuestroomCancelationTypeEnum } from '@escapenavigator/types/dist/questroom/enum/questroom-cancelation-type.enum';
|
|
2
|
-
export declare const getCancelationFeeAmount: ({ cancelationRule, total, minimalPrice, cancelationAmount, }: {
|
|
2
|
+
export declare const getCancelationFeeAmount: ({ cancelationRule, total, minimalPrice, cancelationAmount, slotDiscount, }: {
|
|
3
3
|
cancelationRule: QuestroomCancelationTypeEnum;
|
|
4
4
|
total: number;
|
|
5
5
|
minimalPrice: number;
|
|
6
6
|
cancelationAmount: number;
|
|
7
|
+
slotDiscount: number;
|
|
7
8
|
}) => number;
|
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCancelationFeeAmount = void 0;
|
|
4
4
|
const questroom_cancelation_type_enum_1 = require("@escapenavigator/types/dist/questroom/enum/questroom-cancelation-type.enum");
|
|
5
|
-
const getCancelationFeeAmount = ({ cancelationRule, total, minimalPrice, cancelationAmount, }) => {
|
|
5
|
+
const getCancelationFeeAmount = ({ cancelationRule, total, minimalPrice, cancelationAmount, slotDiscount = 0, }) => {
|
|
6
|
+
const actualAmount = total - slotDiscount;
|
|
6
7
|
switch (cancelationRule) {
|
|
7
8
|
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.MIN_PRICE:
|
|
8
|
-
return minimalPrice;
|
|
9
|
+
return minimalPrice > actualAmount ? actualAmount : minimalPrice;
|
|
9
10
|
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FIXED:
|
|
10
|
-
return cancelationAmount;
|
|
11
|
-
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.HALF_PRICE:
|
|
12
|
-
|
|
11
|
+
return cancelationAmount > actualAmount ? actualAmount : cancelationAmount;
|
|
12
|
+
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.HALF_PRICE: {
|
|
13
|
+
const fine = Math.floor(total / 2) - slotDiscount;
|
|
14
|
+
return fine > actualAmount ? actualAmount : fine;
|
|
15
|
+
}
|
|
13
16
|
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE:
|
|
14
|
-
return total;
|
|
17
|
+
return total - slotDiscount;
|
|
15
18
|
default:
|
|
16
19
|
return 0;
|
|
17
20
|
}
|
|
@@ -8,15 +8,27 @@ describe('getCancelationFeeAmount function', () => {
|
|
|
8
8
|
cancelationAmount: 0,
|
|
9
9
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
10
10
|
total: 100,
|
|
11
|
+
slotDiscount: 0,
|
|
11
12
|
minimalPrice: 20,
|
|
12
13
|
});
|
|
13
14
|
expect(result).toBe(100);
|
|
14
15
|
});
|
|
16
|
+
test('should return correct FULL_PRICE', () => {
|
|
17
|
+
const result = (0, _1.getCancelationFeeAmount)({
|
|
18
|
+
cancelationAmount: 0,
|
|
19
|
+
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
20
|
+
total: 100,
|
|
21
|
+
slotDiscount: 20,
|
|
22
|
+
minimalPrice: 20,
|
|
23
|
+
});
|
|
24
|
+
expect(result).toBe(80);
|
|
25
|
+
});
|
|
15
26
|
test('should return correct QuestroomCancelationTypeEnum HALF_PRICE', () => {
|
|
16
27
|
const result = (0, _1.getCancelationFeeAmount)({
|
|
17
28
|
cancelationAmount: 0,
|
|
18
29
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.HALF_PRICE,
|
|
19
30
|
total: 100,
|
|
31
|
+
slotDiscount: 0,
|
|
20
32
|
minimalPrice: 20,
|
|
21
33
|
});
|
|
22
34
|
expect(result).toBe(50);
|
|
@@ -24,6 +36,7 @@ describe('getCancelationFeeAmount function', () => {
|
|
|
24
36
|
test('should return correct QuestroomCancelationTypeEnum MIN_PRICE', () => {
|
|
25
37
|
const result = (0, _1.getCancelationFeeAmount)({
|
|
26
38
|
cancelationAmount: 0,
|
|
39
|
+
slotDiscount: 0,
|
|
27
40
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.MIN_PRICE,
|
|
28
41
|
total: 100,
|
|
29
42
|
minimalPrice: 20,
|
|
@@ -33,6 +46,7 @@ describe('getCancelationFeeAmount function', () => {
|
|
|
33
46
|
test('should return correct QuestroomCancelationTypeEnum NO', () => {
|
|
34
47
|
const result = (0, _1.getCancelationFeeAmount)({
|
|
35
48
|
cancelationAmount: 0,
|
|
49
|
+
slotDiscount: 0,
|
|
36
50
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.NO,
|
|
37
51
|
total: 100,
|
|
38
52
|
minimalPrice: 20,
|
|
@@ -18,6 +18,7 @@ declare type Props = {
|
|
|
18
18
|
total: number;
|
|
19
19
|
payed: number;
|
|
20
20
|
minimalPrice: number;
|
|
21
|
+
slotDiscount: number;
|
|
21
22
|
};
|
|
22
23
|
export declare enum FineDescriptions {
|
|
23
24
|
FINE_TON_SETUP = "descriptionFineNotSetup",
|
|
@@ -31,7 +32,7 @@ export declare const isCancelationAllowed: ({ date, minHoursForFreeCanceling, }:
|
|
|
31
32
|
date: string;
|
|
32
33
|
minHoursForFreeCanceling: number;
|
|
33
34
|
}) => boolean;
|
|
34
|
-
export declare function getOrderCancelationState({ cancelationReason, cancelationRule, cancelationAmount, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, payed, minimalPrice, }: Props): {
|
|
35
|
+
export declare function getOrderCancelationState({ cancelationReason, cancelationRule, cancelationAmount, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, slotDiscount, payed, minimalPrice, }: Props): {
|
|
35
36
|
fineAmount: number;
|
|
36
37
|
returnAmount: number;
|
|
37
38
|
allowedCancelation: boolean;
|
|
@@ -23,7 +23,7 @@ var FineDescriptions;
|
|
|
23
23
|
})(FineDescriptions = exports.FineDescriptions || (exports.FineDescriptions = {}));
|
|
24
24
|
const isCancelationAllowed = ({ date, minHoursForFreeCanceling = 0, }) => (0, differenceInHours_1.default)(new Date(date), new Date()) >= minHoursForFreeCanceling;
|
|
25
25
|
exports.isCancelationAllowed = isCancelationAllowed;
|
|
26
|
-
function getOrderCancelationState({ cancelationReason, cancelationRule, cancelationAmount, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, payed, minimalPrice, }) {
|
|
26
|
+
function getOrderCancelationState({ cancelationReason, cancelationRule, cancelationAmount, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, slotDiscount = 0, payed, minimalPrice, }) {
|
|
27
27
|
const minHours = cancelationRule === questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.NO ? 0 : minHoursForFreeCanceling;
|
|
28
28
|
const allowedCancelation = cancelationReason === order_cancel_reson_enum_1.OrderCancelReasonEnum.QUESTROOM ||
|
|
29
29
|
(0, exports.isCancelationAllowed)({
|
|
@@ -40,6 +40,7 @@ function getOrderCancelationState({ cancelationReason, cancelationRule, cancelat
|
|
|
40
40
|
const fineAmount = +(0, get_cancelation_fee_amount_1.getCancelationFeeAmount)({
|
|
41
41
|
cancelationRule,
|
|
42
42
|
total,
|
|
43
|
+
slotDiscount,
|
|
43
44
|
minimalPrice,
|
|
44
45
|
cancelationAmount,
|
|
45
46
|
}).toFixed(0);
|
|
@@ -17,6 +17,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
17
17
|
returnCertificates: true,
|
|
18
18
|
certificates: [],
|
|
19
19
|
minHoursForFreeCanceling: 48,
|
|
20
|
+
slotDiscount: 0,
|
|
20
21
|
total: 100,
|
|
21
22
|
payed: 20,
|
|
22
23
|
minimalPrice: 50,
|
|
@@ -37,6 +38,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
37
38
|
transactions: [],
|
|
38
39
|
date: (0, date_fns_1.addHours)(new Date(), 50).toISOString(),
|
|
39
40
|
returnCertificates: true,
|
|
41
|
+
slotDiscount: 0,
|
|
40
42
|
certificates: [],
|
|
41
43
|
minHoursForFreeCanceling: 48,
|
|
42
44
|
total: 100,
|
|
@@ -57,6 +59,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
57
59
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.NO,
|
|
58
60
|
cancelationAmount: 0,
|
|
59
61
|
transactions: [],
|
|
62
|
+
slotDiscount: 0,
|
|
60
63
|
date: new Date().toISOString(),
|
|
61
64
|
returnCertificates: true,
|
|
62
65
|
certificates: [],
|
|
@@ -76,6 +79,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
76
79
|
test('should return "no charge / hand return" if alowed cancelation has payments', () => {
|
|
77
80
|
const result = (0, _1.getOrderCancelationState)({
|
|
78
81
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
82
|
+
slotDiscount: 0,
|
|
79
83
|
cancelationAmount: 0,
|
|
80
84
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
81
85
|
transactions: [
|
|
@@ -103,6 +107,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
103
107
|
test('should return "no charge / hand return" if not alowed cancelation has inside transaction', () => {
|
|
104
108
|
const result = (0, _1.getOrderCancelationState)({
|
|
105
109
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
110
|
+
slotDiscount: 0,
|
|
106
111
|
cancelationAmount: 0,
|
|
107
112
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.NO,
|
|
108
113
|
transactions: [
|
|
@@ -130,6 +135,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
130
135
|
test('should return "no charge / no return" if not alowed cancelation payed same price', () => {
|
|
131
136
|
const result = (0, _1.getOrderCancelationState)({
|
|
132
137
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
138
|
+
slotDiscount: 0,
|
|
133
139
|
cancelationAmount: 0,
|
|
134
140
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
135
141
|
transactions: [
|
|
@@ -157,6 +163,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
157
163
|
test('should return "no charge / auto return" if not alowed cancelation has overpayment', () => {
|
|
158
164
|
const result = (0, _1.getOrderCancelationState)({
|
|
159
165
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
166
|
+
slotDiscount: 0,
|
|
160
167
|
cancelationAmount: 0,
|
|
161
168
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.HALF_PRICE,
|
|
162
169
|
transactions: [
|
|
@@ -184,6 +191,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
184
191
|
test('should return "with charge / no return" if not alowed cancelation has overpayment', () => {
|
|
185
192
|
const result = (0, _1.getOrderCancelationState)({
|
|
186
193
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
194
|
+
slotDiscount: 0,
|
|
187
195
|
cancelationAmount: 0,
|
|
188
196
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
189
197
|
transactions: [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@escapenavigator/utils",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.33",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"test": "jest"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@escapenavigator/types": "^1.9.
|
|
17
|
+
"@escapenavigator/types": "^1.9.33",
|
|
18
18
|
"axios": "^0.21.4",
|
|
19
19
|
"class-transformer": "^0.5.1",
|
|
20
20
|
"class-validator": "^0.13.2",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"node_modules"
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "39dac27f481ca9b7a72ab7cae324d974b0ee91c5"
|
|
59
59
|
}
|