@hyper.software/common-helpers 1.0.60 → 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,25 +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 calculateTourismTaxCost: (booking: IBooking, company: ICompany) => number;
|
|
16
|
-
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<{
|
|
17
10
|
roomId?: string;
|
|
18
11
|
breakfastIncluded?: boolean;
|
|
19
12
|
pricingInformation?: Partial<IRoomTypePricePlanPricingInformation>;
|
|
20
13
|
pricingRules?: IRoomTypePricePlanPricingRules;
|
|
21
14
|
personsPayingBreakfast?: number;
|
|
22
15
|
room?: IRoom;
|
|
23
|
-
}>, _checkinDate: Moment, _checkoutDate: Moment, numberOfAdults: number
|
|
16
|
+
}>, _checkinDate: Moment, _checkoutDate: Moment, numberOfAdults: number) => number;
|
|
24
17
|
export declare const ensureValueIsNumber: (value: string | number, isDouble?: boolean) => number | null;
|
|
25
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,72 +64,23 @@ var getTotalCostForRoomBooking = function (roomBooking, checkinDate, checkoutDat
|
|
|
120
64
|
totalCost += calculation;
|
|
121
65
|
checkinDate.add(1, 'days');
|
|
122
66
|
}
|
|
123
|
-
var breakfastCost = (0, exports.calculateBreakfastCost)(roomBooking);
|
|
124
|
-
totalCost += breakfastCost;
|
|
125
|
-
if (booking) {
|
|
126
|
-
if (company) {
|
|
127
|
-
var tourismTaxCost = (0, exports.calculateTourismTaxCost)(booking, company);
|
|
128
|
-
totalCost += tourismTaxCost;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
67
|
return totalCost;
|
|
132
68
|
};
|
|
133
69
|
exports.getTotalCostForRoomBooking = getTotalCostForRoomBooking;
|
|
134
|
-
var
|
|
135
|
-
var _a, _b;
|
|
136
|
-
var
|
|
137
|
-
var
|
|
138
|
-
var
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return
|
|
145
|
-
};
|
|
146
|
-
exports.calculateBreakfastCost = calculateBreakfastCost;
|
|
147
|
-
var calculateBookingServicesCost = function (booking) {
|
|
148
|
-
var _a;
|
|
149
|
-
var servicesCost = 0;
|
|
150
|
-
var numberOfNights = (0, exports.getLengthOfStay)(booking);
|
|
151
|
-
var numberOfPersons = booking.numberOfAdults + (booking.numberOfChildren || 0);
|
|
152
|
-
(_a = booking.bookingServices) === null || _a === void 0 ? void 0 : _a.forEach(function (bookingService) {
|
|
153
|
-
var _a, _b;
|
|
154
|
-
var service = bookingService.service;
|
|
155
|
-
var amount = (service === null || service === void 0 ? void 0 : service.amount) || ((_a = bookingService.service) === null || _a === void 0 ? void 0 : _a.amount) || ((_b = bookingService.data) === null || _b === void 0 ? void 0 : _b.amount);
|
|
156
|
-
var pricingUnit = (service === null || service === void 0 ? void 0 : service.pricingUnit) || bookingService.data.pricingUnit;
|
|
157
|
-
if (amount && pricingUnit && bookingService.isActive !== false && bookingService.isActive !== null) {
|
|
158
|
-
switch (pricingUnit) {
|
|
159
|
-
case 'PER_NIGHT':
|
|
160
|
-
servicesCost += amount * numberOfNights;
|
|
161
|
-
break;
|
|
162
|
-
case 'PER_PERSON':
|
|
163
|
-
servicesCost += amount * numberOfPersons;
|
|
164
|
-
break;
|
|
165
|
-
case 'PER_STAY':
|
|
166
|
-
servicesCost += amount;
|
|
167
|
-
break;
|
|
168
|
-
case 'PER_PERSON_PER_NIGHT':
|
|
169
|
-
servicesCost += amount * numberOfPersons || amount * numberOfNights;
|
|
170
|
-
break;
|
|
171
|
-
default:
|
|
172
|
-
servicesCost += amount;
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
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;
|
|
178
81
|
};
|
|
179
|
-
exports.
|
|
180
|
-
var
|
|
181
|
-
var _a;
|
|
182
|
-
var tourismTaxRate = ((_a = company === null || company === void 0 ? void 0 : company.receipts) === null || _a === void 0 ? void 0 : _a.tourismTax) || 0;
|
|
183
|
-
var numberOfAdults = booking.numberOfAdults || 0;
|
|
184
|
-
var lengthOfStay = (0, exports.getLengthOfStay)(booking);
|
|
185
|
-
return tourismTaxRate * numberOfAdults * lengthOfStay;
|
|
186
|
-
};
|
|
187
|
-
exports.calculateTourismTaxCost = calculateTourismTaxCost;
|
|
188
|
-
var getTotalCost = function (roomBookings, _checkinDate, _checkoutDate, numberOfAdults, booking, company) {
|
|
82
|
+
exports.getServicesCost = getServicesCost;
|
|
83
|
+
var getAccommodationCost = function (roomBookings, _checkinDate, _checkoutDate, numberOfAdults) {
|
|
189
84
|
if (!_checkinDate || !_checkoutDate) {
|
|
190
85
|
return null;
|
|
191
86
|
}
|
|
@@ -197,12 +92,12 @@ var getTotalCost = function (roomBookings, _checkinDate, _checkoutDate, numberOf
|
|
|
197
92
|
if (!roomBooking || !roomBooking.room) {
|
|
198
93
|
continue;
|
|
199
94
|
}
|
|
200
|
-
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);
|
|
201
96
|
totalCost += costForRoomBooking;
|
|
202
97
|
}
|
|
203
98
|
return totalCost;
|
|
204
99
|
};
|
|
205
|
-
exports.
|
|
100
|
+
exports.getAccommodationCost = getAccommodationCost;
|
|
206
101
|
var ensureValueIsNumber = function (value, isDouble) {
|
|
207
102
|
if (isDouble === void 0) { isDouble = true; }
|
|
208
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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"}
|