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