diff --git a/migrations/20190709120748-rename-resourceId-column-in-booking-change-incidents-table.js b/migrations/20190709120748-rename-resourceId-column-in-booking-change-incidents-table.js new file mode 100644 index 0000000..dc892da --- /dev/null +++ b/migrations/20190709120748-rename-resourceId-column-in-booking-change-incidents-table.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.renameColumn('bookingChangeIncidents', 'resourceId', 'oldResourceId'); + }, + + down: (queryInterface, Sequelize) => { + return queryInterface.renameColumn('bookingChangeIncidents', 'oldResourceId', 'resourceId'); + } +}; diff --git a/migrations/20190709121128-add-new-resourceId-column-in-booking-change-incidents-table.js b/migrations/20190709121128-add-new-resourceId-column-in-booking-change-incidents-table.js new file mode 100644 index 0000000..1b568b0 --- /dev/null +++ b/migrations/20190709121128-add-new-resourceId-column-in-booking-change-incidents-table.js @@ -0,0 +1,14 @@ +'use strict'; + +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.addColumn('bookingChangeIncidents', 'newResourceId', { + type: Sequelize.TEXT, + after: 'oldResourceId', + }); + }, + + down: (queryInterface, Sequelize) => { + return queryInterface.removeColumn('bookingChangeIncidents', 'newResourceId'); + } +}; diff --git a/models/bookingChangeIncident.js b/models/bookingChangeIncident.js index 1a91f1e..a5e9a75 100644 --- a/models/bookingChangeIncident.js +++ b/models/bookingChangeIncident.js @@ -4,7 +4,8 @@ module.exports = (sequelize, DataTypes) => { const bookingChangeIncident = sequelize.define('bookingChangeIncident', { reservationId: DataTypes.TEXT, memberId: DataTypes.TEXT, - resourceId: DataTypes.TEXT, + oldResourceId: DataTypes.TEXT, + newResourceId: DataTypes.TEXT, oldBookingStart: DataTypes.DATE, oldBookingEnd: DataTypes.DATE, newBookingStart: DataTypes.DATE, diff --git a/services/integration/bookingChangeCharges.js b/services/integration/bookingChangeCharges.js index 13d47b2..06a9f8c 100644 --- a/services/integration/bookingChangeCharges.js +++ b/services/integration/bookingChangeCharges.js @@ -28,6 +28,7 @@ const chargeBookingChanges = (changes) => { changes.forEach((change) => { const { oldReservation, newReservation } = change; if (oldReservation && newReservation){ + const oldResourceId = oldReservation.resourceId; const oldStart = oldReservation.start ? moment.utc(oldReservation.start) : null; const oldEnd = oldReservation.end ? moment.utc(oldReservation.end) : null; @@ -56,14 +57,14 @@ const chargeBookingChanges = (changes) => { // Check if member shortened the reservation if (newReservationLength < oldReservationLength){ - const differenceInLength = oldReservationLength - newReservationLength; const chargeFee = differenceInLength*hourlyRate*BOOKING_CHANGE_PERCENTAGE_CHARGE/100; const incident = { reservationId, memberId, - resourceId, + oldResourceId: oldResourceId || newReservation.resourceId, + newResourceId: newReservation.resourceId, oldBookingStart: oldReservation.start, oldBookingEnd: oldReservation.end, newBookingStart: newReservation.start, @@ -82,7 +83,8 @@ const chargeBookingChanges = (changes) => { const incident = { reservationId, memberId, - resourceId, + oldResourceId: oldResourceId || newReservation.resourceId, + newResourceId: newReservation.resourceId, oldBookingStart: oldReservation.start, oldBookingEnd: oldReservation.end, newBookingStart: newReservation.start, diff --git a/services/officeRnD/bookings.js b/services/officeRnD/bookings.js index 3a63a6c..650b7aa 100644 --- a/services/officeRnD/bookings.js +++ b/services/officeRnD/bookings.js @@ -174,7 +174,7 @@ const bulkWriteReservationsWithChangesTracking = (reservations) => { const changedKeys = instance.changed(); const previous = instance.previous(); - const lookupKeys = ['start', 'end']; + const lookupKeys = ['start', 'end', 'resourceId']; let realChange = false; lookupKeys.forEach((key) => {