add plan name filter for discount
This commit is contained in:
@@ -10,7 +10,7 @@ const { getResourceMappings } = require('../officeRnD/resources');
|
||||
const { fetchAllMembers } = require('../officeRnD/members');
|
||||
const { fetchAllMembershipsAsMap } = require('../officeRnD/memberships');
|
||||
const { getChargedCanceledReservations } = require('../integration/bookingChangeCharges');
|
||||
const { discounts } = require('../../constants/constants');
|
||||
const { discounts, DISCOUNT_PLANS } = require('../../constants/constants');
|
||||
|
||||
const createFeeFromIncident = (incident) => {
|
||||
const {
|
||||
@@ -226,17 +226,24 @@ const createFeeFromBooking = (booking, resourceMappings) => {
|
||||
};
|
||||
|
||||
const createNegativeFeeForDiscount = (memberData, dateRange) => {
|
||||
const { bookingData, member, membershipFee } = memberData;
|
||||
const { bookingData, member, membershipFees } = memberData;
|
||||
const { totalBookedHours, totalChargedHours, totalBookingChargedFee } = bookingData;
|
||||
const { memberId, officeId } = member;
|
||||
|
||||
|
||||
let endDate = moment.utc().endOf('day').toISOString();
|
||||
if (dateRange.endDate){
|
||||
endDate = moment.utc(dateRange.endDate, DEFAULT_DATE_FORMAT).endOf('day').toISOString();
|
||||
}
|
||||
|
||||
const totalChargeFee = membershipFee + totalBookingChargedFee;
|
||||
let membershipFeeForDiscount = 0;
|
||||
membershipFees.forEach((membershipFee) => {
|
||||
const {name, price} = membershipFee;
|
||||
if (DISCOUNT_PLANS.indexOf(name) !== -1){
|
||||
membershipFeeForDiscount = price;
|
||||
}
|
||||
});
|
||||
|
||||
const totalChargeFee = membershipFeeForDiscount + totalBookingChargedFee;
|
||||
|
||||
let discount = 0;
|
||||
let discountPercentage = 0;
|
||||
@@ -248,11 +255,9 @@ const createNegativeFeeForDiscount = (memberData, dateRange) => {
|
||||
}else if (totalChargedHours >= discounts.LEVEL_1.hoursRequired){
|
||||
discountPercentage = discounts.LEVEL_1.percentage;
|
||||
const discountRate = discountPercentage / 100;
|
||||
console.log(discountRate);
|
||||
discount = totalChargeFee * discountRate;
|
||||
}else{
|
||||
discountPercentage = 0;
|
||||
discount = 0;
|
||||
return null;
|
||||
}
|
||||
|
||||
const formattedName = `[Discount] Total booked : ${totalBookedHours.toFixed(2)} hrs, Total charged : ${totalChargedHours.toFixed(2)} hrs, Discount : ${discountPercentage} %`;
|
||||
@@ -267,7 +272,6 @@ const createNegativeFeeForDiscount = (memberData, dateRange) => {
|
||||
office: officeId,
|
||||
isPersonal: false,
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const getMembersFeesForDateRange = (dateRange, memberIds) => {
|
||||
@@ -293,7 +297,7 @@ const getMembersFeesForDateRange = (dateRange, memberIds) => {
|
||||
membersMap[member.memberId] = {
|
||||
member,
|
||||
bookingData: Object.assign({}, oneMemberObject),
|
||||
membershipFee: membershipsMap[member.memberId] || 0,
|
||||
membershipFees: membershipsMap[member.memberId],
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user