mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 13:50:31 +00:00
feat: Vendor Credit note.
This commit is contained in:
@@ -32,6 +32,7 @@ import organizations from './organizations/organizations.reducers';
|
||||
import subscriptions from './subscription/subscription.reducer';
|
||||
import inventoryAdjustments from './inventoryAdjustments/inventoryAdjustment.reducer';
|
||||
import creditNotes from './CreditNotes/creditNotes.reducer'
|
||||
import vendorsCreditNotes from './vendorsCreditNotes/vendorsCreditNotes.reducer'
|
||||
import plans from './plans/plans.reducer';
|
||||
|
||||
const appReducer = combineReducers({
|
||||
@@ -65,6 +66,7 @@ const appReducer = combineReducers({
|
||||
paymentMades,
|
||||
inventoryAdjustments,
|
||||
creditNotes,
|
||||
vendorsCreditNotes,
|
||||
plans
|
||||
});
|
||||
|
||||
|
||||
@@ -28,7 +28,8 @@ import paymentMades from './PaymentMades/paymentMades.type';
|
||||
import organizations from './organizations/organizations.types';
|
||||
import subscription from './subscription/subscription.types';
|
||||
import inventoryAdjustments from './inventoryAdjustments/inventoryAdjustment.type';
|
||||
import creditNotes from './CreditNotes/creditNotes.type'
|
||||
import creditNotes from './CreditNotes/creditNotes.type';
|
||||
import vendorsCreditNotes from './vendorsCreditNotes/vendorsCreditNotes.type';
|
||||
import plans from './plans/plans.types';
|
||||
|
||||
export default {
|
||||
@@ -63,5 +64,6 @@ export default {
|
||||
...subscription,
|
||||
...inventoryAdjustments,
|
||||
...creditNotes,
|
||||
...vendorsCreditNotes,
|
||||
...plans,
|
||||
};
|
||||
|
||||
14
src/store/vendorsCreditNotes/vendorsCreditNotes.actions.js
Normal file
14
src/store/vendorsCreditNotes/vendorsCreditNotes.actions.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import t from 'store/types';
|
||||
|
||||
export const setVendorsCreditNoteTableState = (queries) => {
|
||||
return {
|
||||
type: t.VENDORS_CREDIT_NOTE_TABLE_STATE_SET,
|
||||
payload: { queries },
|
||||
};
|
||||
};
|
||||
|
||||
export const resetVendorsCreditNoteTableState = () => {
|
||||
return {
|
||||
type: t.VENDORS_CREDIT_NOTE_TABLE_STATE_RESET,
|
||||
};
|
||||
};
|
||||
34
src/store/vendorsCreditNotes/vendorsCreditNotes.reducer.js
Normal file
34
src/store/vendorsCreditNotes/vendorsCreditNotes.reducer.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import { createReducer } from '@reduxjs/toolkit';
|
||||
import { persistReducer, purgeStoredState } from 'redux-persist';
|
||||
import storage from 'redux-persist/lib/storage';
|
||||
import { createTableStateReducers } from 'store/tableState.reducer';
|
||||
import t from 'store/types';
|
||||
|
||||
export const defaultTableQuery = {
|
||||
pageSize: 20,
|
||||
pageIndex: 0,
|
||||
filterRoles: [],
|
||||
viewSlug: null,
|
||||
};
|
||||
|
||||
const initialState = {
|
||||
tableState: defaultTableQuery,
|
||||
};
|
||||
|
||||
const STORAGE_KEY = 'bigcapital:vendorsCreditNotes';
|
||||
|
||||
const CONFIG = {
|
||||
key: STORAGE_KEY,
|
||||
whitelist: [],
|
||||
storage,
|
||||
};
|
||||
|
||||
const reducerInstance = createReducer(initialState, {
|
||||
...createTableStateReducers('VENDORS_CREDIT_NOTES', defaultTableQuery),
|
||||
|
||||
[t.RESET]: () => {
|
||||
purgeStoredState(CONFIG);
|
||||
},
|
||||
});
|
||||
|
||||
export default persistReducer(CONFIG, reducerInstance);
|
||||
24
src/store/vendorsCreditNotes/vendorsCreditNotes.selector.js
Normal file
24
src/store/vendorsCreditNotes/vendorsCreditNotes.selector.js
Normal file
@@ -0,0 +1,24 @@
|
||||
import { isEqual } from 'lodash';
|
||||
import { paginationLocationQuery } from 'store/selectors';
|
||||
import { createDeepEqualSelector } from 'utils';
|
||||
import { defaultTableQuery } from './vendorsCreditNotes.reducer';
|
||||
|
||||
const VendorsCreditNoteTableStateSelector = (state) =>
|
||||
state.vendorsCreditNotes.tableState;
|
||||
|
||||
export const getVendorsCreditNoteTableStateFactory = () =>
|
||||
createDeepEqualSelector(
|
||||
paginationLocationQuery,
|
||||
VendorsCreditNoteTableStateSelector,
|
||||
(locationQuery, tableState) => {
|
||||
return {
|
||||
...locationQuery,
|
||||
...tableState,
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
export const isVendorsCreditNoteTableStateChangedFactory = () =>
|
||||
createDeepEqualSelector(VendorsCreditNoteTableStateSelector, (tableState) => {
|
||||
return !isEqual(tableState, defaultTableQuery);
|
||||
});
|
||||
5
src/store/vendorsCreditNotes/vendorsCreditNotes.type.js
Normal file
5
src/store/vendorsCreditNotes/vendorsCreditNotes.type.js
Normal file
@@ -0,0 +1,5 @@
|
||||
export default {
|
||||
VENDORS_CREDIT_NOTE_TABLE_STATE_SET: 'VENDORS_CREDIT_NOTE/TABLES_STATE_SET',
|
||||
VENDORS_CREDIT_NOTE_TABLE_STATE_RESET:
|
||||
'VENDORS_CREDIT_NOTE/TABLE_STATE/RESET',
|
||||
};
|
||||
Reference in New Issue
Block a user