@hyper.software/common-helpers 1.0.61 → 1.0.62
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,24 +1,18 @@
|
|
|
1
1
|
import { Moment } from 'moment';
|
|
2
|
-
import { IBooking,
|
|
3
|
-
export declare const getTotalCostFromBookings: (bookings: IBooking[], company?: ICompany) => number;
|
|
4
|
-
export declare const getLengthOfStayNights: (booking: IBooking) => number;
|
|
5
|
-
export declare const getLengthOfStay: (booking: IBooking) => number;
|
|
6
|
-
export declare const getAccommodationCost: (booking: IBooking, company: ICompany) => number;
|
|
7
|
-
export declare const getDefaultRoomTypePricePlan: (roomTypePricePlans: IRoomTypePricePlan[]) => IRoomTypePricePlan;
|
|
2
|
+
import { IBooking, IBookingService, IRoom, IRoomBooking, IRoomTypePricePlanPricingInformation, IRoomTypePricePlanPricingRules } from '@hyper.software/common-models/lib/interfaces';
|
|
8
3
|
export declare const getTotalCostForRoomBooking: (roomBooking: IRoomBooking & {
|
|
9
4
|
price?: number;
|
|
10
5
|
pricingRules?: IRoomTypePricePlanPricingRules;
|
|
11
6
|
pricingInformation?: Partial<IRoomTypePricePlanPricingInformation>;
|
|
12
|
-
}, checkinDate: Moment, checkoutDate: Moment, numberOfAdults: number
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
15
|
-
export declare const getTotalCost: (roomBookings: Array<{
|
|
7
|
+
}, checkinDate: Moment, checkoutDate: Moment, numberOfAdults: number) => number;
|
|
8
|
+
export declare const getServicesCost: (booking: IBooking, bookingService: IBookingService) => number;
|
|
9
|
+
export declare const getAccommodationCost: (roomBookings: Array<{
|
|
16
10
|
roomId?: string;
|
|
17
11
|
breakfastIncluded?: boolean;
|
|
18
12
|
pricingInformation?: Partial<IRoomTypePricePlanPricingInformation>;
|
|
19
13
|
pricingRules?: IRoomTypePricePlanPricingRules;
|
|
20
14
|
personsPayingBreakfast?: number;
|
|
21
15
|
room?: IRoom;
|
|
22
|
-
}>, _checkinDate: Moment, _checkoutDate: Moment, numberOfAdults: number
|
|
16
|
+
}>, _checkinDate: Moment, _checkoutDate: Moment, numberOfAdults: number) => number;
|
|
23
17
|
export declare const ensureValueIsNumber: (value: string | number, isDouble?: boolean) => number | null;
|
|
24
18
|
export declare const removeInvalidCharacters: (value: string, isDouble: boolean) => string;
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -37,63 +26,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
27
|
};
|
|
39
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.removeInvalidCharacters = exports.ensureValueIsNumber = exports.
|
|
29
|
+
exports.removeInvalidCharacters = exports.ensureValueIsNumber = exports.getAccommodationCost = exports.getServicesCost = exports.getTotalCostForRoomBooking = void 0;
|
|
41
30
|
var moment_1 = __importDefault(require("moment"));
|
|
42
31
|
var helpers_1 = require("../../helpers");
|
|
43
32
|
var interfaces_1 = require("@hyper.software/common-models/lib/interfaces");
|
|
44
33
|
var dateService = __importStar(require("../dateService/dateService"));
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
exports.getTotalCostFromBookings = getTotalCostFromBookings;
|
|
49
|
-
var getLengthOfStayNights = function (booking) {
|
|
50
|
-
return (0, moment_1.default)(dateService.normalizeDate(booking === null || booking === void 0 ? void 0 : booking.checkoutDate)).diff((0, moment_1.default)(dateService.normalizeDate(booking === null || booking === void 0 ? void 0 : booking.checkinDate)), 'days');
|
|
51
|
-
};
|
|
52
|
-
exports.getLengthOfStayNights = getLengthOfStayNights;
|
|
53
|
-
var getLengthOfStay = function (booking) {
|
|
54
|
-
var _a, _b;
|
|
55
|
-
if (!booking || ((_a = booking === null || booking === void 0 ? void 0 : booking.roomBookings) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
56
|
-
return 0;
|
|
57
|
-
}
|
|
58
|
-
return (_b = booking === null || booking === void 0 ? void 0 : booking.roomBookings) === null || _b === void 0 ? void 0 : _b.reduce(function (prevVal, currVal) {
|
|
59
|
-
var lengthOfStay = (0, moment_1.default)(dateService.normalizeDate(currVal.checkoutDate)).diff((0, moment_1.default)(dateService.normalizeDate(currVal.checkinDate)), 'days');
|
|
60
|
-
return prevVal + lengthOfStay;
|
|
61
|
-
}, 0);
|
|
62
|
-
};
|
|
63
|
-
exports.getLengthOfStay = getLengthOfStay;
|
|
64
|
-
var getAccommodationCost = function (booking, company) {
|
|
65
|
-
var _a;
|
|
66
|
-
var totalCost = booking === null || booking === void 0 ? void 0 : booking.totalCost;
|
|
67
|
-
var tourismTaxCost = (((_a = company === null || company === void 0 ? void 0 : company.receipts) === null || _a === void 0 ? void 0 : _a.tourismTax) || 0) * (booking === null || booking === void 0 ? void 0 : booking.numberOfAdults) * (0, exports.getLengthOfStay)(booking);
|
|
68
|
-
return totalCost + tourismTaxCost;
|
|
69
|
-
};
|
|
70
|
-
exports.getAccommodationCost = getAccommodationCost;
|
|
71
|
-
var getDefaultRoomTypePricePlan = function (roomTypePricePlans) {
|
|
72
|
-
if (!Array.isArray(roomTypePricePlans)) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
return (roomTypePricePlans.find(function (roomTypePricePlan) { return roomTypePricePlan.type === interfaces_1.CHANNEL_TYPE.BOOKING; }) ||
|
|
76
|
-
roomTypePricePlans.find(function (roomTypePricePlan) { return roomTypePricePlan.type === interfaces_1.CHANNEL_TYPE.DEFAULT; }));
|
|
77
|
-
};
|
|
78
|
-
exports.getDefaultRoomTypePricePlan = getDefaultRoomTypePricePlan;
|
|
79
|
-
var getTotalCostForRoomBooking = function (roomBooking, checkinDate, checkoutDate, numberOfAdults, booking, company) {
|
|
80
|
-
var _a, _b, _c, _d, _e;
|
|
81
|
-
if (!roomBooking || !roomBooking.room) {
|
|
34
|
+
var getTotalCostForRoomBooking = function (roomBooking, checkinDate, checkoutDate, numberOfAdults) {
|
|
35
|
+
var _a, _b, _c;
|
|
36
|
+
if (!roomBooking) {
|
|
82
37
|
return 0;
|
|
83
38
|
}
|
|
84
|
-
var roomTypePricePlan = (0, exports.getDefaultRoomTypePricePlan)((_b = (_a = roomBooking.room) === null || _a === void 0 ? void 0 : _a.roomType) === null || _b === void 0 ? void 0 : _b.roomTypePricePlans);
|
|
85
|
-
roomBooking.pricingInformation = roomTypePricePlan.pricing;
|
|
86
|
-
roomBooking.pricingRules = roomBooking.pricingRules || roomTypePricePlan.pricingRules;
|
|
87
|
-
if (roomBooking.price) {
|
|
88
|
-
roomBooking.pricingInformation = dateService
|
|
89
|
-
.getDays(checkinDate.toISOString(), checkoutDate.toISOString())
|
|
90
|
-
.reduce(function (prevVal, currVal) {
|
|
91
|
-
var _a;
|
|
92
|
-
return (__assign(__assign({}, prevVal), (_a = {}, _a[currVal] = roomBooking.price, _a)));
|
|
93
|
-
}, {});
|
|
94
|
-
}
|
|
95
39
|
var totalCost = 0;
|
|
96
|
-
var maxNumberOfAdults = ((
|
|
40
|
+
var maxNumberOfAdults = ((_b = (_a = roomBooking === null || roomBooking === void 0 ? void 0 : roomBooking.room) === null || _a === void 0 ? void 0 : _a.roomType) === null || _b === void 0 ? void 0 : _b.maxNumberOfAdults) || ((_c = roomBooking === null || roomBooking === void 0 ? void 0 : roomBooking.roomType) === null || _c === void 0 ? void 0 : _c.maxNumberOfAdults);
|
|
97
41
|
var actualNumberOfAdults = roomBooking.personsPayingBreakfast || numberOfAdults;
|
|
98
42
|
var shouldIncreasePrice = actualNumberOfAdults > maxNumberOfAdults;
|
|
99
43
|
var adjustmentFactor = shouldIncreasePrice ? 1 : -1;
|
|
@@ -111,7 +55,7 @@ var getTotalCostForRoomBooking = function (roomBooking, checkinDate, checkoutDat
|
|
|
111
55
|
}
|
|
112
56
|
var cost = roomBooking.pricePerNight ||
|
|
113
57
|
(0, exports.ensureValueIsNumber)(roomBooking.pricingInformation[checkinDate.format(helpers_1.DATE_FORMATS.YYYY_MM_DD)]);
|
|
114
|
-
var calculation = actualNumberOfAdults === maxNumberOfAdults || !discountOrIncrease
|
|
58
|
+
var calculation = actualNumberOfAdults === maxNumberOfAdults || !discountOrIncrease.value
|
|
115
59
|
? cost
|
|
116
60
|
: (discountOrIncrease === null || discountOrIncrease === void 0 ? void 0 : discountOrIncrease.type) === interfaces_1.DISCOUNT_TYPE.PERCENTAGE
|
|
117
61
|
? ((100 + (discountOrIncrease === null || discountOrIncrease === void 0 ? void 0 : discountOrIncrease.value) * adjustmentFactor) / 100) * cost || 0
|
|
@@ -120,57 +64,23 @@ var getTotalCostForRoomBooking = function (roomBooking, checkinDate, checkoutDat
|
|
|
120
64
|
totalCost += calculation;
|
|
121
65
|
checkinDate.add(1, 'days');
|
|
122
66
|
}
|
|
123
|
-
if (booking) {
|
|
124
|
-
if (company) {
|
|
125
|
-
var tourismTaxCost = (0, exports.calculateTourismTaxCost)(booking, company);
|
|
126
|
-
totalCost += tourismTaxCost;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
67
|
return totalCost;
|
|
130
68
|
};
|
|
131
69
|
exports.getTotalCostForRoomBooking = getTotalCostForRoomBooking;
|
|
132
|
-
var
|
|
133
|
-
var _a;
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
var
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
switch (pricingUnit) {
|
|
144
|
-
case 'PER_NIGHT':
|
|
145
|
-
servicesCost += amount * numberOfNights;
|
|
146
|
-
break;
|
|
147
|
-
case 'PER_PERSON':
|
|
148
|
-
servicesCost += amount * numberOfPersons;
|
|
149
|
-
break;
|
|
150
|
-
case 'PER_STAY':
|
|
151
|
-
servicesCost += amount;
|
|
152
|
-
break;
|
|
153
|
-
case 'PER_PERSON_PER_NIGHT':
|
|
154
|
-
servicesCost += amount * numberOfPersons || amount * numberOfNights;
|
|
155
|
-
break;
|
|
156
|
-
default:
|
|
157
|
-
servicesCost += amount;
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
return servicesCost;
|
|
70
|
+
var getServicesCost = function (booking, bookingService) {
|
|
71
|
+
var _a, _b, _c, _d;
|
|
72
|
+
var amount = ((_a = bookingService === null || bookingService === void 0 ? void 0 : bookingService.service) === null || _a === void 0 ? void 0 : _a.amount) || ((_b = bookingService === null || bookingService === void 0 ? void 0 : bookingService.data) === null || _b === void 0 ? void 0 : _b.amount);
|
|
73
|
+
var pricingUnit = ((_c = bookingService === null || bookingService === void 0 ? void 0 : bookingService.service) === null || _c === void 0 ? void 0 : _c.pricingUnit) || ((_d = bookingService.data) === null || _d === void 0 ? void 0 : _d.pricingUnit);
|
|
74
|
+
var personsMultiplier = pricingUnit === interfaces_1.SERVICE_PRICING_UNIT.PER_NIGHT || pricingUnit === interfaces_1.SERVICE_PRICING_UNIT.PER_STAY
|
|
75
|
+
? 1
|
|
76
|
+
: booking === null || booking === void 0 ? void 0 : booking.numberOfAdults;
|
|
77
|
+
var lengthMultiplier = pricingUnit === interfaces_1.SERVICE_PRICING_UNIT.PER_STAY || pricingUnit === interfaces_1.SERVICE_PRICING_UNIT.PER_PERSON
|
|
78
|
+
? 1
|
|
79
|
+
: (0, moment_1.default)(dateService.normalizeDate(booking === null || booking === void 0 ? void 0 : booking.checkoutDate)).diff((0, moment_1.default)(dateService.normalizeDate(booking === null || booking === void 0 ? void 0 : booking.checkinDate)), 'days');
|
|
80
|
+
return lengthMultiplier * personsMultiplier * amount;
|
|
163
81
|
};
|
|
164
|
-
exports.
|
|
165
|
-
var
|
|
166
|
-
var _a;
|
|
167
|
-
var tourismTaxRate = ((_a = company === null || company === void 0 ? void 0 : company.receipts) === null || _a === void 0 ? void 0 : _a.tourismTax) || 0;
|
|
168
|
-
var numberOfAdults = booking.numberOfAdults || 0;
|
|
169
|
-
var lengthOfStay = (0, exports.getLengthOfStay)(booking);
|
|
170
|
-
return tourismTaxRate * numberOfAdults * lengthOfStay;
|
|
171
|
-
};
|
|
172
|
-
exports.calculateTourismTaxCost = calculateTourismTaxCost;
|
|
173
|
-
var getTotalCost = function (roomBookings, _checkinDate, _checkoutDate, numberOfAdults, booking, company) {
|
|
82
|
+
exports.getServicesCost = getServicesCost;
|
|
83
|
+
var getAccommodationCost = function (roomBookings, _checkinDate, _checkoutDate, numberOfAdults) {
|
|
174
84
|
if (!_checkinDate || !_checkoutDate) {
|
|
175
85
|
return null;
|
|
176
86
|
}
|
|
@@ -182,12 +92,12 @@ var getTotalCost = function (roomBookings, _checkinDate, _checkoutDate, numberOf
|
|
|
182
92
|
if (!roomBooking || !roomBooking.room) {
|
|
183
93
|
continue;
|
|
184
94
|
}
|
|
185
|
-
var costForRoomBooking = (0, exports.getTotalCostForRoomBooking)(roomBooking, (0, moment_1.default)(checkinDate.toISOString()), (0, moment_1.default)(checkoutDate.toISOString()), roomBooking.personsPayingBreakfast || numberOfAdults
|
|
95
|
+
var costForRoomBooking = (0, exports.getTotalCostForRoomBooking)(roomBooking, (0, moment_1.default)(checkinDate.toISOString()), (0, moment_1.default)(checkoutDate.toISOString()), roomBooking.personsPayingBreakfast || numberOfAdults);
|
|
186
96
|
totalCost += costForRoomBooking;
|
|
187
97
|
}
|
|
188
98
|
return totalCost;
|
|
189
99
|
};
|
|
190
|
-
exports.
|
|
100
|
+
exports.getAccommodationCost = getAccommodationCost;
|
|
191
101
|
var ensureValueIsNumber = function (value, isDouble) {
|
|
192
102
|
if (isDouble === void 0) { isDouble = true; }
|
|
193
103
|
if ((0, helpers_1.isEmpty)(value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookingsService.js","sourceRoot":"","sources":["../../../src/services/bookingService/bookingsService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bookingsService.js","sourceRoot":"","sources":["../../../src/services/bookingService/bookingsService.ts"],"names":[],"mappings":"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"}
|