@zeniai/client-epic-state 4.19.42 → 4.19.43-betaAR2
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/entity/account/accountState.d.ts +1 -0
- package/lib/entity/account/accountState.js +4 -4
- package/lib/epic.d.ts +2 -1
- package/lib/epic.js +2 -1
- package/lib/esm/entity/account/accountState.js +1 -1
- package/lib/esm/epic.js +2 -1
- package/lib/esm/index.js +7 -7
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/accountSettings/fetchAccountSettingsListForAccountTypesEpic.js +2 -1
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/accountSettings/saveAccountSettingsViewEpic.js +2 -1
- package/lib/esm/view/expenseAutomationView/expenseAutomationViewSelector.js +1 -1
- package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +11 -1
- package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +57 -8
- package/lib/esm/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewDashboardLoadedEpic.js +28 -0
- package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +31 -1
- package/lib/esm/view/spendManagement/spendManagementFilterHelpers.js +137 -1
- package/lib/index.d.ts +9 -9
- package/lib/index.js +35 -30
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/accountSettings/fetchAccountSettingsListForAccountTypesEpic.js +2 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/accountSettings/saveAccountSettingsViewEpic.js +2 -1
- package/lib/view/expenseAutomationView/expenseAutomationViewSelector.js +1 -1
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +5 -1
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +12 -2
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +4 -1
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +59 -8
- package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +2 -0
- package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewDashboardLoadedEpic.d.ts +8 -0
- package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewDashboardLoadedEpic.js +32 -0
- package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +3 -1
- package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +32 -2
- package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +1 -0
- package/lib/view/spendManagement/spendManagementFilterHelpers.d.ts +43 -4
- package/lib/view/spendManagement/spendManagementFilterHelpers.js +138 -2
- package/package.json +2 -1
|
@@ -12,7 +12,8 @@ const fetchAccountSettingsListForAccountTypesEpic = (actions$, _state$, zeniAPI)
|
|
|
12
12
|
is_include_tax_1099_config: false,
|
|
13
13
|
};
|
|
14
14
|
return zeniAPI
|
|
15
|
-
.getJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/accounts?query=${encodeURIComponent(
|
|
15
|
+
.getJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/accounts?query=${encodeURIComponent(//
|
|
16
|
+
JSON.stringify(queryParam))}`)
|
|
16
17
|
.pipe((0, operators_1.mergeMap)((response) => {
|
|
17
18
|
if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
|
|
18
19
|
const actions = [];
|
|
@@ -20,7 +20,8 @@ const saveAccountSettingsViewEpic = (actions$, state, zeniAPI) => actions$.pipe(
|
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
22
|
return zeniAPI
|
|
23
|
-
.putAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/accounts`,
|
|
23
|
+
.putAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/accounts`, //
|
|
24
|
+
{ accounts: payload })
|
|
24
25
|
.pipe((0, operators_1.mergeMap)((response) => {
|
|
25
26
|
if ((0, responsePayload_1.isSuccessStatus)(response)) {
|
|
26
27
|
const actionsSuccess = [
|
|
@@ -180,7 +180,7 @@ function getExpenseAutomationView(state) {
|
|
|
180
180
|
]);
|
|
181
181
|
return {
|
|
182
182
|
jeSchedules,
|
|
183
|
-
transactionView: expenseAutomationTransactionsView,
|
|
183
|
+
transactionView: expenseAutomationTransactionsView, //
|
|
184
184
|
missingReceipts,
|
|
185
185
|
reconciliation,
|
|
186
186
|
currentSelectedViewFetchState,
|
|
@@ -13,6 +13,7 @@ import { ZeniAPIStatus } from '../../../responsePayload';
|
|
|
13
13
|
import { UncategorizedAccounts } from '../../accountList/accountListSelector';
|
|
14
14
|
import { UpdateTransactionCategorizationResponsePayload } from '../payload/transactionCategorizationPayload';
|
|
15
15
|
import { SupportedTransactionCategorization, TransactionSaveUpdates, TransactionsTab, TransactionsTabViewState, TransactionsViewState, TransactionsViewUIState } from '../types/transactionsViewState';
|
|
16
|
+
import { TransactionFilters } from '../../spendManagement/spendManagementFilterHelpers';
|
|
16
17
|
export declare const initialTransactionTabViewState: TransactionsTabViewState;
|
|
17
18
|
export declare const initialState: TransactionsViewState;
|
|
18
19
|
export declare const fetchTransactionCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", period: TimePeriod, cacheOverride?: any, keepExistingListItems?: any, searchString?: string | undefined, pageToken?: PageToken | undefined, refreshViewInBackground?: any, resetListItems?: boolean | undefined, isUncategorizedExpenseCategoryEnabled?: boolean | undefined], {
|
|
@@ -28,7 +29,10 @@ export declare const fetchTransactionCategorization: import("@reduxjs/toolkit").
|
|
|
28
29
|
}, "expenseAutomationTransactionsView/fetchTransactionCategorization", never, never>, updateTransactionCategorizationUIState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
29
30
|
selectedTab: TransactionsTab;
|
|
30
31
|
uiState: Partial<TransactionsViewUIState>;
|
|
31
|
-
}, "expenseAutomationTransactionsView/updateTransactionCategorizationUIState">,
|
|
32
|
+
}, "expenseAutomationTransactionsView/updateTransactionCategorizationUIState">, updateTransactionFilters: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
33
|
+
filters: TransactionFilters;
|
|
34
|
+
selectedTab: TransactionsTab;
|
|
35
|
+
}, "expenseAutomationTransactionsView/updateTransactionFilters">, initializeTransactionCategorizationViewLocalData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionIds: string[], selectedPeriod: MonthYearPeriod, keepExistingListItems: any, pageToken: PageToken, totalCount: number, lineItemsByTransactionIds: Record<string, string[]>, refreshViewInBackground?: any, isUncategorizedExpenseCategoryEnabled?: boolean | undefined], {
|
|
32
36
|
selectedTab: "review" | "autoCategorized";
|
|
33
37
|
transactionIds: string[];
|
|
34
38
|
selectedPeriod: MonthYearPeriod;
|
|
@@ -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.backgroundRefetchReviewTab = exports.syncTransactionCategorizationFromDetailSave = exports.updateSelectedTransactionId = exports.setEntityRecommendationForLineIdsForCategorization = exports.clearExpenseAutomationTransactionsView = exports.clearExpenseAutomationTransactionsViewPerTabView = exports.updateSelectedCheckboxTransactionIds = exports.fetchTransactionCategorizationView = exports.resetOtherTabsFetchState = exports.fetchTransactionCategorizationSuccess = exports.updateTotalCountForTransactionCategorization = exports.setAllItemsToCategoryClassInLocalDataForCategorization = exports.updateSelectedCustomerForTransaction = exports.updateSelectedVendorForTransaction = exports.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = 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;
|
|
7
|
+
exports.backgroundRefetchReviewTab = exports.syncTransactionCategorizationFromDetailSave = exports.updateSelectedTransactionId = exports.setEntityRecommendationForLineIdsForCategorization = exports.clearExpenseAutomationTransactionsView = exports.clearExpenseAutomationTransactionsViewPerTabView = exports.updateSelectedCheckboxTransactionIds = exports.fetchTransactionCategorizationView = exports.resetOtherTabsFetchState = exports.fetchTransactionCategorizationSuccess = exports.updateTotalCountForTransactionCategorization = exports.setAllItemsToCategoryClassInLocalDataForCategorization = exports.updateSelectedCustomerForTransaction = exports.updateSelectedVendorForTransaction = exports.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = exports.markTransactionAsNotMiscategorized = exports.updateTransactionCategorizationSaveStatus = exports.updateCurrentSelectedTransactionCategorizationTab = exports.updateTransactionCategorization = exports.saveTransactionCategorization = exports.fetchTransactionCategorizationFailure = exports.saveTransactionCategorizationLocalData = exports.initializeTransactionCategorizationViewLocalData = exports.updateTransactionFilters = 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"));
|
|
@@ -34,6 +34,10 @@ exports.initialTransactionTabViewState = {
|
|
|
34
34
|
totalCount: {},
|
|
35
35
|
limit: 10,
|
|
36
36
|
},
|
|
37
|
+
filters: {
|
|
38
|
+
categoryCombinationOperator: 'AND',
|
|
39
|
+
categories: [],
|
|
40
|
+
},
|
|
37
41
|
fetchState: 'Not-Started',
|
|
38
42
|
error: undefined,
|
|
39
43
|
hasValidState() {
|
|
@@ -242,6 +246,12 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
242
246
|
uiState.totalCount;
|
|
243
247
|
}
|
|
244
248
|
},
|
|
249
|
+
updateTransactionFilters(draft, action) {
|
|
250
|
+
const { selectedTab, filters } = action.payload;
|
|
251
|
+
if (filters != null) {
|
|
252
|
+
draft.transactionCategorizationView[selectedTab].filters = filters;
|
|
253
|
+
}
|
|
254
|
+
},
|
|
245
255
|
saveTransactionCategorization: {
|
|
246
256
|
prepare(selectedTab, transactionIds, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled) {
|
|
247
257
|
return {
|
|
@@ -787,5 +797,5 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
787
797
|
},
|
|
788
798
|
},
|
|
789
799
|
});
|
|
790
|
-
_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.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = _a.updateStatusForTransactionNotMiscategorizedUpdateForCategorization, exports.updateSelectedVendorForTransaction = _a.updateSelectedVendorForTransaction, exports.updateSelectedCustomerForTransaction = _a.updateSelectedCustomerForTransaction, exports.setAllItemsToCategoryClassInLocalDataForCategorization = _a.setAllItemsToCategoryClassInLocalDataForCategorization, exports.updateTotalCountForTransactionCategorization = _a.updateTotalCountForTransactionCategorization, exports.fetchTransactionCategorizationSuccess = _a.fetchTransactionCategorizationSuccess, exports.resetOtherTabsFetchState = _a.resetOtherTabsFetchState, exports.fetchTransactionCategorizationView = _a.fetchTransactionCategorizationView, exports.updateSelectedCheckboxTransactionIds = _a.updateSelectedCheckboxTransactionIds, exports.clearExpenseAutomationTransactionsViewPerTabView = _a.clearExpenseAutomationTransactionsViewPerTabView, exports.clearExpenseAutomationTransactionsView = _a.clearExpenseAutomationTransactionsView, exports.setEntityRecommendationForLineIdsForCategorization = _a.setEntityRecommendationForLineIdsForCategorization, exports.updateSelectedTransactionId = _a.updateSelectedTransactionId, exports.syncTransactionCategorizationFromDetailSave = _a.syncTransactionCategorizationFromDetailSave, exports.backgroundRefetchReviewTab = _a.backgroundRefetchReviewTab;
|
|
800
|
+
_a = expenseAutomationTransactionsView.actions, exports.fetchTransactionCategorization = _a.fetchTransactionCategorization, exports.updateTransactionCategorizationUIState = _a.updateTransactionCategorizationUIState, exports.updateTransactionFilters = _a.updateTransactionFilters, 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.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = _a.updateStatusForTransactionNotMiscategorizedUpdateForCategorization, exports.updateSelectedVendorForTransaction = _a.updateSelectedVendorForTransaction, exports.updateSelectedCustomerForTransaction = _a.updateSelectedCustomerForTransaction, exports.setAllItemsToCategoryClassInLocalDataForCategorization = _a.setAllItemsToCategoryClassInLocalDataForCategorization, exports.updateTotalCountForTransactionCategorization = _a.updateTotalCountForTransactionCategorization, exports.fetchTransactionCategorizationSuccess = _a.fetchTransactionCategorizationSuccess, exports.resetOtherTabsFetchState = _a.resetOtherTabsFetchState, exports.fetchTransactionCategorizationView = _a.fetchTransactionCategorizationView, exports.updateSelectedCheckboxTransactionIds = _a.updateSelectedCheckboxTransactionIds, exports.clearExpenseAutomationTransactionsViewPerTabView = _a.clearExpenseAutomationTransactionsViewPerTabView, exports.clearExpenseAutomationTransactionsView = _a.clearExpenseAutomationTransactionsView, exports.setEntityRecommendationForLineIdsForCategorization = _a.setEntityRecommendationForLineIdsForCategorization, exports.updateSelectedTransactionId = _a.updateSelectedTransactionId, exports.syncTransactionCategorizationFromDetailSave = _a.syncTransactionCategorizationFromDetailSave, exports.backgroundRefetchReviewTab = _a.backgroundRefetchReviewTab;
|
|
791
801
|
exports.default = expenseAutomationTransactionsView.reducer;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { TransactionWithCOT } from '../../../entity/transaction/stateTypes/transaction';
|
|
1
2
|
import { RootState } from '../../../reducer';
|
|
2
|
-
import {
|
|
3
|
+
import { TransactionView } from '../../spendManagement/spendManagementFilterHelpers';
|
|
4
|
+
import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView } from '../selectorTypes/transactionsViewSelectorTypes';
|
|
5
|
+
export declare const toTransactionView: (transaction: TransactionWithCOT, transactionLocalData?: TransactionReviewLocalDataSelectorView) => TransactionView;
|
|
3
6
|
export declare function getExpenseAutomationTransactionView(state: RootState): ExpenseAutomationTransactionViewSelector;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.toTransactionView = void 0;
|
|
6
7
|
exports.getExpenseAutomationTransactionView = getExpenseAutomationTransactionView;
|
|
7
8
|
const omit_1 = __importDefault(require("lodash/omit"));
|
|
8
9
|
const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState");
|
|
@@ -10,13 +11,33 @@ const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
|
|
|
10
11
|
const tenantSelector_1 = require("../../../entity/tenant/tenantSelector");
|
|
11
12
|
const transactionHelper_1 = require("../../../entity/transaction/transactionHelper");
|
|
12
13
|
const transactionSelector_1 = require("../../../entity/transaction/transactionSelector");
|
|
14
|
+
const spendManagementFilterHelpers_1 = require("../../spendManagement/spendManagementFilterHelpers");
|
|
13
15
|
const accountListSelector_1 = require("../../accountList/accountListSelector");
|
|
14
16
|
const classListSelector_1 = require("../../classList/classListSelector");
|
|
15
17
|
const expenseAutomationViewSelectorTypes_1 = require("../selectorTypes/expenseAutomationViewSelectorTypes");
|
|
18
|
+
const toTransactionView = (transaction, transactionLocalData) => {
|
|
19
|
+
return {
|
|
20
|
+
id: transaction.id,
|
|
21
|
+
date: transaction.date,
|
|
22
|
+
amount: transaction.amount,
|
|
23
|
+
vendorName: transaction.vendorName,
|
|
24
|
+
customerName: transaction.customerName,
|
|
25
|
+
vendorId: transaction.vendorId,
|
|
26
|
+
customerId: transaction.customerId,
|
|
27
|
+
description: transaction.description,
|
|
28
|
+
memo: transaction.memo,
|
|
29
|
+
type: transaction.type,
|
|
30
|
+
typeName: transaction.typeName,
|
|
31
|
+
createTime: transaction.createTime,
|
|
32
|
+
transaction: transaction,
|
|
33
|
+
transactionLocalData,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
exports.toTransactionView = toTransactionView;
|
|
16
37
|
function getExpenseAutomationTransactionView(state) {
|
|
17
38
|
const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, } = state;
|
|
18
39
|
const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
|
|
19
|
-
const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, selectedTransactionId, selectedTransactionLineId, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
|
|
40
|
+
const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, selectedTransactionId, selectedTransactionLineId, filters, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
|
|
20
41
|
const uncategorizedIncomeExpense = (0, accountListSelector_1.getUncategorizedAccounts)(accountState, accountListState, 'accountList');
|
|
21
42
|
const accountList = (0, accountListSelector_1.getAccountList)(accountState, accountListState, 'accountList');
|
|
22
43
|
const classList = (0, classListSelector_1.getClassList)(classState, classListState);
|
|
@@ -33,10 +54,42 @@ function getExpenseAutomationTransactionView(state) {
|
|
|
33
54
|
? transactionIdsBySelectedPeriod[monthYearPeriodId]
|
|
34
55
|
: null;
|
|
35
56
|
const transactionIds = transactionIdsForSelectedPeriod ?? [];
|
|
36
|
-
const
|
|
37
|
-
|
|
57
|
+
const transactions = (0, transactionSelector_1.getSupportedTransactionsByIds)(transactionState, transactionIds);
|
|
58
|
+
const transactionsWithCOT = transactions.map((transaction) => (0, transactionHelper_1.getTransactionWithCOT)(transaction));
|
|
59
|
+
const transactionLocalDataMap = new Map();
|
|
60
|
+
transactionIds.forEach((transactionId) => {
|
|
38
61
|
const transactionData = transactionReviewLocalDataById[transactionId];
|
|
39
62
|
if (transactionData != null) {
|
|
63
|
+
transactionLocalDataMap.set(transactionId, {
|
|
64
|
+
transactionId,
|
|
65
|
+
transactionReviewLocalData: transactionData.transactionReviewLocalData,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
// Step 2: Convert to TransactionView and apply advanced filters
|
|
70
|
+
const transactionViews = transactionsWithCOT.map((transaction) => {
|
|
71
|
+
const localData = transactionLocalDataMap.get(transaction.id);
|
|
72
|
+
return (0, exports.toTransactionView)(transaction, localData);
|
|
73
|
+
});
|
|
74
|
+
// Apply advanced filters if they exist
|
|
75
|
+
const filteredTransactionViews = (0, spendManagementFilterHelpers_1.applyAdvancedFiltersOnList)('transaction_categorization', transactionViews, filters);
|
|
76
|
+
// Convert back to TransactionWithCOT for return
|
|
77
|
+
const filteredTransactionsWithCOT = filteredTransactionViews.map((view) => view.transaction);
|
|
78
|
+
// Get transactionLocalData for filtered transactions
|
|
79
|
+
// Also include transactionLocalData for transactions that don't exist in transactionState
|
|
80
|
+
// but have local data (to match original behavior)
|
|
81
|
+
const filteredTransactionIds = new Set(filteredTransactionViews.map((view) => view.id));
|
|
82
|
+
const filteredTransactionLocalData = transactionIds
|
|
83
|
+
.map((transactionId) => {
|
|
84
|
+
const transactionData = transactionReviewLocalDataById[transactionId];
|
|
85
|
+
if (transactionData == null) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
// Include if transaction is in filtered results, or if transaction doesn't exist in state
|
|
89
|
+
// (to maintain backward compatibility with tests)
|
|
90
|
+
const transactionExists = transactions.some((t) => t.id === transactionId);
|
|
91
|
+
if (filteredTransactionIds.has(transactionId) ||
|
|
92
|
+
!transactionExists) {
|
|
40
93
|
return {
|
|
41
94
|
transactionId,
|
|
42
95
|
transactionReviewLocalData: transactionData.transactionReviewLocalData,
|
|
@@ -44,9 +97,7 @@ function getExpenseAutomationTransactionView(state) {
|
|
|
44
97
|
}
|
|
45
98
|
return null;
|
|
46
99
|
})
|
|
47
|
-
.filter((
|
|
48
|
-
const transactions = (0, transactionSelector_1.getSupportedTransactionsByIds)(transactionState, transactionIds);
|
|
49
|
-
const transactionsWithCOT = transactions.map((transaction) => (0, transactionHelper_1.getTransactionWithCOT)(transaction));
|
|
100
|
+
.filter((data) => data != null);
|
|
50
101
|
const fetchStatus = (0, reduceFetchState_1.reduceAllFetchState)([
|
|
51
102
|
accountList,
|
|
52
103
|
classList,
|
|
@@ -83,7 +134,7 @@ function getExpenseAutomationTransactionView(state) {
|
|
|
83
134
|
version: 0,
|
|
84
135
|
fetchState: fetchStatus.fetchState,
|
|
85
136
|
error: fetchStatus.error,
|
|
86
|
-
transactions:
|
|
137
|
+
transactions: filteredTransactionsWithCOT,
|
|
87
138
|
selectedCheckBoxTransactionIds,
|
|
88
139
|
transactionIdsWithUnsavedData,
|
|
89
140
|
uncategorizedAccounts: uncategorizedIncomeExpense,
|
|
@@ -92,7 +143,7 @@ function getExpenseAutomationTransactionView(state) {
|
|
|
92
143
|
classList: allClasses,
|
|
93
144
|
accountsHierarchyList,
|
|
94
145
|
classHierarchyList,
|
|
95
|
-
transactionLocalData,
|
|
146
|
+
transactionLocalData: filteredTransactionLocalData,
|
|
96
147
|
uiState,
|
|
97
148
|
refreshStatus,
|
|
98
149
|
saveStatus,
|
|
@@ -14,6 +14,7 @@ import { TransactionCategory, TransactionType } from '../../../entity/transactio
|
|
|
14
14
|
import { VendorBase } from '../../../entity/vendor/vendorState';
|
|
15
15
|
import { ZeniDate } from '../../../zeniDayJS';
|
|
16
16
|
import { EntityRecommendationKey } from '../../recommendation/recommendationState';
|
|
17
|
+
import { TransactionFilters } from '../../spendManagement/spendManagementFilterHelpers';
|
|
17
18
|
import { TransactionDetailKey } from '../../transactionDetail/transactionDetailState';
|
|
18
19
|
export declare const toTransactionsSortKey: (v: string) => "date" | "amount" | "vendor" | "category" | "class" | "memo" | "transaction_type";
|
|
19
20
|
export type TransactionsSortKey = ReturnType<typeof toTransactionsSortKey>;
|
|
@@ -89,6 +90,7 @@ export interface SupportedTransactionCategorization {
|
|
|
89
90
|
}
|
|
90
91
|
export declare const initialSupportedTransactionCategorization: SupportedTransactionCategorization;
|
|
91
92
|
export interface TransactionsTabViewState extends FetchedState {
|
|
93
|
+
filters: TransactionFilters;
|
|
92
94
|
markAsNotMiscategorizedStatus: FetchStateAndError;
|
|
93
95
|
refreshStatus: FetchStateAndError;
|
|
94
96
|
saveStatus: FetchStateAndError;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { updateCompanies } from '../../../../../entity/company/companyReducer';
|
|
4
|
+
import { RootState } from '../../../../../reducer';
|
|
5
|
+
import { ZeniAPI } from '../../../../../zeniAPI';
|
|
6
|
+
import { updateOnboardingCustomerViewDashboardLoaded, updateOnboardingCustomerViewDashboardLoadedFailure, updateOnboardingCustomerViewDashboardLoadedSuccess } from '../../onboardingCustomerViewReducer';
|
|
7
|
+
export type ActionType = ReturnType<typeof updateOnboardingCustomerViewDashboardLoaded> | ReturnType<typeof updateCompanies> | ReturnType<typeof updateOnboardingCustomerViewDashboardLoadedSuccess> | ReturnType<typeof updateOnboardingCustomerViewDashboardLoadedFailure>;
|
|
8
|
+
export declare const updateOnboardingCustomerViewDashboardLoadedEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateOnboardingCustomerViewDashboardLoadedEpic = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const companyReducer_1 = require("../../../../../entity/company/companyReducer");
|
|
7
|
+
const responsePayload_1 = require("../../../../../responsePayload");
|
|
8
|
+
const onboardingCustomerViewReducer_1 = require("../../onboardingCustomerViewReducer");
|
|
9
|
+
const updateOnboardingCustomerViewDashboardLoadedEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(onboardingCustomerViewReducer_1.updateOnboardingCustomerViewDashboardLoaded.match), (0, operators_1.mergeMap)((action) => {
|
|
10
|
+
const { companyId } = action.payload;
|
|
11
|
+
return zeniAPI
|
|
12
|
+
.putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/companies/${companyId}`, { is_dashboard_loaded: true })
|
|
13
|
+
.pipe((0, operators_1.mergeMap)((response) => {
|
|
14
|
+
if ((0, responsePayload_1.isSuccessStatus)(response)) {
|
|
15
|
+
const actionsToDispatch = [
|
|
16
|
+
(0, onboardingCustomerViewReducer_1.updateOnboardingCustomerViewDashboardLoadedSuccess)(),
|
|
17
|
+
];
|
|
18
|
+
if (response.data?.companies != null) {
|
|
19
|
+
actionsToDispatch.unshift((0, companyReducer_1.updateCompanies)({
|
|
20
|
+
payload: response.data.companies,
|
|
21
|
+
schema: {},
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
return (0, rxjs_1.from)(actionsToDispatch);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return (0, rxjs_1.of)((0, onboardingCustomerViewReducer_1.updateOnboardingCustomerViewDashboardLoadedFailure)(response.status));
|
|
28
|
+
}
|
|
29
|
+
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, onboardingCustomerViewReducer_1.updateOnboardingCustomerViewDashboardLoadedFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Update - Onboarding Customer View Dashboard Loaded errored out' +
|
|
30
|
+
JSON.stringify(error))))));
|
|
31
|
+
}));
|
|
32
|
+
exports.updateOnboardingCustomerViewDashboardLoadedEpic = updateOnboardingCustomerViewDashboardLoadedEpic;
|
|
@@ -16,7 +16,9 @@ export declare const fetchOnboardingCustomerView: import("@reduxjs/toolkit").Act
|
|
|
16
16
|
companyId: string;
|
|
17
17
|
checkOnboardingComplete: boolean;
|
|
18
18
|
productSuitePage: boolean;
|
|
19
|
-
}, "onboardingCustomerView/updateOnboardingCustomerViewCompleteStatus", never, never>, updateOnboardingCustomerViewCompleteStatusSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"onboardingCustomerView/updateOnboardingCustomerViewCompleteStatusSuccess">, updateOnboardingCustomerViewCompleteStatusFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], ZeniAPIStatus<Record<string, unknown>>, "onboardingCustomerView/updateOnboardingCustomerViewCompleteStatusFailure", never, never>,
|
|
19
|
+
}, "onboardingCustomerView/updateOnboardingCustomerViewCompleteStatus", never, never>, updateOnboardingCustomerViewCompleteStatusSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"onboardingCustomerView/updateOnboardingCustomerViewCompleteStatusSuccess">, updateOnboardingCustomerViewCompleteStatusFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], ZeniAPIStatus<Record<string, unknown>>, "onboardingCustomerView/updateOnboardingCustomerViewCompleteStatusFailure", never, never>, updateOnboardingCustomerViewDashboardLoaded: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string], {
|
|
20
|
+
companyId: string;
|
|
21
|
+
}, "onboardingCustomerView/updateOnboardingCustomerViewDashboardLoaded", never, never>, updateOnboardingCustomerViewDashboardLoadedSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"onboardingCustomerView/updateOnboardingCustomerViewDashboardLoadedSuccess">, updateOnboardingCustomerViewDashboardLoadedFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], ZeniAPIStatus<Record<string, unknown>>, "onboardingCustomerView/updateOnboardingCustomerViewDashboardLoadedFailure", never, never>, updateOnboardingCustomerView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, sendForVerification: boolean, reCalculateCurrentStep?: boolean | undefined, isBillingAddressUpdate?: boolean | undefined, officerType?: "Officer_1" | "Officer_3" | "Officer_2" | "Officer_4" | "Officer_5" | "Officer_6" | "Officer_7" | "Officer_8" | "Officer_9" | "Officer_10" | undefined], {
|
|
20
22
|
companyId: string;
|
|
21
23
|
sendForVerification: boolean;
|
|
22
24
|
reCalculateCurrentStep: boolean | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.clearOnboardingCustomerView = exports.clearOnboardingCustomerViewDataInLocalStore = exports.verifyOnboardingOfficerOtpFailure = exports.verifyOnboardingOfficerOtpSuccess = exports.verifyOnboardingOfficerOtp = exports.resendOnboardingOfficerOtp = exports.sendOnboardingOfficerOtpFailure = exports.sendOnboardingOfficerOtpSuccess = exports.sendOnboardingOfficerOtp = exports.updateOnboardingCustomerViewUIState = exports.saveOnboardingCompnayOfficerPhoneInLocalStore = exports.saveOnboardingCustomerViewDataInLocalStore = exports.updateOnboardingCustomerViewLocalStoreData = exports.updateOnboardingCustomerViewAccountDetails = exports.updateCurrentStep = exports.getOnboardingPlaidLinkTokenFailure = exports.getOnboardingPlaidLinkTokenSuccess = exports.getOnboardingPlaidLinkToken = exports.establishOnboardingPlaidConnectionFailure = exports.establishOnboardingPlaidConnectionSuccess = exports.establishOnboardingPlaidConnection = exports.updateOnboardingPaymentAccountLoginStatusFailure = exports.updateOnboardingPaymentAccountLoginStatusSuccess = exports.updateOnboardingPaymentAccountLoginStatus = exports.updateOnboardingPaymentAccountStatusFailure = exports.updateOnboardingPaymentAccountStatusSuccess = exports.updateOnboardingPaymentAccountStatus = exports.updateOnboardingCustomerViewFailure = exports.updateOnboardingCustomerViewSuccess = exports.updateOnboardingCustomerView = exports.updateOnboardingCustomerViewCompleteStatusFailure = exports.updateOnboardingCustomerViewCompleteStatusSuccess = exports.updateOnboardingCustomerViewCompleteStatus = exports.fetchOnboardingCustomerSetupViewFailure = exports.fetchOnboardingCustomerSetupViewSuccess = exports.fetchOnboardingCustomerSetupView = exports.fetchOnboardingCustomerView = exports.initialState = void 0;
|
|
4
|
+
exports.clearOnboardingCustomerView = exports.clearOnboardingCustomerViewDataInLocalStore = exports.verifyOnboardingOfficerOtpFailure = exports.verifyOnboardingOfficerOtpSuccess = exports.verifyOnboardingOfficerOtp = exports.resendOnboardingOfficerOtp = exports.sendOnboardingOfficerOtpFailure = exports.sendOnboardingOfficerOtpSuccess = exports.sendOnboardingOfficerOtp = exports.updateOnboardingCustomerViewUIState = exports.saveOnboardingCompnayOfficerPhoneInLocalStore = exports.saveOnboardingCustomerViewDataInLocalStore = exports.updateOnboardingCustomerViewLocalStoreData = exports.updateOnboardingCustomerViewAccountDetails = exports.updateCurrentStep = exports.getOnboardingPlaidLinkTokenFailure = exports.getOnboardingPlaidLinkTokenSuccess = exports.getOnboardingPlaidLinkToken = exports.establishOnboardingPlaidConnectionFailure = exports.establishOnboardingPlaidConnectionSuccess = exports.establishOnboardingPlaidConnection = exports.updateOnboardingPaymentAccountLoginStatusFailure = exports.updateOnboardingPaymentAccountLoginStatusSuccess = exports.updateOnboardingPaymentAccountLoginStatus = exports.updateOnboardingPaymentAccountStatusFailure = exports.updateOnboardingPaymentAccountStatusSuccess = exports.updateOnboardingPaymentAccountStatus = exports.updateOnboardingCustomerViewFailure = exports.updateOnboardingCustomerViewSuccess = exports.updateOnboardingCustomerView = exports.updateOnboardingCustomerViewDashboardLoadedFailure = exports.updateOnboardingCustomerViewDashboardLoadedSuccess = exports.updateOnboardingCustomerViewDashboardLoaded = exports.updateOnboardingCustomerViewCompleteStatusFailure = exports.updateOnboardingCustomerViewCompleteStatusSuccess = exports.updateOnboardingCustomerViewCompleteStatus = exports.fetchOnboardingCustomerSetupViewFailure = exports.fetchOnboardingCustomerSetupViewSuccess = exports.fetchOnboardingCustomerSetupView = exports.fetchOnboardingCustomerView = exports.initialState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
const zeniDayJS_1 = require("../../../zeniDayJS");
|
|
7
7
|
const initialStatus = {
|
|
@@ -11,6 +11,7 @@ const initialStatus = {
|
|
|
11
11
|
exports.initialState = {
|
|
12
12
|
updateStatus: initialStatus,
|
|
13
13
|
saveStatus: initialStatus,
|
|
14
|
+
dashboardLoadedStatus: initialStatus,
|
|
14
15
|
currentStep: 'link_payment_account',
|
|
15
16
|
companyDetails: {
|
|
16
17
|
localData: undefined,
|
|
@@ -183,6 +184,35 @@ const onboardingCustomerView = (0, toolkit_1.createSlice)({
|
|
|
183
184
|
};
|
|
184
185
|
},
|
|
185
186
|
},
|
|
187
|
+
updateOnboardingCustomerViewDashboardLoaded: {
|
|
188
|
+
reducer(draft) {
|
|
189
|
+
draft.dashboardLoadedStatus = {
|
|
190
|
+
fetchState: 'In-Progress',
|
|
191
|
+
error: undefined,
|
|
192
|
+
};
|
|
193
|
+
},
|
|
194
|
+
prepare(companyId) {
|
|
195
|
+
return {
|
|
196
|
+
payload: { companyId },
|
|
197
|
+
};
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
updateOnboardingCustomerViewDashboardLoadedSuccess(draft) {
|
|
201
|
+
draft.dashboardLoadedStatus = { fetchState: 'Completed', error: undefined };
|
|
202
|
+
},
|
|
203
|
+
updateOnboardingCustomerViewDashboardLoadedFailure: {
|
|
204
|
+
reducer(draft, action) {
|
|
205
|
+
draft.dashboardLoadedStatus = {
|
|
206
|
+
fetchState: 'Error',
|
|
207
|
+
error: action.payload,
|
|
208
|
+
};
|
|
209
|
+
},
|
|
210
|
+
prepare(error) {
|
|
211
|
+
return {
|
|
212
|
+
payload: error,
|
|
213
|
+
};
|
|
214
|
+
},
|
|
215
|
+
},
|
|
186
216
|
updateOnboardingPaymentAccountStatus: {
|
|
187
217
|
reducer(draft, action) {
|
|
188
218
|
const { linkTokenType } = action.payload;
|
|
@@ -568,5 +598,5 @@ const onboardingCustomerView = (0, toolkit_1.createSlice)({
|
|
|
568
598
|
},
|
|
569
599
|
},
|
|
570
600
|
});
|
|
571
|
-
_a = onboardingCustomerView.actions, exports.fetchOnboardingCustomerView = _a.fetchOnboardingCustomerView, exports.fetchOnboardingCustomerSetupView = _a.fetchOnboardingCustomerSetupView, exports.fetchOnboardingCustomerSetupViewSuccess = _a.fetchOnboardingCustomerSetupViewSuccess, exports.fetchOnboardingCustomerSetupViewFailure = _a.fetchOnboardingCustomerSetupViewFailure, exports.updateOnboardingCustomerViewCompleteStatus = _a.updateOnboardingCustomerViewCompleteStatus, exports.updateOnboardingCustomerViewCompleteStatusSuccess = _a.updateOnboardingCustomerViewCompleteStatusSuccess, exports.updateOnboardingCustomerViewCompleteStatusFailure = _a.updateOnboardingCustomerViewCompleteStatusFailure, exports.updateOnboardingCustomerView = _a.updateOnboardingCustomerView, exports.updateOnboardingCustomerViewSuccess = _a.updateOnboardingCustomerViewSuccess, exports.updateOnboardingCustomerViewFailure = _a.updateOnboardingCustomerViewFailure, exports.updateOnboardingPaymentAccountStatus = _a.updateOnboardingPaymentAccountStatus, exports.updateOnboardingPaymentAccountStatusSuccess = _a.updateOnboardingPaymentAccountStatusSuccess, exports.updateOnboardingPaymentAccountStatusFailure = _a.updateOnboardingPaymentAccountStatusFailure, exports.updateOnboardingPaymentAccountLoginStatus = _a.updateOnboardingPaymentAccountLoginStatus, exports.updateOnboardingPaymentAccountLoginStatusSuccess = _a.updateOnboardingPaymentAccountLoginStatusSuccess, exports.updateOnboardingPaymentAccountLoginStatusFailure = _a.updateOnboardingPaymentAccountLoginStatusFailure, exports.establishOnboardingPlaidConnection = _a.establishOnboardingPlaidConnection, exports.establishOnboardingPlaidConnectionSuccess = _a.establishOnboardingPlaidConnectionSuccess, exports.establishOnboardingPlaidConnectionFailure = _a.establishOnboardingPlaidConnectionFailure, exports.getOnboardingPlaidLinkToken = _a.getOnboardingPlaidLinkToken, exports.getOnboardingPlaidLinkTokenSuccess = _a.getOnboardingPlaidLinkTokenSuccess, exports.getOnboardingPlaidLinkTokenFailure = _a.getOnboardingPlaidLinkTokenFailure, exports.updateCurrentStep = _a.updateCurrentStep, exports.updateOnboardingCustomerViewAccountDetails = _a.updateOnboardingCustomerViewAccountDetails, exports.updateOnboardingCustomerViewLocalStoreData = _a.updateOnboardingCustomerViewLocalStoreData, exports.saveOnboardingCustomerViewDataInLocalStore = _a.saveOnboardingCustomerViewDataInLocalStore, exports.saveOnboardingCompnayOfficerPhoneInLocalStore = _a.saveOnboardingCompnayOfficerPhoneInLocalStore, exports.updateOnboardingCustomerViewUIState = _a.updateOnboardingCustomerViewUIState, exports.sendOnboardingOfficerOtp = _a.sendOnboardingOfficerOtp, exports.sendOnboardingOfficerOtpSuccess = _a.sendOnboardingOfficerOtpSuccess, exports.sendOnboardingOfficerOtpFailure = _a.sendOnboardingOfficerOtpFailure, exports.resendOnboardingOfficerOtp = _a.resendOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtp = _a.verifyOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtpSuccess = _a.verifyOnboardingOfficerOtpSuccess, exports.verifyOnboardingOfficerOtpFailure = _a.verifyOnboardingOfficerOtpFailure, exports.clearOnboardingCustomerViewDataInLocalStore = _a.clearOnboardingCustomerViewDataInLocalStore, exports.clearOnboardingCustomerView = _a.clearOnboardingCustomerView;
|
|
601
|
+
_a = onboardingCustomerView.actions, exports.fetchOnboardingCustomerView = _a.fetchOnboardingCustomerView, exports.fetchOnboardingCustomerSetupView = _a.fetchOnboardingCustomerSetupView, exports.fetchOnboardingCustomerSetupViewSuccess = _a.fetchOnboardingCustomerSetupViewSuccess, exports.fetchOnboardingCustomerSetupViewFailure = _a.fetchOnboardingCustomerSetupViewFailure, exports.updateOnboardingCustomerViewCompleteStatus = _a.updateOnboardingCustomerViewCompleteStatus, exports.updateOnboardingCustomerViewCompleteStatusSuccess = _a.updateOnboardingCustomerViewCompleteStatusSuccess, exports.updateOnboardingCustomerViewCompleteStatusFailure = _a.updateOnboardingCustomerViewCompleteStatusFailure, exports.updateOnboardingCustomerViewDashboardLoaded = _a.updateOnboardingCustomerViewDashboardLoaded, exports.updateOnboardingCustomerViewDashboardLoadedSuccess = _a.updateOnboardingCustomerViewDashboardLoadedSuccess, exports.updateOnboardingCustomerViewDashboardLoadedFailure = _a.updateOnboardingCustomerViewDashboardLoadedFailure, exports.updateOnboardingCustomerView = _a.updateOnboardingCustomerView, exports.updateOnboardingCustomerViewSuccess = _a.updateOnboardingCustomerViewSuccess, exports.updateOnboardingCustomerViewFailure = _a.updateOnboardingCustomerViewFailure, exports.updateOnboardingPaymentAccountStatus = _a.updateOnboardingPaymentAccountStatus, exports.updateOnboardingPaymentAccountStatusSuccess = _a.updateOnboardingPaymentAccountStatusSuccess, exports.updateOnboardingPaymentAccountStatusFailure = _a.updateOnboardingPaymentAccountStatusFailure, exports.updateOnboardingPaymentAccountLoginStatus = _a.updateOnboardingPaymentAccountLoginStatus, exports.updateOnboardingPaymentAccountLoginStatusSuccess = _a.updateOnboardingPaymentAccountLoginStatusSuccess, exports.updateOnboardingPaymentAccountLoginStatusFailure = _a.updateOnboardingPaymentAccountLoginStatusFailure, exports.establishOnboardingPlaidConnection = _a.establishOnboardingPlaidConnection, exports.establishOnboardingPlaidConnectionSuccess = _a.establishOnboardingPlaidConnectionSuccess, exports.establishOnboardingPlaidConnectionFailure = _a.establishOnboardingPlaidConnectionFailure, exports.getOnboardingPlaidLinkToken = _a.getOnboardingPlaidLinkToken, exports.getOnboardingPlaidLinkTokenSuccess = _a.getOnboardingPlaidLinkTokenSuccess, exports.getOnboardingPlaidLinkTokenFailure = _a.getOnboardingPlaidLinkTokenFailure, exports.updateCurrentStep = _a.updateCurrentStep, exports.updateOnboardingCustomerViewAccountDetails = _a.updateOnboardingCustomerViewAccountDetails, exports.updateOnboardingCustomerViewLocalStoreData = _a.updateOnboardingCustomerViewLocalStoreData, exports.saveOnboardingCustomerViewDataInLocalStore = _a.saveOnboardingCustomerViewDataInLocalStore, exports.saveOnboardingCompnayOfficerPhoneInLocalStore = _a.saveOnboardingCompnayOfficerPhoneInLocalStore, exports.updateOnboardingCustomerViewUIState = _a.updateOnboardingCustomerViewUIState, exports.sendOnboardingOfficerOtp = _a.sendOnboardingOfficerOtp, exports.sendOnboardingOfficerOtpSuccess = _a.sendOnboardingOfficerOtpSuccess, exports.sendOnboardingOfficerOtpFailure = _a.sendOnboardingOfficerOtpFailure, exports.resendOnboardingOfficerOtp = _a.resendOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtp = _a.verifyOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtpSuccess = _a.verifyOnboardingOfficerOtpSuccess, exports.verifyOnboardingOfficerOtpFailure = _a.verifyOnboardingOfficerOtpFailure, exports.clearOnboardingCustomerViewDataInLocalStore = _a.clearOnboardingCustomerViewDataInLocalStore, exports.clearOnboardingCustomerView = _a.clearOnboardingCustomerView;
|
|
572
602
|
exports.default = onboardingCustomerView.reducer;
|
|
@@ -30,6 +30,7 @@ export interface OnboardingCustomerViewState extends FetchedState {
|
|
|
30
30
|
localData?: CompanyOfficerLocalData;
|
|
31
31
|
}>;
|
|
32
32
|
currentStep: OnboardingStep;
|
|
33
|
+
dashboardLoadedStatus: FetchStateAndError;
|
|
33
34
|
paymentAccountDetails: {
|
|
34
35
|
fetchStatus: FetchStateAndError;
|
|
35
36
|
paymentAccountIds: ID[];
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
+
import { Amount } from '../../commonStateTypes/amount';
|
|
2
|
+
import { ID } from '../../commonStateTypes/common';
|
|
1
3
|
import { TimePeriod } from '../../commonStateTypes/timePeriod';
|
|
2
4
|
import { UserRoleType } from '../../entity/userRole/userRoleType';
|
|
3
5
|
import { RootState } from '../../reducer';
|
|
4
6
|
import { ZeniDate } from '../../zeniDayJS';
|
|
5
7
|
import { TaskListFilterCategoryField, TaskListFilters } from '../taskManager/taskListView/taskList';
|
|
6
8
|
import { TaskWithUserDetails } from '../taskManager/taskListView/taskListSelector';
|
|
9
|
+
import { SupportedTransactionWithCOT } from '../../entity/transaction/transactionState';
|
|
10
|
+
import { TransactionType } from '../../entity/transaction/stateTypes/transactionType';
|
|
11
|
+
import { TransactionReviewLocalDataSelectorView } from '../expenseAutomationView/selectorTypes/transactionsViewSelectorTypes';
|
|
7
12
|
import { BillTransactionView } from './billPay/billList/billListSelector';
|
|
8
13
|
import { BillListViewFilterCategoryField, BillPayFilters } from './billPay/billList/billListState';
|
|
9
14
|
import { ReimbursementView } from './reimbursement/remiListView/remiListSelector';
|
|
10
15
|
import { ReimbursementFilters, RemiListViewFilterCategoryField } from './reimbursement/remiListView/remiListState';
|
|
11
|
-
export type SpendManagementFiltersType = BillPayFilters | ReimbursementFilters | TaskListFilters;
|
|
12
|
-
export type SpendManagementFilterEntityType = 'bill_pay' | 'reimbursement' | 'task_management';
|
|
16
|
+
export type SpendManagementFiltersType = BillPayFilters | ReimbursementFilters | TaskListFilters | TransactionFilters;
|
|
17
|
+
export type SpendManagementFilterEntityType = 'bill_pay' | 'reimbursement' | 'task_management' | 'transaction_categorization';
|
|
13
18
|
export type FilterCategoryType = 'searchAutocomplete' | 'user' | 'dateRange' | 'numberRange' | 'dropdown';
|
|
14
19
|
export interface MatchingOperatorDropdownOption {
|
|
15
20
|
label: 'is' | 'is not';
|
|
@@ -31,9 +36,43 @@ export interface TaskFilterCategoryDropdownOption {
|
|
|
31
36
|
multiple?: boolean;
|
|
32
37
|
type?: FilterCategoryType;
|
|
33
38
|
}
|
|
34
|
-
export type SpendManagementFilterCategoryDropdownOption = BillPayFilterCategoryDropdownOption | ReimbursementFilterCategoryDropdownOption | TaskFilterCategoryDropdownOption;
|
|
39
|
+
export type SpendManagementFilterCategoryDropdownOption = BillPayFilterCategoryDropdownOption | ReimbursementFilterCategoryDropdownOption | TaskFilterCategoryDropdownOption | TransactionFilterCategoryDropdownOption;
|
|
40
|
+
export interface TransactionFilterCategoryDropdownOption {
|
|
41
|
+
value: TransactionFilterCategoryField;
|
|
42
|
+
multiple?: boolean;
|
|
43
|
+
type?: FilterCategoryType;
|
|
44
|
+
}
|
|
45
|
+
export type TransactionFilterEntityType = 'transaction_categorization' | 'customer' | 'vendor' | 'merchant';
|
|
46
|
+
export type TransactionFilterCategoryField = 'payment_account_name' | 'payment_account_type' | 'payee' | 'category' | 'class' | 'amount';
|
|
47
|
+
export declare const TRANSACTION_FILTER_CATEGORIES: TransactionFilterCategoryDropdownOption[];
|
|
48
|
+
export interface TransactionFilters {
|
|
49
|
+
categories: TransactionFilterCategory[];
|
|
50
|
+
categoryCombinationOperator: CategoryCombinationOperator;
|
|
51
|
+
}
|
|
52
|
+
export interface TransactionFilterCategory {
|
|
53
|
+
field: TransactionFilterCategoryField;
|
|
54
|
+
matchingOperator: 'equal' | 'not-equal';
|
|
55
|
+
values: (string | ZeniDate)[];
|
|
56
|
+
valuesCombinationOperator: 'ANY';
|
|
57
|
+
}
|
|
58
|
+
export interface TransactionView {
|
|
59
|
+
amount: Amount;
|
|
60
|
+
createTime: ZeniDate;
|
|
61
|
+
date: ZeniDate;
|
|
62
|
+
description: string;
|
|
63
|
+
id: ID;
|
|
64
|
+
memo: string;
|
|
65
|
+
transaction: SupportedTransactionWithCOT;
|
|
66
|
+
type: TransactionType;
|
|
67
|
+
customerId?: ID;
|
|
68
|
+
customerName?: string;
|
|
69
|
+
transactionLocalData?: TransactionReviewLocalDataSelectorView;
|
|
70
|
+
typeName?: string;
|
|
71
|
+
vendorId?: ID;
|
|
72
|
+
vendorName?: string;
|
|
73
|
+
}
|
|
35
74
|
export type FilterCategoryValueType = string | number | ZeniDate;
|
|
36
|
-
export declare const applyAdvancedFiltersOnList: (entity: SpendManagementFilterEntityType, allItems: BillTransactionView[] | ReimbursementView[] | TaskWithUserDetails[], filters?: BillPayFilters | ReimbursementFilters | TaskListFilters, filteredItems?: (BillTransactionView | ReimbursementView | TaskWithUserDetails)[], index?: number) => (BillTransactionView | ReimbursementView | TaskWithUserDetails)[];
|
|
75
|
+
export declare const applyAdvancedFiltersOnList: (entity: SpendManagementFilterEntityType, allItems: BillTransactionView[] | ReimbursementView[] | TaskWithUserDetails[] | TransactionView[], filters?: BillPayFilters | ReimbursementFilters | TaskListFilters | TransactionFilters, filteredItems?: (BillTransactionView | ReimbursementView | TaskWithUserDetails | TransactionView)[], index?: number) => (BillTransactionView | ReimbursementView | TaskWithUserDetails | TransactionView)[];
|
|
37
76
|
export declare const isBillListDownloadable: (state: RootState, currentTimePeriod: TimePeriod) => boolean;
|
|
38
77
|
export declare const isRemiListDownloadable: (state: RootState, currentTimePeriod: TimePeriod) => boolean;
|
|
39
78
|
export declare const hideCreatedByFilter: (userRole: UserRoleType[]) => boolean;
|