Duplicate charging fix
This commit is contained in:
@@ -121,11 +121,11 @@ const addFees = (req, res) => {
|
||||
checkBookingChanges()
|
||||
.then(() => {
|
||||
deleteFeesFromORD(dateRange, memberIds)
|
||||
.then(() => {
|
||||
.then((invoicedFees) => {
|
||||
// TODO: Change this to parallel execution
|
||||
getMembersFeesForDateRange(dateRange, memberIds)
|
||||
.then(({allFees, memberships}) => {
|
||||
addFeesToORD(allFees)
|
||||
addFeesToORD(allFees, invoicedFees)
|
||||
.then((numberOfInsertedFees) => {
|
||||
reformatMembershipsName(memberships)
|
||||
.then(() => {
|
||||
|
||||
@@ -12,6 +12,8 @@ const deleteFeesFromORD = (dateRange, memberIds) => {
|
||||
|
||||
const asyncDataFetch = [API.get('fees'), API.get('plans')];
|
||||
|
||||
const invoicedFees = [];
|
||||
|
||||
Promise.all(asyncDataFetch)
|
||||
.then((responses) => {
|
||||
const feesResponse = responses[0];
|
||||
@@ -48,12 +50,14 @@ const deleteFeesFromORD = (dateRange, memberIds) => {
|
||||
|
||||
if (memberFeesShouldBeDeleted && isDateInDateRange && (status === UNPAID_FEE_STATUS) && !manuallyAddedFee) {
|
||||
feeIdsToRemove.push(feeId);
|
||||
}else{
|
||||
invoicedFees.push(fee);
|
||||
}
|
||||
});
|
||||
|
||||
API.delete('fees', { data: feeIdsToRemove })
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
resolve(invoicedFees);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log('error : ', error);
|
||||
@@ -67,14 +71,28 @@ const deleteFeesFromORD = (dateRange, memberIds) => {
|
||||
});
|
||||
};
|
||||
|
||||
const addFeesToORD = (allFees) => {
|
||||
const addFeesToORD = (allFees, invoicedFees) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
API.post('/fees', allFees)
|
||||
const isFeeNonInvoiced = (fee) => {
|
||||
const { name: feeName, member: feeMember, team: feeTeam, office: feeOffice } = fee;
|
||||
|
||||
const invoicedFeeObject = invoicedFees.find((invoicedFee) => {
|
||||
const { name, member, team, office } = invoicedFee;
|
||||
|
||||
return (name === feeName && member === feeMember && team === feeTeam && office === feeOffice );
|
||||
});
|
||||
|
||||
return !invoicedFeeObject;
|
||||
};
|
||||
|
||||
const nonInvoicedFees = allFees.filter(isFeeNonInvoiced);
|
||||
|
||||
API.post('/fees', nonInvoicedFees)
|
||||
.catch((error) => {
|
||||
console.log('==== ERROR ====');
|
||||
console.log(error);
|
||||
});
|
||||
resolve(allFees.length);
|
||||
resolve(nonInvoicedFees.length);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user