@mirai/core 0.3.49 → 0.3.51

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.
Files changed (25) hide show
  1. package/build/components/Rates/Rates.Filter.js +10 -2
  2. package/build/components/Rates/Rates.Filter.js.map +1 -1
  3. package/build/components/Rates/Rates.Footer.js +14 -9
  4. package/build/components/Rates/Rates.Footer.js.map +1 -1
  5. package/build/components/Rates/Rates.js +5 -3
  6. package/build/components/Rates/Rates.js.map +1 -1
  7. package/build/components/Rates/Rates.l10n.js +10 -0
  8. package/build/components/Rates/Rates.l10n.js.map +1 -1
  9. package/build/components/Rates/Rates.module.css +2 -1
  10. package/build/components/Rates/components/Item/Item.js +3 -1
  11. package/build/components/Rates/components/Item/Item.js.map +1 -1
  12. package/build/components/Rates/components/Item/Item.l10n.js +4 -1
  13. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  14. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +762 -0
  15. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +2167 -0
  16. package/build/services/Rates/__tests__/__mocks__/rates-response.json +472 -0
  17. package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes-no-local.json +6674 -0
  18. package/build/services/Rates/__tests__/__mocks__/rates-success-no-taxes.json +16508 -0
  19. package/build/services/Rates/__tests__/__mocks__/rates-success.json +3473 -6942
  20. package/build/services/Rates/get.js +35 -12
  21. package/build/services/Rates/get.js.map +1 -1
  22. package/build/services/Rates/helpers/parseDiscount.js +4 -3
  23. package/build/services/Rates/helpers/parseDiscount.js.map +1 -1
  24. package/package.json +1 -1
  25. package/build/services/Rates/__tests__/__mocks__/rates-success-boards.json +0 -31398
@@ -59,12 +59,21 @@ 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);
68
+ const items = Object.values(roomTypes);
66
69
  resolve({
67
- items: Object.values(roomTypes).map(function () {
70
+ assistant: items.some(function () {
71
+ let {
72
+ occupationOptions: options = {}
73
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
74
+ return Object.keys(options).length > 1;
75
+ }),
76
+ items: items.map(function () {
68
77
  let {
69
78
  amountAvailable: availability,
70
79
  name,
@@ -76,6 +85,7 @@ const get = function () {
76
85
  description,
77
86
  roomTypeInfo: {
78
87
  bedDistributions: bedType = [],
88
+ galleryMedia: media,
79
89
  photos,
80
90
  roomSize: size
81
91
  } = {}
@@ -86,7 +96,7 @@ const get = function () {
86
96
  totalChildren: children = 0
87
97
  } = {},
88
98
  rates: occupationRates
89
- } = Object.values(occupationOptions)[0];
99
+ } = Object.values(occupationOptions)[0] || {};
90
100
  Object.values(occupationRates).forEach(function () {
91
101
  let {
92
102
  boardOptions: boards,
@@ -108,6 +118,7 @@ const get = function () {
108
118
  maxRoomsPerReservation: max,
109
119
  minRoomsPerReservation: min,
110
120
  offersApplied: deals,
121
+ originalAvgPrice,
111
122
  totalLocalTaxes: localTaxes,
112
123
  totalPriceOriginal,
113
124
  totalPriceWithTaxes: totalPrice,
@@ -118,7 +129,8 @@ const get = function () {
118
129
  clubTotal: club,
119
130
  offerTotal: deal
120
131
  } = discounts;
121
- const originalPrice = 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) || totalPrice;
132
+ const price = taxes ? totalPrice : totalPriceOriginal;
133
+ 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
134
  rates.push({
123
135
  amount: [min, availability < max ? availability : max],
124
136
  basePrice: (0, _helpers.normalizePrice)(totalPriceOriginal, currency),
@@ -131,20 +143,21 @@ const get = function () {
131
143
  dayPrice: (0, _helpers.getPrice)({
132
144
  currency,
133
145
  hotelCurrency,
134
- price: withTaxesAvgPrice
146
+ price: taxes ? withTaxesAvgPrice : originalAvgPrice
135
147
  }),
136
148
  days: detail.map(function () {
137
149
  let {
138
150
  dayStandardFormat: value,
139
151
  offerId: deal,
140
- price
152
+ priceWithoutTaxes: basePrice,
153
+ priceWithTaxes: price
141
154
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
142
155
  return {
143
156
  deal,
144
157
  price: (0, _helpers.getPrice)({
145
158
  currency,
146
159
  hotelCurrency,
147
- price
160
+ price: taxes ? price : basePrice
148
161
  }),
149
162
  value
150
163
  };
@@ -155,11 +168,11 @@ const get = function () {
155
168
  hotelCurrency,
156
169
  ...discounts,
157
170
  originalPrice,
158
- totalPrice
171
+ taxes,
172
+ totalPrice: price
159
173
  }),
160
174
  id,
161
175
  included: [...new Set(Object.values(included).flat())].slice(0, 3),
162
- localTaxes,
163
176
  originalPrice: (0, _helpers.getPrice)({
164
177
  currency,
165
178
  hotelCurrency,
@@ -168,11 +181,16 @@ const get = function () {
168
181
  price: (0, _helpers.getPrice)({
169
182
  currency,
170
183
  hotelCurrency,
171
- price: totalPrice + localTaxes
184
+ price: price + (taxes ? localTaxes : 0)
172
185
  }),
173
186
  name,
174
187
  paymentConditions,
175
- restrictions
188
+ restrictions,
189
+ taxes: !taxes ? (0, _helpers.getPrice)({
190
+ currency,
191
+ hotelCurrency,
192
+ price: totalPrice - totalPriceOriginal + localTaxes
193
+ }) : undefined
176
194
  });
177
195
  });
178
196
  });
@@ -205,10 +223,15 @@ const get = function () {
205
223
  }),
206
224
  name,
207
225
  maxOccupation: adults + children,
226
+ media: media ? {
227
+ immersive3d: media.url3D,
228
+ video: media.video
229
+ } : undefined,
208
230
  rates,
209
231
  size: size ? "".concat(size, " ").concat(_constants.UNIT[unit].size) : undefined
210
232
  };
211
- })
233
+ }),
234
+ taxes: !taxes ? taxesInformation.replace(/\r?\n|\r/g, '') : undefined
212
235
  });
213
236
  });
214
237
  };
@@ -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","assistant","some","occupationOptions","options","keys","map","amountAvailable","availability","name","newInfoRoom","info","rates","description","roomTypeInfo","bedDistributions","bedType","galleryMedia","media","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","immersive3d","url3D","video","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 const items = Object.values(roomTypes);\n\n resolve({\n assistant: items.some(({ occupationOptions: options = {} } = {}) => Object.keys(options).length > 1),\n items: items.map(\n ({ amountAvailable: availability, name, newInfoRoom: info = {}, occupationOptions = {} } = {}) => {\n const rates = [];\n const {\n description,\n roomTypeInfo: { bedDistributions: bedType = [], galleryMedia: media, photos, roomSize: size } = {},\n } = 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 media: media ? { immersive3d: media.url3D, video: media.video } : undefined,\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({ currency, hotelCurrency, price: club.withTaxes * (clubValue / 10000) }),\n }\n : undefined,\n deal\n ? {\n type: 1,\n value: getPrice({ currency, hotelCurrency, price: deal.withTaxes * (dealValue / 10000) }),\n }\n : undefined,\n promoCode\n ? {\n type: 2,\n value: getPrice({ currency, hotelCurrency, price: promoCode.withTaxes * (promoCodeValue / 10000) }),\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;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,CAACP,aAAa,GAAGC,UAAU,IAAI,GAAG,GAAID,aAAa,CAAC,CAACQ,OAAO,CAAC,CAAC,CAAC;IAC/FC,SAAS,EAAE,CACThB,IAAI,GACA;MACEiB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QAAElB,QAAQ;QAAEC,aAAa;QAAEkB,KAAK,EAAEpB,IAAI,CAACqB,SAAS,IAAIvB,SAAS,GAAG,KAAK;MAAE,CAAC;IAC1F,CAAC,GACDa,SAAS,EACbL,IAAI,GACA;MACEW,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QAAElB,QAAQ;QAAEC,aAAa;QAAEkB,KAAK,EAAEd,IAAI,CAACe,SAAS,IAAIjB,SAAS,GAAG,KAAK;MAAE,CAAC;IAC1F,CAAC,GACDO,SAAS,EACbf,SAAS,GACL;MACEqB,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,IAAAC,kBAAQ,EAAC;QAAElB,QAAQ;QAAEC,aAAa;QAAEkB,KAAK,EAAExB,SAAS,CAACyB,SAAS,IAAI3B,cAAc,GAAG,KAAK;MAAE,CAAC;IACpG,CAAC,GACDiB,SAAS,CACd,CAACW,MAAM,CAAEJ,KAAK,IAAK,CAAC,CAACA,KAAK;EAC7B,CAAC;AAAA,CAAC;AAACK,OAAA,CAAA/B,aAAA,GAAAA,aAAA"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.3.49",
3
+ "version": "0.3.51",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",