diff --git a/services/integration/checkBookingChange.js b/services/integration/checkBookingChange.js index 1bd0395..9a46a39 100644 --- a/services/integration/checkBookingChange.js +++ b/services/integration/checkBookingChange.js @@ -24,14 +24,17 @@ const checkBookingChanges = () => { const ratesMap = {}; rates.forEach(rate => { - const { rateId, price } = rate; - ratesMap[rateId] = price; + const { rateId, price, weekendPrice } = rate; + ratesMap[rateId] = { + price, + weekendPrice + }; }); const resourcesMap = {}; resources.forEach(resource => { const { resourceId, rate } = resource; - resource.price = ratesMap[rate] || 0; + resource.price = ratesMap[rate] || {price: 0, weekendPrice: 0}; resourcesMap[resourceId] = resource; }); diff --git a/services/officeRnD/bookings.js b/services/officeRnD/bookings.js index e38fb81..bea8189 100644 --- a/services/officeRnD/bookings.js +++ b/services/officeRnD/bookings.js @@ -193,7 +193,16 @@ const bulkWriteReservationsWithChangesTracking = (reservations, resourcesMap) => if (parseFloat(instance.previous('hourlyRate') > 0)) { instance.setDataValue('hourlyRate', instance.previous('hourlyRate')); }else{ - const hourlyRate = resourceId ? resourcesMap[resourceId].price : 0; + //Determine if we should apply weekend price or work day price + const newStartWeekDay = moment.utc(instance.start).isoWeekday(); + const isWeekend = newStartWeekDay > 5; //6 - Saturday, 7 - Sunday + let hourlyRate; + if (isWeekend){ + hourlyRate = resourceId ? resourcesMap[resourceId].price.weekendPrice : 0; + }else{ + hourlyRate = resourceId ? resourcesMap[resourceId].price.price : 0; + } + console.log(hourlyRate); instance.setDataValue('hourlyRate', hourlyRate); } } diff --git a/services/officeRnD/rates.js b/services/officeRnD/rates.js index 898c3fe..9f6aea0 100644 --- a/services/officeRnD/rates.js +++ b/services/officeRnD/rates.js @@ -9,9 +9,17 @@ const fetchRates = () => { const rates = result.data || []; const cleanedRates = []; rates.forEach(rate => { + const additionalRates = rate.rates; + let weekendRate = rate.price; //fallback price + additionalRates.forEach(additionalRate => { + if (additionalRate.isWeekendRate){ + weekendRate = additionalRate.price; + } + }); cleanedRates.push({ rateId: rate['_id'], price: rate.price, + weekendPrice: weekendRate }); }); resolve(cleanedRates);