@escapenavigator/utils 1.9.11 → 1.9.12
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 +3 -1
- package/dist/get-cancelation-fee-amount/index.test.js +4 -0
- package/dist/get-order-cancelation-state/index.d.ts +2 -1
- package/dist/get-order-cancelation-state/index.js +4 -2
- package/dist/get-order-cancelation-state/index.test.js +8 -0
- package/dist/serialize-slot.js +2 -1
- package/package.json +3 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { QuestroomCancelationTypeEnum } from '@escapenavigator/types/dist/questroom/enum/questroom-cancelation-type.enum';
|
|
2
|
-
export declare const getCancelationFeeAmount: ({ cancelationRule, total, minimalPrice, }: {
|
|
2
|
+
export declare const getCancelationFeeAmount: ({ cancelationRule, total, minimalPrice, cancelationAmount, }: {
|
|
3
3
|
cancelationRule: QuestroomCancelationTypeEnum;
|
|
4
4
|
total: number;
|
|
5
5
|
minimalPrice: number;
|
|
6
|
+
cancelationAmount: number;
|
|
6
7
|
}) => number;
|
|
@@ -2,10 +2,12 @@
|
|
|
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, }) => {
|
|
5
|
+
const getCancelationFeeAmount = ({ cancelationRule, total, minimalPrice, cancelationAmount, }) => {
|
|
6
6
|
switch (cancelationRule) {
|
|
7
7
|
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.MIN_PRICE:
|
|
8
8
|
return minimalPrice;
|
|
9
|
+
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FIXED:
|
|
10
|
+
return cancelationAmount;
|
|
9
11
|
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.HALF_PRICE:
|
|
10
12
|
return Math.floor(total / 2);
|
|
11
13
|
case questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE:
|
|
@@ -5,6 +5,7 @@ const _1 = require(".");
|
|
|
5
5
|
describe('getCancelationFeeAmount function', () => {
|
|
6
6
|
test('should return correct FULL_PRICE', () => {
|
|
7
7
|
const result = (0, _1.getCancelationFeeAmount)({
|
|
8
|
+
cancelationAmount: 0,
|
|
8
9
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
9
10
|
total: 100,
|
|
10
11
|
minimalPrice: 20,
|
|
@@ -13,6 +14,7 @@ describe('getCancelationFeeAmount function', () => {
|
|
|
13
14
|
});
|
|
14
15
|
test('should return correct QuestroomCancelationTypeEnum HALF_PRICE', () => {
|
|
15
16
|
const result = (0, _1.getCancelationFeeAmount)({
|
|
17
|
+
cancelationAmount: 0,
|
|
16
18
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.HALF_PRICE,
|
|
17
19
|
total: 100,
|
|
18
20
|
minimalPrice: 20,
|
|
@@ -21,6 +23,7 @@ describe('getCancelationFeeAmount function', () => {
|
|
|
21
23
|
});
|
|
22
24
|
test('should return correct QuestroomCancelationTypeEnum MIN_PRICE', () => {
|
|
23
25
|
const result = (0, _1.getCancelationFeeAmount)({
|
|
26
|
+
cancelationAmount: 0,
|
|
24
27
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.MIN_PRICE,
|
|
25
28
|
total: 100,
|
|
26
29
|
minimalPrice: 20,
|
|
@@ -29,6 +32,7 @@ describe('getCancelationFeeAmount function', () => {
|
|
|
29
32
|
});
|
|
30
33
|
test('should return correct QuestroomCancelationTypeEnum NO', () => {
|
|
31
34
|
const result = (0, _1.getCancelationFeeAmount)({
|
|
35
|
+
cancelationAmount: 0,
|
|
32
36
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.NO,
|
|
33
37
|
total: 100,
|
|
34
38
|
minimalPrice: 20,
|
|
@@ -6,6 +6,7 @@ declare type Props = {
|
|
|
6
6
|
minHoursForFreeCanceling: number;
|
|
7
7
|
cancelationReason: OrderCancelReasonEnum;
|
|
8
8
|
returnCertificates: boolean;
|
|
9
|
+
cancelationAmount: number;
|
|
9
10
|
cancelationRule: QuestroomCancelationTypeEnum;
|
|
10
11
|
transactions: Array<{
|
|
11
12
|
type: TransactionTypeEnum;
|
|
@@ -30,7 +31,7 @@ export declare const isCancelationAllowed: ({ date, minHoursForFreeCanceling, }:
|
|
|
30
31
|
date: string;
|
|
31
32
|
minHoursForFreeCanceling: number;
|
|
32
33
|
}) => boolean;
|
|
33
|
-
export declare function getOrderCancelationState({ cancelationReason, cancelationRule, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, payed, minimalPrice, }: Props): {
|
|
34
|
+
export declare function getOrderCancelationState({ cancelationReason, cancelationRule, cancelationAmount, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, payed, minimalPrice, }: Props): {
|
|
34
35
|
fineAmount: number;
|
|
35
36
|
returnAmount: number;
|
|
36
37
|
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, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, payed, minimalPrice, }) {
|
|
26
|
+
function getOrderCancelationState({ cancelationReason, cancelationRule, cancelationAmount, transactions, date, returnCertificates, certificates, minHoursForFreeCanceling, total, 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)({
|
|
@@ -37,7 +37,9 @@ function getOrderCancelationState({ cancelationReason, cancelationRule, transact
|
|
|
37
37
|
const orderPayment = returnCertificates
|
|
38
38
|
? payed - certificates.reduce((acc, c) => acc + c.nominal, 0)
|
|
39
39
|
: payed;
|
|
40
|
-
const fineAmount = +(0, get_cancelation_fee_amount_1.getCancelationFeeAmount)({
|
|
40
|
+
const fineAmount = +(0, get_cancelation_fee_amount_1.getCancelationFeeAmount)({
|
|
41
|
+
cancelationRule, total, minimalPrice, cancelationAmount,
|
|
42
|
+
}).toFixed(0);
|
|
41
43
|
const chargeAmount = fineAmount - orderPayment;
|
|
42
44
|
/**
|
|
43
45
|
* Кейсы, если игра отменяется в срок
|
|
@@ -10,6 +10,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
10
10
|
test('should return "no charge / no return" if cancelationReason is QUESTROOM', () => {
|
|
11
11
|
const result = (0, _1.getOrderCancelationState)({
|
|
12
12
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.QUESTROOM,
|
|
13
|
+
cancelationAmount: 0,
|
|
13
14
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
14
15
|
transactions: [],
|
|
15
16
|
date: new Date().toISOString(),
|
|
@@ -31,6 +32,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
31
32
|
test('should return "no charge / no return" if cancelation in time', () => {
|
|
32
33
|
const result = (0, _1.getOrderCancelationState)({
|
|
33
34
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
35
|
+
cancelationAmount: 0,
|
|
34
36
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
35
37
|
transactions: [],
|
|
36
38
|
date: (0, date_fns_1.addHours)(new Date(), 50).toISOString(),
|
|
@@ -53,6 +55,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
53
55
|
const result = (0, _1.getOrderCancelationState)({
|
|
54
56
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
55
57
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.NO,
|
|
58
|
+
cancelationAmount: 0,
|
|
56
59
|
transactions: [],
|
|
57
60
|
date: new Date().toISOString(),
|
|
58
61
|
returnCertificates: true,
|
|
@@ -73,6 +76,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
73
76
|
test('should return "no charge / hand return" if alowed cancelation has payments', () => {
|
|
74
77
|
const result = (0, _1.getOrderCancelationState)({
|
|
75
78
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
79
|
+
cancelationAmount: 0,
|
|
76
80
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
77
81
|
transactions: [
|
|
78
82
|
{
|
|
@@ -99,6 +103,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
99
103
|
test('should return "no charge / hand return" if not alowed cancelation has inside transaction', () => {
|
|
100
104
|
const result = (0, _1.getOrderCancelationState)({
|
|
101
105
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
106
|
+
cancelationAmount: 0,
|
|
102
107
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.NO,
|
|
103
108
|
transactions: [
|
|
104
109
|
{
|
|
@@ -125,6 +130,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
125
130
|
test('should return "no charge / no return" if not alowed cancelation payed same price', () => {
|
|
126
131
|
const result = (0, _1.getOrderCancelationState)({
|
|
127
132
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
133
|
+
cancelationAmount: 0,
|
|
128
134
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
129
135
|
transactions: [
|
|
130
136
|
{
|
|
@@ -151,6 +157,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
151
157
|
test('should return "no charge / auto return" if not alowed cancelation has overpayment', () => {
|
|
152
158
|
const result = (0, _1.getOrderCancelationState)({
|
|
153
159
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
160
|
+
cancelationAmount: 0,
|
|
154
161
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.HALF_PRICE,
|
|
155
162
|
transactions: [
|
|
156
163
|
{
|
|
@@ -177,6 +184,7 @@ describe('getOrderCancelationState function', () => {
|
|
|
177
184
|
test('should return "with charge / no return" if not alowed cancelation has overpayment', () => {
|
|
178
185
|
const result = (0, _1.getOrderCancelationState)({
|
|
179
186
|
cancelationReason: order_cancel_reson_enum_1.OrderCancelReasonEnum.CLIENT,
|
|
187
|
+
cancelationAmount: 0,
|
|
180
188
|
cancelationRule: questroom_cancelation_type_enum_1.QuestroomCancelationTypeEnum.FULL_PRICE,
|
|
181
189
|
transactions: [
|
|
182
190
|
{
|
package/dist/serialize-slot.js
CHANGED
|
@@ -20,7 +20,7 @@ const serializeSlotOrderData = (order) => order && {
|
|
|
20
20
|
};
|
|
21
21
|
exports.serializeSlotOrderData = serializeSlotOrderData;
|
|
22
22
|
const serializeSlot = ({ slot, order }) => {
|
|
23
|
-
const { prepayment, prepaymentType, title, minHoursForBooking, minHoursForFreeCanceling, cancelationRule, } = slot.rule || defailt_rule_1.defaultRule;
|
|
23
|
+
const { prepayment, prepaymentType, title, minHoursForBooking, minHoursForFreeCanceling, cancelationRule, cancelationAmount, } = slot.rule || defailt_rule_1.defaultRule;
|
|
24
24
|
return {
|
|
25
25
|
id: slot.id,
|
|
26
26
|
questroomId: slot.questroomId,
|
|
@@ -33,6 +33,7 @@ const serializeSlot = ({ slot, order }) => {
|
|
|
33
33
|
breakReason: slot.breakReason,
|
|
34
34
|
rule: {
|
|
35
35
|
prepayment,
|
|
36
|
+
cancelationAmount,
|
|
36
37
|
prepaymentType,
|
|
37
38
|
title,
|
|
38
39
|
minHoursForBooking,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@escapenavigator/utils",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.12",
|
|
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.12",
|
|
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": "31d4ca67a64eee6a4402092d61bb2c19e2390abd"
|
|
59
59
|
}
|