From 7fbb1d9deef8ad9d2de2cde6ab9cba60a33c9b4f Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Thu, 8 Aug 2019 13:18:37 +0200 Subject: [PATCH 1/2] change cancellation fee from double booking fee to booking fee --- services/integration/bookingChangeCharges.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/integration/bookingChangeCharges.js b/services/integration/bookingChangeCharges.js index dd2ea89..a9de53e 100644 --- a/services/integration/bookingChangeCharges.js +++ b/services/integration/bookingChangeCharges.js @@ -101,7 +101,7 @@ const chargeBookingChanges = (changes) => { const differenceFromCreation = moment.utc().diff(reservationCreationTimestamp, 'minutes'); if (differenceFromCreation > ALLOWED_BOOKING_CANCELLATION_TIME){ - const chargeFee = 2 * reservationHourlyRate * oldReservationLength * BOOKING_CHANGE_PERCENTAGE_CHARGE / 100; + const chargeFee = reservationHourlyRate * oldReservationLength * BOOKING_CHANGE_PERCENTAGE_CHARGE / 100; const incident = { reservationId, memberId, From 2ff584c20b5f8d1516984a489d3211b856b354b1 Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Thu, 8 Aug 2019 14:18:59 +0200 Subject: [PATCH 2/2] make booking change charge under time flexible with env variable --- constants/constants.js | 4 +++- environment.env | 1 + services/integration/bookingChangeCharges.js | 13 +++++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/constants/constants.js b/constants/constants.js index 2bcdac9..2ec13a6 100644 --- a/constants/constants.js +++ b/constants/constants.js @@ -104,7 +104,8 @@ const UNSCHEDULED_CHARGE_PRICE = parseFloat(process.env.UNSCHEDULED_USE_CHARGE_P const BOOKING_CHANGE_PERCENTAGE_CHARGE = parseInt(process.env.BOOKING_CHANGE_PERCENTAGE_CHARGE) || 100; -const ALLOWED_BOOKING_CANCELLATION_TIME= parseInt(process.env.ALLOWED_BOOKING_CANCELLATION_TIME) || 30; +const CHARGE_BOOKING_CHANGE_UNDER_TIME = parseInt(process.env.CHARGE_BOOKING_CHANGE_UNDER_TIME) || 1430; +const ALLOWED_BOOKING_CANCELLATION_TIME = parseInt(process.env.ALLOWED_BOOKING_CANCELLATION_TIME) || 30; module.exports = { VALID_CSV_HEADERS, @@ -124,5 +125,6 @@ module.exports = { UNSCHEDULED_TIME_RESOLUTION, UNSCHEDULED_CHARGE_PRICE, BOOKING_CHANGE_PERCENTAGE_CHARGE, + CHARGE_BOOKING_CHANGE_UNDER_TIME, ALLOWED_BOOKING_CANCELLATION_TIME, }; diff --git a/environment.env b/environment.env index 74ad45d..2db303e 100644 --- a/environment.env +++ b/environment.env @@ -21,6 +21,7 @@ UNLOCK_STREAK_REPAIR_AFTER=Number of months without incidents to reset user inci BOOKING_CHANGE_PERCENTAGE_CHARGE=Percentage of hourly reate to apply for cancellation-like charges +CHARGE_BOOKING_CHANGE_UNDER_TIME=Time to booking start when booking change will be charged (in minutes) [Default is 1430 = 24*60 - 10; that is 24hrs - 10 minutes for booking change tracking cycle] ALLOWED_BOOKING_CANCELLATION_TIME=Time from creation (in minutes) in which cancellation is not charged SEQUELIZE_LOGGING=0 - false, 1 - true (console logging) diff --git a/services/integration/bookingChangeCharges.js b/services/integration/bookingChangeCharges.js index a9de53e..9a29c28 100644 --- a/services/integration/bookingChangeCharges.js +++ b/services/integration/bookingChangeCharges.js @@ -4,7 +4,13 @@ const moment = require('moment-timezone'); const db = require('../../models/index'); const Op = require('sequelize').Op; -const { UI_TIMEZONE, BOOKING_CHANGE_PERCENTAGE_CHARGE, ALLOWED_BOOKING_CANCELLATION_TIME, incidentType } = require('../../constants/constants'); +const { + UI_TIMEZONE, + BOOKING_CHANGE_PERCENTAGE_CHARGE, + CHARGE_BOOKING_CHANGE_UNDER_TIME, + ALLOWED_BOOKING_CANCELLATION_TIME, + incidentType +} = require('../../constants/constants'); const bulkWriteBookingChangeIncidents = (incidents) => { return new Promise((resolve, reject) => { @@ -44,10 +50,9 @@ const chargeBookingChanges = (changes) => { const oldReservationLength = oldEnd.diff(oldStart, 'hours', true); const newReservationLength = newEnd.diff(newStart, 'hours', true); - const differenceFromNow = oldStart.diff(moment.utc(), 'hours'); + const differenceFromNow = oldStart.diff(moment.utc(), 'minutes'); - if (differenceFromNow < 24){ - // Changed reservation that was within 24hrs from now + if (differenceFromNow < CHARGE_BOOKING_CHANGE_UNDER_TIME){ const { reservationId, memberId, resourceId } = newReservation; if (!canceled) {