@hyper.software/common-helpers 2.2.48 → 2.2.49
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,5 +1,5 @@
|
|
|
1
1
|
import { ICompany, IRoomTypePricePlanPricingInformation, IDynamicPricing } from '../../interfaces';
|
|
2
|
-
export declare const calculateDynamicPricing: ({ currentPricing, dynamicPricing, existingBasePriceMap, company,
|
|
2
|
+
export declare const calculateDynamicPricing: ({ currentPricing, dynamicPricing, existingBasePriceMap, company, }: {
|
|
3
3
|
currentPricing: IRoomTypePricePlanPricingInformation;
|
|
4
4
|
dynamicPricing: IDynamicPricing;
|
|
5
5
|
existingBasePriceMap: Record<string, number>;
|
|
@@ -52,57 +52,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.calculateDynamicPricing = void 0;
|
|
54
54
|
var moment_1 = __importDefault(require("moment"));
|
|
55
|
-
var dateService_1 = require("../dateService/dateService");
|
|
56
55
|
var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
57
|
-
var basePriceMap,
|
|
58
|
-
var
|
|
59
|
-
var currentPricing = _b.currentPricing, dynamicPricing = _b.dynamicPricing, existingBasePriceMap = _b.existingBasePriceMap, company = _b.company
|
|
60
|
-
return __generator(this, function (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (dynamicPricing.isActive && isAffectedHoliday) {
|
|
91
|
-
bookingIncrement = 1.05;
|
|
92
|
-
leadTimeMultiplier = leadTimeDays >= 60 ? 1.0 : 1 + (60 - leadTimeDays) * 0.005;
|
|
93
|
-
rawPrice = baseForToday * bookingIncrement * leadTimeMultiplier;
|
|
94
|
-
rawPrice = Math.min(rawPrice, baseForToday + 70, baseForToday * 1.45);
|
|
95
|
-
resultPricing[dateStr] = Math.round(rawPrice);
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
resultPricing[dateStr] = base;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return [2 /*return*/, {
|
|
102
|
-
updatedPricing: resultPricing,
|
|
103
|
-
updatedBasePriceMap: basePriceMap,
|
|
104
|
-
}];
|
|
56
|
+
var basePriceMap, updatedPricing, affectedDates, _i, _c, dateStr, manualPrice, basePrice, isAffected, isManuallyOverridden, increased;
|
|
57
|
+
var _d;
|
|
58
|
+
var currentPricing = _b.currentPricing, dynamicPricing = _b.dynamicPricing, existingBasePriceMap = _b.existingBasePriceMap, company = _b.company;
|
|
59
|
+
return __generator(this, function (_e) {
|
|
60
|
+
basePriceMap = __assign({}, existingBasePriceMap);
|
|
61
|
+
updatedPricing = {};
|
|
62
|
+
affectedDates = new Set((company.holidays || [])
|
|
63
|
+
.filter(function (h) { return h.enableDynamicPricing; })
|
|
64
|
+
.flatMap(function (h) { return [
|
|
65
|
+
(0, moment_1.default)(h.date).subtract(1, 'day').format('YYYY-MM-DD'),
|
|
66
|
+
(0, moment_1.default)(h.date).format('YYYY-MM-DD'),
|
|
67
|
+
(0, moment_1.default)(h.date).add(1, 'day').format('YYYY-MM-DD'),
|
|
68
|
+
]; }));
|
|
69
|
+
for (_i = 0, _c = Object.keys(currentPricing); _i < _c.length; _i++) {
|
|
70
|
+
dateStr = _c[_i];
|
|
71
|
+
manualPrice = currentPricing[dateStr];
|
|
72
|
+
basePrice = (_d = basePriceMap[dateStr]) !== null && _d !== void 0 ? _d : manualPrice;
|
|
73
|
+
isAffected = affectedDates.has(dateStr);
|
|
74
|
+
isManuallyOverridden = manualPrice !== basePrice;
|
|
75
|
+
if (!(dateStr in basePriceMap)) {
|
|
76
|
+
basePriceMap[dateStr] = manualPrice;
|
|
77
|
+
}
|
|
78
|
+
if (!isAffected || isManuallyOverridden) {
|
|
79
|
+
updatedPricing[dateStr] = manualPrice;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (dynamicPricing.isActive) {
|
|
83
|
+
increased = basePrice + (dynamicPricing.amount || Math.round(basePrice * 0.05));
|
|
84
|
+
updatedPricing[dateStr] = Math.round(Math.min(increased, basePrice + 70));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
updatedPricing[dateStr] = basePrice;
|
|
88
|
+
}
|
|
105
89
|
}
|
|
90
|
+
return [2 /*return*/, {
|
|
91
|
+
updatedPricing: updatedPricing,
|
|
92
|
+
updatedBasePriceMap: basePriceMap,
|
|
93
|
+
}];
|
|
106
94
|
});
|
|
107
95
|
}); };
|
|
108
96
|
exports.calculateDynamicPricing = calculateDynamicPricing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamicPricingService.js","sourceRoot":"","sources":["../../../src/services/dynamicPricingService/dynamicPricingService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;
|
|
1
|
+
{"version":3,"file":"dynamicPricingService.js","sourceRoot":"","sources":["../../../src/services/dynamicPricingService/dynamicPricingService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;AAGpB,IAAM,uBAAuB,GAAG,iEAAO,EAc7C;;;QAbC,cAAc,oBAAA,EACd,cAAc,oBAAA,EACd,oBAAoB,0BAAA,EACpB,OAAO,aAAA;;QAcD,YAAY,gBAAQ,oBAAoB,CAAE,CAAA;QAC1C,cAAc,GAAyC,EAAE,CAAA;QAEzD,aAAa,GAAG,IAAI,GAAG,CAC3B,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;aACrB,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,oBAAoB,EAAtB,CAAsB,CAAC;aACrC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA;YACd,IAAA,gBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACtD,IAAA,gBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACnC,IAAA,gBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;SAClD,EAJe,CAIf,CAAC,CACL,CAAA;QAED,WAAiD,EAA3B,KAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAA3B,cAA2B,EAA3B,IAA2B,EAAE,CAAC;YAAzC,OAAO;YACV,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;YACrC,SAAS,GAAG,MAAA,YAAY,CAAC,OAAO,CAAC,mCAAI,WAAW,CAAA;YAEhD,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACvC,oBAAoB,GAAG,WAAW,KAAK,SAAS,CAAA;YAEtD,IAAI,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC;gBAC/B,YAAY,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA;YACrC,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,oBAAoB,EAAE,CAAC;gBACxC,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA;gBACrC,SAAQ;YACV,CAAC;YAED,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;gBACtB,SAAS,GAAG,SAAS,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAA;gBACrF,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC,CAAA;YAC3E,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;YACrC,CAAC;QACH,CAAC;QAED,sBAAO;gBACL,cAAc,gBAAA;gBACd,mBAAmB,EAAE,YAAY;aAClC,EAAA;;KACF,CAAA;AA3DY,QAAA,uBAAuB,2BA2DnC"}
|