feat: payment receive and made form.

This commit is contained in:
Ahmed Bouhuolia
2020-11-05 12:16:28 +02:00
parent 1738a333c7
commit 69e7612b62
42 changed files with 1100 additions and 750 deletions

View File

@@ -109,17 +109,30 @@ export const fetchPaymentMade = ({ id }) => {
paymentMade: response.data.bill_payment,
},
});
dispatch({
type: t.BILLS_ITEMS_SET,
payload: {
bills: response.data.payable_bills,
},
});
dispatch({
type: t.BILLS_PAYABLE_BY_PAYMENT_ID,
payload: {
billPaymentId: id,
bills: response.data.bill_payment.payable_bills,
billPaymentId: response.data.bill_payment.id,
bills: response.data.payable_bills,
},
});
dispatch({
type: t.BILLS_ITEMS_SET,
payload: {
bills: response.data.bill_payment.payable_bills,
bills: response.data.payment_bills,
},
});
dispatch({
type: t.BILLS_BY_PAYMENT_ID,
payload: {
billPaymentId: response.data.bill_payment.id,
bills: response.data.payment_bills,
},
});
resovle(response);

View File

@@ -1,7 +1,6 @@
import { createSelector } from '@reduxjs/toolkit';
import { pickItemsFromIds, paginationLocationQuery } from 'store/selectors';
import { transformToObject } from 'utils';
const paymentMadeTableQuery = (state) => state.paymentMades.tableQuery;
@@ -10,21 +9,19 @@ const paymentMadesPageSelector = (state, props, query) => {
return state.paymentMades.views?.[viewId]?.pages?.[query.page];
};
const paymentMadesItemsSelector = (state) => {
return state.paymentMades.items;
};
const paymentMadesItemsSelector = (state) => state.paymentMades.items;
const PaymentMadePaginationSelector = (state, props) => {
const viewId = state.paymentMades.currentViewId;
return state.paymentMades.views?.[viewId];
};
const paymentMadesIds = (state, props) => {
return state.paymentMades.items[props.paymentMadeId];
};
const paymentMadeById = (state, props) => state.paymentMades.items[props.paymentMadeId];
const paymentMadeEntries = (state, props) => props.paymentMadeEntries;
const billsItemsSelector = (state, props) => state.bills.items;
const billsPayableByPaymentMadeSelector = (state, props) => state.bills.payable.byBillPayamentId[props.paymentMadeId];
const paymentMadeBillsSelector = (state, props) => state.bills.byBillPayamentId[props.paymentMadeId];
export const getPaymentMadeCurrentPageFactory = () =>
createSelector(
@@ -54,7 +51,7 @@ export const getPaymentMadePaginationMetaFactory = () =>
});
export const getPaymentMadeByIdFactory = () =>
createSelector(paymentMadesIds, (payment_Made) => {
createSelector(paymentMadeById, (payment_Made) => {
return payment_Made;
});
@@ -68,4 +65,37 @@ export const getPaymentMadeEntriesDataFactory = () =>
...entry, ...(billsItems[entry.bill_id] || {}),
})) : [];
}
)
);
export const getPaymentMadeEntriesFactory = () =>
createSelector(
billsItemsSelector,
billsPayableByPaymentMadeSelector,
paymentMadeBillsSelector,
paymentMadeById,
(
billsItems,
paymentPayableBillsIds,
paymentMadeBillsIds,
paymentMade,
) => {
const billsIds = [
...(paymentPayableBillsIds || []),
...(paymentMadeBillsIds || []),
];
const bills = pickItemsFromIds(billsItems, billsIds);
const billEntries = transformToObject((paymentMade?.entries || []), 'bill_id');
return bills.map((bill) => {
const paymentMadeEntry = (billEntries?.[bill.id] || {});
return {
...bill,
bill_id: bill.id,
total_payment_amount: bill.payment_amount,
id: paymentMadeEntry?.id,
payment_amount: paymentMadeEntry?.payment_amount,
};
});
},
);