@zeniai/client-epic-state 5.0.69-betaML1 → 5.0.69-betaML12
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/commonStateTypes/viewAndReport/viewAndReport.d.ts +2 -2
- package/lib/commonStateTypes/viewAndReport/viewAndReport.js +2 -0
- package/lib/entity/account/accountSelector.d.ts +9 -0
- package/lib/entity/account/accountSelector.js +14 -1
- package/lib/entity/account/accountState.d.ts +1 -1
- package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
- package/lib/entity/class/classReducer.d.ts +4 -4
- package/lib/entity/class/classState.d.ts +1 -1
- package/lib/entity/forecast/forecastState.d.ts +1 -1
- package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
- package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
- package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
- package/lib/entity/sectionProjectView/sectionProjectView.d.ts +1 -1
- package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +2 -2
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +1 -0
- package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +4 -0
- package/lib/entity/transaction/payloadTypes/transactionPayload.js +18 -10
- package/lib/entity/transaction/stateTypes/transaction.d.ts +3 -0
- package/lib/epic.d.ts +3 -2
- package/lib/epic.js +3 -2
- package/lib/esm/commonStateTypes/viewAndReport/viewAndReport.js +2 -0
- package/lib/esm/entity/account/accountSelector.js +11 -0
- package/lib/esm/entity/snackbar/snackbarTypes.js +1 -0
- package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +18 -10
- package/lib/esm/epic.js +3 -2
- package/lib/esm/index.js +9 -8
- package/lib/esm/reducer.js +3 -0
- package/lib/esm/view/createTransferEntry/createTransferEntryReducer.js +64 -0
- package/lib/esm/view/createTransferEntry/createTransferEntrySelector.js +64 -0
- package/lib/esm/view/createTransferEntry/createTransferEntryState.js +17 -0
- package/lib/esm/view/createTransferEntry/epics/createTransferEntryEpic.js +130 -0
- package/lib/esm/view/createTransferEntry/epics/fetchTransferAccountsEpic.js +36 -0
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +8 -0
- package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +1 -21
- package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +26 -117
- package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +9 -29
- package/lib/esm/view/recommendation/recommendationHelper.js +0 -29
- package/lib/esm/view/recommendation/recommendationReducer.js +1 -36
- package/lib/esm/view/transactionDetail/epics/transactionDetailEpic.js +14 -2
- package/lib/esm/view/transactionDetail/transactionDetailReducer.js +3 -110
- package/lib/esm/view/transactionDetail/transactionDetailSelector.js +6 -23
- package/lib/index.d.ts +9 -9
- package/lib/index.js +43 -36
- package/lib/reducer.d.ts +3 -0
- package/lib/reducer.js +3 -0
- package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
- package/lib/view/billPayCard/billPayCardSelector.d.ts +1 -1
- package/lib/view/cardBalance/cardBalanceSelector.d.ts +1 -1
- package/lib/view/cashBalance/cashBalanceSelector.d.ts +1 -1
- package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +1 -1
- package/lib/view/cashPosition/cashPositionSelector.d.ts +1 -1
- package/lib/view/createTransferEntry/createTransferEntryReducer.d.ts +32 -0
- package/lib/view/createTransferEntry/createTransferEntryReducer.js +68 -0
- package/lib/view/createTransferEntry/createTransferEntrySelector.d.ts +39 -0
- package/lib/view/createTransferEntry/createTransferEntrySelector.js +69 -0
- package/lib/view/createTransferEntry/createTransferEntryState.d.ts +30 -0
- package/lib/view/createTransferEntry/createTransferEntryState.js +20 -0
- package/lib/view/createTransferEntry/epics/createTransferEntryEpic.d.ts +11 -0
- package/lib/view/createTransferEntry/epics/createTransferEntryEpic.js +134 -0
- package/lib/view/createTransferEntry/epics/fetchTransferAccountsEpic.d.ts +14 -0
- package/lib/view/createTransferEntry/epics/fetchTransferAccountsEpic.js +40 -0
- package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.d.ts +2 -1
- package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +8 -0
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -2
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -23
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +4 -15
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +26 -117
- package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +4 -3
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -3
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +11 -30
- package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +0 -1
- package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
- package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
- package/lib/view/recommendation/recommendationHelper.d.ts +0 -9
- package/lib/view/recommendation/recommendationHelper.js +1 -31
- package/lib/view/recommendation/recommendationReducer.d.ts +1 -18
- package/lib/view/recommendation/recommendationReducer.js +2 -37
- package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +1 -1
- package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
- package/lib/view/tasksCard/tasksCardSelector.d.ts +1 -1
- package/lib/view/topEx/topExSelector.d.ts +1 -1
- package/lib/view/transactionDetail/epics/transactionDetailEpic.d.ts +2 -1
- package/lib/view/transactionDetail/epics/transactionDetailEpic.js +14 -2
- package/lib/view/transactionDetail/transactionDetailPayload.d.ts +1 -1
- package/lib/view/transactionDetail/transactionDetailReducer.d.ts +3 -12
- package/lib/view/transactionDetail/transactionDetailReducer.js +4 -111
- package/lib/view/transactionDetail/transactionDetailSelector.d.ts +6 -3
- package/lib/view/transactionDetail/transactionDetailSelector.js +7 -25
- package/lib/view/transactionDetail/transactionDetailTypes.d.ts +0 -1
- package/package.json +1 -1
- package/lib/esm/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +0 -87
- package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.d.ts +0 -9
- package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +0 -91
|
@@ -33,41 +33,6 @@ const recommendation = createSlice({
|
|
|
33
33
|
};
|
|
34
34
|
},
|
|
35
35
|
},
|
|
36
|
-
// Targeted recommendations fetch fired when the user changes the
|
|
37
|
-
// payee/customer on a single transaction line (or the JE sibling set
|
|
38
|
-
// for that change). Routed by `fetchEntityRecommendationsForLineUpdateEpic`
|
|
39
|
-
// which uses groupBy + switchMap to keep fetches for distinct targets
|
|
40
|
-
// running in parallel while same-target re-fetches still cancel each
|
|
41
|
-
// other. The flowType discriminator selects the categorization vs
|
|
42
|
-
// detail slice for the per-line In-Progress / Completed / Error state.
|
|
43
|
-
fetchEntityRecommendationsForLineUpdate: {
|
|
44
|
-
reducer(draft, action) {
|
|
45
|
-
const { entity } = action.payload;
|
|
46
|
-
const key = getEntityRecommendationKey(entity.type, entity.id);
|
|
47
|
-
// Unconditional flip to In-Progress; the previous variant only
|
|
48
|
-
// seeded when missing, which left stale fetchStates when a prior
|
|
49
|
-
// fetch had already populated the entity entry.
|
|
50
|
-
draft.recommendationByEntity[key] = {
|
|
51
|
-
...(draft.recommendationByEntity[key] ??
|
|
52
|
-
initialEntityRecommendationState),
|
|
53
|
-
fetchState: 'In-Progress',
|
|
54
|
-
error: undefined,
|
|
55
|
-
};
|
|
56
|
-
},
|
|
57
|
-
prepare(entity, amount, transactionDetails, flowType, selectedTab, isFetchCOT = false, isUncategorizedExpenseCategoryEnabled) {
|
|
58
|
-
return {
|
|
59
|
-
payload: {
|
|
60
|
-
entity,
|
|
61
|
-
amount,
|
|
62
|
-
transactionDetails,
|
|
63
|
-
flowType,
|
|
64
|
-
selectedTab,
|
|
65
|
-
isFetchCOT,
|
|
66
|
-
isUncategorizedExpenseCategoryEnabled,
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
36
|
fetchRecommendationByEntityName: {
|
|
72
37
|
reducer(draft, action) {
|
|
73
38
|
const { entityName, entityType } = action.payload;
|
|
@@ -146,7 +111,7 @@ const recommendation = createSlice({
|
|
|
146
111
|
},
|
|
147
112
|
},
|
|
148
113
|
});
|
|
149
|
-
export const { fetchEntityRecommendationsByTransactionId,
|
|
114
|
+
export const { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityName, fetchRecommendationByEntityId, updateRecommendationForEntity, updateRecommendationForEntityFailure, indicateReadyToInitializeRecommendation, clearRecommendation, } = recommendation.actions;
|
|
150
115
|
export default recommendation.reducer;
|
|
151
116
|
const doUpdateRecommendationForEntity = (draft, entityId, entityType, payload) => {
|
|
152
117
|
const key = getEntityRecommendationKey(entityType, entityId);
|
|
@@ -13,12 +13,13 @@ import { fetchAccountList } from '../../accountList/accountListReducer';
|
|
|
13
13
|
import { fetchClassList } from '../../classList/classListReducer';
|
|
14
14
|
import { getInitializedTransactionVendorLocalData } from '../../commonVendorView/transactionVendorView/transactionVendorLocalDataHelper';
|
|
15
15
|
import { updateTransactionVendorLocalData } from '../../commonVendorView/transactionVendorView/transactionVendorViewReducer';
|
|
16
|
+
import { fetchAccountsForTransferFlow } from '../../createTransferEntry/createTransferEntryReducer';
|
|
16
17
|
import { fetchOwnerList } from '../../ownerList/ownerListReducer';
|
|
17
18
|
import { fetchProjectList } from '../../projectList/projectListReducer';
|
|
18
19
|
import { fetchTransactionDetail, initializeTransactionDetailLocalData, removeTransactionDetail, updateTransactionDetailFetchState, } from '../transactionDetailReducer';
|
|
19
20
|
import { getAllLinkedTransactions, getTransactionDetailKey, } from '../transactionDetailState';
|
|
20
21
|
export const fetchTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchTransactionDetail.match), mergeMap((action) => {
|
|
21
|
-
const { transactionId, cacheOverride } = action.payload;
|
|
22
|
+
const { transactionId, cacheOverride, isCreateTransferEntryFromExpenseEnabled, } = action.payload;
|
|
22
23
|
const detailKey = getTransactionDetailKey(transactionId);
|
|
23
24
|
const transactionActions = [];
|
|
24
25
|
if (cacheOverride === true) {
|
|
@@ -35,6 +36,17 @@ export const fetchTransactionDetailEpic = (actions$, state$, zeniAPI) => actions
|
|
|
35
36
|
accountList.fetchState !== 'In-Progress') {
|
|
36
37
|
transactionActions.push(fetchAccountList('accountList'));
|
|
37
38
|
}
|
|
39
|
+
if (isCreateTransferEntryFromExpenseEnabled === true) {
|
|
40
|
+
const { transferEntryEligible, creditCardOnlyEligible } = state$.value.createTransferEntryState.transferAccountsByType;
|
|
41
|
+
if (transferEntryEligible.fetchState !== 'In-Progress' &&
|
|
42
|
+
transferEntryEligible.fetchState !== 'Completed') {
|
|
43
|
+
transactionActions.push(fetchAccountsForTransferFlow({ kind: 'transferEntryEligible' }));
|
|
44
|
+
}
|
|
45
|
+
if (creditCardOnlyEligible.fetchState !== 'In-Progress' &&
|
|
46
|
+
creditCardOnlyEligible.fetchState !== 'Completed') {
|
|
47
|
+
transactionActions.push(fetchAccountsForTransferFlow({ kind: 'creditCardOnlyEligible' }));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
38
50
|
const classList = state$.value.classListState;
|
|
39
51
|
if (classList.hasValidState() === false &&
|
|
40
52
|
classList.fetchState !== 'In-Progress') {
|
|
@@ -48,7 +60,7 @@ export const fetchTransactionDetailEpic = (actions$, state$, zeniAPI) => actions
|
|
|
48
60
|
transactionActions.push(updateTransactionDetailFetchState(transactionId, 'In-Progress'));
|
|
49
61
|
const query = { transaction_type: transactionId.type };
|
|
50
62
|
const getTransactionDetail$ = zeniAPI
|
|
51
|
-
.getJSON(
|
|
63
|
+
.getJSON(`https://dev.api.zeni.ai/version/accounting/mohanrajoria/1.0/transactions/${transactionId.id}?query=${encodeURIComponent(JSON.stringify(query))}`)
|
|
52
64
|
.pipe(mergeMap((response) => {
|
|
53
65
|
if (isSuccessResponse(response) &&
|
|
54
66
|
response.data?.transaction?.transaction_id != null) {
|
|
@@ -50,11 +50,12 @@ const transactionDetail = createSlice({
|
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
|
-
prepare(transactionId, cacheOverride = false) {
|
|
53
|
+
prepare(transactionId, cacheOverride = false, isCreateTransferEntryFromExpenseEnabled = false) {
|
|
54
54
|
return {
|
|
55
55
|
payload: {
|
|
56
56
|
transactionId,
|
|
57
57
|
cacheOverride,
|
|
58
|
+
isCreateTransferEntryFromExpenseEnabled,
|
|
58
59
|
},
|
|
59
60
|
};
|
|
60
61
|
},
|
|
@@ -365,21 +366,6 @@ const transactionDetail = createSlice({
|
|
|
365
366
|
const detail = recordGet(draft.transactionDetailById, key, undefined);
|
|
366
367
|
if (detail != null) {
|
|
367
368
|
const newLocalData = setEntityRecommendationForLineIdInLocalData(transaction, detail.transactionDetailLocalData, action.payload.entity, lineIds, uncategorizedIncomeExpense, recommendationWithCOTByLineId);
|
|
368
|
-
// Release the per-line fetch flag for every line this fetch
|
|
369
|
-
// covered so the inline skeleton resolves and the page-level
|
|
370
|
-
// Save button can re-enable.
|
|
371
|
-
lineIds.forEach((lineId) => {
|
|
372
|
-
const lineItem = newLocalData.lineItemById[lineId];
|
|
373
|
-
if (lineItem != null) {
|
|
374
|
-
newLocalData.lineItemById[lineId] = {
|
|
375
|
-
...lineItem,
|
|
376
|
-
categoryClassRecommendationsFetchState: {
|
|
377
|
-
fetchState: 'Completed',
|
|
378
|
-
error: undefined,
|
|
379
|
-
},
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
369
|
draft.transactionDetailById[key] = {
|
|
384
370
|
...detail,
|
|
385
371
|
transactionDetailLocalData: newLocalData,
|
|
@@ -400,99 +386,6 @@ const transactionDetail = createSlice({
|
|
|
400
386
|
};
|
|
401
387
|
},
|
|
402
388
|
},
|
|
403
|
-
// Start arm of the line-update recommendations fetch for the detail
|
|
404
|
-
// page. Flips covered lines to In-Progress; detail page has no
|
|
405
|
-
// checkbox, so no auto-uncheck side effect.
|
|
406
|
-
markCategoryClassRecommendationsInProgressForTransactionDetail: {
|
|
407
|
-
reducer(draft, action) {
|
|
408
|
-
const { transactionId, lineIds } = action.payload;
|
|
409
|
-
const key = getTransactionDetailKey(transactionId);
|
|
410
|
-
const detail = recordGet(draft.transactionDetailById, key, undefined);
|
|
411
|
-
// TEMP-LOG[JE-skeleton]: reducer entry — confirms the action reached
|
|
412
|
-
// the slice and shows whether incoming lineIds match the redux keys.
|
|
413
|
-
console.log('[JE-skeleton][reducer] markInProgress detail', {
|
|
414
|
-
transactionId,
|
|
415
|
-
incomingLineIds: lineIds,
|
|
416
|
-
existingLineItemKeys: detail != null
|
|
417
|
-
? Object.keys(detail.transactionDetailLocalData.lineItemById)
|
|
418
|
-
: null,
|
|
419
|
-
matched: detail != null
|
|
420
|
-
? lineIds.filter((id) => detail.transactionDetailLocalData.lineItemById[id] != null)
|
|
421
|
-
: [],
|
|
422
|
-
missed: detail != null
|
|
423
|
-
? lineIds.filter((id) => detail.transactionDetailLocalData.lineItemById[id] == null)
|
|
424
|
-
: lineIds,
|
|
425
|
-
});
|
|
426
|
-
if (detail != null) {
|
|
427
|
-
lineIds.forEach((lineId) => {
|
|
428
|
-
const lineItem = detail.transactionDetailLocalData.lineItemById[lineId];
|
|
429
|
-
if (lineItem != null) {
|
|
430
|
-
detail.transactionDetailLocalData.lineItemById[lineId] = {
|
|
431
|
-
...lineItem,
|
|
432
|
-
categoryClassRecommendationsFetchState: {
|
|
433
|
-
fetchState: 'In-Progress',
|
|
434
|
-
error: undefined,
|
|
435
|
-
},
|
|
436
|
-
};
|
|
437
|
-
}
|
|
438
|
-
});
|
|
439
|
-
}
|
|
440
|
-
},
|
|
441
|
-
prepare(transactionId, lineIds) {
|
|
442
|
-
return { payload: { transactionId, lineIds } };
|
|
443
|
-
},
|
|
444
|
-
},
|
|
445
|
-
// Completed arm. Used when the HTTP call succeeded but the server
|
|
446
|
-
// returned no per-line recommendations — still need to release the
|
|
447
|
-
// In-Progress flag.
|
|
448
|
-
markCategoryClassRecommendationsCompletedForTransactionDetail: {
|
|
449
|
-
reducer(draft, action) {
|
|
450
|
-
const { transactionId, lineIds } = action.payload;
|
|
451
|
-
const key = getTransactionDetailKey(transactionId);
|
|
452
|
-
const detail = recordGet(draft.transactionDetailById, key, undefined);
|
|
453
|
-
if (detail != null) {
|
|
454
|
-
lineIds.forEach((lineId) => {
|
|
455
|
-
const lineItem = detail.transactionDetailLocalData.lineItemById[lineId];
|
|
456
|
-
if (lineItem != null) {
|
|
457
|
-
detail.transactionDetailLocalData.lineItemById[lineId] = {
|
|
458
|
-
...lineItem,
|
|
459
|
-
categoryClassRecommendationsFetchState: {
|
|
460
|
-
fetchState: 'Completed',
|
|
461
|
-
error: undefined,
|
|
462
|
-
},
|
|
463
|
-
};
|
|
464
|
-
}
|
|
465
|
-
});
|
|
466
|
-
}
|
|
467
|
-
},
|
|
468
|
-
prepare(transactionId, lineIds) {
|
|
469
|
-
return { payload: { transactionId, lineIds } };
|
|
470
|
-
},
|
|
471
|
-
},
|
|
472
|
-
markCategoryClassRecommendationsFailureForTransactionDetail: {
|
|
473
|
-
reducer(draft, action) {
|
|
474
|
-
const { transactionId, lineIds, error } = action.payload;
|
|
475
|
-
const key = getTransactionDetailKey(transactionId);
|
|
476
|
-
const detail = recordGet(draft.transactionDetailById, key, undefined);
|
|
477
|
-
if (detail != null) {
|
|
478
|
-
lineIds.forEach((lineId) => {
|
|
479
|
-
const lineItem = detail.transactionDetailLocalData.lineItemById[lineId];
|
|
480
|
-
if (lineItem != null) {
|
|
481
|
-
detail.transactionDetailLocalData.lineItemById[lineId] = {
|
|
482
|
-
...lineItem,
|
|
483
|
-
categoryClassRecommendationsFetchState: {
|
|
484
|
-
fetchState: 'Error',
|
|
485
|
-
error,
|
|
486
|
-
},
|
|
487
|
-
};
|
|
488
|
-
}
|
|
489
|
-
});
|
|
490
|
-
}
|
|
491
|
-
},
|
|
492
|
-
prepare(transactionId, lineIds, error) {
|
|
493
|
-
return { payload: { transactionId, lineIds, error } };
|
|
494
|
-
},
|
|
495
|
-
},
|
|
496
389
|
removeEntityRecommendationForLineIdForTransactionDetail: {
|
|
497
390
|
reducer(draft, action) {
|
|
498
391
|
const { transaction, lineId } = action.payload;
|
|
@@ -764,7 +657,7 @@ const transactionDetail = createSlice({
|
|
|
764
657
|
},
|
|
765
658
|
},
|
|
766
659
|
});
|
|
767
|
-
export const { downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetailFetchState, removeTransactionDetail, clearTransactionDetail, uploadMissingAttachmentSuccess, updateTransactionDetail, updateTransactionDetailSaveStatus, clearTransactionDetailSaveStatus, markTransactionAsNotMiscategorized, deleteTransactionAttachment, deleteTransactionAttachmentFailure, deleteTransactionAttachmentSuccess, updateStatusForTransactionNotMiscategorizedUpdate, updateStatusConsolidatedSaveTransactionDetail, updateTransactionStateIfUpdateActionNotAllowed, saveTransactionDetail, initializeTransactionDetailLocalData, saveTransactionDetailLocalData, clearTransactionDetailLocalData, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setEntityRecommendationForLineIdsForTransactionDetail,
|
|
660
|
+
export const { downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetailFetchState, removeTransactionDetail, clearTransactionDetail, uploadMissingAttachmentSuccess, updateTransactionDetail, updateTransactionDetailSaveStatus, clearTransactionDetailSaveStatus, markTransactionAsNotMiscategorized, deleteTransactionAttachment, deleteTransactionAttachmentFailure, deleteTransactionAttachmentSuccess, updateStatusForTransactionNotMiscategorizedUpdate, updateStatusConsolidatedSaveTransactionDetail, updateTransactionStateIfUpdateActionNotAllowed, saveTransactionDetail, initializeTransactionDetailLocalData, saveTransactionDetailLocalData, clearTransactionDetailLocalData, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setEntityRecommendationForLineIdsForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetVendor, resetSelectedCustomer, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, } = transactionDetail.actions;
|
|
768
661
|
export default transactionDetail.reducer;
|
|
769
662
|
function getUpdatedEntityLocalData(detail, updates, entity, resetRecommendations, type) {
|
|
770
663
|
const key = type === 'customer' ? 'customerUpdates' : 'vendorUpdates';
|
|
@@ -8,30 +8,11 @@ import { getVendorsByVendorIds } from '../../entity/vendor/vendorSelector';
|
|
|
8
8
|
import { dateNow } from '../../zeniDayJS';
|
|
9
9
|
import { getAccountList, getNestedAccountListHierarchy, } from '../accountList/accountListSelector';
|
|
10
10
|
import { getClassList, getNestedClassListHierarchy, } from '../classList/classListSelector';
|
|
11
|
+
import { getResolvedTransferAccounts } from '../createTransferEntry/createTransferEntrySelector';
|
|
11
12
|
import { getProjectList, } from '../projectList/projectListSelector';
|
|
12
13
|
import { getAllLinkedTransactions, getTransactionDetailKey, initialSupportedTransactionDetail, } from './transactionDetailState';
|
|
13
|
-
// "Any line on this transaction is fetching category/class recommendations?"
|
|
14
|
-
// Inlined as a plain function because the upstream selector
|
|
15
|
-
// `getTransactionDetail` is also un-memoized and the iteration is O(lines)
|
|
16
|
-
// — typically <10. Exported standalone so consumers that only need the
|
|
17
|
-
// flag (e.g. footer save-disable) can avoid materializing the whole
|
|
18
|
-
// detail report.
|
|
19
|
-
export const getDetailInFlightRecommendations = (state, transactionId) => {
|
|
20
|
-
const detailKey = getTransactionDetailKey(transactionId);
|
|
21
|
-
const detail = recordGet(state.transactionDetailState.transactionDetailById, detailKey, undefined);
|
|
22
|
-
if (detail == null) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
for (const lineItem of Object.values(detail.transactionDetailLocalData.lineItemById)) {
|
|
26
|
-
if (lineItem.categoryClassRecommendationsFetchState?.fetchState ===
|
|
27
|
-
'In-Progress') {
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return false;
|
|
32
|
-
};
|
|
33
14
|
export const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = true) => {
|
|
34
|
-
const { transactionDetailState, transactionState, vendorState, vendorListState, accountState, classState, classListState, accountListState, projectState, projectListState, } = state;
|
|
15
|
+
const { transactionDetailState, transactionState, vendorState, vendorListState, accountState, classState, classListState, accountListState, createTransferEntryState, projectState, projectListState, } = state;
|
|
35
16
|
const detailKey = getTransactionDetailKey(transactionId);
|
|
36
17
|
const transactionDetail = recordGet(transactionDetailState.transactionDetailById, detailKey);
|
|
37
18
|
let fetchState = {
|
|
@@ -98,7 +79,7 @@ export const getTransactionDetail = (state, transactionId, fetchLinkedTransactio
|
|
|
98
79
|
: [];
|
|
99
80
|
const transactionDetailAnyUpdateStatus = reduceUpdateFetchStates(transactionDetail);
|
|
100
81
|
const vendors = getVendorsByVendorIds(vendorState, vendorListState.vendorIds);
|
|
101
|
-
const
|
|
82
|
+
const { transferAccountsList, creditCardTransferAccountsList } = getResolvedTransferAccounts(state);
|
|
102
83
|
return {
|
|
103
84
|
reportId: 'transaction_detail',
|
|
104
85
|
reportTitle: 'Transaction Detail',
|
|
@@ -114,8 +95,10 @@ export const getTransactionDetail = (state, transactionId, fetchLinkedTransactio
|
|
|
114
95
|
classHierarchyList,
|
|
115
96
|
accountsHierarchyList,
|
|
116
97
|
classList: classList,
|
|
117
|
-
hasInFlightCategoryClassRecommendations,
|
|
118
98
|
isAccountingClassesEnabled,
|
|
99
|
+
createTransferEntryStatus: createTransferEntryState.createTransferEntryStatus,
|
|
100
|
+
creditCardTransferAccountsList,
|
|
101
|
+
transferAccounts: transferAccountsList,
|
|
119
102
|
isAccountingProjectsEnabled,
|
|
120
103
|
projectList,
|
|
121
104
|
isUpdateNotAllowed: transactionDetail?.isUpdateNotAllowed,
|
package/lib/index.d.ts
CHANGED
|
@@ -260,6 +260,7 @@ import { CompanyOfficerLocalData, CompanyOfficerType, PrimaryContactLocalData }
|
|
|
260
260
|
import { PortfolioUIState } from './view/companyView/types/companyPortfolioViewState';
|
|
261
261
|
import { CompanyView } from './view/companyView/types/companyView';
|
|
262
262
|
import { UserAndRole } from './view/companyView/types/userAndRole';
|
|
263
|
+
import { clearTransferEntryRouteReplacement, createTransferEntry, createTransferEntryFailure, createTransferEntryReplacedTransaction, createTransferEntrySuccess, fetchAccountsForTransferFlow, resetCreateTransferEntryStatus } from './view/createTransferEntry/createTransferEntryReducer';
|
|
263
264
|
import { fetchDashboard, updateTreasuryVideoClosed } from './view/dashboard/dashboardReducer';
|
|
264
265
|
import { DashboardReport, getDashboard } from './view/dashboard/dashboardSelector';
|
|
265
266
|
import { updateDashboardLayout } from './view/dashboardLayout/dashboardLayoutReducer';
|
|
@@ -274,7 +275,7 @@ import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFl
|
|
|
274
275
|
import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
|
|
275
276
|
import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
|
|
276
277
|
import { deleteAccountStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateNodeCollapseState, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
|
|
277
|
-
import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData,
|
|
278
|
+
import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, removeTransactionFromAllTabs, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationCompletedSubTab, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
|
|
278
279
|
import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
|
|
279
280
|
import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
|
|
280
281
|
import { JEAccountSettingsView } from './view/expenseAutomationView/selectorTypes/jeAccountSettingsViewSelectorTypes';
|
|
@@ -286,7 +287,7 @@ import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSel
|
|
|
286
287
|
import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
|
|
287
288
|
import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
|
|
288
289
|
import { getExpenseAutomationReconciliationView, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
|
|
289
|
-
import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
|
|
290
|
+
import { getExpenseAutomationTransactionView, getLastTransferEntryReplacement } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
|
|
290
291
|
import { CompletedSubTab, DEFAULT_COMPLETED_SUB_TAB, toCompletedSubTab } from './view/expenseAutomationView/types/completedSubTab';
|
|
291
292
|
import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey, FluxAnalysisViewUIState, FluxBalancesByMonth } from './view/expenseAutomationView/types/fluxAnalysisViewState';
|
|
292
293
|
import { AccountSettingsLocalData, JEScheduleMainTab as ExpenseAutomationJEScheduleMainTab, JEScheduleSortKey as ExpenseAutomationJEScheduleSortKey, JESchedulesViewUIState as ExpenseAutomationJESchedulesViewUIState, JEScheduleLocalData, toJEScheduleMainTab as toExpenseAutomationJEScheduleMainTab, toJEScheduleSortKey as toExpenseAutomationJEScheduleSortKey } from './view/expenseAutomationView/types/jeSchedulesViewState';
|
|
@@ -371,7 +372,7 @@ import { ProfitAndLossProjectViewReport } from './view/profitAndLossProjectView/
|
|
|
371
372
|
import { ProfitAndLossProjectViewUIState } from './view/profitAndLossProjectView/profitAndLossProjectViewState';
|
|
372
373
|
import { fetchProjectList } from './view/projectList/projectListReducer';
|
|
373
374
|
import { ProjectListSelectorView, getProjectList } from './view/projectList/projectListSelector';
|
|
374
|
-
import { fetchEntityRecommendationsByTransactionId,
|
|
375
|
+
import { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName } from './view/recommendation/recommendationReducer';
|
|
375
376
|
import { clearReferrals, fetchReferrals, fetchRewardsPlan, resendReferralInvite, saveReferralFormDataInLocalStore, sendReferralInvite, updateReferViewed, updateReferralListSortUiState } from './view/referralView/referralReducer';
|
|
376
377
|
import { ReferralListSelectorView, RewardsPlanCardReport, getInviteFormView, getReferralListView, getRewardsPlanCard } from './view/referralView/referralSelector';
|
|
377
378
|
import { AmountStatusTypes, InviteCompanyLocalData, ReferralAmountStatus, ReferralInvitation, ReferralListViewSortKey, ReferralStatus, ReferralViewState, ReferralViewUIState, RewardsPlanData, StatusTypes, toReferralListViewSortKeyType } from './view/referralView/referralState';
|
|
@@ -569,7 +570,7 @@ import { TopExAccount, TopExReport, TopExTimePeriodWithMetaData, TopExpenses } f
|
|
|
569
570
|
import { TOP_EX_TIME_PERIODS, TopExTimePeriod, TopExpense } from './view/topEx/topExState';
|
|
570
571
|
import { AccountingProviderAttachmentSelector, getAccountingProviderAttachment } from './view/transactionDetail/getAccountingProviderAttachmentSelector';
|
|
571
572
|
import { getChangedLineItemCountFromLocalData, isAccountUncategorized } from './view/transactionDetail/transactionDetailLocalDataHelper';
|
|
572
|
-
import { clearTransactionDetailSaveStatus, deleteTransactionAttachment, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentFailure, downloadAccountingProviderAttachmentSuccess, fetchTransactionDetail, initializeTransactionDetailLocalData,
|
|
573
|
+
import { clearTransactionDetailSaveStatus, deleteTransactionAttachment, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentFailure, downloadAccountingProviderAttachmentSuccess, fetchTransactionDetail, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, resetAllLineItemsToVendor, resetLineItemsCategoryClassInLocalData, resetSelectedCustomer, resetVendor, saveTransactionDetail, saveTransactionDetailLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setAllLineItemsToCategoryClassInLocalData, setIsVendorUpdateAllChecked, updateLatestSelectedEntity, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateSelectedCustomer, updateSelectedVendor, updateTransactionDetail, updateVendorBulkRecommendationsFetchStatus, updateVendorToAllLineItems, uploadMissingAttachmentSuccess } from './view/transactionDetail/transactionDetailReducer';
|
|
573
574
|
import { TransactionDetailReport, VendorDetailsView, getInitialUpdatablePeriodsForTransactionRecommendations, getTransactionDetail, getTransactionDetailForTransaction } from './view/transactionDetail/transactionDetailSelector';
|
|
574
575
|
import { TransactionUpdates, getThirdPartyIdFromTransactionId } from './view/transactionDetail/transactionDetailState';
|
|
575
576
|
import { TransactionDetailLineItemData, TransactionDetailLocalData, TransactionVendorUpdates } from './view/transactionDetail/transactionDetailTypes';
|
|
@@ -660,10 +661,10 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
|
|
|
660
661
|
export { ClassesViewSelectorReportV2 };
|
|
661
662
|
export { BalancesTimeseries, TrendTimeseries, BalanceKind };
|
|
662
663
|
export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
|
|
663
|
-
export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, DEFAULT_COMPLETED_SUB_TAB, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
|
|
664
|
+
export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, DEFAULT_COMPLETED_SUB_TAB, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
|
|
664
665
|
export { JEScheduleLocalData };
|
|
665
666
|
export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
|
|
666
|
-
export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds,
|
|
667
|
+
export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, createTransferEntry, createTransferEntryFailure, createTransferEntryReplacedTransaction, createTransferEntrySuccess, resetCreateTransferEntryStatus, clearTransferEntryRouteReplacement, fetchAccountsForTransferFlow, removeTransactionFromAllTabs, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
|
|
667
668
|
export { TopExpense, TopExTimePeriod, TOP_EX_TIME_PERIODS };
|
|
668
669
|
export { TimeframeTick, TimeframeTickWithMetaData, toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsoluteDay, toMonthYearPeriodId, convertToPeriod, MonthYearPeriod, };
|
|
669
670
|
export { VendorSpendTrendFilterTabType, toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
|
|
@@ -728,7 +729,7 @@ export { MatchedTransaction };
|
|
|
728
729
|
export { SupportedTransaction, SupportedTransactionWithCOT, SupportedTransactionPayload, getSupportedTransactionById, };
|
|
729
730
|
export { clearTransactionList, updateLatestTransactionId, parallelFetchAccountTransactionList, parallelFetchEntityTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, updateTransactionListByClassUIState, updateTransactionListByClass, parallelFetchProjectTransactionList, updateTransactionListByProjectUIState, updateTransactionListByProject, updateTransactionListUIStateByCategoryType, parallelFetchTransactionListByCategoryType, };
|
|
730
731
|
export { TransactionListByAccountReport, getTransactionListByAccount, getTransactionListUIStateByAccountKey, };
|
|
731
|
-
export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData,
|
|
732
|
+
export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetSelectedCustomer, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, };
|
|
732
733
|
export { TransactionUpdates, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetail, uploadMissingAttachmentSuccess, deleteTransactionAttachment, getThirdPartyIdFromTransactionId, };
|
|
733
734
|
export { TransactionListByEntityView, getTransactionListByEntity };
|
|
734
735
|
export { TransactionListByClassReport, getTransactionListByClass, getTransactionListUIStateByClassKey, TransactionListByProjectReport, getTransactionListByProject, getTransactionListUIStateByProjectKey, getTransactionListByEntityForSinglePeriod, };
|
|
@@ -836,8 +837,7 @@ export { Filing1099TinType };
|
|
|
836
837
|
export { BillPayCardReport };
|
|
837
838
|
export { ReimbursementCardReport };
|
|
838
839
|
export { VendorListViewSortKey, VendorViewUIState, VendorListSelectorView, VendorListQuery, getVendorList, VendorListView, updateSortUiState, updatePageToken, updateYTDSelectionUIState, VendorListViewYTDSpendSortKey, isColumnYTDSpend, isVendorsTabVisible, VendorViewType, VendorReportIDType, toVendorReportIDType, VendorFiling1099ListSelectorView, getVendorFiling1099List, VendorFiling1099ListViewSortKey, VendorFiling1099ViewUIState, VendorFiling1099DownloadData, fetchVendorsFiling1099Download, Type1099Download, VendorFiling1099DownloadDataForType, };
|
|
839
|
-
export { fetchEntityRecommendationsByTransactionId,
|
|
840
|
-
export type { RecommendationLineUpdateFlowType } from './view/recommendation/recommendationReducer';
|
|
840
|
+
export { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
|
|
841
841
|
export { fetchOwnerList };
|
|
842
842
|
export { ZeniAccountsConfigSelectorView, getZeniAccountsConfigDetail, ZeniAccountListSelectorView, getZeniAccountList, fetchZeniAccountList, fetchAccountList, DepositAccount, createCheckingAccount, fetchPaymentAccountList, unlinkPaymentAccount, getDepositAccountDetail, DepositAccountDetailSelectorView, DepositAccountListSelectorView, getAllDepositAccounts, getDepositAccountDetailForPDF, DepositAccountDetailForPDF, fetchDepositAccount, fetchZeniAccountsConfig, AccountHistoryWithBalances, TransferDetailLocalData, ReviewTransferDetail, updateTransferMoneyLocalData, updateTransferToLocalData, updateDepositToLocalData, transferMoney, getTransferDetail, TransferDetailSelectorView, clearTransferDetail, clearReviewTransferDetail, fetchReviewTransferDetail, fetchDepositAccountDetail, DepositAccountTransaction, DepositAccountWithAutoTransferRules, DepositTransactionStatusCode, DepositTransactionStatus, CheckDepositLocalData, depositCheck, updateCheckDepositLocalData, clearCheckDeposit, CheckDepositSelectorView, getCheckDepositDetail, updateDepositAccount, fetchDepositAccountHistorySuccess, fetchDepositAccountHistoryFailure, DepositAccountUpdateType, ZeniAccountSummaryWithBalance, fetchZeniAccStatementPage, getZeniAccStatements, ZeniAccStatementsSelectorView, ZeniAccountPaymentMethod, };
|
|
843
843
|
export { CommonHistoryView, HistoricEvent, HistoricEventUpdate, ActivityHistorySelectorView, };
|