Fix sending fees to ord bug #54
@@ -7,7 +7,7 @@ import MonthSelector from '../../components/MonthSelector';
|
||||
import MemberIncidentsTables from '../../components/MemberIncidentsTables';
|
||||
import GenerateFeesInORDButton from '../../components/GenerateFeesInORDButton';
|
||||
|
||||
import { fetchIncidents, addFeesToOrd } from '../../store/actions';
|
||||
import { fetchIncidents } from '../../store/actions';
|
||||
|
||||
class IncidentsReport extends Component {
|
||||
state = {dateRange: null};
|
||||
@@ -31,7 +31,6 @@ class IncidentsReport extends Component {
|
||||
membersMap[incident.memberId] = true;
|
||||
});
|
||||
}
|
||||
const memberIds = Object.keys(membersMap) || [];
|
||||
|
||||
return (
|
||||
<Container>
|
||||
@@ -41,7 +40,6 @@ class IncidentsReport extends Component {
|
||||
<MonthSelector buttonLabel="Show report" onDatesUpdate={this.onDatesUpdate} inlineButton />
|
||||
<br/>
|
||||
<GenerateFeesInORDButton
|
||||
memberIds={memberIds}
|
||||
disabled={loading}
|
||||
dateRange={dateRange}
|
||||
/>
|
||||
@@ -61,8 +59,7 @@ const mapStateToProps = (state) => ({
|
||||
});
|
||||
|
||||
const mapDispatchToProps = (dispatch) => ({
|
||||
fetchIncidents: (dateRange) => fetchIncidents(dispatch, dateRange),
|
||||
addFeesToOrd: (dateRange, memberIds) => addFeesToOrd(dispatch, dateRange, memberIds),
|
||||
fetchIncidents: (dateRange) => fetchIncidents(dispatch, dateRange)
|
||||
});
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(IncidentsReport);
|
||||
|
||||
@@ -29,7 +29,7 @@ app.use(express.static(path.join(__dirname, 'client/build')));
|
||||
//production mode
|
||||
if(process.env.NODE_ENV === 'production') {
|
||||
app.get('*', (req, res) => {
|
||||
res.sendfile(path.join(__dirname = 'client/build/index.html'));
|
||||
res.sendFile(path.join(__dirname = 'client/build/index.html'));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -247,6 +247,10 @@ const createNegativeFeeForDiscount = (memberData, dateRange) => {
|
||||
}
|
||||
});
|
||||
|
||||
if (membershipFeeForDiscount === 0){
|
||||
return null; //This member's plan is not eligible for a discount
|
||||
}
|
||||
|
||||
const totalChargeFee = membershipFeeForDiscount + totalBookingChargedFee;
|
||||
|
||||
let discount = 0;
|
||||
@@ -261,7 +265,7 @@ const createNegativeFeeForDiscount = (memberData, dateRange) => {
|
||||
const discountRate = discountPercentage / 100;
|
||||
discount = totalChargeFee * discountRate;
|
||||
}else{
|
||||
return null;
|
||||
return null; //Not enough hours to earn a discount
|
||||
}
|
||||
|
||||
const formattedName = `[Discount] Total booked : ${totalBookedHours.toFixed(2)} hrs, Total charged : ${totalChargedHours.toFixed(2)} hrs, Discount : ${discountPercentage} %`;
|
||||
@@ -317,7 +321,7 @@ const getMembersFeesForDateRange = (dateRange, memberIds) => {
|
||||
membersMap[member.memberId] = {
|
||||
member,
|
||||
bookingData: Object.assign({}, oneMemberObject),
|
||||
membershipFees: membershipsMap[member.memberId],
|
||||
membershipFees: membershipsMap[member.memberId] || [],
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ const deleteFeesFromORD = (dateRange, memberIds) => {
|
||||
memberIdsMap[memberId] = true;
|
||||
});
|
||||
|
||||
const filterByMemberIds = memberIds.length > 0;
|
||||
|
||||
const feeIdsToRemove = [];
|
||||
|
||||
fetchedFees.forEach((fee) => {
|
||||
@@ -42,7 +44,9 @@ const deleteFeesFromORD = (dateRange, memberIds) => {
|
||||
|
||||
const isDateInDateRange = startDate.isSameOrBefore(date) && endDate.isSameOrAfter(date);
|
||||
const manuallyAddedFee = manualFeeNames.indexOf(name) !== -1;
|
||||
if (memberIdsMap[member] && isDateInDateRange && (status === UNPAID_FEE_STATUS) && !manuallyAddedFee) {
|
||||
const memberFeesShouldBeDeleted = filterByMemberIds ? memberIdsMap[member] : true;
|
||||
|
||||
if (memberFeesShouldBeDeleted && isDateInDateRange && (status === UNPAID_FEE_STATUS) && !manuallyAddedFee) {
|
||||
feeIdsToRemove.push(feeId);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -10,14 +10,18 @@ const fetchAllMembershipsForMemberIds = (memberIds) => {
|
||||
const memberships = result.data || [];
|
||||
|
||||
if (Array.isArray(memberIds)){
|
||||
const filteredMemberships = [];
|
||||
memberships.forEach((membership) => {
|
||||
const { member } = membership;
|
||||
if (memberIds.indexOf(member) !== -1){
|
||||
filteredMemberships.push(membership);
|
||||
}
|
||||
});
|
||||
resolve(filteredMemberships);
|
||||
if (memberIds.length > 0){
|
||||
const filteredMemberships = [];
|
||||
memberships.forEach((membership) => {
|
||||
const { member } = membership;
|
||||
if (memberIds.indexOf(member) !== -1){
|
||||
filteredMemberships.push(membership);
|
||||
}
|
||||
});
|
||||
resolve(filteredMemberships);
|
||||
}else{
|
||||
resolve(memberships);
|
||||
}
|
||||
}else{
|
||||
reject(integrationServiceErrors.EXPECTED_MEMBER_IDS_ARRAY);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user