@zeniai/client-epic-state 4.14.5 → 4.14.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +7 -4
- package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +2 -1
- package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +1 -1
- package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +1 -1
- package/lib/view/expenseAutomationView/epics/transactionCategorization/initializeTransactionCategorizationLocalDataEpic.js +3 -3
- package/lib/view/expenseAutomationView/epics/transactionCategorization/markTransactionAsNotMiscatgorizedEpic.js +1 -1
- package/lib/view/expenseAutomationView/epics/transactionCategorization/saveTransactionCategorizationEpic.js +1 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +2 -1
- package/lib/view/expenseAutomationView/expenseAutomationViewReducer.d.ts +1 -3
- package/lib/view/expenseAutomationView/expenseAutomationViewReducer.js +2 -12
- package/lib/view/expenseAutomationView/expenseAutomationViewSelector.js +13 -12
- package/lib/view/expenseAutomationView/expenseAutomationViewState.d.ts +0 -2
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +2 -0
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +102 -65
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -2
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +20 -11
- package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +4 -1
- package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.js +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -59,14 +59,14 @@ export { BalancesTimeseries, TrendTimeseries, BalanceKind };
|
|
|
59
59
|
import { ExpenseAutomationFluxAnalysisViewSelector } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
|
|
60
60
|
import { MissingReceiptsViewState as ExpenseAutomationMissingReceiptsViewState, MissingReceiptsViewUIState as ExpenseAutomationMissingReceiptsViewUIState } from './view/expenseAutomationView/types/missingReceiptsViewState';
|
|
61
61
|
import { ExpenseAutomationMissingReceiptsViewSelector } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
|
|
62
|
-
import { fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab,
|
|
62
|
+
import { fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedView, updateCurrentSelectedPeriod } from './view/expenseAutomationView/expenseAutomationViewReducer';
|
|
63
63
|
import { fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
|
|
64
64
|
import { MissingReceiptsSortKey as ExpenseAutomationMissingReceiptsSortKey, toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey } from './view/expenseAutomationView/types/missingReceiptsViewState';
|
|
65
65
|
import { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
|
|
66
66
|
import { getExpenseAutomationView } from './view/expenseAutomationView/expenseAutomationViewSelector';
|
|
67
67
|
import { TransactionsTab as ExpenseAutomationTransactionsTab, toTransactionsTabKey as toExpenseAutomationTransactionsTabKey } from './view/expenseAutomationView/types/transactionsViewState';
|
|
68
68
|
import { TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, TransactionsViewState as ExpenseAutomationTransactionsViewState, TransactionsViewUIState as ExpenseAutomationTransactionsViewUIState } from './view/expenseAutomationView/types/transactionsViewState';
|
|
69
|
-
import { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateStatusForTransactionNotMiscategorizedUpdate, updateSelectedVendorForTransaction, clearExpenseAutomationTransactionsView } from './view/expenseAutomationView/reducers/transactionsViewReducer';
|
|
69
|
+
import { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateStatusForTransactionNotMiscategorizedUpdate, updateSelectedVendorForTransaction, clearExpenseAutomationTransactionsView, updateCurrentSelectedTransactionCategorizationTab } from './view/expenseAutomationView/reducers/transactionsViewReducer';
|
|
70
70
|
import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView } from './view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes';
|
|
71
71
|
import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
|
|
72
72
|
import { EXPENSE_QBOID, INCOME_QBOID, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled } from './view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper';
|
package/lib/index.js
CHANGED
|
@@ -128,7 +128,6 @@ Object.defineProperty(exports, "stringToUnionStrict", { enumerable: true, get: f
|
|
|
128
128
|
const expenseAutomationViewReducer_1 = require("./view/expenseAutomationView/expenseAutomationViewReducer");
|
|
129
129
|
Object.defineProperty(exports, "fetchAllExpenseAutomationTabs", { enumerable: true, get: function () { return expenseAutomationViewReducer_1.fetchAllExpenseAutomationTabs; } });
|
|
130
130
|
Object.defineProperty(exports, "refreshExpenseAutomationCurrentTab", { enumerable: true, get: function () { return expenseAutomationViewReducer_1.refreshExpenseAutomationCurrentTab; } });
|
|
131
|
-
Object.defineProperty(exports, "updateCurrentSelectedTransactionCategorizationTab", { enumerable: true, get: function () { return expenseAutomationViewReducer_1.updateCurrentSelectedTransactionCategorizationTab; } });
|
|
132
131
|
Object.defineProperty(exports, "updateCurrentSelectedView", { enumerable: true, get: function () { return expenseAutomationViewReducer_1.updateCurrentSelectedView; } });
|
|
133
132
|
Object.defineProperty(exports, "updateCurrentSelectedPeriod", { enumerable: true, get: function () { return expenseAutomationViewReducer_1.updateCurrentSelectedPeriod; } });
|
|
134
133
|
const missingReceiptsViewReducer_1 = require("./view/expenseAutomationView/reducers/missingReceiptsViewReducer");
|
|
@@ -162,6 +161,7 @@ Object.defineProperty(exports, "markTransactionAsNotMiscategorized", { enumerabl
|
|
|
162
161
|
Object.defineProperty(exports, "updateStatusForTransactionNotMiscategorizedUpdate", { enumerable: true, get: function () { return transactionsViewReducer_1.updateStatusForTransactionNotMiscategorizedUpdate; } });
|
|
163
162
|
Object.defineProperty(exports, "updateSelectedVendorForTransaction", { enumerable: true, get: function () { return transactionsViewReducer_1.updateSelectedVendorForTransaction; } });
|
|
164
163
|
Object.defineProperty(exports, "clearExpenseAutomationTransactionsView", { enumerable: true, get: function () { return transactionsViewReducer_1.clearExpenseAutomationTransactionsView; } });
|
|
164
|
+
Object.defineProperty(exports, "updateCurrentSelectedTransactionCategorizationTab", { enumerable: true, get: function () { return transactionsViewReducer_1.updateCurrentSelectedTransactionCategorizationTab; } });
|
|
165
165
|
const transactionCategorizationSelector_1 = require("./view/expenseAutomationView/selectors/transactionCategorizationSelector");
|
|
166
166
|
Object.defineProperty(exports, "getExpenseAutomationTransactionView", { enumerable: true, get: function () { return transactionCategorizationSelector_1.getExpenseAutomationTransactionView; } });
|
|
167
167
|
const transactionCategorizationLocalDataHelper_1 = require("./view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper");
|
|
@@ -16,7 +16,7 @@ const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.pipe((0
|
|
|
16
16
|
const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
|
|
17
17
|
const companyId = currentTenant.companyId;
|
|
18
18
|
const selectedPeriod = state.expenseAutomationViewState.selectedPeriodByTenantId[currentTenant.tenantId];
|
|
19
|
-
const { selectedTransactionCategorizationTab } = state.
|
|
19
|
+
const { selectedTransactionCategorizationTab } = state.expenseAutomationTransactionsViewState;
|
|
20
20
|
const period = (0, timePeriod_1.convertToPeriod)(selectedPeriod);
|
|
21
21
|
const timePeriodStart = (0, timePeriod_1.toAbsoluteDay)(period.start);
|
|
22
22
|
const timePeriodEnd = (0, timePeriod_1.toAbsoluteDay)(period.end);
|
|
@@ -68,9 +68,12 @@ const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.pipe((0
|
|
|
68
68
|
null)) {
|
|
69
69
|
fetchActions.push((0, jeSchedulesViewReducer_1.fetchJeSchedulesPage)({ start: timePeriodStart, end: timePeriodEnd }, cacheOverride));
|
|
70
70
|
}
|
|
71
|
-
if (state.expenseAutomationTransactionsViewState
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
if (state.expenseAutomationTransactionsViewState
|
|
72
|
+
.transactionCategorizationView[selectedTransactionCategorizationTab]
|
|
73
|
+
.fetchState !== 'In-Progress' &&
|
|
74
|
+
(state.expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab].hasValidState() === false ||
|
|
75
|
+
state.expenseAutomationTransactionsViewState
|
|
76
|
+
.transactionCategorizationView[selectedTransactionCategorizationTab].transactionIdsBySelectedPeriod[monthYearPeriodId] == null)) {
|
|
74
77
|
fetchActions.push((0, transactionsViewReducer_1.fetchTransactionCategorizationView)(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, cacheOverride, false, undefined, undefined, refreshViewInBackground));
|
|
75
78
|
}
|
|
76
79
|
return (0, rxjs_1.from)(fetchActions);
|
package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js
CHANGED
|
@@ -15,7 +15,8 @@ const refreshExpenseAutomationCurrentTabEpic = (actions$, state$) => actions$.pi
|
|
|
15
15
|
const state = state$.value;
|
|
16
16
|
const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
|
|
17
17
|
const companyId = currentTenant.companyId;
|
|
18
|
-
const {
|
|
18
|
+
const { selectedTransactionCategorizationTab } = state.expenseAutomationTransactionsViewState;
|
|
19
|
+
const { selectedPeriodByTenantId, currentSelectedView } = state.expenseAutomationViewState;
|
|
19
20
|
const selectedPeriod = selectedPeriodByTenantId[currentTenant.tenantId];
|
|
20
21
|
const period = (0, timePeriod_1.convertToPeriod)(selectedPeriod);
|
|
21
22
|
const timePeriodStart = (0, timePeriod_1.toAbsoluteDay)(period.start);
|
|
@@ -12,7 +12,7 @@ const tenantSelector_1 = require("../../../../entity/tenant/tenantSelector");
|
|
|
12
12
|
const fetchTransactionCategorizationEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionsViewReducer_1.fetchTransactionCategorization.match), (0, operators_1.switchMap)((action) => {
|
|
13
13
|
const { expenseAutomationViewState: { selectedPeriodByTenantId }, expenseAutomationTransactionsViewState, } = state$.value;
|
|
14
14
|
const { period, keepExistingListItems, selectedTab, refreshViewInBackground, } = action.payload;
|
|
15
|
-
const uiState = expenseAutomationTransactionsViewState[selectedTab].uiState;
|
|
15
|
+
const uiState = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTab].uiState;
|
|
16
16
|
const { pageToken, sortOrder, sortKey } = uiState;
|
|
17
17
|
const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state$.value);
|
|
18
18
|
const selectedPeriod = selectedPeriodByTenantId[currentTenant.tenantId];
|
|
@@ -12,7 +12,7 @@ const fetchTransactionCategorizationViewEpic = (actions$, state$) => actions$.pi
|
|
|
12
12
|
const { selectedTab, cacheOverride, keepExistingListItems, pageToken, period, refreshViewInBackground, searchString, resetListItems, } = action.payload;
|
|
13
13
|
const updateActions = [];
|
|
14
14
|
const { expenseAutomationTransactionsViewState } = state$.value;
|
|
15
|
-
const { fetchState, transactionIdsBySelectedPeriod } = expenseAutomationTransactionsViewState[selectedTab];
|
|
15
|
+
const { fetchState, transactionIdsBySelectedPeriod } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTab];
|
|
16
16
|
const monthYearPeriod = {
|
|
17
17
|
month: period.start.month,
|
|
18
18
|
year: period.start.year,
|
|
@@ -10,9 +10,9 @@ const transactionCategorizationLocalDataHelper_1 = require("../../helpers/transa
|
|
|
10
10
|
const initializeTransactionCategorizationViewLocalDataEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(transactionsViewReducer_1.initializeTransactionCategorizationViewLocalData.match), (0, operators_1.mergeMap)((action) => {
|
|
11
11
|
const { transactionIds, selectedPeriod, keepExistingListItems, selectedTab, pageToken, totalCount, refreshViewInBackground, } = action.payload;
|
|
12
12
|
const fetchActions = [];
|
|
13
|
-
const { transactionState, expenseAutomationTransactionsViewState
|
|
14
|
-
const { selectedTransactionCategorizationTab } =
|
|
15
|
-
const { transactionReviewLocalDataById } = expenseAutomationTransactionsViewState[selectedTransactionCategorizationTab];
|
|
13
|
+
const { transactionState, expenseAutomationTransactionsViewState } = state$.value;
|
|
14
|
+
const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
|
|
15
|
+
const { transactionReviewLocalDataById } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
|
|
16
16
|
const transactionLocalData = Object.assign({}, transactionReviewLocalDataById);
|
|
17
17
|
const transactions = (0, transactionSelector_1.getSupportedTransactionsByIds)(transactionState, transactionIds);
|
|
18
18
|
transactions.forEach((transaction) => {
|
|
@@ -17,7 +17,7 @@ const markTransactionAsNotMiscategorizedEpic = (actions$, state$, zeniAPI) => ac
|
|
|
17
17
|
const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state$.value);
|
|
18
18
|
const selectedPeriod = expenseAutomationViewState.selectedPeriodByTenantId[currentTenant.tenantId];
|
|
19
19
|
const { selectedTab } = action.payload;
|
|
20
|
-
const { uiState } = expenseAutomationTransactionsViewState[selectedTab];
|
|
20
|
+
const { uiState } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTab];
|
|
21
21
|
if (transactionsInReview.length > 0) {
|
|
22
22
|
return zeniAPI
|
|
23
23
|
.putAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/expense-automation/mark-as-reviewed`, { transactions_reviewed: transactionsInReview })
|
|
@@ -18,8 +18,7 @@ const saveTransactionCategorizationEpic = (actions$, state$) => actions$.pipe((0
|
|
|
18
18
|
const transactionSaveUpdates = [];
|
|
19
19
|
const transactions = (0, transactionSelector_1.getSupportedTransactionsByIds)(transactionState, transactionIds);
|
|
20
20
|
transactions.forEach((transaction) => {
|
|
21
|
-
const detail = (0, get_1.default)(expenseAutomationTransactionsViewState[selectedTab]
|
|
22
|
-
.transactionReviewLocalDataById, transaction.id, undefined);
|
|
21
|
+
const detail = (0, get_1.default)(expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTab].transactionReviewLocalDataById, transaction.id, undefined);
|
|
23
22
|
const uncategorizedIncomeExpense = (0, accountListSelector_1.getUncategorizedAccounts)(state$.value.accountState, state$.value.accountListState, 'accountList');
|
|
24
23
|
const localData = detail === null || detail === void 0 ? void 0 : detail.transactionReviewLocalData;
|
|
25
24
|
if (localData != null) {
|
|
@@ -42,7 +42,8 @@ exports.updateTransactionCategorizationEpic = updateTransactionCategorizationEpi
|
|
|
42
42
|
function prepareTransactionPayload(selectedTab, transactionState, vendorState, transactionsViewState, transactionId, saveUpdates) {
|
|
43
43
|
var _a;
|
|
44
44
|
const detail = (0, transactionSelector_1.getSupportedTransactionById)(transactionState, transactionId);
|
|
45
|
-
const tranDetail = (0, get_1.default)(transactionsViewState[selectedTab]
|
|
45
|
+
const tranDetail = (0, get_1.default)(transactionsViewState.transactionCategorizationView[selectedTab]
|
|
46
|
+
.transactionReviewLocalDataById, transactionId, undefined);
|
|
46
47
|
const tranVendorUpdates = (_a = tranDetail === null || tranDetail === void 0 ? void 0 : tranDetail.transactionReviewLocalData) === null || _a === void 0 ? void 0 : _a.vendorUpdates;
|
|
47
48
|
let vendorUpdates = undefined;
|
|
48
49
|
if ((tranVendorUpdates === null || tranVendorUpdates === void 0 ? void 0 : tranVendorUpdates.qboId) != null) {
|
|
@@ -12,8 +12,6 @@ export declare const fetchAllExpenseAutomationTabs: import("@reduxjs/toolkit").A
|
|
|
12
12
|
newSelectedView: "transaction_categorization" | "je_schedules" | "account_recon" | "missing_receipts" | "flux_analysis" | "month_end_insights";
|
|
13
13
|
}, string, never, never>, clearExpenseAutomationView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, initializeSelectedPeriodForTenants: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
14
14
|
selectedPeriodByTenantId: Record<ID, MonthYearPeriod>;
|
|
15
|
-
}, string>, refreshExpenseAutomationCurrentTab: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string
|
|
16
|
-
newSelectedTab: "review" | "autoCategorized";
|
|
17
|
-
}, string, never, never>;
|
|
15
|
+
}, string>, refreshExpenseAutomationCurrentTab: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
|
|
18
16
|
declare const _default: import("@reduxjs/toolkit").Reducer<ExpenseAutomationViewState, import("@reduxjs/toolkit").AnyAction>;
|
|
19
17
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.refreshExpenseAutomationCurrentTab = exports.initializeSelectedPeriodForTenants = exports.clearExpenseAutomationView = exports.updateCurrentSelectedView = exports.updateCurrentSelectedPeriod = exports.fetchAllExpenseAutomationTabs = exports.initialState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
exports.initialState = {
|
|
7
7
|
saveStatus: { fetchState: 'Not-Started', error: undefined },
|
|
@@ -13,7 +13,6 @@ exports.initialState = {
|
|
|
13
13
|
hasValidState() {
|
|
14
14
|
return this.fetchState == 'Completed';
|
|
15
15
|
},
|
|
16
|
-
selectedTransactionCategorizationTab: 'review',
|
|
17
16
|
};
|
|
18
17
|
const expenseAutomationView = (0, toolkit_1.createSlice)({
|
|
19
18
|
name: 'expenseAutomationView',
|
|
@@ -63,19 +62,10 @@ const expenseAutomationView = (0, toolkit_1.createSlice)({
|
|
|
63
62
|
return { payload: { newSelectedPeriod, tenantId } };
|
|
64
63
|
},
|
|
65
64
|
},
|
|
66
|
-
updateCurrentSelectedTransactionCategorizationTab: {
|
|
67
|
-
reducer(draft, action) {
|
|
68
|
-
draft.selectedTransactionCategorizationTab =
|
|
69
|
-
action.payload.newSelectedTab;
|
|
70
|
-
},
|
|
71
|
-
prepare(newSelectedTab) {
|
|
72
|
-
return { payload: { newSelectedTab } };
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
65
|
clearExpenseAutomationView(draft) {
|
|
76
66
|
Object.assign(draft, exports.initialState);
|
|
77
67
|
},
|
|
78
68
|
},
|
|
79
69
|
});
|
|
80
|
-
_a = expenseAutomationView.actions, exports.fetchAllExpenseAutomationTabs = _a.fetchAllExpenseAutomationTabs, exports.updateCurrentSelectedPeriod = _a.updateCurrentSelectedPeriod, exports.updateCurrentSelectedView = _a.updateCurrentSelectedView, exports.clearExpenseAutomationView = _a.clearExpenseAutomationView, exports.initializeSelectedPeriodForTenants = _a.initializeSelectedPeriodForTenants, exports.refreshExpenseAutomationCurrentTab = _a.refreshExpenseAutomationCurrentTab
|
|
70
|
+
_a = expenseAutomationView.actions, exports.fetchAllExpenseAutomationTabs = _a.fetchAllExpenseAutomationTabs, exports.updateCurrentSelectedPeriod = _a.updateCurrentSelectedPeriod, exports.updateCurrentSelectedView = _a.updateCurrentSelectedView, exports.clearExpenseAutomationView = _a.clearExpenseAutomationView, exports.initializeSelectedPeriodForTenants = _a.initializeSelectedPeriodForTenants, exports.refreshExpenseAutomationCurrentTab = _a.refreshExpenseAutomationCurrentTab;
|
|
81
71
|
exports.default = expenseAutomationView.reducer;
|
|
@@ -24,10 +24,11 @@ const isPreviousStepDisabled = (selectedTransactionCategorizationTab, allSteps,
|
|
|
24
24
|
};
|
|
25
25
|
function getExpenseAutomationView(state) {
|
|
26
26
|
var _a, _b, _c;
|
|
27
|
-
const { expenseAutomationViewState, tenantState, expenseAutomationMissingReceiptsViewState, expenseAutomationJESchedulesViewState, monthEndCloseChecksState, companyState, } = state;
|
|
27
|
+
const { expenseAutomationViewState, tenantState, expenseAutomationMissingReceiptsViewState, expenseAutomationJESchedulesViewState, expenseAutomationTransactionsViewState, monthEndCloseChecksState, companyState, } = state;
|
|
28
28
|
const { loggedInUser, currentTenantId } = tenantState;
|
|
29
29
|
const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
|
|
30
|
-
const { currentSelectedView, selectedPeriodByTenantId
|
|
30
|
+
const { currentSelectedView, selectedPeriodByTenantId } = expenseAutomationViewState;
|
|
31
|
+
const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
|
|
31
32
|
const selectedPeriod = selectedPeriodByTenantId[currentTenant.tenantId];
|
|
32
33
|
let currentSelectedViewFetchState = {
|
|
33
34
|
fetchState: 'Not-Started',
|
|
@@ -41,7 +42,7 @@ function getExpenseAutomationView(state) {
|
|
|
41
42
|
const missingReceipts = (0, missingReceiptsSelector_1.getExpenseAutomationMissingReceiptsView)(state);
|
|
42
43
|
const fluxAnalysis = (0, fluxAnalysisViewSelector_1.getExpenseAutomationFluxAnalysisView)(state);
|
|
43
44
|
const monthEndInsights = (0, companyMonthEndReportViewSelector_1.getCompanyMonthEndReportSelectorView)(state, currentTenant.companyId, loggedInUser);
|
|
44
|
-
const
|
|
45
|
+
const expenseAutomationTransactionsView = (0, transactionCategorizationSelector_1.getExpenseAutomationTransactionView)(state);
|
|
45
46
|
const jeSchedules = (0, jeSchedulesViewSelector_1.getExpenseAutomationJESchedulesView)(state);
|
|
46
47
|
switch (currentSelectedView) {
|
|
47
48
|
case 'flux_analysis':
|
|
@@ -67,11 +68,11 @@ function getExpenseAutomationView(state) {
|
|
|
67
68
|
break;
|
|
68
69
|
case 'transaction_categorization':
|
|
69
70
|
currentSelectedViewFetchState = {
|
|
70
|
-
fetchState:
|
|
71
|
-
error:
|
|
71
|
+
fetchState: expenseAutomationTransactionsView.fetchState,
|
|
72
|
+
error: expenseAutomationTransactionsView.error,
|
|
72
73
|
};
|
|
73
74
|
currentSelectedViewBackgroundRefreshFetchState =
|
|
74
|
-
|
|
75
|
+
expenseAutomationTransactionsView.refreshStatus;
|
|
75
76
|
break;
|
|
76
77
|
case 'month_end_insights':
|
|
77
78
|
currentSelectedViewFetchState = {
|
|
@@ -88,7 +89,7 @@ function getExpenseAutomationView(state) {
|
|
|
88
89
|
expenseAutomationMissingReceiptsViewState,
|
|
89
90
|
expenseAutomationJESchedulesViewState,
|
|
90
91
|
monthEndCloseChecksView,
|
|
91
|
-
|
|
92
|
+
expenseAutomationTransactionsView,
|
|
92
93
|
];
|
|
93
94
|
let allSteps = [];
|
|
94
95
|
let auditSummary = undefined;
|
|
@@ -108,7 +109,7 @@ function getExpenseAutomationView(state) {
|
|
|
108
109
|
allSteps.forEach((stepDetail, index, allStepsOriginal) => {
|
|
109
110
|
switch (stepDetail.step) {
|
|
110
111
|
case 'transaction_categorization':
|
|
111
|
-
allStepsOriginal[index] = Object.assign(Object.assign({}, stepDetail), { completionStatus:
|
|
112
|
+
allStepsOriginal[index] = Object.assign(Object.assign({}, stepDetail), { completionStatus: expenseAutomationTransactionsView.completionStatus });
|
|
112
113
|
return;
|
|
113
114
|
case 'je_schedules':
|
|
114
115
|
allStepsOriginal[index] = Object.assign(Object.assign({}, stepDetail), { completionStatus: jeSchedules.completionStatus });
|
|
@@ -135,15 +136,15 @@ function getExpenseAutomationView(state) {
|
|
|
135
136
|
}
|
|
136
137
|
const reducedFetchStatus = (0, reduceFetchState_1.reduceAnyFetchState)(fetchStateVariables); // Add more states
|
|
137
138
|
const reducedSaveStatus = (0, reduceFetchState_1.reduceAllFetchState)([
|
|
138
|
-
|
|
139
|
-
|
|
139
|
+
expenseAutomationTransactionsView.saveStatus,
|
|
140
|
+
expenseAutomationTransactionsView.markAsNotMiscategorizedStatus,
|
|
140
141
|
]);
|
|
141
142
|
const reducedUpdateStatus = (0, reduceFetchState_1.reduceAllFetchState)([
|
|
142
|
-
|
|
143
|
+
expenseAutomationTransactionsView.saveStatus, // TODO - Anjali add more states
|
|
143
144
|
]);
|
|
144
145
|
return {
|
|
145
146
|
jeSchedules,
|
|
146
|
-
transactionView:
|
|
147
|
+
transactionView: expenseAutomationTransactionsView,
|
|
147
148
|
missingReceipts,
|
|
148
149
|
currentSelectedViewFetchState,
|
|
149
150
|
currentSelectedViewBackgroundRefreshFetchState,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FetchedState, FetchStateAndError, ID } from '../../commonStateTypes/common';
|
|
2
2
|
import { MonthYearPeriod } from '../../commonStateTypes/timePeriod';
|
|
3
|
-
import { TransactionsTab } from './types/transactionsViewState';
|
|
4
3
|
export declare const EXPENSE_AUTOMATION_VIEW_TYPES: readonly ["transaction_categorization", "je_schedules", "account_recon", "missing_receipts", "flux_analysis", "month_end_insights"];
|
|
5
4
|
export declare const toExpenseAutomationViewType: (v: string) => "transaction_categorization" | "je_schedules" | "account_recon" | "missing_receipts" | "flux_analysis" | "month_end_insights";
|
|
6
5
|
export declare type ExpenseAutomationViewType = ReturnType<typeof toExpenseAutomationViewType>;
|
|
@@ -9,5 +8,4 @@ export interface ExpenseAutomationViewState extends FetchedState {
|
|
|
9
8
|
updateStatus: FetchStateAndError;
|
|
10
9
|
currentSelectedView: ExpenseAutomationViewType;
|
|
11
10
|
selectedPeriodByTenantId: Record<ID, MonthYearPeriod>;
|
|
12
|
-
selectedTransactionCategorizationTab: TransactionsTab;
|
|
13
11
|
}
|
|
@@ -53,6 +53,8 @@ export declare const fetchTransactionCategorization: import("@reduxjs/toolkit").
|
|
|
53
53
|
selectedTab: "review" | "autoCategorized";
|
|
54
54
|
transactionIds: string[];
|
|
55
55
|
transactionSaveUpdates: TransactionSaveUpdates[];
|
|
56
|
+
}, string, never, never>, updateCurrentSelectedTransactionCategorizationTab: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[newSelectedTab: "review" | "autoCategorized"], {
|
|
57
|
+
newSelectedTab: "review" | "autoCategorized";
|
|
56
58
|
}, string, never, never>, updateTransactionCategorizationSaveStatus: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", fetchState: FetchState, error?: ZeniAPIStatus<Record<string, unknown>> | undefined], {
|
|
57
59
|
selectedTab: "review" | "autoCategorized";
|
|
58
60
|
fetchState: FetchState;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.setEntityRecommendationForLineIdsForCategorization = exports.clearExpenseAutomationTransactionsView = exports.clearExpenseAutomationTransactionsViewPerTabView = exports.updateSelectedCheckboxTransactionIds = exports.fetchTransactionCategorizationView = exports.fetchTransactionCategorizationSuccess = exports.updateTotalCountForTransactionCategorization = exports.setAllItemsToCategoryClassInLocalDataForCategorization = exports.updateSelectedVendorForTransaction = exports.updateStatusForTransactionNotMiscategorizedUpdate = exports.markTransactionAsNotMiscategorized = exports.updateTransactionCategorizationSaveStatus = exports.updateTransactionCategorization = exports.saveTransactionCategorization = exports.fetchTransactionCategorizationFailure = exports.saveTransactionCategorizationLocalData = exports.initializeTransactionCategorizationViewLocalData = exports.updateTransactionCategorizationUIState = exports.fetchTransactionCategorization = exports.initialState = exports.initialTransactionTabViewState = void 0;
|
|
7
|
+
exports.setEntityRecommendationForLineIdsForCategorization = exports.clearExpenseAutomationTransactionsView = exports.clearExpenseAutomationTransactionsViewPerTabView = exports.updateSelectedCheckboxTransactionIds = exports.fetchTransactionCategorizationView = exports.fetchTransactionCategorizationSuccess = exports.updateTotalCountForTransactionCategorization = exports.setAllItemsToCategoryClassInLocalDataForCategorization = exports.updateSelectedVendorForTransaction = exports.updateStatusForTransactionNotMiscategorizedUpdate = exports.markTransactionAsNotMiscategorized = exports.updateTransactionCategorizationSaveStatus = exports.updateCurrentSelectedTransactionCategorizationTab = exports.updateTransactionCategorization = exports.saveTransactionCategorization = exports.fetchTransactionCategorizationFailure = exports.saveTransactionCategorizationLocalData = exports.initializeTransactionCategorizationViewLocalData = exports.updateTransactionCategorizationUIState = exports.fetchTransactionCategorization = exports.initialState = exports.initialTransactionTabViewState = void 0;
|
|
8
8
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
9
9
|
const get_1 = __importDefault(require("lodash/get"));
|
|
10
10
|
const uniq_1 = __importDefault(require("lodash/uniq"));
|
|
@@ -44,8 +44,11 @@ exports.initialTransactionTabViewState = {
|
|
|
44
44
|
selectedCheckBoxTransactionIds: [],
|
|
45
45
|
};
|
|
46
46
|
exports.initialState = {
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
selectedTransactionCategorizationTab: 'review',
|
|
48
|
+
transactionCategorizationView: {
|
|
49
|
+
review: Object.assign({}, exports.initialTransactionTabViewState),
|
|
50
|
+
autoCategorized: Object.assign({}, exports.initialTransactionTabViewState),
|
|
51
|
+
},
|
|
49
52
|
};
|
|
50
53
|
const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
51
54
|
name: 'expenseAutomationTransactionsView',
|
|
@@ -75,39 +78,44 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
75
78
|
reducer(draft, action) {
|
|
76
79
|
const { refreshViewInBackground, resetListItems, selectedTab, pageToken, searchString, period, } = action.payload;
|
|
77
80
|
if (refreshViewInBackground === true) {
|
|
78
|
-
draft[selectedTab].refreshStatus = {
|
|
81
|
+
draft.transactionCategorizationView[selectedTab].refreshStatus = {
|
|
79
82
|
fetchState: 'In-Progress',
|
|
80
83
|
error: undefined,
|
|
81
84
|
};
|
|
82
85
|
}
|
|
83
86
|
else {
|
|
84
|
-
draft[selectedTab].fetchState =
|
|
85
|
-
|
|
87
|
+
draft.transactionCategorizationView[selectedTab].fetchState =
|
|
88
|
+
'In-Progress';
|
|
89
|
+
draft.transactionCategorizationView[selectedTab].error = undefined;
|
|
86
90
|
}
|
|
87
91
|
// Note: Need to reset scroll position whenever a new fetch happens, except when fetching through scroll
|
|
88
92
|
if (pageToken == null) {
|
|
89
93
|
// Page Token is null in each fetch except when fetching through scroll
|
|
90
|
-
draft[selectedTab].uiState.scrollPosition = {
|
|
94
|
+
draft.transactionCategorizationView[selectedTab].uiState.scrollPosition = {
|
|
91
95
|
scrollTop: 0,
|
|
92
96
|
scrollLeft: undefined,
|
|
93
97
|
};
|
|
94
98
|
}
|
|
95
|
-
draft[selectedTab].uiState.pageToken =
|
|
96
|
-
|
|
97
|
-
draft[selectedTab].
|
|
99
|
+
draft.transactionCategorizationView[selectedTab].uiState.pageToken =
|
|
100
|
+
pageToken !== null && pageToken !== void 0 ? pageToken : null;
|
|
101
|
+
draft.transactionCategorizationView[selectedTab].uiState.searchString =
|
|
102
|
+
searchString !== null && searchString !== void 0 ? searchString : '';
|
|
103
|
+
draft.transactionCategorizationView[selectedTab].error = undefined;
|
|
98
104
|
// Reset list when we change the sort order and fetch list again
|
|
99
105
|
if (resetListItems === true) {
|
|
100
106
|
const monthYearPeriod = {
|
|
101
107
|
month: period.start.month,
|
|
102
108
|
year: period.start.year,
|
|
103
109
|
};
|
|
104
|
-
const transactionIdsBySelectedPeriod = draft[selectedTab]
|
|
110
|
+
const transactionIdsBySelectedPeriod = draft.transactionCategorizationView[selectedTab]
|
|
111
|
+
.transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(monthYearPeriod)];
|
|
105
112
|
transactionIdsBySelectedPeriod.forEach((transactionId) => {
|
|
106
|
-
delete draft[selectedTab]
|
|
113
|
+
delete draft.transactionCategorizationView[selectedTab]
|
|
114
|
+
.transactionReviewLocalDataById[transactionId];
|
|
107
115
|
});
|
|
108
|
-
draft[selectedTab].selectedCheckBoxTransactionIds = draft[selectedTab].selectedCheckBoxTransactionIds.filter((selectedCheckBoxTransactionId) => transactionIdsBySelectedPeriod.includes(selectedCheckBoxTransactionId));
|
|
109
|
-
draft[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(monthYearPeriod)] = [];
|
|
110
|
-
draft[selectedTab].refreshStatus = {
|
|
116
|
+
draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds = draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds.filter((selectedCheckBoxTransactionId) => transactionIdsBySelectedPeriod.includes(selectedCheckBoxTransactionId));
|
|
117
|
+
draft.transactionCategorizationView[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(monthYearPeriod)] = [];
|
|
118
|
+
draft.transactionCategorizationView[selectedTab].refreshStatus = {
|
|
111
119
|
fetchState: 'Not-Started',
|
|
112
120
|
error: undefined,
|
|
113
121
|
};
|
|
@@ -150,53 +158,62 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
150
158
|
saveTransactionCategorizationLocalData(draft, action) {
|
|
151
159
|
const { keepExistingListItems, transactionIds, transactionLocalData, selectedPeriod, selectedTab, pageToken, totalCount, } = action.payload;
|
|
152
160
|
if (keepExistingListItems === false) {
|
|
153
|
-
draft[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] =
|
|
154
|
-
|
|
161
|
+
draft.transactionCategorizationView[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] =
|
|
162
|
+
transactionIds;
|
|
163
|
+
draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds = [];
|
|
155
164
|
}
|
|
156
165
|
else {
|
|
157
|
-
const previousData = draft[selectedTab]
|
|
166
|
+
const previousData = draft.transactionCategorizationView[selectedTab]
|
|
167
|
+
.transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)];
|
|
158
168
|
if (previousData == null) {
|
|
159
|
-
draft[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = transactionIds;
|
|
169
|
+
draft.transactionCategorizationView[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = transactionIds;
|
|
160
170
|
}
|
|
161
171
|
else {
|
|
162
172
|
const combinedData = (0, uniq_1.default)([...previousData, ...transactionIds]);
|
|
163
|
-
draft[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = [...combinedData];
|
|
173
|
+
draft.transactionCategorizationView[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = [...combinedData];
|
|
164
174
|
}
|
|
165
175
|
}
|
|
166
|
-
draft[selectedTab].transactionReviewLocalDataById = Object.assign(Object.assign({}, draft[selectedTab]
|
|
176
|
+
draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById = Object.assign(Object.assign({}, draft.transactionCategorizationView[selectedTab]
|
|
177
|
+
.transactionReviewLocalDataById), transactionLocalData);
|
|
167
178
|
if (action.payload.refreshViewInBackground === true) {
|
|
168
|
-
draft[selectedTab].refreshStatus = {
|
|
179
|
+
draft.transactionCategorizationView[selectedTab].refreshStatus = {
|
|
169
180
|
fetchState: 'Completed',
|
|
170
181
|
error: undefined,
|
|
171
182
|
};
|
|
172
183
|
}
|
|
173
184
|
else {
|
|
174
|
-
draft[selectedTab].fetchState =
|
|
175
|
-
|
|
185
|
+
draft.transactionCategorizationView[selectedTab].fetchState =
|
|
186
|
+
'Completed';
|
|
187
|
+
draft.transactionCategorizationView[selectedTab].error = undefined;
|
|
176
188
|
}
|
|
177
|
-
draft[selectedTab].uiState = Object.assign(Object.assign({}, draft[selectedTab].uiState), { pageToken: pageToken !== null && pageToken !== void 0 ? pageToken : null });
|
|
178
|
-
draft[selectedTab].uiState.totalCount[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = totalCount;
|
|
189
|
+
draft.transactionCategorizationView[selectedTab].uiState = Object.assign(Object.assign({}, draft.transactionCategorizationView[selectedTab].uiState), { pageToken: pageToken !== null && pageToken !== void 0 ? pageToken : null });
|
|
190
|
+
draft.transactionCategorizationView[selectedTab].uiState.totalCount[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = totalCount;
|
|
179
191
|
},
|
|
180
192
|
updateTransactionCategorizationUIState(draft, action) {
|
|
181
193
|
const selectedTab = action.payload.selectedTab;
|
|
182
194
|
const uiState = action.payload.uiState;
|
|
183
195
|
if (uiState.sortKey != null) {
|
|
184
|
-
draft[selectedTab].uiState.sortKey =
|
|
196
|
+
draft.transactionCategorizationView[selectedTab].uiState.sortKey =
|
|
197
|
+
uiState.sortKey;
|
|
185
198
|
}
|
|
186
199
|
if (uiState.sortOrder != null) {
|
|
187
|
-
draft[selectedTab].uiState.sortOrder =
|
|
200
|
+
draft.transactionCategorizationView[selectedTab].uiState.sortOrder =
|
|
201
|
+
uiState.sortOrder;
|
|
188
202
|
}
|
|
189
203
|
if (uiState.searchString != null) {
|
|
190
|
-
draft[selectedTab].uiState.searchString =
|
|
204
|
+
draft.transactionCategorizationView[selectedTab].uiState.searchString =
|
|
205
|
+
uiState.searchString;
|
|
191
206
|
}
|
|
192
207
|
if (uiState.scrollPosition != null) {
|
|
193
|
-
draft[selectedTab].uiState.scrollPosition = uiState.scrollPosition;
|
|
208
|
+
draft.transactionCategorizationView[selectedTab].uiState.scrollPosition = uiState.scrollPosition;
|
|
194
209
|
}
|
|
195
210
|
if (uiState.pageToken != null) {
|
|
196
|
-
draft[selectedTab].uiState.pageToken =
|
|
211
|
+
draft.transactionCategorizationView[selectedTab].uiState.pageToken =
|
|
212
|
+
uiState.pageToken;
|
|
197
213
|
}
|
|
198
214
|
if (uiState.totalCount != null) {
|
|
199
|
-
draft[selectedTab].uiState.totalCount =
|
|
215
|
+
draft.transactionCategorizationView[selectedTab].uiState.totalCount =
|
|
216
|
+
uiState.totalCount;
|
|
200
217
|
}
|
|
201
218
|
},
|
|
202
219
|
saveTransactionCategorization: {
|
|
@@ -212,10 +229,19 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
212
229
|
// do nothing
|
|
213
230
|
},
|
|
214
231
|
},
|
|
232
|
+
updateCurrentSelectedTransactionCategorizationTab: {
|
|
233
|
+
reducer(draft, action) {
|
|
234
|
+
draft.selectedTransactionCategorizationTab =
|
|
235
|
+
action.payload.newSelectedTab;
|
|
236
|
+
},
|
|
237
|
+
prepare(newSelectedTab) {
|
|
238
|
+
return { payload: { newSelectedTab } };
|
|
239
|
+
},
|
|
240
|
+
},
|
|
215
241
|
updateTransactionCategorization: {
|
|
216
242
|
reducer(draft, action) {
|
|
217
243
|
const selectedTab = action.payload.selectedTab;
|
|
218
|
-
draft[selectedTab].saveStatus = {
|
|
244
|
+
draft.transactionCategorizationView[selectedTab].saveStatus = {
|
|
219
245
|
error: undefined,
|
|
220
246
|
fetchState: 'In-Progress',
|
|
221
247
|
};
|
|
@@ -233,33 +259,37 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
233
259
|
setAllItemsToCategoryClassInLocalDataForCategorization: {
|
|
234
260
|
reducer(draft, action) {
|
|
235
261
|
const { vendorId, selectedAccount, selectedClassBase, transactions, transactionId, lineId, selectedTab, } = action.payload;
|
|
236
|
-
const transactionLocalData = (0, get_1.default)(draft[selectedTab]
|
|
262
|
+
const transactionLocalData = (0, get_1.default)(draft.transactionCategorizationView[selectedTab]
|
|
263
|
+
.transactionReviewLocalDataById, transactionId, undefined);
|
|
237
264
|
const existingAccount = transactionLocalData === null || transactionLocalData === void 0 ? void 0 : transactionLocalData.transactionReviewLocalData.lineItemById[lineId].account;
|
|
238
265
|
if (transactionLocalData != null) {
|
|
239
266
|
const newTransactionLocalData = Object.assign(Object.assign({}, transactionLocalData.transactionReviewLocalData), { lineItemById: Object.assign(Object.assign({}, transactionLocalData.transactionReviewLocalData.lineItemById), { [lineId]: Object.assign(Object.assign({}, transactionLocalData.transactionReviewLocalData.lineItemById[lineId]), { account: selectedAccount, class: selectedClassBase }) }) });
|
|
240
|
-
draft[selectedTab].transactionReviewLocalDataById[transactionId] = {
|
|
267
|
+
draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById[transactionId] = {
|
|
241
268
|
transactionReviewLocalData: newTransactionLocalData,
|
|
242
269
|
transactionId,
|
|
243
270
|
};
|
|
244
271
|
const selectedTransaction = transactions.find((transaction) => transaction.id === transactionId);
|
|
245
|
-
const selectedCheckBoxTransactionIds = draft[selectedTab]
|
|
272
|
+
const selectedCheckBoxTransactionIds = draft.transactionCategorizationView[selectedTab]
|
|
273
|
+
.selectedCheckBoxTransactionIds;
|
|
246
274
|
if (selectedTransaction != null &&
|
|
247
275
|
(0, transactionCategorizationLocalDataHelper_1.checkIfAllLineItemsAreCategoryClassFilled)(selectedTransaction, newTransactionLocalData) === true && // check if all line items are filled
|
|
248
276
|
selectedCheckBoxTransactionIds.length < transactionCategorizationLocalDataHelper_1.MAX_SELECTION_LIMIT &&
|
|
249
277
|
selectedCheckBoxTransactionIds.includes(transactionId) === false) {
|
|
250
|
-
draft[selectedTab].selectedCheckBoxTransactionIds = [
|
|
251
|
-
...draft[selectedTab]
|
|
278
|
+
draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds = [
|
|
279
|
+
...draft.transactionCategorizationView[selectedTab]
|
|
280
|
+
.selectedCheckBoxTransactionIds,
|
|
252
281
|
transactionId,
|
|
253
282
|
];
|
|
254
283
|
}
|
|
255
284
|
}
|
|
256
285
|
if (vendorId != null) {
|
|
257
286
|
transactions.forEach((transaction) => {
|
|
258
|
-
const transactionLocalData = (0, get_1.default)(draft[selectedTab]
|
|
287
|
+
const transactionLocalData = (0, get_1.default)(draft.transactionCategorizationView[selectedTab]
|
|
288
|
+
.transactionReviewLocalDataById, transaction.id, undefined);
|
|
259
289
|
if (transactionLocalData != null) {
|
|
260
|
-
draft[selectedTab].transactionReviewLocalDataById[transaction.id] = {
|
|
290
|
+
draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById[transaction.id] = {
|
|
261
291
|
transactionId: transaction.id,
|
|
262
|
-
transactionReviewLocalData: (0, transactionCategorizationLocalDataHelper_1.toSetAllLineItemsToCategoryClass)(draft[selectedTab], transaction, transactionId, lineId, transactionLocalData.transactionReviewLocalData, (existingAccount === null || existingAccount === void 0 ? void 0 : existingAccount.accountId) !== (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.accountId)
|
|
292
|
+
transactionReviewLocalData: (0, transactionCategorizationLocalDataHelper_1.toSetAllLineItemsToCategoryClass)(draft.transactionCategorizationView[selectedTab], transaction, transactionId, lineId, transactionLocalData.transactionReviewLocalData, (existingAccount === null || existingAccount === void 0 ? void 0 : existingAccount.accountId) !== (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.accountId)
|
|
263
293
|
? 'category'
|
|
264
294
|
: 'class', vendorId, selectedAccount, selectedClassBase),
|
|
265
295
|
};
|
|
@@ -299,11 +329,12 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
299
329
|
},
|
|
300
330
|
reducer(draft, action) {
|
|
301
331
|
const { entity, transaction, transactionId, selectedTab, lineIds } = action.payload;
|
|
302
|
-
const transactionLocalData = (0, get_1.default)(draft[selectedTab]
|
|
332
|
+
const transactionLocalData = (0, get_1.default)(draft.transactionCategorizationView[selectedTab]
|
|
333
|
+
.transactionReviewLocalDataById, transactionId.id, undefined);
|
|
303
334
|
if (transactionLocalData != null) {
|
|
304
|
-
draft[selectedTab].transactionReviewLocalDataById[transaction.id] = {
|
|
335
|
+
draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById[transaction.id] = {
|
|
305
336
|
transactionId: transaction.id,
|
|
306
|
-
transactionReviewLocalData: (0, transactionCategorizationLocalDataHelper_1.setEntityRecommendationForLineIdInLocalData)(draft[selectedTab], transaction, transactionLocalData.transactionReviewLocalData, entity, lineIds, action.payload.recommendationByLineId),
|
|
337
|
+
transactionReviewLocalData: (0, transactionCategorizationLocalDataHelper_1.setEntityRecommendationForLineIdInLocalData)(draft.transactionCategorizationView[selectedTab], transaction, transactionLocalData.transactionReviewLocalData, entity, lineIds, action.payload.recommendationByLineId),
|
|
307
338
|
};
|
|
308
339
|
}
|
|
309
340
|
},
|
|
@@ -311,25 +342,29 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
311
342
|
fetchTransactionCategorizationSuccess(draft, action) {
|
|
312
343
|
const { selectedTab } = action.payload;
|
|
313
344
|
if (action.payload.refreshViewInBackground === true) {
|
|
314
|
-
draft[selectedTab].refreshStatus = {
|
|
345
|
+
draft.transactionCategorizationView[selectedTab].refreshStatus = {
|
|
315
346
|
fetchState: 'Completed',
|
|
316
347
|
error: undefined,
|
|
317
348
|
};
|
|
318
349
|
}
|
|
319
350
|
else {
|
|
320
|
-
draft[selectedTab].fetchState =
|
|
321
|
-
|
|
351
|
+
draft.transactionCategorizationView[selectedTab].fetchState =
|
|
352
|
+
'Completed';
|
|
353
|
+
draft.transactionCategorizationView[selectedTab].error = undefined;
|
|
322
354
|
}
|
|
323
355
|
},
|
|
324
356
|
fetchTransactionCategorizationFailure(draft, action) {
|
|
325
357
|
const { selectedTab, selectedPeriod } = action.payload;
|
|
326
|
-
draft[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] =
|
|
327
|
-
|
|
328
|
-
draft[selectedTab].
|
|
358
|
+
draft.transactionCategorizationView[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] =
|
|
359
|
+
[];
|
|
360
|
+
draft.transactionCategorizationView[selectedTab].fetchState = 'Error';
|
|
361
|
+
draft.transactionCategorizationView[selectedTab].error =
|
|
362
|
+
action.payload.status;
|
|
329
363
|
},
|
|
330
364
|
updateSelectedVendorForTransaction(draft, action) {
|
|
331
365
|
const { transactionId, lineId, updatedVendor, selectedTransaction, selectedTab, } = action.payload;
|
|
332
|
-
const transactionLocalData = (0, get_1.default)(draft[selectedTab]
|
|
366
|
+
const transactionLocalData = (0, get_1.default)(draft.transactionCategorizationView[selectedTab]
|
|
367
|
+
.transactionReviewLocalDataById, transactionId, undefined);
|
|
333
368
|
if (transactionLocalData != null) {
|
|
334
369
|
let newTransactionLocalData = Object.assign({}, transactionLocalData.transactionReviewLocalData);
|
|
335
370
|
if (!(0, vendorTransaction_1.isVendorTransaction)(selectedTransaction) &&
|
|
@@ -354,17 +389,18 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
354
389
|
}
|
|
355
390
|
: undefined;
|
|
356
391
|
}
|
|
357
|
-
draft[selectedTab].transactionReviewLocalDataById[transactionId] = {
|
|
392
|
+
draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById[transactionId] = {
|
|
358
393
|
transactionReviewLocalData: newTransactionLocalData,
|
|
359
394
|
transactionId,
|
|
360
395
|
};
|
|
361
|
-
const selectedCheckBoxTransactionIds = draft[selectedTab]
|
|
396
|
+
const selectedCheckBoxTransactionIds = draft.transactionCategorizationView[selectedTab]
|
|
397
|
+
.selectedCheckBoxTransactionIds;
|
|
362
398
|
if (newTransactionLocalData.vendor != null &&
|
|
363
399
|
newTransactionLocalData.vendor.id != null &&
|
|
364
400
|
(0, transactionCategorizationLocalDataHelper_1.checkIfAllLineItemsAreCategoryClassFilled)(selectedTransaction, newTransactionLocalData) === true && // check if all line items are filled
|
|
365
401
|
selectedCheckBoxTransactionIds.length < transactionCategorizationLocalDataHelper_1.MAX_SELECTION_LIMIT &&
|
|
366
402
|
selectedCheckBoxTransactionIds.includes(transactionId) === false) {
|
|
367
|
-
draft[selectedTab].selectedCheckBoxTransactionIds = [
|
|
403
|
+
draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds = [
|
|
368
404
|
...selectedCheckBoxTransactionIds,
|
|
369
405
|
transactionId,
|
|
370
406
|
];
|
|
@@ -374,7 +410,7 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
374
410
|
updateTransactionCategorizationSaveStatus: {
|
|
375
411
|
reducer(draft, action) {
|
|
376
412
|
const selectedTab = action.payload.selectedTab;
|
|
377
|
-
draft[selectedTab].saveStatus = {
|
|
413
|
+
draft.transactionCategorizationView[selectedTab].saveStatus = {
|
|
378
414
|
fetchState: action.payload.fetchState,
|
|
379
415
|
error: action.payload.error,
|
|
380
416
|
};
|
|
@@ -392,7 +428,7 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
392
428
|
markTransactionAsNotMiscategorized: {
|
|
393
429
|
reducer(draft, action) {
|
|
394
430
|
const selectedTab = action.payload.selectedTab;
|
|
395
|
-
draft[selectedTab].markAsNotMiscategorizedStatus = {
|
|
431
|
+
draft.transactionCategorizationView[selectedTab].markAsNotMiscategorizedStatus = {
|
|
396
432
|
fetchState: 'In-Progress',
|
|
397
433
|
error: undefined,
|
|
398
434
|
};
|
|
@@ -410,16 +446,17 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
410
446
|
reducer(draft, action) {
|
|
411
447
|
const { selectedTab, selectedPeriod, transactionIds } = action.payload;
|
|
412
448
|
if (action.payload.fetchState === 'Completed') {
|
|
413
|
-
const selectedCheckBoxTransactionIds = draft[selectedTab].selectedCheckBoxTransactionIds.filter((id) => !transactionIds.includes(id));
|
|
414
|
-
draft[selectedTab].selectedCheckBoxTransactionIds = [
|
|
449
|
+
const selectedCheckBoxTransactionIds = draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds.filter((id) => !transactionIds.includes(id));
|
|
450
|
+
draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds = [
|
|
415
451
|
...selectedCheckBoxTransactionIds,
|
|
416
452
|
];
|
|
417
|
-
const transactionIdsBySelectedPeriod = draft[selectedTab]
|
|
453
|
+
const transactionIdsBySelectedPeriod = draft.transactionCategorizationView[selectedTab]
|
|
454
|
+
.transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)];
|
|
418
455
|
if (transactionIdsBySelectedPeriod != null) {
|
|
419
|
-
draft[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = transactionIdsBySelectedPeriod.filter((id) => !transactionIds.includes(id));
|
|
456
|
+
draft.transactionCategorizationView[selectedTab].transactionIdsBySelectedPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = transactionIdsBySelectedPeriod.filter((id) => !transactionIds.includes(id));
|
|
420
457
|
}
|
|
421
458
|
}
|
|
422
|
-
draft[selectedTab].markAsNotMiscategorizedStatus = {
|
|
459
|
+
draft.transactionCategorizationView[selectedTab].markAsNotMiscategorizedStatus = {
|
|
423
460
|
fetchState: action.payload.fetchState,
|
|
424
461
|
error: action.payload.error,
|
|
425
462
|
};
|
|
@@ -438,21 +475,21 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
438
475
|
},
|
|
439
476
|
updateTotalCountForTransactionCategorization(draft, action) {
|
|
440
477
|
const { selectedTab, selectedPeriod, totalCount } = action.payload;
|
|
441
|
-
draft[selectedTab].uiState.totalCount[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = totalCount;
|
|
478
|
+
draft.transactionCategorizationView[selectedTab].uiState.totalCount[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = totalCount;
|
|
442
479
|
},
|
|
443
480
|
updateSelectedCheckboxTransactionIds(draft, action) {
|
|
444
481
|
const selectedTab = action.payload.selectedTab;
|
|
445
482
|
const transactionIds = action.payload.transactionIds;
|
|
446
|
-
draft[selectedTab].selectedCheckBoxTransactionIds = [...transactionIds];
|
|
483
|
+
draft.transactionCategorizationView[selectedTab].selectedCheckBoxTransactionIds = [...transactionIds];
|
|
447
484
|
},
|
|
448
485
|
clearExpenseAutomationTransactionsViewPerTabView(draft, action) {
|
|
449
486
|
const selectedTab = action.payload;
|
|
450
|
-
draft[selectedTab] = Object.assign({}, exports.initialTransactionTabViewState);
|
|
487
|
+
draft.transactionCategorizationView[selectedTab] = Object.assign({}, exports.initialTransactionTabViewState);
|
|
451
488
|
},
|
|
452
489
|
clearExpenseAutomationTransactionsView(draft) {
|
|
453
490
|
Object.assign(draft, exports.initialState);
|
|
454
491
|
},
|
|
455
492
|
},
|
|
456
493
|
});
|
|
457
|
-
_a = expenseAutomationTransactionsView.actions, exports.fetchTransactionCategorization = _a.fetchTransactionCategorization, exports.updateTransactionCategorizationUIState = _a.updateTransactionCategorizationUIState, exports.initializeTransactionCategorizationViewLocalData = _a.initializeTransactionCategorizationViewLocalData, exports.saveTransactionCategorizationLocalData = _a.saveTransactionCategorizationLocalData, exports.fetchTransactionCategorizationFailure = _a.fetchTransactionCategorizationFailure, exports.saveTransactionCategorization = _a.saveTransactionCategorization, exports.updateTransactionCategorization = _a.updateTransactionCategorization, exports.updateTransactionCategorizationSaveStatus = _a.updateTransactionCategorizationSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.updateStatusForTransactionNotMiscategorizedUpdate = _a.updateStatusForTransactionNotMiscategorizedUpdate, exports.updateSelectedVendorForTransaction = _a.updateSelectedVendorForTransaction, exports.setAllItemsToCategoryClassInLocalDataForCategorization = _a.setAllItemsToCategoryClassInLocalDataForCategorization, exports.updateTotalCountForTransactionCategorization = _a.updateTotalCountForTransactionCategorization, exports.fetchTransactionCategorizationSuccess = _a.fetchTransactionCategorizationSuccess, exports.fetchTransactionCategorizationView = _a.fetchTransactionCategorizationView, exports.updateSelectedCheckboxTransactionIds = _a.updateSelectedCheckboxTransactionIds, exports.clearExpenseAutomationTransactionsViewPerTabView = _a.clearExpenseAutomationTransactionsViewPerTabView, exports.clearExpenseAutomationTransactionsView = _a.clearExpenseAutomationTransactionsView, exports.setEntityRecommendationForLineIdsForCategorization = _a.setEntityRecommendationForLineIdsForCategorization;
|
|
494
|
+
_a = expenseAutomationTransactionsView.actions, exports.fetchTransactionCategorization = _a.fetchTransactionCategorization, exports.updateTransactionCategorizationUIState = _a.updateTransactionCategorizationUIState, exports.initializeTransactionCategorizationViewLocalData = _a.initializeTransactionCategorizationViewLocalData, exports.saveTransactionCategorizationLocalData = _a.saveTransactionCategorizationLocalData, exports.fetchTransactionCategorizationFailure = _a.fetchTransactionCategorizationFailure, exports.saveTransactionCategorization = _a.saveTransactionCategorization, exports.updateTransactionCategorization = _a.updateTransactionCategorization, exports.updateCurrentSelectedTransactionCategorizationTab = _a.updateCurrentSelectedTransactionCategorizationTab, exports.updateTransactionCategorizationSaveStatus = _a.updateTransactionCategorizationSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.updateStatusForTransactionNotMiscategorizedUpdate = _a.updateStatusForTransactionNotMiscategorizedUpdate, exports.updateSelectedVendorForTransaction = _a.updateSelectedVendorForTransaction, exports.setAllItemsToCategoryClassInLocalDataForCategorization = _a.setAllItemsToCategoryClassInLocalDataForCategorization, exports.updateTotalCountForTransactionCategorization = _a.updateTotalCountForTransactionCategorization, exports.fetchTransactionCategorizationSuccess = _a.fetchTransactionCategorizationSuccess, exports.fetchTransactionCategorizationView = _a.fetchTransactionCategorizationView, exports.updateSelectedCheckboxTransactionIds = _a.updateSelectedCheckboxTransactionIds, exports.clearExpenseAutomationTransactionsViewPerTabView = _a.clearExpenseAutomationTransactionsViewPerTabView, exports.clearExpenseAutomationTransactionsView = _a.clearExpenseAutomationTransactionsView, exports.setEntityRecommendationForLineIdsForCategorization = _a.setEntityRecommendationForLineIdsForCategorization;
|
|
458
495
|
exports.default = expenseAutomationTransactionsView.reducer;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { ExpenseAutomationTransactionViewSelector } from '../selectorTypes/transactionsViewSelectorTypes';
|
|
2
2
|
import { RootState } from '../../../reducer';
|
|
3
|
-
|
|
4
|
-
export declare function getExpenseAutomationTransactionView(state: RootState, selectedTab: TransactionsTab): ExpenseAutomationTransactionViewSelector;
|
|
3
|
+
export declare function getExpenseAutomationTransactionView(state: RootState): ExpenseAutomationTransactionViewSelector;
|
|
@@ -12,10 +12,11 @@ const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
|
|
|
12
12
|
const tenantSelector_1 = require("../../../entity/tenant/tenantSelector");
|
|
13
13
|
const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState");
|
|
14
14
|
const expenseAutomationViewSelectorTypes_1 = require("../selectorTypes/expenseAutomationViewSelectorTypes");
|
|
15
|
-
function getExpenseAutomationTransactionView(state
|
|
15
|
+
function getExpenseAutomationTransactionView(state) {
|
|
16
16
|
var _a;
|
|
17
17
|
const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, } = state;
|
|
18
|
-
const {
|
|
18
|
+
const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
|
|
19
|
+
const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
|
|
19
20
|
const uncategorizedIncomeExpense = (0, accountListSelector_1.getUncategorizedAccounts)(accountState, accountListState, 'accountList');
|
|
20
21
|
const accountList = (0, accountListSelector_1.getAccountList)(accountState, accountListState, 'accountList');
|
|
21
22
|
const classList = (0, classListSelector_1.getClassList)(classState, classListState);
|
|
@@ -52,21 +53,29 @@ function getExpenseAutomationTransactionView(state, selectedTab) {
|
|
|
52
53
|
fetchStatus = (0, reduceFetchState_1.reduceAllFetchState)([
|
|
53
54
|
accountList,
|
|
54
55
|
classList,
|
|
55
|
-
expenseAutomationTransactionsViewState[
|
|
56
|
+
expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab],
|
|
56
57
|
]);
|
|
57
|
-
const totalCountByReview = expenseAutomationTransactionsViewState.review
|
|
58
|
-
|
|
58
|
+
const totalCountByReview = expenseAutomationTransactionsViewState.transactionCategorizationView.review
|
|
59
|
+
.uiState.totalCount;
|
|
60
|
+
const totalCountByAutoCat = expenseAutomationTransactionsViewState.transactionCategorizationView
|
|
61
|
+
.autoCategorized.uiState.totalCount;
|
|
59
62
|
const totalCountByTab = {
|
|
60
63
|
review: monthYearPeriodId != null ? totalCountByReview[monthYearPeriodId] : 0,
|
|
61
64
|
autoCategorized: monthYearPeriodId != null ? totalCountByAutoCat[monthYearPeriodId] : 0,
|
|
62
65
|
};
|
|
63
66
|
const fetchStateByTab = {
|
|
64
|
-
review:
|
|
65
|
-
expenseAutomationTransactionsViewState.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
review: {
|
|
68
|
+
fetchState: expenseAutomationTransactionsViewState.transactionCategorizationView
|
|
69
|
+
.review.fetchState,
|
|
70
|
+
error: expenseAutomationTransactionsViewState.transactionCategorizationView
|
|
71
|
+
.review.error,
|
|
72
|
+
},
|
|
73
|
+
autoCategorized: {
|
|
74
|
+
fetchState: expenseAutomationTransactionsViewState.transactionCategorizationView
|
|
75
|
+
.autoCategorized.fetchState,
|
|
76
|
+
error: expenseAutomationTransactionsViewState.transactionCategorizationView
|
|
77
|
+
.autoCategorized.error,
|
|
78
|
+
},
|
|
70
79
|
};
|
|
71
80
|
const allSteps = monthYearPeriodId != null
|
|
72
81
|
? (0, expenseAutomationViewSelectorTypes_1.getAllSteps)(monthEndCloseChecksState, monthYearPeriodId, currentTenant.tenantId)
|
|
@@ -85,7 +85,10 @@ export interface TransactionsTabViewState extends FetchedState {
|
|
|
85
85
|
refreshStatus: FetchStateAndError;
|
|
86
86
|
uiState: TransactionsViewUIState;
|
|
87
87
|
}
|
|
88
|
-
export declare type TransactionsViewState =
|
|
88
|
+
export declare type TransactionsViewState = {
|
|
89
|
+
selectedTransactionCategorizationTab: TransactionsTab;
|
|
90
|
+
transactionCategorizationView: Record<TransactionsTab, TransactionsTabViewState>;
|
|
91
|
+
};
|
|
89
92
|
export interface TransactionLineUpdates {
|
|
90
93
|
class?: ClassBase;
|
|
91
94
|
account?: AccountBase;
|
|
@@ -12,7 +12,7 @@ const accountListSelector_1 = require("../accountList/accountListSelector");
|
|
|
12
12
|
const transactionDetailState_1 = require("../transactionDetail/transactionDetailState");
|
|
13
13
|
const fetchEntityRecommendationsByTransactionIdEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(recommendationReducer_1.fetchEntityRecommendationsByTransactionId.match), (0, operators_1.switchMap)((action) => {
|
|
14
14
|
const { entity, amount, transactionDetails, isBulkFetch, isTransactionCategorizationFlow, } = action.payload;
|
|
15
|
-
const {
|
|
15
|
+
const { expenseAutomationTransactionsViewState: { selectedTransactionCategorizationTab, }, } = state$.value;
|
|
16
16
|
const query = {
|
|
17
17
|
amount,
|
|
18
18
|
transaction_id: (0, transactionDetailState_1.getActualTransactionID)(transactionDetails.transactionId.id),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "4.14.
|
|
3
|
+
"version": "4.14.6",
|
|
4
4
|
"description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|