@hyper.software/common-helpers 1.0.61 → 1.0.63
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, 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) => 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,19 +64,13 @@ 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
|
|
70
|
+
var getServicesCost = function (booking) {
|
|
133
71
|
var _a;
|
|
134
72
|
var servicesCost = 0;
|
|
135
|
-
var numberOfNights = (0,
|
|
73
|
+
var numberOfNights = (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');
|
|
136
74
|
var numberOfPersons = booking.numberOfAdults + (booking.numberOfChildren || 0);
|
|
137
75
|
(_a = booking.bookingServices) === null || _a === void 0 ? void 0 : _a.forEach(function (bookingService) {
|
|
138
76
|
var _a, _b;
|
|
@@ -161,16 +99,8 @@ var calculateBookingServicesCost = function (booking) {
|
|
|
161
99
|
});
|
|
162
100
|
return servicesCost;
|
|
163
101
|
};
|
|
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) {
|
|
102
|
+
exports.getServicesCost = getServicesCost;
|
|
103
|
+
var getAccommodationCost = function (roomBookings, _checkinDate, _checkoutDate, numberOfAdults) {
|
|
174
104
|
if (!_checkinDate || !_checkoutDate) {
|
|
175
105
|
return null;
|
|
176
106
|
}
|
|
@@ -179,15 +109,12 @@ var getTotalCost = function (roomBookings, _checkinDate, _checkoutDate, numberOf
|
|
|
179
109
|
var totalCost = 0;
|
|
180
110
|
for (var _i = 0, roomBookings_1 = roomBookings; _i < roomBookings_1.length; _i++) {
|
|
181
111
|
var roomBooking = roomBookings_1[_i];
|
|
182
|
-
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
var costForRoomBooking = (0, exports.getTotalCostForRoomBooking)(roomBooking, (0, moment_1.default)(checkinDate.toISOString()), (0, moment_1.default)(checkoutDate.toISOString()), roomBooking.personsPayingBreakfast || numberOfAdults, booking, company);
|
|
112
|
+
var costForRoomBooking = (0, exports.getTotalCostForRoomBooking)(roomBooking, (0, moment_1.default)(checkinDate.toISOString()), (0, moment_1.default)(checkoutDate.toISOString()), roomBooking.personsPayingBreakfast || numberOfAdults);
|
|
186
113
|
totalCost += costForRoomBooking;
|
|
187
114
|
}
|
|
188
115
|
return totalCost;
|
|
189
116
|
};
|
|
190
|
-
exports.
|
|
117
|
+
exports.getAccommodationCost = getAccommodationCost;
|
|
191
118
|
var ensureValueIsNumber = function (value, isDouble) {
|
|
192
119
|
if (isDouble === void 0) { isDouble = true; }
|
|
193
120
|
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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"}
|