Duplicate charging fix

This commit is contained in:
Senad Uka
2019-09-04 18:32:32 +02:00
parent f0a3e430a2
commit 12e94c30e8
2 changed files with 24 additions and 6 deletions

View File

@@ -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(() => {

View File

@@ -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);
});
};