From 0c6d481a6992bc557e47046a34ba1c0ac0b5d20a Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Wed, 31 Jul 2019 13:55:02 +0200 Subject: [PATCH 1/3] fix fees formatting --- services/integration/invoiceIntegration.js | 113 +++++++++++---------- 1 file changed, 59 insertions(+), 54 deletions(-) diff --git a/services/integration/invoiceIntegration.js b/services/integration/invoiceIntegration.js index e5048f2..93cd860 100644 --- a/services/integration/invoiceIntegration.js +++ b/services/integration/invoiceIntegration.js @@ -39,9 +39,10 @@ const createFeeFromIncident = (incident) => { let date = ''; let price = 0; let quantity = 0; - let priceExplanation = ''; + // let priceExplanation = ''; let bookingTimeExplanation = ''; let incidentTimeExplanation = ''; + let incidentTypeExplanation = ''; let additionalIncidentExplanation = ''; let roomExplanation = ''; @@ -62,67 +63,70 @@ const createFeeFromIncident = (incident) => { switch (incidentTypeNumber){ case incidentType.UNLOCKED_INCIDENT_RELATED_WITH_RESERVATION: roomExplanation = resourceName; - dateExplanation = bookingStartMoment.clone().startOf('day').format('MMM DD, YYYY'); + dateExplanation = bookingStartMoment.clone().startOf('day').format('MMM DD'); bookingTimeExplanation = `${bookingStartMoment.clone().format('HH:mm a')} - ${bookingEndMoment.clone().format('HH:mm a')}`; - incidentTimeExplanation = `UNLOCK : ${unlockMoment.clone().format('HH:mm a')}`; - unlockedIncidentLevelsPrices[incidentLevel].description - additionalIncidentExplanation = unlockedIncidentLevelsPrices[incidentLevel].description; + incidentTimeExplanation = ''; // `UNLOCK : ${unlockMoment.clone().format('HH:mm a')}`; + additionalIncidentExplanation = ` ${unlockedIncidentLevelsPrices[incidentLevel].description},`; + incidentTypeExplanation = '[Additional charge]'; date = bookingStartMoment.clone().startOf('day').format(); - price = incidentPrice; - quantity = 1; - priceExplanation = `$${price.toFixed(2)}, 1 x $${price.toFixed(2)}`; + price = incidentPrice.toFixed(2); + quantity = 1.00; + // priceExplanation = `$${price}, 1 x $${price.toFixed(2)}`; break; case incidentType.UNSCHEDULED_INCIDENT_BEFORE_RESERVATION: roomExplanation = resourceName; - dateExplanation = bookingStartMoment.clone().startOf('day').format('MMM DD, YYYY'); + dateExplanation = bookingStartMoment.clone().startOf('day').format('MMM DD'); bookingTimeExplanation = `${bookingStartMoment.clone().format('HH:mm a')} - ${bookingEndMoment.clone().format('HH:mm a')}`; - incidentTimeExplanation = `UNLOCK : ${unlockMoment.clone().format('HH:mm a')}`; + incidentTimeExplanation = ` Unlock : ${unlockMoment.clone().format('HH:mm a')},`; + incidentTypeExplanation = '[Additional charge]'; date = bookingStartMoment.clone().startOf('day').format(); - price = chargePrice; - quantity = timeIntervalsToCharge; - priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; + price = chargePrice.toFixed(2); + quantity = timeIntervalsToCharge.toFixed(2); + // priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; break; case incidentType.UNSCHEDULED_INCIDENT_AFTER_RESERVATION: roomExplanation = resourceName; - dateExplanation = bookingStartMoment.clone().startOf('day').format('MMM DD, YYYY'); + dateExplanation = bookingStartMoment.clone().startOf('day').format('MMM DD'); bookingTimeExplanation = `${bookingStartMoment.clone().format('HH:mm a')} - ${bookingEndMoment.clone().format('HH:mm a')}`; - incidentTimeExplanation = `LOCK : ${lockMoment.clone().format('HH:mm a')}`; + incidentTimeExplanation = ` Lock : ${lockMoment.clone().format('HH:mm a')},`; + incidentTypeExplanation = '[Additional charge]'; date = bookingStartMoment.clone().startOf('day').format(); - price = chargePrice; - quantity = timeIntervalsToCharge; - priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; + price = chargePrice.toFixed(2); + quantity = timeIntervalsToCharge.toFixed(2); + // priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; break; case incidentType.UNLOCKED_INCIDENT_STANDALONE: roomExplanation = resourceName; - dateExplanation = unlockMoment.clone().startOf('day').format('MMM DD, YYYY'); - bookingTimeExplanation = `NO RESERVATION`; - incidentTimeExplanation = `UNLOCK : ${unlockMoment.clone().format('HH:mm a')}`; - additionalIncidentExplanation = unlockedIncidentLevelsPrices[incidentLevel].description; + dateExplanation = unlockMoment.clone().startOf('day').format('MMM DD'); + bookingTimeExplanation = `No reservation`; + incidentTimeExplanation = ''; // `UNLOCK : ${unlockMoment.clone().format('HH:mm a')}`; + additionalIncidentExplanation = ` ${unlockedIncidentLevelsPrices[incidentLevel].description},`; + incidentTypeExplanation = '[Additional charge]'; date = unlockMoment.clone().startOf('day').format(); - price = incidentPrice; - quantity = 1; - priceExplanation = `$${price.toFixed(2)}, 1 x $${price.toFixed(2)}`; + price = incidentPrice.toFixed(2); + quantity = 1.00; + // priceExplanation = `$${price.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; case incidentType.UNSCHEDULED_INCIDENT_STANDALONE: roomExplanation = resourceName; - dateExplanation = unlockMoment.clone().startOf('day').format('MMM DD, YYYY'); - bookingTimeExplanation = `NO RESERVATION`; - incidentTimeExplanation = `UNLOCK : ${unlockMoment.clone().format('HH:mm a')} LOCK : ${lockMoment.clone().format('HH:mm a')}`; - additionalIncidentExplanation = ''; + dateExplanation = unlockMoment.clone().startOf('day').format('MMM DD'); + bookingTimeExplanation = `No reservation`; + incidentTimeExplanation = ` Unlock : ${unlockMoment.clone().format('HH:mm a')} Lock : ${lockMoment.clone().format('HH:mm a')},`; + incidentTypeExplanation = '[Additional charge]'; date = unlockMoment.clone().startOf('day').format(); - price = chargePrice; - quantity = timeIntervalsToCharge; - priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; + price = chargePrice.toFixed(2); + quantity = timeIntervalsToCharge.toFixed(2); + // priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; break; case incidentType.BOOKING_MOVED_TO_ANOTHER_DAY: if (oldResourceName !== newResourceName){ @@ -131,15 +135,16 @@ const createFeeFromIncident = (incident) => { roomExplanation = oldResourceName; } - dateExplanation = `${oldBookingStartMoment.clone().format('MMM DD, YYYY')} -> ${newBookingStartMoment.clone().format('MMM DD, YYYY')}`; + dateExplanation = `${oldBookingStartMoment.clone().format('MMM DD')} -> ${newBookingStartMoment.clone().format('MMM DD')}`; bookingTimeExplanation = `(${oldBookingStartMoment.clone().format('HH:mm a')} - ${oldBookingEndMoment.clone().format('HH:mm a')}) -> (${newBookingStartMoment.clone().format('HH:mm a')} - ${newBookingEndMoment.clone().format('HH:mm a')})`; - incidentTimeExplanation = `MOVED ON : ${incidentTimestampMoment.clone().format('MMM DD, YYYY')}`; + incidentTimeExplanation = ` Moved on : ${incidentTimestampMoment.clone().format('MMM DD, HH:mm a')},`; + incidentTypeExplanation = '[Cancellation]'; date = incidentTimestampMoment.clone().startOf('day').format(); - price = totalChargeFee; - quantity = 1; - priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; + price = totalChargeFee.toFixed(2); + quantity = 1.00; + // priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; case incidentType.BOOKING_SHORTENED: if (oldResourceName !== newResourceName){ @@ -148,31 +153,33 @@ const createFeeFromIncident = (incident) => { roomExplanation = oldResourceName; } - dateExplanation = `${oldBookingStartMoment.clone().format('MMM DD, YYYY')}`; + dateExplanation = `${oldBookingStartMoment.clone().format('MMM DD')}`; bookingTimeExplanation = `(${oldBookingStartMoment.clone().format('HH:mm a')} - ${oldBookingEndMoment.clone().format('HH:mm a')}) -> (${newBookingStartMoment.clone().format('HH:mm a')} - ${newBookingEndMoment.clone().format('HH:mm a')})`; - incidentTimeExplanation = `SHORTENED ON : ${incidentTimestampMoment.clone().format('MMM DD, YYYY')}`; + incidentTimeExplanation = ` Shortened on : ${incidentTimestampMoment.clone().format('MMM DD, HH:mm a')},`; + incidentTypeExplanation = '[Cancellation]'; date = incidentTimestampMoment.clone().startOf('day').format(); - price = totalChargeFee; - quantity = 1; - priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; + price = totalChargeFee.toFixed(2); + quantity = 1.00; + // priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; case incidentType.BOOKING_CANCELED_LATE: roomExplanation = oldResourceName; - dateExplanation = `${oldBookingStartMoment.clone().format('MMM DD, YYYY')}`; + dateExplanation = `${oldBookingStartMoment.clone().format('MMM DD')}`; bookingTimeExplanation = `${oldBookingStartMoment.clone().format('HH:mm a')} - ${oldBookingEndMoment.clone().format('HH:mm a')}`; - incidentTimeExplanation = `CANCELED ON : ${incidentTimestampMoment.clone().format('MMM DD, YYYY')}`; + incidentTimeExplanation = ` Canceled on : ${incidentTimestampMoment.clone().format('MMM DD, HH:mm a')},`; + incidentTypeExplanation = '[Cancellation]'; date = incidentTimestampMoment.clone().startOf('day').format(); - price = totalChargeFee; - quantity = 1; - priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; + price = totalChargeFee.toFixed(2); + quantity = 1.00; + // priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; } - const formattedName = `[INCIDENT FEES] ${officeName}, ${roomExplanation}, ${dateExplanation}, ${bookingTimeExplanation}, ${incidentTimeExplanation}, ${incidentExplanation}, ${additionalIncidentExplanation} ${additionalIncidentExplanation !== '' ? ',' : ''} ${priceExplanation}`; + const formattedName = `${incidentTypeExplanation} ${incidentExplanation},${additionalIncidentExplanation}${incidentTimeExplanation} ${officeName}, ${roomExplanation}, ${dateExplanation}, ${bookingTimeExplanation}`; return { name: formattedName, @@ -197,18 +204,16 @@ const createFeeFromBooking = (booking, resourceMappings) => { const officeName = officesMap[officeId].officeName || 'Unknown'; const resourceName = resourcesMap[resourceId].resourceName || 'Unknown'; - const totalCost = (hourlyRate*reservationLength).toFixed(2); - - const formattedDate = startMoment.clone().startOf('day').format('MMM DD, YYYY'); + const formattedDate = startMoment.clone().startOf('day').format('MMM DD'); const formattedStartTime = startMoment.format('HH:mm a'); const formattedEndTime = endMoment.format('HH:mm a'); - const formattedName = `${officeName}, ${resourceName}, $${totalCost}, ${formattedDate} [${formattedStartTime} - ${formattedEndTime}]`; + const formattedName = `[Reservation] ${officeName}, ${resourceName}, ${formattedDate} [${formattedStartTime} - ${formattedEndTime}]`; return { name: formattedName, - price: hourlyRate, - quantity: reservationLength, + price: hourlyRate.toFixed(2), + quantity: reservationLength.toFixed(2), date: startMoment.startOf('day').toISOString(), member: memberId, team: null, From 398a35f0c8919662734cfc37f8cbaaf703eeafbb Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Wed, 31 Jul 2019 14:17:30 +0200 Subject: [PATCH 2/3] fix price and quantity in fee post request --- services/integration/invoiceIntegration.js | 34 +++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/services/integration/invoiceIntegration.js b/services/integration/invoiceIntegration.js index 93cd860..aed22e2 100644 --- a/services/integration/invoiceIntegration.js +++ b/services/integration/invoiceIntegration.js @@ -71,7 +71,7 @@ const createFeeFromIncident = (incident) => { date = bookingStartMoment.clone().startOf('day').format(); - price = incidentPrice.toFixed(2); + price = +incidentPrice.toFixed(2); quantity = 1.00; // priceExplanation = `$${price}, 1 x $${price.toFixed(2)}`; break; @@ -84,8 +84,8 @@ const createFeeFromIncident = (incident) => { date = bookingStartMoment.clone().startOf('day').format(); - price = chargePrice.toFixed(2); - quantity = timeIntervalsToCharge.toFixed(2); + price = +chargePrice.toFixed(2); + quantity = +timeIntervalsToCharge.toFixed(2); // priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; break; case incidentType.UNSCHEDULED_INCIDENT_AFTER_RESERVATION: @@ -97,8 +97,8 @@ const createFeeFromIncident = (incident) => { date = bookingStartMoment.clone().startOf('day').format(); - price = chargePrice.toFixed(2); - quantity = timeIntervalsToCharge.toFixed(2); + price = +chargePrice.toFixed(2); + quantity = +timeIntervalsToCharge.toFixed(2); // priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; break; case incidentType.UNLOCKED_INCIDENT_STANDALONE: @@ -111,7 +111,7 @@ const createFeeFromIncident = (incident) => { date = unlockMoment.clone().startOf('day').format(); - price = incidentPrice.toFixed(2); + price = +incidentPrice.toFixed(2); quantity = 1.00; // priceExplanation = `$${price.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; @@ -124,8 +124,8 @@ const createFeeFromIncident = (incident) => { date = unlockMoment.clone().startOf('day').format(); - price = chargePrice.toFixed(2); - quantity = timeIntervalsToCharge.toFixed(2); + price = +chargePrice.toFixed(2); + quantity = +timeIntervalsToCharge.toFixed(2); // priceExplanation = `$${totalChargeFee.toFixed(2)}, ${quantity} x $${price.toFixed(2)}`; break; case incidentType.BOOKING_MOVED_TO_ANOTHER_DAY: @@ -142,7 +142,7 @@ const createFeeFromIncident = (incident) => { date = incidentTimestampMoment.clone().startOf('day').format(); - price = totalChargeFee.toFixed(2); + price = +totalChargeFee.toFixed(2); quantity = 1.00; // priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; @@ -160,7 +160,7 @@ const createFeeFromIncident = (incident) => { date = incidentTimestampMoment.clone().startOf('day').format(); - price = totalChargeFee.toFixed(2); + price = +totalChargeFee.toFixed(2); quantity = 1.00; // priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; @@ -173,7 +173,7 @@ const createFeeFromIncident = (incident) => { date = incidentTimestampMoment.clone().startOf('day').format(); - price = totalChargeFee.toFixed(2); + price = +totalChargeFee.toFixed(2); quantity = 1.00; // priceExplanation = `$${totalChargeFee.toFixed(2)}, 1 x $${price.toFixed(2)}`; break; @@ -212,8 +212,8 @@ const createFeeFromBooking = (booking, resourceMappings) => { return { name: formattedName, - price: hourlyRate.toFixed(2), - quantity: reservationLength.toFixed(2), + price: +hourlyRate.toFixed(2), + quantity: +reservationLength.toFixed(2), date: startMoment.startOf('day').toISOString(), member: memberId, team: null, @@ -248,6 +248,14 @@ const getMembersFeesForDateRange = (dateRange, memberIds) => { fee.team = memberIdTeamMappings[fee.member] || null; }); + // const sortingFunction = ((fee1, fee2) => { + // const date1 = fee1.date; + // const date2 = fee2.date; + // + // }); + // + // allFees.sort(sortingFunction); + resolve(allFees); }) .catch((error) => { From 582b2492435dedfeeed3d6c2acd4728a499196de Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Wed, 31 Jul 2019 14:21:51 +0200 Subject: [PATCH 3/3] remove obsolete code --- services/integration/invoiceIntegration.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/services/integration/invoiceIntegration.js b/services/integration/invoiceIntegration.js index aed22e2..bfbdddd 100644 --- a/services/integration/invoiceIntegration.js +++ b/services/integration/invoiceIntegration.js @@ -248,14 +248,6 @@ const getMembersFeesForDateRange = (dateRange, memberIds) => { fee.team = memberIdTeamMappings[fee.member] || null; }); - // const sortingFunction = ((fee1, fee2) => { - // const date1 = fee1.date; - // const date2 = fee2.date; - // - // }); - // - // allFees.sort(sortingFunction); - resolve(allFees); }) .catch((error) => {