@zeniai/client-epic-state 5.2.11-beta0ND → 5.2.11-betaAM1
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/invoicing/invoicingCommonPayload.d.ts +29 -27
- package/lib/entity/invoicing/invoicingCommonPayload.js +75 -37
- package/lib/entity/invoicing/product/productPayload.d.ts +0 -10
- package/lib/entity/invoicing/product/productPayload.js +2 -14
- package/lib/entity/jeSchedules/jeScheduleHelper.d.ts +1 -0
- package/lib/entity/jeSchedules/jeScheduleHelper.js +7 -0
- package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +86 -1
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +172 -0
- package/lib/entity/jeSchedules/jeSchedulesReducer.d.ts +4 -2
- package/lib/entity/jeSchedules/jeSchedulesReducer.js +30 -2
- package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +11 -2
- package/lib/entity/jeSchedules/jeSchedulesSelector.js +38 -3
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +101 -1
- package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +24 -1
- package/lib/entity/jeSchedules/jeSchedulesTypes.js +88 -1
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +3 -0
- package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.d.ts +2 -0
- package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.js +2 -0
- package/lib/entity/transaction/stateTypes/scheduleTransaction.d.ts +2 -0
- package/lib/epic.d.ts +15 -3
- package/lib/epic.js +31 -12
- package/lib/esm/entity/invoicing/invoicingCommonPayload.js +73 -33
- package/lib/esm/entity/invoicing/product/productPayload.js +2 -14
- package/lib/esm/entity/jeSchedules/jeScheduleHelper.js +6 -0
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +172 -1
- package/lib/esm/entity/jeSchedules/jeSchedulesReducer.js +30 -2
- package/lib/esm/entity/jeSchedules/jeSchedulesSelector.js +36 -2
- package/lib/esm/entity/jeSchedules/jeSchedulesTypes.js +78 -0
- package/lib/esm/entity/snackbar/snackbarTypes.js +3 -0
- package/lib/esm/entity/transaction/payloadTypes/scheduleTransactionPayload.js +2 -0
- package/lib/esm/epic.js +27 -8
- package/lib/esm/index.js +23 -14
- package/lib/esm/reducer.js +3 -0
- package/lib/esm/view/expenseAutomationView/epics/actualMatching/fetchActualMatchingEpic.js +46 -0
- package/lib/esm/view/expenseAutomationView/epics/actualMatching/fetchActualMatchingPageEpic.js +7 -0
- package/lib/esm/view/expenseAutomationView/epics/actualMatching/matchAndReverseAccrualsEpic.js +50 -0
- package/lib/esm/view/expenseAutomationView/epics/actualMatching/searchMatchAccrualsEpic.js +44 -0
- package/lib/esm/view/expenseAutomationView/epics/actualMatching/searchMatchTransactionsEpic.js +44 -0
- package/lib/esm/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +30 -10
- package/lib/esm/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +9 -1
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.js +9 -1
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +41 -5
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchOneTimeAccrualEpic.js +45 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/ignoreRecommendedJeScheduleEpic.js +14 -2
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/createOneTimeAccrualEpic.js +104 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.js +25 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +136 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.js +79 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/oneTimeAccrualActionsEpic.js +157 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/revertJeScheduleEpic.js +111 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +33 -0
- package/lib/esm/view/expenseAutomationView/expenseAutomationViewSelector.js +22 -7
- package/lib/esm/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +140 -0
- package/lib/esm/view/expenseAutomationView/payload/actualMatchingPayload.js +35 -0
- package/lib/esm/view/expenseAutomationView/payload/jeSchedulesPayload.js +55 -0
- package/lib/esm/view/expenseAutomationView/reducers/actualMatchingViewReducer.js +260 -0
- package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +314 -29
- package/lib/esm/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.js +1 -0
- package/lib/esm/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +162 -0
- package/lib/esm/view/expenseAutomationView/selectors/jeAccountSettingsViewSelector.js +1 -0
- package/lib/esm/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.js +106 -0
- package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +297 -22
- package/lib/esm/view/expenseAutomationView/types/actualMatchingViewState.js +22 -0
- package/lib/esm/view/expenseAutomationView/types/jeSchedulesViewState.js +8 -5
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +9 -25
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +1 -6
- package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +0 -40
- package/lib/esm/view/invoicing/settingsView/settingsViewEpics.js +92 -0
- package/lib/esm/view/invoicing/settingsView/settingsViewReducer.js +1 -25
- package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +0 -41
- package/lib/esm/view/recommendation/recommendationReducer.js +1 -16
- package/lib/esm/view/scheduleView/scheduleListView/epics/fetchAccruedScheduleListEpic.js +1 -1
- package/lib/esm/view/scheduleView/scheduleListView/epics/fetchDownloadSchedulesEpic.js +7 -2
- package/lib/esm/view/scheduleView/scheduleListView/scheduleListReducer.js +5 -3
- package/lib/index.d.ts +29 -22
- package/lib/index.js +116 -56
- package/lib/reducer.d.ts +1 -0
- package/lib/reducer.js +3 -0
- package/lib/rootStateTypes.d.ts +2 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/fetchActualMatchingEpic.d.ts +9 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/fetchActualMatchingEpic.js +50 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/fetchActualMatchingPageEpic.d.ts +5 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/fetchActualMatchingPageEpic.js +11 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/matchAndReverseAccrualsEpic.d.ts +8 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/matchAndReverseAccrualsEpic.js +54 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/searchMatchAccrualsEpic.d.ts +8 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/searchMatchAccrualsEpic.js +48 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/searchMatchTransactionsEpic.d.ts +8 -0
- package/lib/view/expenseAutomationView/epics/actualMatching/searchMatchTransactionsEpic.js +48 -0
- package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.d.ts +2 -1
- package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +30 -10
- package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.d.ts +2 -1
- package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +9 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.js +9 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.d.ts +3 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +39 -3
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchOneTimeAccrualEpic.d.ts +21 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchOneTimeAccrualEpic.js +49 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/ignoreRecommendedJeScheduleEpic.js +14 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/createOneTimeAccrualEpic.d.ts +9 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/createOneTimeAccrualEpic.js +108 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.d.ts +8 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.js +29 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.d.ts +9 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +140 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.d.ts +8 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.js +83 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/oneTimeAccrualActionsEpic.d.ts +13 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/oneTimeAccrualActionsEpic.js +164 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/revertJeScheduleEpic.d.ts +65 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/revertJeScheduleEpic.js +115 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.d.ts +7 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +37 -0
- package/lib/view/expenseAutomationView/expenseAutomationViewSelector.js +22 -7
- package/lib/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.d.ts +36 -0
- package/lib/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +145 -0
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/payload/actualMatchingPayload.d.ts +66 -0
- package/lib/view/expenseAutomationView/payload/actualMatchingPayload.js +40 -0
- package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.d.ts +72 -3
- package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.js +58 -1
- package/lib/view/expenseAutomationView/reducers/actualMatchingViewReducer.d.ts +53 -0
- package/lib/view/expenseAutomationView/reducers/actualMatchingViewReducer.js +264 -0
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +91 -12
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +316 -29
- package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +1 -1
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +2 -2
- package/lib/view/expenseAutomationView/selectorTypes/actualMatchingViewSelectorTypes.d.ts +58 -0
- package/lib/view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes.d.ts +2 -0
- package/lib/view/expenseAutomationView/selectorTypes/jeAccountSettingsViewSelectorTypes.d.ts +1 -0
- package/lib/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.d.ts +42 -0
- package/lib/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.js +2 -0
- package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +36 -7
- package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.d.ts +9 -0
- package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +172 -0
- package/lib/view/expenseAutomationView/selectors/jeAccountSettingsViewSelector.js +1 -0
- package/lib/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.d.ts +21 -0
- package/lib/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.js +112 -0
- package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.d.ts +34 -0
- package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +305 -21
- package/lib/view/expenseAutomationView/types/actualMatchingViewState.d.ts +76 -0
- package/lib/view/expenseAutomationView/types/actualMatchingViewState.js +27 -0
- package/lib/view/expenseAutomationView/types/completedSubTab.d.ts +1 -1
- package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +83 -8
- package/lib/view/expenseAutomationView/types/jeSchedulesViewState.js +11 -7
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +2 -2
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.d.ts +1 -12
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +9 -25
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +1 -6
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.d.ts +1 -10
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +1 -43
- package/lib/view/invoicing/settingsView/settingsViewEpics.d.ts +12 -0
- package/lib/view/invoicing/settingsView/settingsViewEpics.js +99 -0
- package/lib/view/invoicing/settingsView/settingsViewReducer.d.ts +1 -4
- package/lib/view/invoicing/settingsView/settingsViewReducer.js +2 -26
- package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +0 -35
- package/lib/view/invoicing/settingsView/settingsViewSelector.js +1 -43
- package/lib/view/invoicing/settingsView/settingsViewState.d.ts +0 -8
- package/lib/view/recommendation/recommendationPayload.d.ts +0 -34
- package/lib/view/recommendation/recommendationReducer.d.ts +1 -2
- package/lib/view/recommendation/recommendationReducer.js +2 -17
- package/lib/view/scheduleView/scheduleListView/epics/fetchAccruedScheduleListEpic.js +1 -1
- package/lib/view/scheduleView/scheduleListView/epics/fetchDownloadSchedulesEpic.js +7 -2
- package/lib/view/scheduleView/scheduleListView/scheduleListReducer.d.ts +4 -2
- package/lib/view/scheduleView/scheduleListView/scheduleListReducer.js +5 -3
- package/package.json +1 -1
- package/lib/esm/view/invoicing/settingsView/epics/connectInvoicingStripeEpic.js +0 -27
- package/lib/esm/view/invoicing/settingsView/epics/disconnectInvoicingStripeEpic.js +0 -19
- package/lib/esm/view/invoicing/settingsView/epics/fetchInvoicingSettingsEpic.js +0 -19
- package/lib/esm/view/invoicing/settingsView/epics/saveInvoicingSettingsEpic.js +0 -39
- package/lib/esm/view/invoicing/settingsView/epics/submitInvoicingQboSettingsEpic.js +0 -25
- package/lib/esm/view/invoicing/settingsView/invoicingQboSettingsFormConfig.js +0 -48
- package/lib/esm/view/recommendation/submitRecommendationFeedbackEpic.js +0 -52
- package/lib/view/invoicing/settingsView/epics/connectInvoicingStripeEpic.d.ts +0 -6
- package/lib/view/invoicing/settingsView/epics/connectInvoicingStripeEpic.js +0 -31
- package/lib/view/invoicing/settingsView/epics/disconnectInvoicingStripeEpic.d.ts +0 -6
- package/lib/view/invoicing/settingsView/epics/disconnectInvoicingStripeEpic.js +0 -23
- package/lib/view/invoicing/settingsView/epics/fetchInvoicingSettingsEpic.d.ts +0 -6
- package/lib/view/invoicing/settingsView/epics/fetchInvoicingSettingsEpic.js +0 -23
- package/lib/view/invoicing/settingsView/epics/saveInvoicingSettingsEpic.d.ts +0 -6
- package/lib/view/invoicing/settingsView/epics/saveInvoicingSettingsEpic.js +0 -43
- package/lib/view/invoicing/settingsView/epics/settingsViewActionType.d.ts +0 -5
- package/lib/view/invoicing/settingsView/epics/submitInvoicingQboSettingsEpic.d.ts +0 -11
- package/lib/view/invoicing/settingsView/epics/submitInvoicingQboSettingsEpic.js +0 -29
- package/lib/view/invoicing/settingsView/invoicingQboSettingsFormConfig.d.ts +0 -34
- package/lib/view/invoicing/settingsView/invoicingQboSettingsFormConfig.js +0 -53
- package/lib/view/recommendation/submitRecommendationFeedbackEpic.d.ts +0 -7
- package/lib/view/recommendation/submitRecommendationFeedbackEpic.js +0 -56
- /package/lib/esm/view/{invoicing/settingsView/epics/settingsViewActionType.js → expenseAutomationView/selectorTypes/actualMatchingViewSelectorTypes.js} +0 -0
- /package/lib/view/{invoicing/settingsView/epics/settingsViewActionType.js → expenseAutomationView/selectorTypes/actualMatchingViewSelectorTypes.js} +0 -0
|
@@ -4,14 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.deleteAccruedJESchedulesDetails = exports.deleteJESchedulesDetails = exports.updateAccruedJESchedulesDetails = exports.updateJESchedulesDetails = exports.updateAccruedJEScheduledTransaction = exports.updateJEScheduledTransaction = exports.updateAccruedJESchedules = exports.updateJESchedules = exports.initialState = void 0;
|
|
7
|
+
exports.updateJEOneTimeAccruals = exports.clearAllJEScheduleTransactions = exports.clearAllAccruedJESchedules = exports.deleteAccruedJESchedulesDetails = exports.deleteJESchedulesDetails = exports.updateAccruedJESchedulesDetails = exports.updateJESchedulesDetails = exports.updateAccruedJEScheduledTransaction = exports.updateJEScheduledTransaction = exports.updateAccruedJESchedules = exports.updateJESchedules = exports.initialState = void 0;
|
|
8
8
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
9
9
|
const assignWith_1 = __importDefault(require("lodash/assignWith"));
|
|
10
10
|
const rootActions_1 = require("../../rootActions");
|
|
11
|
+
const jeScheduleHelper_1 = require("./jeScheduleHelper");
|
|
11
12
|
const jeSchedulesPayload_1 = require("./jeSchedulesPayload");
|
|
12
13
|
exports.initialState = {
|
|
13
14
|
schedulesByTransactionKey: {},
|
|
14
15
|
schedulesByAccruedJEScheduleKey: {},
|
|
16
|
+
oneTimeAccrualsByKey: {},
|
|
15
17
|
};
|
|
16
18
|
const jeSchedules = (0, toolkit_1.createSlice)({
|
|
17
19
|
name: 'jeSchedules',
|
|
@@ -116,15 +118,41 @@ const jeSchedules = (0, toolkit_1.createSlice)({
|
|
|
116
118
|
delete draft.schedulesByAccruedJEScheduleKey[JEScheduleKey];
|
|
117
119
|
},
|
|
118
120
|
},
|
|
121
|
+
// Writes directly, unlike updateAccruedJESchedules / updateJESchedules, which are no-op
|
|
122
|
+
// actions whose only job is to trigger the entity fan-out epic that fetches vendors,
|
|
123
|
+
// accounts, classes and users. An accrual denormalizes all of those as names on the document,
|
|
124
|
+
// so there is nothing to fan out to.
|
|
125
|
+
updateJEOneTimeAccruals: {
|
|
126
|
+
prepare(jeOneTimeAccrualsPayload) {
|
|
127
|
+
return {
|
|
128
|
+
payload: {
|
|
129
|
+
jeOneTimeAccrualsPayload,
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
},
|
|
133
|
+
reducer(draft, action) {
|
|
134
|
+
action.payload.jeOneTimeAccrualsPayload.forEach((accrualPayload) => {
|
|
135
|
+
const accrual = (0, jeSchedulesPayload_1.toJEOneTimeAccrual)(accrualPayload);
|
|
136
|
+
draft.oneTimeAccrualsByKey[(0, jeScheduleHelper_1.generateJEOneTimeAccrualKey)(accrual.accrualId)] = accrual;
|
|
137
|
+
});
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
clearAllJEScheduleTransactions(draft) {
|
|
141
|
+
draft.schedulesByTransactionKey = {};
|
|
142
|
+
},
|
|
143
|
+
clearAllAccruedJESchedules(draft) {
|
|
144
|
+
draft.schedulesByAccruedJEScheduleKey = {};
|
|
145
|
+
},
|
|
119
146
|
},
|
|
120
147
|
extraReducers: (builder) => {
|
|
121
148
|
builder.addCase(rootActions_1.clearAll, (draft) => {
|
|
122
149
|
draft.schedulesByAccruedJEScheduleKey = {};
|
|
123
150
|
draft.schedulesByTransactionKey = {};
|
|
151
|
+
draft.oneTimeAccrualsByKey = {};
|
|
124
152
|
});
|
|
125
153
|
},
|
|
126
154
|
});
|
|
127
|
-
_a = jeSchedules.actions, exports.updateJESchedules = _a.updateJESchedules, exports.updateAccruedJESchedules = _a.updateAccruedJESchedules, exports.updateJEScheduledTransaction = _a.updateJEScheduledTransaction, exports.updateAccruedJEScheduledTransaction = _a.updateAccruedJEScheduledTransaction, exports.updateJESchedulesDetails = _a.updateJESchedulesDetails, exports.updateAccruedJESchedulesDetails = _a.updateAccruedJESchedulesDetails, exports.deleteJESchedulesDetails = _a.deleteJESchedulesDetails, exports.deleteAccruedJESchedulesDetails = _a.deleteAccruedJESchedulesDetails;
|
|
155
|
+
_a = jeSchedules.actions, exports.updateJESchedules = _a.updateJESchedules, exports.updateAccruedJESchedules = _a.updateAccruedJESchedules, exports.updateJEScheduledTransaction = _a.updateJEScheduledTransaction, exports.updateAccruedJEScheduledTransaction = _a.updateAccruedJEScheduledTransaction, exports.updateJESchedulesDetails = _a.updateJESchedulesDetails, exports.updateAccruedJESchedulesDetails = _a.updateAccruedJESchedulesDetails, exports.deleteJESchedulesDetails = _a.deleteJESchedulesDetails, exports.deleteAccruedJESchedulesDetails = _a.deleteAccruedJESchedulesDetails, exports.clearAllAccruedJESchedules = _a.clearAllAccruedJESchedules, exports.clearAllJEScheduleTransactions = _a.clearAllJEScheduleTransactions, exports.updateJEOneTimeAccruals = _a.updateJEOneTimeAccruals;
|
|
128
156
|
exports.default = jeSchedules.reducer;
|
|
129
157
|
/**
|
|
130
158
|
* Helper functions
|
|
@@ -9,8 +9,8 @@ import { ScheduleTransaction } from '../transaction/stateTypes/scheduleTransacti
|
|
|
9
9
|
import { TransactionID } from '../transaction/stateTypes/transactionID';
|
|
10
10
|
import { User } from '../user/userState';
|
|
11
11
|
import { Vendor } from '../vendor/vendorState';
|
|
12
|
-
import { JEScheduleAISummaries, JEScheduleOtherAttributes, JEScheduleRecommendations, ScheduleJournalStatusCode, ScheduleStatus } from './jeSchedulesState';
|
|
13
|
-
import { JEScheduleKey, JEScheduleTransactionKey, JournalEntryErrorCodeType, ScheduleTypes } from './jeSchedulesTypes';
|
|
12
|
+
import { JEOneTimeAccrualState, JEScheduleAISummaries, JEScheduleOtherAttributes, JEScheduleRecommendations, JESchedulesState, ScheduleJournalStatusCode, ScheduleStatus } from './jeSchedulesState';
|
|
13
|
+
import { JEOneTimeAccrualKey, JEScheduleKey, JEScheduleTransactionKey, JournalEntryErrorCodeType, ScheduleTypes } from './jeSchedulesTypes';
|
|
14
14
|
export interface ScheduledJournalEntry {
|
|
15
15
|
error: JournalEntryErrorCodeType[];
|
|
16
16
|
expectedPostDate: ZeniDate;
|
|
@@ -55,13 +55,17 @@ export interface JEScheduledTransaction {
|
|
|
55
55
|
accountingClass?: Class;
|
|
56
56
|
};
|
|
57
57
|
jeScheduleTransactionKey: JEScheduleTransactionKey;
|
|
58
|
+
lifecycleTotal: number;
|
|
58
59
|
otherAttributes: JEScheduleOtherAttributes;
|
|
60
|
+
postedCount: number;
|
|
59
61
|
scheduledJournalEntry: ScheduledJournalEntry[];
|
|
60
62
|
status: ScheduleStatus;
|
|
61
63
|
vendor: Vendor;
|
|
62
64
|
aiSummaries?: JEScheduleAISummaries;
|
|
63
65
|
balanceAsOfToday?: Amount;
|
|
66
|
+
confidenceScore?: number;
|
|
64
67
|
createdByUser?: User;
|
|
68
|
+
createTime?: ZeniDate;
|
|
65
69
|
dayOfPostingDate?: ScheduleDaysOfMonth;
|
|
66
70
|
endDate?: ZeniDate;
|
|
67
71
|
jeScheduleId?: ID;
|
|
@@ -69,9 +73,14 @@ export interface JEScheduledTransaction {
|
|
|
69
73
|
lastDayOfMonth?: boolean;
|
|
70
74
|
period?: number;
|
|
71
75
|
recommendations?: JEScheduleRecommendations;
|
|
76
|
+
recurringAmount?: Amount;
|
|
72
77
|
startDate?: ZeniDate;
|
|
73
78
|
updatedAt?: ZeniDate;
|
|
74
79
|
updatedByUser?: User;
|
|
75
80
|
}
|
|
81
|
+
export interface JEOneTimeAccrual extends JEOneTimeAccrualState {
|
|
82
|
+
jeOneTimeAccrualKey: JEOneTimeAccrualKey;
|
|
83
|
+
}
|
|
84
|
+
export declare const getJEOneTimeAccrualByKey: (jeOneTimeAccrualKey: JEOneTimeAccrualKey, jeSchedulesState: JESchedulesState) => JEOneTimeAccrual | undefined;
|
|
76
85
|
export declare const getJEAccruedScheduleByJEScheduleKey: (JEScheduleKey: JEScheduleKey, state: RootState) => JEAccruedSchedule | undefined;
|
|
77
86
|
export declare const getJEScheduledTransactionByJEScheduleTransactionKey: (jeScheduleTransactionKey: JEScheduleTransactionKey, state: RootState) => JEScheduledTransaction;
|
|
@@ -3,7 +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.getJEScheduledTransactionByJEScheduleTransactionKey = exports.getJEAccruedScheduleByJEScheduleKey = void 0;
|
|
6
|
+
exports.getJEScheduledTransactionByJEScheduleTransactionKey = exports.getJEAccruedScheduleByJEScheduleKey = exports.getJEOneTimeAccrualByKey = void 0;
|
|
7
7
|
const get_1 = __importDefault(require("lodash/get"));
|
|
8
8
|
const amount_1 = require("../../commonStateTypes/amount");
|
|
9
9
|
const accountSelector_1 = require("../account/accountSelector");
|
|
@@ -11,18 +11,35 @@ const classSelector_1 = require("../class/classSelector");
|
|
|
11
11
|
const transactionSelector_1 = require("../transaction/transactionSelector");
|
|
12
12
|
const userSelector_1 = require("../user/userSelector");
|
|
13
13
|
const vendorSelector_1 = require("../vendor/vendorSelector");
|
|
14
|
+
// Takes the slice, not RootState: an accrual denormalizes its vendor, account and class names, so
|
|
15
|
+
// unlike getJEAccruedScheduleByJEScheduleKey this joins nothing.
|
|
16
|
+
//
|
|
17
|
+
// Spreads the stored entity rather than rebuilding it field by field. That is deliberate — the
|
|
18
|
+
// accrued joiner listed every field explicitly and silently dropped jeScheduleType, which made a
|
|
19
|
+
// whole tab render empty while its reducer test still passed. A spread cannot lose a field.
|
|
20
|
+
const getJEOneTimeAccrualByKey = (jeOneTimeAccrualKey, jeSchedulesState) => {
|
|
21
|
+
const accrual = (0, get_1.default)(jeSchedulesState.oneTimeAccrualsByKey, jeOneTimeAccrualKey);
|
|
22
|
+
if (accrual == null) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return { ...accrual, jeOneTimeAccrualKey };
|
|
26
|
+
};
|
|
27
|
+
exports.getJEOneTimeAccrualByKey = getJEOneTimeAccrualByKey;
|
|
14
28
|
const getJEAccruedScheduleByJEScheduleKey = (JEScheduleKey, state) => {
|
|
15
29
|
const { jeSchedulesState, vendorState, accountState, userState, classState } = state;
|
|
16
30
|
const JEAccruedScheduleState = (0, get_1.default)(jeSchedulesState.schedulesByAccruedJEScheduleKey, JEScheduleKey);
|
|
17
31
|
if (JEAccruedScheduleState == null) {
|
|
18
32
|
return undefined;
|
|
19
33
|
}
|
|
20
|
-
const { period, updatedByUserID: updatedBy, vendorId, jeCredit, jeDebit, currencyCode, currencySymbol, balanceAsOfToday, startDate, endDate, status, updatedAt, jeScheduleId, scheduledJournalEntry, dayOfPostingDate: postingDate, lastDayOfMonth, memo, recurringAmount, createTime, otherAttributes, } = JEAccruedScheduleState;
|
|
34
|
+
const { period, updatedByUserID: updatedBy, createdByUserID: createdBy, vendorId, jeCredit, jeDebit, currencyCode, currencySymbol, balanceAsOfToday, startDate, endDate, status, updatedAt, jeScheduleId, scheduledJournalEntry, dayOfPostingDate: postingDate, lastDayOfMonth, memo, recurringAmount, createTime, otherAttributes, jeScheduleType, } = JEAccruedScheduleState;
|
|
21
35
|
const vendorDetails = (0, vendorSelector_1.getVendorByVendorId)(vendorState, vendorId);
|
|
22
36
|
if (vendorDetails == null) {
|
|
23
37
|
throw new Error(`Vendor with ${vendorId} doesn't exist`);
|
|
24
38
|
}
|
|
25
39
|
const userDetails = updatedBy != null ? (0, userSelector_1.getUserByUserId)(userState, updatedBy) : undefined;
|
|
40
|
+
// Resolved the same way the prepaid / fixed joiner does. Without it every accrued row rendered a
|
|
41
|
+
// hyphen under "Created by", even though the payload carries created_by.
|
|
42
|
+
const createdByUserDetails = createdBy != null ? (0, userSelector_1.getUserByUserId)(userState, createdBy) : undefined;
|
|
26
43
|
const accountCredit = jeCredit.accountId != null
|
|
27
44
|
? (0, accountSelector_1.getAccountBase)(accountState, jeCredit.accountId, 'account_list')
|
|
28
45
|
: undefined;
|
|
@@ -41,14 +58,19 @@ const getJEAccruedScheduleByJEScheduleKey = (JEScheduleKey, state) => {
|
|
|
41
58
|
reportId: 'class_list',
|
|
42
59
|
})
|
|
43
60
|
: undefined;
|
|
61
|
+
const postedCount = scheduledJournalEntry.filter((sje) => sje.status.code === 'posted' || sje.status.code === 'recorded').length;
|
|
62
|
+
const lifecycleTotal = period ?? scheduledJournalEntry.length;
|
|
44
63
|
return {
|
|
45
64
|
jeScheduleId,
|
|
46
65
|
otherAttributes,
|
|
47
66
|
vendor: vendorDetails,
|
|
48
67
|
updatedByUser: userDetails,
|
|
68
|
+
createdByUser: createdByUserDetails,
|
|
49
69
|
updatedAt,
|
|
50
70
|
currencyCode,
|
|
51
71
|
currencySymbol,
|
|
72
|
+
lifecycleTotal,
|
|
73
|
+
postedCount,
|
|
52
74
|
jeCredit: {
|
|
53
75
|
accountingClass: classCredit,
|
|
54
76
|
account: accountCredit,
|
|
@@ -66,6 +88,7 @@ const getJEAccruedScheduleByJEScheduleKey = (JEScheduleKey, state) => {
|
|
|
66
88
|
memo,
|
|
67
89
|
createTime,
|
|
68
90
|
recurringAmount,
|
|
91
|
+
jeScheduleType,
|
|
69
92
|
jeAccruedScheduleKey: JEScheduleKey,
|
|
70
93
|
balanceAsOfToday: balanceAsOfToday != null
|
|
71
94
|
? (0, amount_1.toAmount)(balanceAsOfToday, currencyCode, currencySymbol)
|
|
@@ -77,7 +100,7 @@ exports.getJEAccruedScheduleByJEScheduleKey = getJEAccruedScheduleByJEScheduleKe
|
|
|
77
100
|
const getJEScheduledTransactionByJEScheduleTransactionKey = (jeScheduleTransactionKey, state) => {
|
|
78
101
|
const { jeSchedulesState, vendorState, accountState, userState, classState, transactionState, } = state;
|
|
79
102
|
const jeScheduleTransactionState = (0, get_1.default)(jeSchedulesState.schedulesByTransactionKey, jeScheduleTransactionKey);
|
|
80
|
-
const { period, updatedByUserID: updatedBy, createdByUserID: createdBy, vendorId, jeCredit, jeDebit, currencyCode, currencySymbol, balanceAsOfToday, baseTransaction, startDate, endDate, status, updatedAt, jeScheduleId, scheduledJournalEntry, dayOfPostingDate: postingDate, lastDayOfMonth, otherAttributes, jeScheduleType, aiSummaries, recommendations, } = jeScheduleTransactionState;
|
|
103
|
+
const { period, updatedByUserID: updatedBy, createdByUserID: createdBy, createTime, vendorId, jeCredit, jeDebit, currencyCode, currencySymbol, balanceAsOfToday, baseTransaction, startDate, endDate, status, updatedAt, jeScheduleId, scheduledJournalEntry, dayOfPostingDate: postingDate, lastDayOfMonth, otherAttributes, jeScheduleType, aiSummaries, confidenceScore, recommendations, recurringAmount, postedCount: postedCountFromServer, } = jeScheduleTransactionState;
|
|
81
104
|
const vendorDetails = (0, vendorSelector_1.getVendorByVendorId)(vendorState, vendorId);
|
|
82
105
|
if (vendorDetails == null) {
|
|
83
106
|
throw new Error(`Vendor with ${vendorId} doesn't exist`);
|
|
@@ -106,14 +129,24 @@ const getJEScheduledTransactionByJEScheduleTransactionKey = (jeScheduleTransacti
|
|
|
106
129
|
reportId: 'class_list',
|
|
107
130
|
})
|
|
108
131
|
: undefined;
|
|
132
|
+
// The expense-automation response carries no scheduled journal entries for these rows, so the
|
|
133
|
+
// filter below counts an empty array and every schedule reported 0 posted. Prefer the count the
|
|
134
|
+
// server derives, and keep the filter for callers that do have entries (the detail page, and
|
|
135
|
+
// failed postings, which come with theirs).
|
|
136
|
+
const postedCount = postedCountFromServer ??
|
|
137
|
+
scheduledJournalEntry.filter((sje) => sje.status.code === 'posted' || sje.status.code === 'recorded').length;
|
|
138
|
+
const lifecycleTotal = period ?? scheduledJournalEntry.length;
|
|
109
139
|
return {
|
|
110
140
|
jeScheduleId,
|
|
111
141
|
jeScheduleType,
|
|
142
|
+
recurringAmount,
|
|
112
143
|
jeScheduleTransactionKey: jeScheduleTransactionKey,
|
|
113
144
|
vendor: vendorDetails,
|
|
114
145
|
updatedByUser: userDetails,
|
|
115
146
|
updatedAt: updatedAt,
|
|
116
147
|
period,
|
|
148
|
+
lifecycleTotal,
|
|
149
|
+
postedCount,
|
|
117
150
|
balanceAsOfToday: balanceAsOfToday != null
|
|
118
151
|
? (0, amount_1.toAmount)(balanceAsOfToday, currencyCode, currencySymbol)
|
|
119
152
|
: undefined,
|
|
@@ -136,7 +169,9 @@ const getJEScheduledTransactionByJEScheduleTransactionKey = (jeScheduleTransacti
|
|
|
136
169
|
},
|
|
137
170
|
scheduledJournalEntry,
|
|
138
171
|
aiSummaries,
|
|
172
|
+
confidenceScore,
|
|
139
173
|
createdByUser: createdByUserDetails,
|
|
174
|
+
createTime,
|
|
140
175
|
recommendations,
|
|
141
176
|
};
|
|
142
177
|
};
|
|
@@ -2,8 +2,9 @@ import { Amount } from '../../commonStateTypes/amount';
|
|
|
2
2
|
import { ID } from '../../commonStateTypes/common';
|
|
3
3
|
import { ScheduleDaysOfMonth } from '../../commonStateTypes/timePeriod';
|
|
4
4
|
import { ZeniDate } from '../../zeniDayJS';
|
|
5
|
+
import { ZeniUrl as Url } from '../../zeniUrl';
|
|
5
6
|
import { TransactionID } from '../transaction/stateTypes/transactionID';
|
|
6
|
-
import { JEScheduleKey, JEScheduleTransactionKey, JournalEntryErrorCodeType, ScheduleJournalEntryStatusCodeType, ScheduleStatusCodeType, ScheduleTypes } from './jeSchedulesTypes';
|
|
7
|
+
import { JEOneTimeAccrualKey, JEScheduleKey, JEScheduleTransactionKey, JournalEntryErrorCodeType, OneTimeAccrualAutomationTierType, OneTimeAccrualOriginType, OneTimeAccrualReversalPolicyType, OneTimeAccrualReversalTriggerType, OneTimeAccrualStatusCodeType, ScheduleJournalEntryStatusCodeType, ScheduleStatusCodeType, ScheduleTypes } from './jeSchedulesTypes';
|
|
7
8
|
export interface ScheduleStatus {
|
|
8
9
|
code: ScheduleStatusCodeType;
|
|
9
10
|
label: string;
|
|
@@ -94,14 +95,18 @@ export interface JEScheduledTransactionState {
|
|
|
94
95
|
vendorId: ID;
|
|
95
96
|
aiSummaries?: JEScheduleAISummaries;
|
|
96
97
|
balanceAsOfToday?: number;
|
|
98
|
+
confidenceScore?: number;
|
|
97
99
|
createdByUserID?: ID;
|
|
100
|
+
createTime?: ZeniDate;
|
|
98
101
|
dayOfPostingDate?: ScheduleDaysOfMonth;
|
|
99
102
|
endDate?: ZeniDate;
|
|
100
103
|
jeScheduleId?: ID;
|
|
101
104
|
jeScheduleType?: ScheduleTypes;
|
|
102
105
|
lastDayOfMonth?: boolean;
|
|
103
106
|
period?: number;
|
|
107
|
+
postedCount?: number;
|
|
104
108
|
recommendations?: JEScheduleRecommendations;
|
|
109
|
+
recurringAmount?: Amount;
|
|
105
110
|
startDate?: ZeniDate;
|
|
106
111
|
updatedAt?: ZeniDate;
|
|
107
112
|
updatedByUserID?: ID;
|
|
@@ -112,7 +117,102 @@ export interface JEAccruedScheduledTransactionState extends Omit<JEScheduledTran
|
|
|
112
117
|
memo: string;
|
|
113
118
|
recurringAmount: Amount;
|
|
114
119
|
}
|
|
120
|
+
export interface JEOneTimeAccrualCreator {
|
|
121
|
+
userId: ID;
|
|
122
|
+
email?: string;
|
|
123
|
+
firstName?: string;
|
|
124
|
+
lastName?: string;
|
|
125
|
+
photo?: Url;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* One month of a vendor's billed history, taken from profile_snapshot. Kept as an ordered array
|
|
129
|
+
* rather than the payload's map because the months are not contiguous — a vendor that skipped a
|
|
130
|
+
* month has no entry — so consumers must not derive the sequence themselves.
|
|
131
|
+
*/
|
|
132
|
+
export interface JEOneTimeAccrualMonthlyTotal {
|
|
133
|
+
amount: Amount;
|
|
134
|
+
month: string;
|
|
135
|
+
}
|
|
136
|
+
export interface JEOneTimeAccrualBillingPattern {
|
|
137
|
+
avgAmount?: Amount;
|
|
138
|
+
billingLagDays?: number;
|
|
139
|
+
consistencyScore?: number;
|
|
140
|
+
frequency?: string;
|
|
141
|
+
lastBillAmount?: Amount;
|
|
142
|
+
lastBillDate?: ZeniDate;
|
|
143
|
+
monthsOfHistory?: number;
|
|
144
|
+
typicalBillDay?: number;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The vendor profile the AI used to decide this accrual. Absent on human-created accruals, so every
|
|
148
|
+
* card built from it has to be omitted rather than rendered empty.
|
|
149
|
+
*/
|
|
150
|
+
export interface JEOneTimeAccrualProfileSnapshot {
|
|
151
|
+
monthlyTotals: JEOneTimeAccrualMonthlyTotal[];
|
|
152
|
+
billingPattern?: JEOneTimeAccrualBillingPattern;
|
|
153
|
+
}
|
|
154
|
+
/** What the AI originally suggested, frozen at draft time. */
|
|
155
|
+
export interface JEOneTimeAccrualAiSuggestion {
|
|
156
|
+
estimatedAmount?: Amount;
|
|
157
|
+
jeCreditAccountName?: string;
|
|
158
|
+
jeDebitAccountName?: string;
|
|
159
|
+
memo?: string;
|
|
160
|
+
}
|
|
161
|
+
/** Cleared-bill stamp written when an accrual is matched and reversed. */
|
|
162
|
+
export interface JEOneTimeAccrualCleared {
|
|
163
|
+
consumedLineIds?: string[];
|
|
164
|
+
matchedAmount?: Amount;
|
|
165
|
+
matchedLineId?: string;
|
|
166
|
+
matchedTransactionId?: string;
|
|
167
|
+
matchedTransactionIntegrationId?: string;
|
|
168
|
+
matchedTransactionType?: string;
|
|
169
|
+
matchShape?: string;
|
|
170
|
+
matchTier?: string;
|
|
171
|
+
reversedAt?: ZeniDate;
|
|
172
|
+
}
|
|
173
|
+
/** AI match suggestion on a posted on-bill-match accrual awaiting review. */
|
|
174
|
+
export interface JEOneTimeAccrualMatchSuggestion {
|
|
175
|
+
matchedAmount?: Amount;
|
|
176
|
+
matchedTransactionId?: string;
|
|
177
|
+
matchedTransactionIntegrationId?: string;
|
|
178
|
+
matchedTransactionType?: string;
|
|
179
|
+
resolution?: string;
|
|
180
|
+
}
|
|
181
|
+
export interface JEOneTimeAccrualState {
|
|
182
|
+
accrualId: ID;
|
|
183
|
+
accrualStatus: OneTimeAccrualStatusCodeType;
|
|
184
|
+
estimatedAmount: Amount;
|
|
185
|
+
memo: string;
|
|
186
|
+
origin: OneTimeAccrualOriginType;
|
|
187
|
+
reversalPolicy: OneTimeAccrualReversalPolicyType;
|
|
188
|
+
serviceMonth: string;
|
|
189
|
+
vendorId: ID;
|
|
190
|
+
vendorName: string;
|
|
191
|
+
actualPostDate?: ZeniDate;
|
|
192
|
+
actualReversalPostDate?: ZeniDate;
|
|
193
|
+
aiSuggestion?: JEOneTimeAccrualAiSuggestion;
|
|
194
|
+
automationTier?: OneTimeAccrualAutomationTierType;
|
|
195
|
+
cleared?: JEOneTimeAccrualCleared;
|
|
196
|
+
createdBy?: JEOneTimeAccrualCreator;
|
|
197
|
+
expectedReversalDate?: ZeniDate;
|
|
198
|
+
jeCreditAccountId?: ID;
|
|
199
|
+
jeCreditAccountingClassId?: ID;
|
|
200
|
+
jeCreditAccountingClassName?: string;
|
|
201
|
+
jeCreditAccountName?: string;
|
|
202
|
+
jeDebitAccountId?: ID;
|
|
203
|
+
jeDebitAccountingClassId?: ID;
|
|
204
|
+
jeDebitAccountingClassName?: string;
|
|
205
|
+
jeDebitAccountName?: string;
|
|
206
|
+
matchSuggestion?: JEOneTimeAccrualMatchSuggestion;
|
|
207
|
+
postingDate?: ZeniDate;
|
|
208
|
+
profileSnapshot?: JEOneTimeAccrualProfileSnapshot;
|
|
209
|
+
reversalTransactionId?: ID;
|
|
210
|
+
reversalTrigger?: OneTimeAccrualReversalTriggerType;
|
|
211
|
+
transactionId?: ID;
|
|
212
|
+
transactionIntegrationId?: ID;
|
|
213
|
+
}
|
|
115
214
|
export interface JESchedulesState {
|
|
215
|
+
oneTimeAccrualsByKey: Record<JEOneTimeAccrualKey, JEOneTimeAccrualState>;
|
|
116
216
|
schedulesByAccruedJEScheduleKey: Record<JEScheduleKey, JEAccruedScheduledTransactionState>;
|
|
117
217
|
schedulesByTransactionKey: Record<JEScheduleTransactionKey, JEScheduledTransactionState>;
|
|
118
218
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { TransactionID } from '../transaction/stateTypes/transactionID';
|
|
2
|
-
import { generateJEScheduleKey } from './jeScheduleHelper';
|
|
2
|
+
import { generateJEOneTimeAccrualKey, generateJEScheduleKey } from './jeScheduleHelper';
|
|
3
3
|
export interface ScheduleTransactionID extends TransactionID {
|
|
4
4
|
lineId: string;
|
|
5
5
|
}
|
|
6
6
|
export declare const getJEScheduleTransactionKey: (scheduleTransactionId: ScheduleTransactionID) => `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_refund_${string}` | `${string}_bill_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`;
|
|
7
7
|
export type JEScheduleTransactionKey = ReturnType<typeof getJEScheduleTransactionKey>;
|
|
8
8
|
export type JEScheduleKey = ReturnType<typeof generateJEScheduleKey>;
|
|
9
|
+
export type JEOneTimeAccrualKey = ReturnType<typeof generateJEOneTimeAccrualKey>;
|
|
9
10
|
export declare const ALL_SCHEDULES_TYPES: readonly ["prepaid_expenses", "fixed_assets", "accrued_expenses", "deferred_revenue"];
|
|
10
11
|
export declare const toScheduleTypesType: (v: string) => "prepaid_expenses" | "fixed_assets" | "accrued_expenses" | "deferred_revenue";
|
|
11
12
|
export type ScheduleTypes = ReturnType<typeof toScheduleTypesType>;
|
|
@@ -14,5 +15,27 @@ export declare const toScheduleJournalEntryStatusCodeType: (v: string) => "unkno
|
|
|
14
15
|
export type ScheduleJournalEntryStatusCodeType = ReturnType<typeof toScheduleJournalEntryStatusCodeType>;
|
|
15
16
|
export declare const toScheduleStatusCodeType: (v: string) => "completed" | "draft" | "new" | "ongoing" | "marked_as_completed";
|
|
16
17
|
export type ScheduleStatusCodeType = ReturnType<typeof toScheduleStatusCodeType>;
|
|
18
|
+
export declare const toOneTimeAccrualStatusCodeType: (v: string) => "draft" | "posted" | "posting" | "posting_blocked" | "reversing" | "reversed";
|
|
19
|
+
export type OneTimeAccrualStatusCodeType = ReturnType<typeof toOneTimeAccrualStatusCodeType>;
|
|
20
|
+
export declare const toOneTimeAccrualOriginType: (v: string) => "agent" | "human";
|
|
21
|
+
export type OneTimeAccrualOriginType = ReturnType<typeof toOneTimeAccrualOriginType>;
|
|
22
|
+
export declare const toOneTimeAccrualAutomationTierType: (v: string) => "auto" | "draft" | "manual";
|
|
23
|
+
export type OneTimeAccrualAutomationTierType = ReturnType<typeof toOneTimeAccrualAutomationTierType>;
|
|
24
|
+
export declare const toOneTimeAccrualReversalPolicyType: (v: string) => "on_bill_match" | "scheduled_date";
|
|
25
|
+
export type OneTimeAccrualReversalPolicyType = ReturnType<typeof toOneTimeAccrualReversalPolicyType>;
|
|
26
|
+
export declare const toOneTimeAccrualReversalTriggerType: (v?: string) => "scheduled_date" | "bill_match" | "manual_reverse" | undefined;
|
|
27
|
+
export type OneTimeAccrualReversalTriggerType = ReturnType<typeof toOneTimeAccrualReversalTriggerType>;
|
|
28
|
+
export declare const toOneTimeAccrualIgnoreReasonType: (v: string) => "paused" | "no_activity" | "too_small" | "need_invoice" | "other_ignore";
|
|
29
|
+
export type OneTimeAccrualIgnoreReasonType = ReturnType<typeof toOneTimeAccrualIgnoreReasonType>;
|
|
30
|
+
export declare const ALL_ONE_TIME_ACCRUAL_IGNORE_REASONS: readonly OneTimeAccrualIgnoreReasonType[];
|
|
31
|
+
export declare const toJEScheduleIgnoreReasonType: (v: string) => "other_ignore" | "not_needed" | "wrong_account" | "duplicate" | "already_handled";
|
|
32
|
+
export type JEScheduleIgnoreReasonType = ReturnType<typeof toJEScheduleIgnoreReasonType>;
|
|
33
|
+
export declare const ALL_JE_SCHEDULE_IGNORE_REASONS: readonly JEScheduleIgnoreReasonType[];
|
|
34
|
+
export declare const toJEScheduleRevertReasonType: (v: string) => "duplicate" | "amount_off" | "wrong_period" | "created_by_mistake" | "other_revert";
|
|
35
|
+
export type JEScheduleRevertReasonType = ReturnType<typeof toJEScheduleRevertReasonType>;
|
|
36
|
+
export declare const ALL_JE_SCHEDULE_REVERT_REASONS: readonly JEScheduleRevertReasonType[];
|
|
37
|
+
export declare const toOneTimeAccrualRevertReasonType: (v: string) => "duplicate" | "amount_off" | "wrong_period" | "other_revert" | "not_accrual";
|
|
38
|
+
export type OneTimeAccrualRevertReasonType = ReturnType<typeof toOneTimeAccrualRevertReasonType>;
|
|
39
|
+
export declare const ALL_ONE_TIME_ACCRUAL_REVERT_REASONS: readonly OneTimeAccrualRevertReasonType[];
|
|
17
40
|
export declare const toJournalEntryErrorCodeType: (v: string) => "vendor_deleted" | "debit_category_deleted" | "credit_category_deleted" | "qbo_error" | "qbo_authorization_error" | "qbo_invalid_company_status_error" | "qbo_book_close_date_error";
|
|
18
41
|
export type JournalEntryErrorCodeType = ReturnType<typeof toJournalEntryErrorCodeType>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toJournalEntryErrorCodeType = exports.toScheduleStatusCodeType = exports.toScheduleJournalEntryStatusCodeType = exports.toScheduleTypesTypeStrict = exports.toScheduleTypesType = exports.ALL_SCHEDULES_TYPES = exports.getJEScheduleTransactionKey = void 0;
|
|
3
|
+
exports.toJournalEntryErrorCodeType = exports.ALL_ONE_TIME_ACCRUAL_REVERT_REASONS = exports.toOneTimeAccrualRevertReasonType = exports.ALL_JE_SCHEDULE_REVERT_REASONS = exports.toJEScheduleRevertReasonType = exports.ALL_JE_SCHEDULE_IGNORE_REASONS = exports.toJEScheduleIgnoreReasonType = exports.ALL_ONE_TIME_ACCRUAL_IGNORE_REASONS = exports.toOneTimeAccrualIgnoreReasonType = exports.toOneTimeAccrualReversalTriggerType = exports.toOneTimeAccrualReversalPolicyType = exports.toOneTimeAccrualAutomationTierType = exports.toOneTimeAccrualOriginType = exports.toOneTimeAccrualStatusCodeType = exports.toScheduleStatusCodeType = exports.toScheduleJournalEntryStatusCodeType = exports.toScheduleTypesTypeStrict = exports.toScheduleTypesType = exports.ALL_SCHEDULES_TYPES = exports.getJEScheduleTransactionKey = void 0;
|
|
4
4
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
5
5
|
const getJEScheduleTransactionKey = (scheduleTransactionId) => `${scheduleTransactionId.id}_${scheduleTransactionId.type}_${scheduleTransactionId.lineId}`;
|
|
6
6
|
exports.getJEScheduleTransactionKey = getJEScheduleTransactionKey;
|
|
@@ -32,6 +32,93 @@ const SCHEDULE_STATUS_CODE = [
|
|
|
32
32
|
];
|
|
33
33
|
const toScheduleStatusCodeType = (v) => (0, stringToUnion_1.stringToUnion)(v, SCHEDULE_STATUS_CODE);
|
|
34
34
|
exports.toScheduleStatusCodeType = toScheduleStatusCodeType;
|
|
35
|
+
// One-time accruals come from agent-je's Mongo `accruals` collection, not the JE schedule
|
|
36
|
+
// datastore, so they carry their own status vocabulary rather than SCHEDULE_STATUS_CODE.
|
|
37
|
+
// `posting` and `reversing` are transient claims held while a JE posts.
|
|
38
|
+
const ONE_TIME_ACCRUAL_STATUS_CODE = [
|
|
39
|
+
'draft',
|
|
40
|
+
'posting',
|
|
41
|
+
'posted',
|
|
42
|
+
'posting_blocked',
|
|
43
|
+
'reversing',
|
|
44
|
+
'reversed',
|
|
45
|
+
];
|
|
46
|
+
const toOneTimeAccrualStatusCodeType = (v) => (0, stringToUnion_1.stringToUnion)(v, ONE_TIME_ACCRUAL_STATUS_CODE);
|
|
47
|
+
exports.toOneTimeAccrualStatusCodeType = toOneTimeAccrualStatusCodeType;
|
|
48
|
+
// Who created the accrual. This — not the creator's email — is the authoritative
|
|
49
|
+
// AI-vs-manual signal for the Method column.
|
|
50
|
+
const ONE_TIME_ACCRUAL_ORIGIN = ['agent', 'human'];
|
|
51
|
+
const toOneTimeAccrualOriginType = (v) => (0, stringToUnion_1.stringToUnion)(v, ONE_TIME_ACCRUAL_ORIGIN);
|
|
52
|
+
exports.toOneTimeAccrualOriginType = toOneTimeAccrualOriginType;
|
|
53
|
+
const ONE_TIME_ACCRUAL_AUTOMATION_TIER = ['manual', 'draft', 'auto'];
|
|
54
|
+
const toOneTimeAccrualAutomationTierType = (v) => (0, stringToUnion_1.stringToUnion)(v, ONE_TIME_ACCRUAL_AUTOMATION_TIER);
|
|
55
|
+
exports.toOneTimeAccrualAutomationTierType = toOneTimeAccrualAutomationTierType;
|
|
56
|
+
// How the accrual is allowed to reverse. The two are exclusive: a scheduled row reverses on
|
|
57
|
+
// expectedReversalDate and bills never drive it; an on_bill_match row reverses only when a bill
|
|
58
|
+
// is matched, which is why its lifecycle reads "Reverses on match" rather than showing a date.
|
|
59
|
+
const ONE_TIME_ACCRUAL_REVERSAL_POLICY = [
|
|
60
|
+
'on_bill_match',
|
|
61
|
+
'scheduled_date',
|
|
62
|
+
];
|
|
63
|
+
const toOneTimeAccrualReversalPolicyType = (v) => (0, stringToUnion_1.stringToUnion)(v, ONE_TIME_ACCRUAL_REVERSAL_POLICY);
|
|
64
|
+
exports.toOneTimeAccrualReversalPolicyType = toOneTimeAccrualReversalPolicyType;
|
|
65
|
+
// What actually caused a reverse. Distinct from a *revert*, which soft-deletes the row and
|
|
66
|
+
// never sets this.
|
|
67
|
+
const ONE_TIME_ACCRUAL_REVERSAL_TRIGGER = [
|
|
68
|
+
'bill_match',
|
|
69
|
+
'scheduled_date',
|
|
70
|
+
'manual_reverse',
|
|
71
|
+
];
|
|
72
|
+
const toOneTimeAccrualReversalTriggerType = (v) => (0, stringToUnion_1.stringToUnionStrict)(v ?? '', ONE_TIME_ACCRUAL_REVERSAL_TRIGGER);
|
|
73
|
+
exports.toOneTimeAccrualReversalTriggerType = toOneTimeAccrualReversalTriggerType;
|
|
74
|
+
// Why a human told the AI Accountant not to accrue this month. The gateway validates against
|
|
75
|
+
// exactly this set, so it is a union rather than a free-text string.
|
|
76
|
+
const ONE_TIME_ACCRUAL_IGNORE_REASON = [
|
|
77
|
+
'no_activity',
|
|
78
|
+
'paused',
|
|
79
|
+
'too_small',
|
|
80
|
+
'need_invoice',
|
|
81
|
+
'other_ignore',
|
|
82
|
+
];
|
|
83
|
+
const toOneTimeAccrualIgnoreReasonType = (v) => (0, stringToUnion_1.stringToUnion)(v, ONE_TIME_ACCRUAL_IGNORE_REASON);
|
|
84
|
+
exports.toOneTimeAccrualIgnoreReasonType = toOneTimeAccrualIgnoreReasonType;
|
|
85
|
+
exports.ALL_ONE_TIME_ACCRUAL_IGNORE_REASONS = ONE_TIME_ACCRUAL_IGNORE_REASON;
|
|
86
|
+
// Why a recommended prepaid / fixed-asset schedule is being dismissed. A different set from the
|
|
87
|
+
// accrual ignore reasons: the gateway validates each against its own list.
|
|
88
|
+
const JE_SCHEDULE_IGNORE_REASON = [
|
|
89
|
+
'not_needed',
|
|
90
|
+
'wrong_account',
|
|
91
|
+
'duplicate',
|
|
92
|
+
'already_handled',
|
|
93
|
+
'other_ignore',
|
|
94
|
+
];
|
|
95
|
+
const toJEScheduleIgnoreReasonType = (v) => (0, stringToUnion_1.stringToUnion)(v, JE_SCHEDULE_IGNORE_REASON);
|
|
96
|
+
exports.toJEScheduleIgnoreReasonType = toJEScheduleIgnoreReasonType;
|
|
97
|
+
exports.ALL_JE_SCHEDULE_IGNORE_REASONS = JE_SCHEDULE_IGNORE_REASON;
|
|
98
|
+
// Why a posted prepaid / fixed-asset schedule is being undone. Note `not_accrual` is accrual-only
|
|
99
|
+
// and rejected here, and `created_by_mistake` is schedule-only.
|
|
100
|
+
const JE_SCHEDULE_REVERT_REASON = [
|
|
101
|
+
'amount_off',
|
|
102
|
+
'wrong_period',
|
|
103
|
+
'duplicate',
|
|
104
|
+
'created_by_mistake',
|
|
105
|
+
'other_revert',
|
|
106
|
+
];
|
|
107
|
+
const toJEScheduleRevertReasonType = (v) => (0, stringToUnion_1.stringToUnion)(v, JE_SCHEDULE_REVERT_REASON);
|
|
108
|
+
exports.toJEScheduleRevertReasonType = toJEScheduleRevertReasonType;
|
|
109
|
+
exports.ALL_JE_SCHEDULE_REVERT_REASONS = JE_SCHEDULE_REVERT_REASON;
|
|
110
|
+
// Why a posted accrual is being undone. A disjoint set from the ignore reasons — the gateway
|
|
111
|
+
// validates each action against its own list and rejects the other's values.
|
|
112
|
+
const ONE_TIME_ACCRUAL_REVERT_REASON = [
|
|
113
|
+
'amount_off',
|
|
114
|
+
'wrong_period',
|
|
115
|
+
'not_accrual',
|
|
116
|
+
'duplicate',
|
|
117
|
+
'other_revert',
|
|
118
|
+
];
|
|
119
|
+
const toOneTimeAccrualRevertReasonType = (v) => (0, stringToUnion_1.stringToUnion)(v, ONE_TIME_ACCRUAL_REVERT_REASON);
|
|
120
|
+
exports.toOneTimeAccrualRevertReasonType = toOneTimeAccrualRevertReasonType;
|
|
121
|
+
exports.ALL_ONE_TIME_ACCRUAL_REVERT_REASONS = ONE_TIME_ACCRUAL_REVERT_REASON;
|
|
35
122
|
const JOURNAL_ENTRY_ERROR_CODE = [
|
|
36
123
|
'vendor_deleted',
|
|
37
124
|
'debit_category_deleted',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const toSnackbarMessageSection: (v: string) => "common" | "transactionDetails_updatingPastTransactions" | "transactionDetails_transactionUpdated" | "cockpit_month_end_email_sent" | "cockpit_month_end_email_save" | "cockpit_month_end_email_attachment_upload" | "je_bill_link" | "je_posted" | "audit_score_updated" | "people_invite_people" | "people_invite_multiple_people" | "people_delete_person" | "people_update_person" | "reimbursement_updated" | "reimbursement_deleted" | "reimbursement_cancelled_deleted" | "reimbursement_cancelled" | "reimbursement_approved" | "reimbursement_rejected" | "reimbursement_sent_for_approval" | "account_added" | "business_verification_save" | "business_verification_submit" | "business_verification_from_bills_submit" | "plaid_connection" | "unlink_deposit_account" | "reimbursement_setup" | "reimbursement_approval_create" | "reimbursement_duplicate_approval_create" | "reimbursement_approval_update" | "reimbursement_duplicate_approval_update" | "reimbursement_approval_delete" | "reimbursement_approval_reorder" | "reimbursement_create_mileage" | "reimbursement_update_mileage" | "reimbursement_accept_term" | "reimbursement_accept_employee_term" | "reimbursement_bulk_submit" | "reimbursement_bulk_processed" | "bill_pay_setup" | "zeni_accounts_setup" | "bill_pay_approval_create" | "bill_pay_duplicate_approval_create" | "bill_pay_approval_update" | "bill_pay_duplicate_approval_update" | "bill_pay_approval_delete" | "bill_pay_approval_reorder" | "bill_pay_updated" | "bill_pay_deleted" | "bill_pay_cancelled_deleted" | "bill_pay_cancelled" | "bill_pay_approved" | "real_time_approver_added" | "bill_pay_rejected" | "bill_pay_sent_for_approval" | "bill_pay_accept_term" | "bill_pay_bulk_submit" | "bill_pay_bulk_processed" | "bill_pay_refund" | "bill_pay_retry" | "bill_pay_marked_as_paid" | "zeni_account_accept_term" | "update_vendor" | "data_refresh_update" | "delete_bank_account" | "create_bank_account" | "create_bank_account_ach" | "create_bank_account_wire" | "create_bank_account_international" | "transfer_money" | "update_zeni_account_nickname" | "create_checking_account" | "deposit_check" | "create_vendor" | "onboarding_customer_view" | "onboarding_customer_view_complete" | "onboarding_customer_identity_verification_save" | "onboarding_customer_identity_verification_submit" | "onboarding_customer_business_verification_save" | "onboarding_customer_business_verification_submit" | "retry_bank_account_connection" | "dashboard_invite_sent" | "onboarding_info_saved" | "approve_original_merchant" | "approve_global_merchant" | "reject_global_merchant" | "create_global_merchant" | "fetch_global_merchant_no_recommendation" | "save_vendor_renamed" | "save_vendor_sent_for_review" | "save_vendor_marked_as_employee" | "save_vendor_marked_as_local_contractor" | "charge_card_setup" | "charge_card_accept_term" | "charge_card_receipt_upload" | "charge_card_resend_invite" | "charge_card_revoke_invite" | "card_policy_created" | "card_policy_updated" | "card_policy_deleted" | "charge_card_update_limit" | "charge_cards_update_limit" | "close_charge_card" | "lock_charge_card" | "lock_charge_card_card_user" | "lock_charge_cards" | "unlock_charge_card" | "unlock_charge_card_card_user" | "unlock_charge_cards" | "close_charge_cards" | "revoke_invite_charge_cards" | "charge_card_express_interest" | "create_schedule" | "save_schedule" | "delete_schedule" | "ignore_schedule" | "save_task_detail" | "fetch_task_detail" | "delete_task" | "archive_task" | "snooze_task" | "unsnooze_task" | "create_tag" | "delete_tag" | "update_charge_card" | "update_charge_card_name" | "update_charge_card_name_card_user" | "issue_charge_card" | "issue_charge_cards" | "notification_settings_saved" | "referral_invite_sent" | "notification_mark_as_read" | "mark_as_complete_schedule" | "cancel_journal_entry" | "settings_accounting_accounts_updated" | "create_card_setup" | "confirm_card_setup" | "add_card_payment_source" | "fetch_payment_sources" | "task_assigned_toast_notification" | "task_due_tomorrow_toast_notification" | "task_deleted_toast_notification" | "task_archived_toast_notification" | "task_overdue_toast_notification" | "task_overdue_toast_notification_creator" | "task_notification_count" | "task_activities_toast_notification" | "task_created_toast_notification" | "task_group_creation_success" | "task_group_deletion_success" | "task_group_update_success" | "primary_funding_account_updated" | "task_time_spent_validation" | "missing_receipts_attachment" | "flux_analysis_unreviewed" | "flux_analysis_reviewed" | "receipt_match" | "receipts_upload" | "receipts_bulk_match" | "billing_address_view" | "express_pay_submit" | "exclude_transaction" | "reconcile" | "save_reconcile_for_later" | "recon_transaction_categorize" | "recon_transaction_match" | "update_debit_card_pin_attempt" | "set_debit_card_pin" | "ai_cfo_create_session_and_submit" | "ai_cfo_chat_session_deleted" | "charge_card_auto_pay_enable" | "charge_card_auto_pay_disable" | "treasury_setup" | "treasury_accept_term" | "treasury_transfer_money" | "treasury_transfer_money_failed" | "auto_transfer_rule_create" | "auto_transfer_rule_update" | "auto_transfer_rule_delete" | "auto_transfer_rule_pause" | "auto_transfer_rule_resume" | "treasury_update_portfolio_allocation" | "send_email_magic_link_to_user" | "complete_profile_done" | "create_transfer_entry" | "reports_resync" | "invalid_phone_number" | "transactions_categorized_updated_failed" | "transaction_categorized_updated_failed" | "transactionsCategorized_transactionsUpdated" | "transactionsCategorized_transactionUpdated" | "transactionCategorized_transactionsUpdated" | "transactionCategorized_transactionUpdated" | "transactionsCategorized_transactionsFailed" | "transactionsCategorized_transactionFailed" | "transactionCategorized_transactionsFailed" | "transactionCategorized_transactionFailed" | "transactionsUpdated_transactionsFailed" | "transactionsUpdated_transactionFailed" | "transactionUpdated_transactionsFailed" | "transactionUpdated_transactionFailed" | "transactionsCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionsUpdated_transactionFailed" | "transactionsCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionUpdated_transactionFailed" | "transactionCategorized_transactionsUpdated_transactionFailed" | "transactionCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionUpdated_transactionFailed" | "accounting_classes_enabled_update" | "accounting_projects_enabled_update" | "accounting_projects_qbo_not_enabled" | "capitalization_threshold_update" | "account_excluded_from_reconciliation" | "account_included_in_reconciliation" | "confirm_statement_mapping" | "statement_parsing_in_progress" | "statement_parsing_complete" | "ai_accountant_trigger_job" | "oauth_consent_approve" | "oauth_consent_invalid_request" | "credit_agent_update_profile" | "credit_agent_save_macro" | "credit_agent_schedule_cron" | "create_sub_task" | "qbo_connection_already_linked" | "qbo_connection_failed" | "accounting_projects_qbo_reconnect_failed" | "product_services_update" | "qbo_realm_id_update" | "invoicing_dunning_case_resolved" | "invoicing_dunning_retry" | "invoicing_dunning_cancel" | "invoicing_dunning_settings_save" | "invoicing_qbo_backfill" | "invoicing_qbo_sync_health_retry" | "invoicing_qbo_settings_save" | "invoicing_branding_save" | "invoicing_discount_archive" | "invoicing_discount_unarchive" | "invoicing_discount_delete" | "invoicing_invoice_reminder_sent" | "invoicing_invoice_regenerated" | "invoicing_invoice_voided" | "invoicing_catalog_item_saved" | "invoicing_customer_saved" | "invoicing_subscription_saved" | "invoicing_coupon_saved" | "invoicing_invoice_saved" | "invoicing_credit_note_saved" | "invoicing_payment_recorded" | "invoicing_subscription_activated" | "invoicing_subscription_cancellation_removed" | "invoicing_subscription_cancelled" | "invoicing_subscription_non_renewing" | "invoicing_subscription_paused" | "invoicing_subscription_reactivated" | "invoicing_subscription_resumed" | "invoicing_subscription_term_end_changed";
|
|
1
|
+
export declare const toSnackbarMessageSection: (v: string) => "common" | "transactionDetails_updatingPastTransactions" | "transactionDetails_transactionUpdated" | "cockpit_month_end_email_sent" | "cockpit_month_end_email_save" | "cockpit_month_end_email_attachment_upload" | "je_bill_link" | "je_posted" | "audit_score_updated" | "people_invite_people" | "people_invite_multiple_people" | "people_delete_person" | "people_update_person" | "reimbursement_updated" | "reimbursement_deleted" | "reimbursement_cancelled_deleted" | "reimbursement_cancelled" | "reimbursement_approved" | "reimbursement_rejected" | "reimbursement_sent_for_approval" | "account_added" | "business_verification_save" | "business_verification_submit" | "business_verification_from_bills_submit" | "plaid_connection" | "unlink_deposit_account" | "reimbursement_setup" | "reimbursement_approval_create" | "reimbursement_duplicate_approval_create" | "reimbursement_approval_update" | "reimbursement_duplicate_approval_update" | "reimbursement_approval_delete" | "reimbursement_approval_reorder" | "reimbursement_create_mileage" | "reimbursement_update_mileage" | "reimbursement_accept_term" | "reimbursement_accept_employee_term" | "reimbursement_bulk_submit" | "reimbursement_bulk_processed" | "bill_pay_setup" | "zeni_accounts_setup" | "bill_pay_approval_create" | "bill_pay_duplicate_approval_create" | "bill_pay_approval_update" | "bill_pay_duplicate_approval_update" | "bill_pay_approval_delete" | "bill_pay_approval_reorder" | "bill_pay_updated" | "bill_pay_deleted" | "bill_pay_cancelled_deleted" | "bill_pay_cancelled" | "bill_pay_approved" | "real_time_approver_added" | "bill_pay_rejected" | "bill_pay_sent_for_approval" | "bill_pay_accept_term" | "bill_pay_bulk_submit" | "bill_pay_bulk_processed" | "bill_pay_refund" | "bill_pay_retry" | "bill_pay_marked_as_paid" | "zeni_account_accept_term" | "update_vendor" | "data_refresh_update" | "delete_bank_account" | "create_bank_account" | "create_bank_account_ach" | "create_bank_account_wire" | "create_bank_account_international" | "transfer_money" | "update_zeni_account_nickname" | "create_checking_account" | "deposit_check" | "create_vendor" | "onboarding_customer_view" | "onboarding_customer_view_complete" | "onboarding_customer_identity_verification_save" | "onboarding_customer_identity_verification_submit" | "onboarding_customer_business_verification_save" | "onboarding_customer_business_verification_submit" | "retry_bank_account_connection" | "dashboard_invite_sent" | "onboarding_info_saved" | "approve_original_merchant" | "approve_global_merchant" | "reject_global_merchant" | "create_global_merchant" | "fetch_global_merchant_no_recommendation" | "save_vendor_renamed" | "save_vendor_sent_for_review" | "save_vendor_marked_as_employee" | "save_vendor_marked_as_local_contractor" | "charge_card_setup" | "charge_card_accept_term" | "charge_card_receipt_upload" | "charge_card_resend_invite" | "charge_card_revoke_invite" | "card_policy_created" | "card_policy_updated" | "card_policy_deleted" | "charge_card_update_limit" | "charge_cards_update_limit" | "close_charge_card" | "lock_charge_card" | "lock_charge_card_card_user" | "lock_charge_cards" | "unlock_charge_card" | "unlock_charge_card_card_user" | "unlock_charge_cards" | "close_charge_cards" | "revoke_invite_charge_cards" | "charge_card_express_interest" | "create_schedule" | "save_schedule" | "delete_schedule" | "ignore_schedule" | "revert_schedule" | "ignore_accrual" | "revert_accrual" | "save_task_detail" | "fetch_task_detail" | "delete_task" | "archive_task" | "snooze_task" | "unsnooze_task" | "create_tag" | "delete_tag" | "update_charge_card" | "update_charge_card_name" | "update_charge_card_name_card_user" | "issue_charge_card" | "issue_charge_cards" | "notification_settings_saved" | "referral_invite_sent" | "notification_mark_as_read" | "mark_as_complete_schedule" | "cancel_journal_entry" | "settings_accounting_accounts_updated" | "create_card_setup" | "confirm_card_setup" | "add_card_payment_source" | "fetch_payment_sources" | "task_assigned_toast_notification" | "task_due_tomorrow_toast_notification" | "task_deleted_toast_notification" | "task_archived_toast_notification" | "task_overdue_toast_notification" | "task_overdue_toast_notification_creator" | "task_notification_count" | "task_activities_toast_notification" | "task_created_toast_notification" | "task_group_creation_success" | "task_group_deletion_success" | "task_group_update_success" | "primary_funding_account_updated" | "task_time_spent_validation" | "missing_receipts_attachment" | "flux_analysis_unreviewed" | "flux_analysis_reviewed" | "receipt_match" | "receipts_upload" | "receipts_bulk_match" | "billing_address_view" | "express_pay_submit" | "exclude_transaction" | "reconcile" | "save_reconcile_for_later" | "recon_transaction_categorize" | "recon_transaction_match" | "update_debit_card_pin_attempt" | "set_debit_card_pin" | "ai_cfo_create_session_and_submit" | "ai_cfo_chat_session_deleted" | "charge_card_auto_pay_enable" | "charge_card_auto_pay_disable" | "treasury_setup" | "treasury_accept_term" | "treasury_transfer_money" | "treasury_transfer_money_failed" | "auto_transfer_rule_create" | "auto_transfer_rule_update" | "auto_transfer_rule_delete" | "auto_transfer_rule_pause" | "auto_transfer_rule_resume" | "treasury_update_portfolio_allocation" | "send_email_magic_link_to_user" | "complete_profile_done" | "create_transfer_entry" | "reports_resync" | "invalid_phone_number" | "transactions_categorized_updated_failed" | "transaction_categorized_updated_failed" | "transactionsCategorized_transactionsUpdated" | "transactionsCategorized_transactionUpdated" | "transactionCategorized_transactionsUpdated" | "transactionCategorized_transactionUpdated" | "transactionsCategorized_transactionsFailed" | "transactionsCategorized_transactionFailed" | "transactionCategorized_transactionsFailed" | "transactionCategorized_transactionFailed" | "transactionsUpdated_transactionsFailed" | "transactionsUpdated_transactionFailed" | "transactionUpdated_transactionsFailed" | "transactionUpdated_transactionFailed" | "transactionsCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionsUpdated_transactionFailed" | "transactionsCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionUpdated_transactionFailed" | "transactionCategorized_transactionsUpdated_transactionFailed" | "transactionCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionUpdated_transactionFailed" | "accounting_classes_enabled_update" | "accounting_projects_enabled_update" | "accounting_projects_qbo_not_enabled" | "capitalization_threshold_update" | "account_excluded_from_reconciliation" | "account_included_in_reconciliation" | "confirm_statement_mapping" | "statement_parsing_in_progress" | "statement_parsing_complete" | "ai_accountant_trigger_job" | "oauth_consent_approve" | "oauth_consent_invalid_request" | "credit_agent_update_profile" | "credit_agent_save_macro" | "credit_agent_schedule_cron" | "create_sub_task" | "qbo_connection_already_linked" | "qbo_connection_failed" | "accounting_projects_qbo_reconnect_failed" | "product_services_update" | "qbo_realm_id_update" | "invoicing_dunning_case_resolved" | "invoicing_dunning_retry" | "invoicing_dunning_cancel" | "invoicing_dunning_settings_save" | "invoicing_qbo_backfill" | "invoicing_qbo_sync_health_retry" | "invoicing_qbo_settings_save" | "invoicing_branding_save" | "invoicing_discount_archive" | "invoicing_discount_unarchive" | "invoicing_discount_delete" | "invoicing_invoice_reminder_sent" | "invoicing_invoice_regenerated" | "invoicing_invoice_voided" | "invoicing_catalog_item_saved" | "invoicing_customer_saved" | "invoicing_subscription_saved" | "invoicing_coupon_saved" | "invoicing_invoice_saved" | "invoicing_credit_note_saved" | "invoicing_payment_recorded" | "invoicing_subscription_activated" | "invoicing_subscription_cancellation_removed" | "invoicing_subscription_cancelled" | "invoicing_subscription_non_renewing" | "invoicing_subscription_paused" | "invoicing_subscription_reactivated" | "invoicing_subscription_resumed" | "invoicing_subscription_term_end_changed";
|
|
2
2
|
export type SnackbarMessageSections = ReturnType<typeof toSnackbarMessageSection>;
|
|
3
3
|
export declare const toSnackbarMessageSectionTexts: (v: string) => "notification" | "failed" | "success";
|
|
4
4
|
export type SnackbarMessageSectionTexts = ReturnType<typeof toSnackbarMessageSectionTexts>;
|
|
@@ -12,5 +12,7 @@ export interface ScheduleTransactionPayload extends TransactionIDPayload, Omit<A
|
|
|
12
12
|
labels?: string[];
|
|
13
13
|
sync_token?: number;
|
|
14
14
|
transaction_description?: string | null;
|
|
15
|
+
vendor_id?: string | null;
|
|
16
|
+
vendor_name?: string | null;
|
|
15
17
|
}
|
|
16
18
|
export declare const toScheduleTransaction: (payload: ScheduleTransactionPayload, currency_code: string, currency_symbol: string) => ScheduleTransaction;
|
|
@@ -33,6 +33,8 @@ const toScheduleTransaction = (payload, currency_code, currency_symbol) => {
|
|
|
33
33
|
currencySymbol: currency_symbol,
|
|
34
34
|
},
|
|
35
35
|
description: payload.transaction_description ?? undefined,
|
|
36
|
+
vendorId: payload.vendor_id ?? undefined,
|
|
37
|
+
vendorName: payload.vendor_name ?? undefined,
|
|
36
38
|
};
|
|
37
39
|
};
|
|
38
40
|
exports.toScheduleTransaction = toScheduleTransaction;
|