@mirai/core 0.3.49 → 0.3.50
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.
- package/build/components/Rates/Rates.Filter.js +10 -2
- package/build/components/Rates/Rates.Filter.js.map +1 -1
- package/build/components/Rates/Rates.Footer.js +14 -9
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/Rates.js +5 -3
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.l10n.js +10 -0
- package/build/components/Rates/Rates.l10n.js.map +1 -1
- package/build/components/Rates/Rates.module.css +2 -1
- package/build/components/Rates/components/Item/Item.js +3 -1
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/Item.l10n.js +4 -1
- package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +743 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +2370 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response.json +465 -0
- package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes-no-local.json +6674 -0
- package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes.json +16508 -0
- package/build/services/Rates/__tests__/__mocks__/rates-success.json +3473 -6942
- package/build/services/Rates/get.js +21 -10
- package/build/services/Rates/get.js.map +1 -1
- package/build/services/Rates/helpers/parseDiscount.js +4 -3
- package/build/services/Rates/helpers/parseDiscount.js.map +1 -1
- package/package.json +1 -1
- package/build/services/Rates/__tests__/__mocks__/rates-success-boards.json +0 -31398
|
@@ -59,7 +59,9 @@ const get = function () {
|
|
|
59
59
|
const {
|
|
60
60
|
currencyCode: hotelCurrency,
|
|
61
61
|
measureUnit: unit,
|
|
62
|
-
roomTypes
|
|
62
|
+
roomTypes,
|
|
63
|
+
taxesInformation,
|
|
64
|
+
vatIncluded: taxes
|
|
63
65
|
} = response;
|
|
64
66
|
const currency = userCurrency || hotelCurrency;
|
|
65
67
|
await _services.ServiceCurrency.exchange(currency);
|
|
@@ -108,6 +110,7 @@ const get = function () {
|
|
|
108
110
|
maxRoomsPerReservation: max,
|
|
109
111
|
minRoomsPerReservation: min,
|
|
110
112
|
offersApplied: deals,
|
|
113
|
+
originalAvgPrice,
|
|
111
114
|
totalLocalTaxes: localTaxes,
|
|
112
115
|
totalPriceOriginal,
|
|
113
116
|
totalPriceWithTaxes: totalPrice,
|
|
@@ -118,7 +121,8 @@ const get = function () {
|
|
|
118
121
|
clubTotal: club,
|
|
119
122
|
offerTotal: deal
|
|
120
123
|
} = discounts;
|
|
121
|
-
const
|
|
124
|
+
const price = taxes ? totalPrice : totalPriceOriginal;
|
|
125
|
+
const originalPrice = (taxes ? Math.max((deal === null || deal === void 0 ? void 0 : deal.withTaxes) || 0, (club === null || club === void 0 ? void 0 : club.withTaxes) || 0, (promoCode === null || promoCode === void 0 ? void 0 : promoCode.withTaxes) || 0) : Math.max((deal === null || deal === void 0 ? void 0 : deal.original) || 0, (club === null || club === void 0 ? void 0 : club.original) || 0, (promoCode === null || promoCode === void 0 ? void 0 : promoCode.original) || 0)) || price;
|
|
122
126
|
rates.push({
|
|
123
127
|
amount: [min, availability < max ? availability : max],
|
|
124
128
|
basePrice: (0, _helpers.normalizePrice)(totalPriceOriginal, currency),
|
|
@@ -131,20 +135,21 @@ const get = function () {
|
|
|
131
135
|
dayPrice: (0, _helpers.getPrice)({
|
|
132
136
|
currency,
|
|
133
137
|
hotelCurrency,
|
|
134
|
-
price: withTaxesAvgPrice
|
|
138
|
+
price: taxes ? withTaxesAvgPrice : originalAvgPrice
|
|
135
139
|
}),
|
|
136
140
|
days: detail.map(function () {
|
|
137
141
|
let {
|
|
138
142
|
dayStandardFormat: value,
|
|
139
143
|
offerId: deal,
|
|
140
|
-
|
|
144
|
+
priceWithoutTaxes: basePrice,
|
|
145
|
+
priceWithTaxes: price
|
|
141
146
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
142
147
|
return {
|
|
143
148
|
deal,
|
|
144
149
|
price: (0, _helpers.getPrice)({
|
|
145
150
|
currency,
|
|
146
151
|
hotelCurrency,
|
|
147
|
-
price
|
|
152
|
+
price: taxes ? price : basePrice
|
|
148
153
|
}),
|
|
149
154
|
value
|
|
150
155
|
};
|
|
@@ -155,11 +160,11 @@ const get = function () {
|
|
|
155
160
|
hotelCurrency,
|
|
156
161
|
...discounts,
|
|
157
162
|
originalPrice,
|
|
158
|
-
|
|
163
|
+
taxes,
|
|
164
|
+
totalPrice: price
|
|
159
165
|
}),
|
|
160
166
|
id,
|
|
161
167
|
included: [...new Set(Object.values(included).flat())].slice(0, 3),
|
|
162
|
-
localTaxes,
|
|
163
168
|
originalPrice: (0, _helpers.getPrice)({
|
|
164
169
|
currency,
|
|
165
170
|
hotelCurrency,
|
|
@@ -168,11 +173,16 @@ const get = function () {
|
|
|
168
173
|
price: (0, _helpers.getPrice)({
|
|
169
174
|
currency,
|
|
170
175
|
hotelCurrency,
|
|
171
|
-
price:
|
|
176
|
+
price: price + (taxes ? localTaxes : 0)
|
|
172
177
|
}),
|
|
173
178
|
name,
|
|
174
179
|
paymentConditions,
|
|
175
|
-
restrictions
|
|
180
|
+
restrictions,
|
|
181
|
+
taxes: !taxes ? (0, _helpers.getPrice)({
|
|
182
|
+
currency,
|
|
183
|
+
hotelCurrency,
|
|
184
|
+
price: totalPrice - totalPriceOriginal + localTaxes
|
|
185
|
+
}) : undefined
|
|
176
186
|
});
|
|
177
187
|
});
|
|
178
188
|
});
|
|
@@ -208,7 +218,8 @@ const get = function () {
|
|
|
208
218
|
rates,
|
|
209
219
|
size: size ? "".concat(size, " ").concat(_constants.UNIT[unit].size) : undefined
|
|
210
220
|
};
|
|
211
|
-
})
|
|
221
|
+
}),
|
|
222
|
+
taxes: !taxes ? taxesInformation.replace(/\r?\n|\r/g, '') : undefined
|
|
212
223
|
});
|
|
213
224
|
});
|
|
214
225
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","KEY_HASH","get","clubDiscount","applyClubDiscount","currency","userCurrency","locale","session","others","arguments","length","undefined","Promise","resolve","reject","idtokenprovider","id","checkin","nights","params","Object","entries","accessClubToken","authorization","cid","sha1","concat","lang","split","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","ServiceCurrency","exchange","items","values","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","rates","description","roomTypeInfo","bedDistributions","bedType","photos","roomSize","size","occupationQuantities","numAdults","adults","totalChildren","children","occupationRates","forEach","boardOptions","boards","cancellationPolicyDeadline","cancelEnd","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","includedList","included","paymentText","paymentConditions","restrictions","boardGroupName","boardName","detail","discountPricesBefore","discounts","maxRoomsPerReservation","max","minRoomsPerReservation","min","offersApplied","deals","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeTotal","promoCode","clubTotal","club","offerTotal","deal","originalPrice","Math","withTaxes","push","amount","basePrice","normalizePrice","cancellation","hint","trim","title","text","dayPrice","getPrice","price","days","dayStandardFormat","offerId","discount","parseDiscount","Set","flat","slice","amenities","parseAmenities","bedDisposition","type","BED_DISPOSITION","bedTypes","reduce","next","includes","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","maxOccupation","UNIT","exports"],"sources":["../../../src/services/Rates/get.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from './constants';\nimport { getPrice, normalizePrice, parseAmenities, parseDiscount } from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst KEY_HASH = 'm14357';\n\nexport const get = ({\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n locale,\n session = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const { idtokenprovider: id, checkin, nights } = others;\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: session.authorization,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n lang: locale.split('-')[0],\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const { currencyCode: hotelCurrency, measureUnit: unit, roomTypes } = response;\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n resolve({\n items: Object.values(roomTypes).map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const rates = [];\n const { description, roomTypeInfo: { bedDistributions: bedType = [], photos, roomSize: size } = {} } = info;\n const {\n occupationQuantities: { numAdults: adults = 0, totalChildren: children = 0 } = {},\n rates: occupationRates,\n } = Object.values(occupationOptions)[0];\n\n Object.values(occupationRates).forEach(\n ({\n boardOptions: boards,\n cancellationPolicyDeadline: cancelEnd,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n includedList: included,\n name,\n paymentText: paymentConditions,\n restrictions,\n } = {}) => {\n Object.values(boards).forEach(\n ({\n boardGroupName: boardName,\n detail,\n discountPricesBefore: discounts = {},\n id,\n maxRoomsPerReservation: max,\n minRoomsPerReservation: min,\n offersApplied: deals,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n } = {}) => {\n const { clientCodeTotal: promoCode, clubTotal: club, offerTotal: deal } = discounts;\n const originalPrice =\n Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0) || totalPrice;\n\n rates.push({\n amount: [min, availability < max ? availability : max],\n basePrice: normalizePrice(totalPriceOriginal, currency),\n boardName,\n cancellation: {\n hint: `${cancelName} ${cancelEnd ? cancelEnd : ''}`.trim(),\n title: cancelTitle,\n text: cancelText,\n },\n dayPrice: getPrice({ currency, hotelCurrency, price: withTaxesAvgPrice }),\n days: detail.map(({ dayStandardFormat: value, offerId: deal, price } = {}) => ({\n deal,\n price: getPrice({ currency, hotelCurrency, price }),\n value,\n })),\n deals,\n discount: parseDiscount({ currency, hotelCurrency, ...discounts, originalPrice, totalPrice }),\n id,\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n localTaxes,\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({ currency, hotelCurrency, price: totalPrice + localTaxes }),\n name,\n paymentConditions,\n restrictions,\n });\n },\n );\n },\n );\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes: bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n maxOccupation: adults + children,\n rates,\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n });\n });\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get.js","names":["_dataSources","require","_services","_jsSha","_interopRequireDefault","_constants","_helpers","obj","__esModule","default","DOUBLE","SINGLE","BED_TYPE","KEY_HASH","get","clubDiscount","applyClubDiscount","currency","userCurrency","locale","session","others","arguments","length","undefined","Promise","resolve","reject","idtokenprovider","id","checkin","nights","params","Object","entries","accessClubToken","authorization","cid","sha1","concat","lang","split","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","URLSearchParams","headers","catch","result","error","currencyCode","hotelCurrency","measureUnit","unit","roomTypes","taxesInformation","vatIncluded","taxes","ServiceCurrency","exchange","items","values","map","amountAvailable","availability","name","newInfoRoom","info","occupationOptions","rates","description","roomTypeInfo","bedDistributions","bedType","photos","roomSize","size","occupationQuantities","numAdults","adults","totalChildren","children","occupationRates","forEach","boardOptions","boards","cancellationPolicyDeadline","cancelEnd","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","includedList","included","paymentText","paymentConditions","restrictions","boardGroupName","boardName","detail","discountPricesBefore","discounts","maxRoomsPerReservation","max","minRoomsPerReservation","min","offersApplied","deals","originalAvgPrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeTotal","promoCode","clubTotal","club","offerTotal","deal","price","originalPrice","Math","withTaxes","original","push","amount","basePrice","normalizePrice","cancellation","hint","trim","title","text","dayPrice","getPrice","days","dayStandardFormat","offerId","priceWithoutTaxes","priceWithTaxes","discount","parseDiscount","Set","flat","slice","amenities","parseAmenities","bedDisposition","type","BED_DISPOSITION","bedTypes","reduce","next","includes","images","photoAltDescription","alt","urlLarge","large","urlMediumRect","thumbnail","maxOccupation","UNIT","replace","exports"],"sources":["../../../src/services/Rates/get.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\nimport sha1 from 'js-sha1';\n\nimport { BED_DISPOSITION, BED_TYPE, UNIT } from './constants';\nimport { getPrice, normalizePrice, parseAmenities, parseDiscount } from './helpers';\n\nconst { DOUBLE, SINGLE } = BED_TYPE;\n\nconst KEY_HASH = 'm14357';\n\nexport const get = ({\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n locale,\n session = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const { idtokenprovider: id, checkin, nights } = others;\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: session.authorization,\n cid: sha1(`${KEY_HASH}-${id}-${checkin}-${nights}`),\n lang: locale.split('-')[0],\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_availability_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch(reject);\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const {\n currencyCode: hotelCurrency,\n measureUnit: unit,\n roomTypes,\n taxesInformation,\n vatIncluded: taxes,\n } = response;\n const currency = userCurrency || hotelCurrency;\n await ServiceCurrency.exchange(currency);\n\n resolve({\n items: Object.values(roomTypes).map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const rates = [];\n const { description, roomTypeInfo: { bedDistributions: bedType = [], photos, roomSize: size } = {} } = info;\n const {\n occupationQuantities: { numAdults: adults = 0, totalChildren: children = 0 } = {},\n rates: occupationRates,\n } = Object.values(occupationOptions)[0];\n\n Object.values(occupationRates).forEach(\n ({\n boardOptions: boards,\n cancellationPolicyDeadline: cancelEnd,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n includedList: included,\n name,\n paymentText: paymentConditions,\n restrictions,\n } = {}) => {\n Object.values(boards).forEach(\n ({\n boardGroupName: boardName,\n detail,\n discountPricesBefore: discounts = {},\n id,\n maxRoomsPerReservation: max,\n minRoomsPerReservation: min,\n offersApplied: deals,\n originalAvgPrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n } = {}) => {\n const { clientCodeTotal: promoCode, clubTotal: club, offerTotal: deal } = discounts;\n const price = taxes ? totalPrice : totalPriceOriginal;\n const originalPrice =\n (taxes\n ? Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0)\n : Math.max(deal?.original || 0, club?.original || 0, promoCode?.original || 0)) || price;\n\n rates.push({\n amount: [min, availability < max ? availability : max],\n basePrice: normalizePrice(totalPriceOriginal, currency),\n boardName,\n cancellation: {\n hint: `${cancelName} ${cancelEnd ? cancelEnd : ''}`.trim(),\n title: cancelTitle,\n text: cancelText,\n },\n dayPrice: getPrice({\n currency,\n hotelCurrency,\n price: taxes ? withTaxesAvgPrice : originalAvgPrice,\n }),\n days: detail.map(\n ({\n dayStandardFormat: value,\n offerId: deal,\n priceWithoutTaxes: basePrice,\n priceWithTaxes: price,\n } = {}) => ({\n deal,\n price: getPrice({ currency, hotelCurrency, price: taxes ? price : basePrice }),\n value,\n }),\n ),\n deals,\n discount: parseDiscount({\n currency,\n hotelCurrency,\n ...discounts,\n originalPrice,\n taxes,\n totalPrice: price,\n }),\n id,\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({\n currency,\n hotelCurrency,\n price: price + (taxes ? localTaxes : 0),\n }),\n name,\n paymentConditions,\n restrictions,\n taxes: !taxes\n ? getPrice({ currency, hotelCurrency, price: totalPrice - totalPriceOriginal + localTaxes })\n : undefined,\n });\n },\n );\n },\n );\n\n return {\n amenities: parseAmenities(info),\n availability,\n bedDisposition: bedType.map((type) => BED_DISPOSITION[type]),\n bedTypes: bedType.reduce((result, next) => {\n BED_DISPOSITION[next].forEach(({ amount, type } = {}) => {\n if ([DOUBLE, SINGLE].includes(type) && amount > 0) result[result.length ? 1 : 0] = type;\n });\n\n return result;\n }, []),\n description,\n images: photos?.map(({ photoAltDescription: alt, urlLarge: large, urlMediumRect: thumbnail } = {}) => ({\n alt,\n large,\n thumbnail,\n })),\n name,\n maxOccupation: adults + children,\n rates,\n size: size ? `${size} ${UNIT[unit].size}` : undefined,\n };\n },\n ),\n taxes: !taxes ? taxesInformation.replace(/\\r?\\n|\\r/g, '') : undefined,\n });\n });\n"],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ const parseDiscount = function () {
|
|
|
16
16
|
offerDiscountPercentInCents: dealValue,
|
|
17
17
|
offerTotal: deal,
|
|
18
18
|
originalPrice,
|
|
19
|
+
taxes,
|
|
19
20
|
totalPrice
|
|
20
21
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
21
22
|
return {
|
|
@@ -25,21 +26,21 @@ const parseDiscount = function () {
|
|
|
25
26
|
value: (0, _getPrice.getPrice)({
|
|
26
27
|
currency,
|
|
27
28
|
hotelCurrency,
|
|
28
|
-
price: club.withTaxes * (clubValue / 10000)
|
|
29
|
+
price: (taxes ? club.withTaxes : club.original) * (clubValue / 10000)
|
|
29
30
|
})
|
|
30
31
|
} : undefined, deal ? {
|
|
31
32
|
type: 1,
|
|
32
33
|
value: (0, _getPrice.getPrice)({
|
|
33
34
|
currency,
|
|
34
35
|
hotelCurrency,
|
|
35
|
-
price: deal.withTaxes * (dealValue / 10000)
|
|
36
|
+
price: (taxes ? deal.withTaxes : deal.original) * (dealValue / 10000)
|
|
36
37
|
})
|
|
37
38
|
} : undefined, promoCode ? {
|
|
38
39
|
type: 2,
|
|
39
40
|
value: (0, _getPrice.getPrice)({
|
|
40
41
|
currency,
|
|
41
42
|
hotelCurrency,
|
|
42
|
-
price: promoCode.withTaxes * (promoCodeValue / 10000)
|
|
43
|
+
price: (taxes ? promoCode.withTaxes : promoCode.original) * (promoCodeValue / 10000)
|
|
43
44
|
})
|
|
44
45
|
} : undefined].filter(value => !!value)
|
|
45
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseDiscount.js","names":["_getPrice","require","parseDiscount","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","currency","hotelCurrency","offerDiscountPercentInCents","dealValue","offerTotal","deal","originalPrice","totalPrice","arguments","length","undefined","percentage","Number","parseFloat","toFixed","breakdown","type","value","getPrice","price","withTaxes","filter","exports"],"sources":["../../../../src/services/Rates/helpers/parseDiscount.js"],"sourcesContent":["import { getPrice } from './getPrice';\n\nexport const parseDiscount = ({\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n currency,\n hotelCurrency,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n originalPrice,\n totalPrice,\n} = {}) => ({\n percentage: +Number.parseFloat(((originalPrice - totalPrice) * 100) / originalPrice).toFixed(0),\n breakdown: [\n club\n ? {\n type: 0,\n value: getPrice({
|
|
1
|
+
{"version":3,"file":"parseDiscount.js","names":["_getPrice","require","parseDiscount","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","currency","hotelCurrency","offerDiscountPercentInCents","dealValue","offerTotal","deal","originalPrice","taxes","totalPrice","arguments","length","undefined","percentage","Number","parseFloat","toFixed","breakdown","type","value","getPrice","price","withTaxes","original","filter","exports"],"sources":["../../../../src/services/Rates/helpers/parseDiscount.js"],"sourcesContent":["import { getPrice } from './getPrice';\n\nexport const parseDiscount = ({\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n currency,\n hotelCurrency,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n originalPrice,\n taxes,\n totalPrice,\n} = {}) => ({\n percentage: +Number.parseFloat(((originalPrice - totalPrice) * 100) / originalPrice).toFixed(0),\n breakdown: [\n club\n ? {\n type: 0,\n value: getPrice({\n currency,\n hotelCurrency,\n price: (taxes ? club.withTaxes : club.original) * (clubValue / 10000),\n }),\n }\n : undefined,\n deal\n ? {\n type: 1,\n value: getPrice({\n currency,\n hotelCurrency,\n price: (taxes ? deal.withTaxes : deal.original) * (dealValue / 10000),\n }),\n }\n : undefined,\n promoCode\n ? {\n type: 2,\n value: getPrice({\n currency,\n hotelCurrency,\n price: (taxes ? promoCode.withTaxes : promoCode.original) * (promoCodeValue / 10000),\n }),\n }\n : undefined,\n ].filter((value) => !!value),\n});\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEO,MAAMC,aAAa,GAAG,SAAAA,CAAA;EAAA,IAAC;IAC5BC,gCAAgC,EAAEC,cAAc;IAChDC,eAAe,EAAEC,SAAS;IAC1BC,0BAA0B,EAAEC,SAAS;IACrCC,SAAS,EAAEC,IAAI;IACfC,QAAQ;IACRC,aAAa;IACbC,2BAA2B,EAAEC,SAAS;IACtCC,UAAU,EAAEC,IAAI;IAChBC,aAAa;IACbC,KAAK;IACLC;EACF,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OAAM;IACVG,UAAU,EAAE,CAACC,MAAM,CAACC,UAAU,CAAE,CAACR,aAAa,GAAGE,UAAU,IAAI,GAAG,GAAIF,aAAa,CAAC,CAACS,OAAO,CAAC,CAAC,CAAC;IAC/FC,SAAS,EAAE,CACTjB,IAAI,GACA;MACEkB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QACdnB,QAAQ;QACRC,aAAa;QACbmB,KAAK,EAAE,CAACb,KAAK,GAAGR,IAAI,CAACsB,SAAS,GAAGtB,IAAI,CAACuB,QAAQ,KAAKzB,SAAS,GAAG,KAAK;MACtE,CAAC;IACH,CAAC,GACDc,SAAS,EACbN,IAAI,GACA;MACEY,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QACdnB,QAAQ;QACRC,aAAa;QACbmB,KAAK,EAAE,CAACb,KAAK,GAAGF,IAAI,CAACgB,SAAS,GAAGhB,IAAI,CAACiB,QAAQ,KAAKnB,SAAS,GAAG,KAAK;MACtE,CAAC;IACH,CAAC,GACDQ,SAAS,EACbhB,SAAS,GACL;MACEsB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QACdnB,QAAQ;QACRC,aAAa;QACbmB,KAAK,EAAE,CAACb,KAAK,GAAGZ,SAAS,CAAC0B,SAAS,GAAG1B,SAAS,CAAC2B,QAAQ,KAAK7B,cAAc,GAAG,KAAK;MACrF,CAAC;IACH,CAAC,GACDkB,SAAS,CACd,CAACY,MAAM,CAAEL,KAAK,IAAK,CAAC,CAACA,KAAK;EAC7B,CAAC;AAAA,CAAC;AAACM,OAAA,CAAAjC,aAAA,GAAAA,aAAA"}
|