@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.
@@ -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
- return Math.floor(total / 2);
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.31",
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.31",
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": "b2fbfbde782c91d7acd54f535df06268ae9e4217"
58
+ "gitHead": "39dac27f481ca9b7a72ab7cae324d974b0ee91c5"
59
59
  }