From 5335290b585bfe02314f38e17744b7214d597bb7 Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Mon, 9 Dec 2019 13:39:39 +0100 Subject: [PATCH] Tasks 5, 6 and 7 - late fees, reservation, moved --- constants/constants.js | 2 +- services/integration/invoiceIntegration.js | 6 +++--- services/officeRnD/fees.js | 23 ++++++++++++++++------ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/constants/constants.js b/constants/constants.js index aaeff9f..5a44445 100644 --- a/constants/constants.js +++ b/constants/constants.js @@ -102,7 +102,7 @@ incidentTypeExplanations[incidentType.UNLOCKED_INCIDENT_STANDALONE] incidentTypeExplanations[incidentType.UNSCHEDULED_INCIDENT_BEFORE_RESERVATION] = 'room used before reservation'; incidentTypeExplanations[incidentType.UNSCHEDULED_INCIDENT_AFTER_RESERVATION] = 'room used after reservation'; incidentTypeExplanations[incidentType.UNSCHEDULED_INCIDENT_STANDALONE] = 'room used without reservation'; -incidentTypeExplanations[incidentType.BOOKING_MOVED_TO_ANOTHER_DAY] = 'reservation moved to another day'; +incidentTypeExplanations[incidentType.BOOKING_MOVED_TO_ANOTHER_DAY] = 'reservation moved to another day in less than 24 hrs'; incidentTypeExplanations[incidentType.BOOKING_SHORTENED] = 'reservation shortened after grace period'; incidentTypeExplanations[incidentType.BOOKING_CANCELED_LATE] = 'reservation cancelled after grace period'; diff --git a/services/integration/invoiceIntegration.js b/services/integration/invoiceIntegration.js index 7101224..468b968 100644 --- a/services/integration/invoiceIntegration.js +++ b/services/integration/invoiceIntegration.js @@ -138,8 +138,8 @@ const createFeeFromIncident = (incident) => { roomExplanation = newResourceName || 'Unknown'; // dateExplanation = `${oldBookingStartMoment.clone().format('ddd, MMM DD')} -> ${newBookingStartMoment.clone().format('ddd, MMM DD')}`; - dateExplanation = `${newBookingStartMoment.clone().format('MMM DD')}`; - bookingTimeExplanation = `[${newBookingStartMoment.clone().format('HH:mm')} to ${newBookingEndMoment.clone().format('HH:mm')}]`; + dateExplanation = `${oldBookingStartMoment.clone().format('MMM DD')}`; + bookingTimeExplanation = `[${oldBookingStartMoment.clone().format('HH:mm')} to ${oldBookingEndMoment.clone().format('HH:mm')}]`; incidentTimeExplanation = `moved on : ${incidentTimestampMoment.clone().format('MMM DD, HH:mm')}`; incidentExplanation += `, ${incidentTimeExplanation}`; @@ -165,7 +165,7 @@ const createFeeFromIncident = (incident) => { incidentTimeExplanation = `reservation shortened from [${originalBookingExplanation}] on [${incidentTimestampMoment.clone().format('MMM DD, HH:mm')}]`; incidentExplanation = `${incidentTimeExplanation}`; - date = incidentTimestampMoment.clone().startOf('day').format(); + date = newBookingStartMoment.clone().utc(UI_TIMEZONE).startOf('day').format(); price = +totalChargeFee.toFixed(2); quantity = 1.00; diff --git a/services/officeRnD/fees.js b/services/officeRnD/fees.js index 57c0105..3f0c15b 100644 --- a/services/officeRnD/fees.js +++ b/services/officeRnD/fees.js @@ -22,9 +22,14 @@ const deleteFeesFromORD = (dateRange, memberIds) => { const fetchedFees = feesResponse.data ? feesResponse.data : []; const fetchedPlans = plansResponse.data ? plansResponse.data : []; + const planIsRateMap = {}; + const manualFeeNames = []; fetchedPlans.forEach((plan) => { - const { name } = plan; + const { name, _id, isRate } = plan; + + planIsRateMap[_id] = !!isRate; + if (name && name.length > 0){ manualFeeNames.push(name); } @@ -40,18 +45,24 @@ const deleteFeesFromORD = (dateRange, memberIds) => { const feeIdsToRemove = []; fetchedFees.forEach((fee) => { - const { member, date, invoice, name } = fee; + const { member, date, invoice, name, plan } = fee; const { status } = invoice; const feeId = fee['_id']; + const feePlanIsRate = plan ? planIsRateMap[plan] : null; const isDateInDateRange = startDate.isSameOrBefore(date) && endDate.isSameOrAfter(date); let manuallyAddedFee = false; - if (manualFeeNames.indexOf(name) === -1){ - if (name && name[0] && CUSTOM_FEES_PREFIXES.indexOf(name[0]) !== -1){ + + if (plan && !feePlanIsRate){ + manuallyAddedFee = true; + }else{ + if (manualFeeNames.indexOf(name) === -1){ + if (name && name[0] && CUSTOM_FEES_PREFIXES.indexOf(name[0]) !== -1){ + manuallyAddedFee = true; + } + }else{ manuallyAddedFee = true; } - }else{ - manuallyAddedFee = true; } const memberFeesShouldBeDeleted = filterByMemberIds ? memberIdsMap[member] : true;