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

@@ -72,7 +72,6 @@ export const fetchInvoicesTable = ({ query } = {}) => {
customViewId: response.data.customViewId || -1,
},
});
dispatch({
type: t.INVOICES_ITEMS_SET,
payload: {

View File

@@ -16,7 +16,8 @@ const initialState = {
receivable: {
byCustomerId: [],
byPaymentReceiveId: [],
}
},
byPaymentReceiveId: {},
};
const defaultInvoice = {
@@ -115,6 +116,13 @@ const reducer = createReducer(initialState, {
state.receivable.byCustomerId[customerId] = saleInvoiceIds
},
[t.INVOICES_BY_PAYMENT_ID]: (state, action) => {
const { paymentReceiveId, saleInvoices } = action.payload;
const saleInvoiceIds = saleInvoices.map((saleInvoice) => saleInvoice.id);
state.byPaymentReceiveId[paymentReceiveId] = saleInvoiceIds;
},
});
export default createTableQueryReducers('sales_invoices', reducer);

View File

@@ -19,12 +19,8 @@ const invoicesPageSelector = (state, props, query) => {
const viewId = state.salesInvoices.currentViewId;
return state.salesInvoices.views?.[viewId]?.pages?.[query.page];
};
const invoicesItemsSelector = (state) => state.salesInvoices.items;
const invoicesReceiableCustomerSelector = (state, props) => state.salesInvoices.receivable.byCustomerId[props.customerId];
const paymentReceivableInvoicesSelector = (state, props) => state.salesInvoices.receivable.byPaymentReceiveId[props.paymentReceiveId];
export const getInvoiceTableQueryFactory = () =>
createSelector(
@@ -59,39 +55,22 @@ export const getInvoicePaginationMetaFactory = () =>
return invoicePage?.paginationMeta || {};
});
// export const getCustomerReceivableInvoicesFactory = () =>
// createSelector(
// invoicesItemsSelector,
// invoicesReceiableCustomerSelector,
// (invoicesItems, invoicesIds) => {
// return Array.isArray(invoicesIds)
// ? (pickItemsFromIds(invoicesItems, invoicesIds) || [])
// : [];
// },
// );
// export const getPaymentReceivableInvoicesFactory = () =>
// createSelector(
// invoicesItemsSelector,
// paymentReceivableInvoicesSelector,
// (invoicesItems, invoicesIds) => {
// return Array.isArray(invoicesIds)
// ? (pickItemsFromIds(invoicesItems, invoicesIds) || [])
// : [];
// },
// );
export const getPaymentReceiveReceivableInvoicesFactory = () =>
export const getCustomerReceivableInvoicesEntriesFactory = () =>
createSelector(
invoicesItemsSelector,
invoicesReceiableCustomerSelector,
paymentReceivableInvoicesSelector,
(invoicesItems, customerInvoicesIds, paymentInvoicesIds) => {
(invoicesItems, customerInvoicesIds) => {
const invoicesIds = [
...(customerInvoicesIds || []),
...(paymentInvoicesIds || []),
];
return pickItemsFromIds(invoicesItems, invoicesIds);
const invoices = pickItemsFromIds(invoicesItems, invoicesIds);
return invoices.map((invoice) => ({
...invoice,
invoice_id: invoice.id,
total_payment_amount: invoice.payment_amount,
id: null,
payment_amount: 0,
}));
},
);
)

View File

@@ -13,5 +13,6 @@ export default {
RELOAD_INVOICES: 'RELOAD_INVOICES',
INVOICES_RECEIVABLE_BY_PAYMENT_ID: 'INVOICES_RECEIVABLE_BY_PAYMENT_ID',
INVOICES_RECEIVABLE_BY_CUSTOMER_ID: 'INVOICES_RECEIVABLE_BY_CUSTOMER_ID'
INVOICES_RECEIVABLE_BY_CUSTOMER_ID: 'INVOICES_RECEIVABLE_BY_CUSTOMER_ID',
INVOICES_BY_PAYMENT_ID: 'INVOICES_BY_PAYMENT_ID'
};