@zeniai/client-epic-state 5.2.41-beta6MM → 5.2.41-beta8MM
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/billPay/billTransaction/billTransactionReducer.d.ts +5 -1
- package/lib/entity/billPay/billTransaction/billTransactionReducer.js +17 -2
- package/lib/entity/invoicing/coupon/couponPayload.d.ts +8 -0
- package/lib/entity/invoicing/coupon/couponPayload.js +8 -0
- package/lib/entity/invoicing/coupon/couponState.d.ts +6 -0
- package/lib/entity/invoicing/dunningCase/dunningCaseTypes.d.ts +1 -1
- package/lib/entity/invoicing/plan/planSelector.d.ts +20 -0
- package/lib/entity/invoicing/plan/planSelector.js +42 -0
- package/lib/entity/invoicing/product/productPayload.d.ts +8 -1
- package/lib/entity/invoicing/product/productPayload.js +4 -1
- package/lib/entity/invoicing/product/productState.d.ts +16 -0
- package/lib/entity/jeSchedules/jeSchedulesReducer.d.ts +4 -1
- package/lib/entity/jeSchedules/jeSchedulesReducer.js +79 -5
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +1 -0
- package/lib/entity/task/taskState.d.ts +1 -1
- package/lib/epic.d.ts +4 -1
- package/lib/epic.js +10 -4
- package/lib/esm/entity/billPay/billTransaction/billTransactionReducer.js +16 -1
- package/lib/esm/entity/invoicing/coupon/couponPayload.js +8 -0
- package/lib/esm/entity/invoicing/plan/planSelector.js +39 -0
- package/lib/esm/entity/invoicing/product/productPayload.js +4 -1
- package/lib/esm/entity/jeSchedules/jeSchedulesReducer.js +78 -4
- package/lib/esm/entity/snackbar/snackbarTypes.js +1 -0
- package/lib/esm/epic.js +10 -4
- package/lib/esm/index.js +8 -7
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/ignoreActualMatchingSuggestionEpic.js +3 -2
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchFailedJePostingsEpic.js +39 -0
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.js +14 -1
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +10 -13
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/initializeJeScheduleLocalDataEpic.js +38 -17
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/retryJeSchedulesEpic.js +17 -1
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +15 -4
- package/lib/esm/view/expenseAutomationView/reducers/actualMatchingViewReducer.js +6 -0
- package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +74 -1
- package/lib/esm/view/expenseAutomationView/reducers/reconciliationViewReducer.js +80 -53
- package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +10 -0
- package/lib/esm/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +6 -2
- package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +49 -14
- package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +28 -11
- package/lib/esm/view/invoicing/createInvoice/createInvoiceSelector.js +28 -1
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +67 -35
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer.js +22 -11
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +23 -4
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormHelper.js +1 -7
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +19 -5
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/seedInvoicingCatalogItemFormDraftEpic.js +30 -7
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewPayload.js +16 -1
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js +22 -11
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.js +69 -6
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.js +22 -0
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/fetchInvoicingCouponDetailPageEpic.js +22 -4
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +18 -4
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/seedInvoicingCouponFormDraftEpic.js +29 -6
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.js +28 -12
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +37 -2
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/initializeInvoicingCustomerAddressEpic.js +43 -17
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +1 -1
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/seedInvoicingCustomerFormDraftEpic.js +29 -6
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer.js +30 -14
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +143 -8
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionFormPageEpic.js +4 -1
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/initializeInvoicingSubscriptionAddressEpic.js +44 -18
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +1 -1
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/seedInvoicingSubscriptionFormDraftEpic.js +29 -8
- package/lib/esm/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector.js +12 -0
- package/lib/esm/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState.js +6 -6
- package/lib/esm/view/invoicing/invoicingFormDraft.js +78 -0
- package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +57 -9
- package/lib/esm/view/recommendation/recommendationPayload.js +3 -1
- package/lib/esm/view/recommendation/recommendationReducer.js +27 -7
- package/lib/esm/view/recommendation/recommendationSelector.js +1 -0
- package/lib/esm/view/recommendation/submitRecommendationFeedbackEpic.js +20 -8
- package/lib/esm/view/spendManagement/billPay/billDetailView/billDetailViewReducer.js +87 -1
- package/lib/esm/view/spendManagement/billPay/billDetailView/billDetailViewSelector.js +1 -0
- package/lib/esm/view/spendManagement/billPay/billDetailView/billDetailViewState.js +4 -0
- package/lib/esm/view/spendManagement/billPay/billDetailView/epics/fetchBillRecommendationsEpic.js +97 -0
- package/lib/esm/view/spendManagement/billPay/billDetailView/epics/fetchRecommendationsForBill.js +85 -0
- package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewReducer.js +18 -1
- package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +3 -0
- package/lib/esm/view/spendManagement/billPay/editBillView/epics/applyBillRecommendationsToLocalStoreEpic.js +95 -0
- package/lib/index.d.ts +9 -8
- package/lib/index.js +54 -48
- package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/ignoreActualMatchingSuggestionEpic.js +3 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchFailedJePostingsEpic.d.ts +20 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchFailedJePostingsEpic.js +43 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.js +13 -0
- package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +8 -11
- package/lib/view/expenseAutomationView/epics/jeSchedule/initializeJeScheduleLocalDataEpic.js +38 -17
- package/lib/view/expenseAutomationView/epics/jeSchedule/retryJeSchedulesEpic.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/retryJeSchedulesEpic.js +17 -1
- package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +15 -4
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.d.ts +18 -0
- package/lib/view/expenseAutomationView/payload/transactionCategorizationPayload.d.ts +18 -7
- package/lib/view/expenseAutomationView/reducers/actualMatchingViewReducer.js +6 -0
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +10 -3
- package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +76 -3
- package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.js +80 -53
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +10 -0
- package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +3 -0
- package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +8 -4
- package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.d.ts +1 -0
- package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +7 -2
- package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +49 -14
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +27 -10
- package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +16 -0
- package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +8 -5
- package/lib/view/invoicing/createInvoice/createInvoiceSelector.d.ts +7 -2
- package/lib/view/invoicing/createInvoice/createInvoiceSelector.js +28 -1
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.d.ts +46 -5
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +69 -36
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer.d.ts +3 -1
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer.js +22 -11
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.d.ts +17 -0
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +22 -3
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState.d.ts +2 -1
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormHelper.d.ts +2 -2
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormHelper.js +1 -7
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +17 -3
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/seedInvoicingCatalogItemFormDraftEpic.d.ts +10 -6
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/seedInvoicingCatalogItemFormDraftEpic.js +29 -6
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewPayload.d.ts +5 -1
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewPayload.js +16 -1
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.d.ts +3 -1
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js +22 -11
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.d.ts +46 -0
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.js +68 -5
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.d.ts +21 -1
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState.js +24 -1
- package/lib/view/invoicing/editInvoicingCouponDetailView/fetchInvoicingCouponDetailPageEpic.d.ts +9 -5
- package/lib/view/invoicing/editInvoicingCouponDetailView/fetchInvoicingCouponDetailPageEpic.js +22 -4
- package/lib/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +18 -4
- package/lib/view/invoicing/editInvoicingCouponDetailView/seedInvoicingCouponFormDraftEpic.d.ts +10 -6
- package/lib/view/invoicing/editInvoicingCouponDetailView/seedInvoicingCouponFormDraftEpic.js +28 -5
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.d.ts +5 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.js +29 -13
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.d.ts +16 -7
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +37 -2
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewState.d.ts +8 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/initializeInvoicingCustomerAddressEpic.d.ts +15 -10
- package/lib/view/invoicing/editInvoicingCustomerDetailView/initializeInvoicingCustomerAddressEpic.js +42 -16
- package/lib/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +1 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/seedInvoicingCustomerFormDraftEpic.d.ts +10 -6
- package/lib/view/invoicing/editInvoicingCustomerDetailView/seedInvoicingCustomerFormDraftEpic.js +28 -5
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer.d.ts +5 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer.js +31 -15
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.d.ts +79 -12
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +145 -9
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewState.d.ts +8 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionFormPageEpic.js +4 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/initializeInvoicingSubscriptionAddressEpic.d.ts +15 -11
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/initializeInvoicingSubscriptionAddressEpic.js +42 -16
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +1 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/seedInvoicingSubscriptionFormDraftEpic.d.ts +10 -6
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/seedInvoicingSubscriptionFormDraftEpic.js +28 -7
- package/lib/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector.d.ts +10 -0
- package/lib/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector.js +12 -0
- package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState.d.ts +2 -2
- package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState.js +6 -6
- package/lib/view/invoicing/invoicingFormDraft.d.ts +63 -0
- package/lib/view/invoicing/invoicingFormDraft.js +86 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.d.ts +49 -0
- package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +59 -10
- package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.d.ts +1 -1
- package/lib/view/recommendation/recommendationPayload.d.ts +1 -0
- package/lib/view/recommendation/recommendationPayload.js +5 -0
- package/lib/view/recommendation/recommendationReducer.d.ts +7 -1
- package/lib/view/recommendation/recommendationReducer.js +28 -8
- package/lib/view/recommendation/recommendationSelector.d.ts +2 -0
- package/lib/view/recommendation/recommendationSelector.js +3 -1
- package/lib/view/recommendation/recommendationState.d.ts +2 -1
- package/lib/view/recommendation/submitRecommendationFeedbackEpic.d.ts +2 -2
- package/lib/view/recommendation/submitRecommendationFeedbackEpic.js +18 -6
- package/lib/view/spendManagement/billPay/billDetailView/billDetailViewPayload.d.ts +19 -0
- package/lib/view/spendManagement/billPay/billDetailView/billDetailViewReducer.d.ts +10 -1
- package/lib/view/spendManagement/billPay/billDetailView/billDetailViewReducer.js +88 -2
- package/lib/view/spendManagement/billPay/billDetailView/billDetailViewSelector.d.ts +1 -0
- package/lib/view/spendManagement/billPay/billDetailView/billDetailViewSelector.js +1 -0
- package/lib/view/spendManagement/billPay/billDetailView/billDetailViewState.d.ts +7 -0
- package/lib/view/spendManagement/billPay/billDetailView/billDetailViewState.js +4 -0
- package/lib/view/spendManagement/billPay/billDetailView/epics/fetchBillRecommendationsEpic.d.ts +37 -0
- package/lib/view/spendManagement/billPay/billDetailView/epics/fetchBillRecommendationsEpic.js +104 -0
- package/lib/view/spendManagement/billPay/billDetailView/epics/fetchRecommendationsForBill.d.ts +24 -0
- package/lib/view/spendManagement/billPay/billDetailView/epics/fetchRecommendationsForBill.js +92 -0
- package/lib/view/spendManagement/billPay/editBillView/editBillViewReducer.d.ts +4 -1
- package/lib/view/spendManagement/billPay/editBillView/editBillViewReducer.js +19 -2
- package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +1 -0
- package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +3 -0
- package/lib/view/spendManagement/billPay/editBillView/epics/applyBillRecommendationsToLocalStoreEpic.d.ts +18 -0
- package/lib/view/spendManagement/billPay/editBillView/epics/applyBillRecommendationsToLocalStoreEpic.js +102 -0
- package/package.json +2 -2
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { BulkActionItemResponsePayload } from '../../../view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewPayload';
|
|
2
|
+
import { RecommendationByLineId } from '../../transaction/stateTypes/transaction';
|
|
2
3
|
import { BillTransactionPayload } from './billTransactionPayload';
|
|
3
4
|
import { BillTransactionState } from './billTransactionState';
|
|
4
5
|
export declare const initialState: BillTransactionState;
|
|
5
|
-
export declare const updateBillTransactions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BillTransactionPayload[], "billTransaction/updateBillTransactions">, updateBillTransaction: import("@reduxjs/toolkit").ActionCreatorWithPayload<BillTransactionPayload, "billTransaction/updateBillTransaction">,
|
|
6
|
+
export declare const updateBillTransactions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BillTransactionPayload[], "billTransaction/updateBillTransactions">, updateBillTransaction: import("@reduxjs/toolkit").ActionCreatorWithPayload<BillTransactionPayload, "billTransaction/updateBillTransaction">, updateBillTransactionRecommendations: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[billId: string, recommendations: RecommendationByLineId], {
|
|
7
|
+
billId: string;
|
|
8
|
+
recommendations: RecommendationByLineId;
|
|
9
|
+
}, "billTransaction/updateBillTransactionRecommendations", never, never>, updateBillTransactionsWithBulkActionStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<BulkActionItemResponsePayload[], "billTransaction/updateBillTransactionsWithBulkActionStatus">, removeBillTransaction: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "billTransaction/removeBillTransaction">;
|
|
6
10
|
declare const _default: import("redux").Reducer<BillTransactionState>;
|
|
7
11
|
export default _default;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.removeBillTransaction = exports.updateBillTransactionsWithBulkActionStatus = exports.updateBillTransaction = exports.updateBillTransactions = exports.initialState = void 0;
|
|
7
|
+
exports.removeBillTransaction = exports.updateBillTransactionsWithBulkActionStatus = exports.updateBillTransactionRecommendations = exports.updateBillTransaction = exports.updateBillTransactions = 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");
|
|
@@ -30,6 +30,21 @@ const billTransaction = (0, toolkit_1.createSlice)({
|
|
|
30
30
|
doUpdateBillTransactionWithBulkActionStatus(draft.transactionById, transactionPayload.entity_id, transactionPayload);
|
|
31
31
|
});
|
|
32
32
|
},
|
|
33
|
+
// Separate from `updateBillTransaction` because that mapper only derives
|
|
34
|
+
// `recommendations` from a transaction payload; the bill detail response
|
|
35
|
+
// carries none when recommendation composition is skipped.
|
|
36
|
+
updateBillTransactionRecommendations: {
|
|
37
|
+
reducer(draft, action) {
|
|
38
|
+
const { billId, recommendations } = action.payload;
|
|
39
|
+
const transaction = draft.transactionById[billId];
|
|
40
|
+
if (transaction != null) {
|
|
41
|
+
transaction.recommendations = recommendations;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
prepare(billId, recommendations) {
|
|
45
|
+
return { payload: { billId, recommendations } };
|
|
46
|
+
},
|
|
47
|
+
},
|
|
33
48
|
removeBillTransaction(draft, action) {
|
|
34
49
|
delete draft.transactionById[action.payload];
|
|
35
50
|
},
|
|
@@ -40,7 +55,7 @@ const billTransaction = (0, toolkit_1.createSlice)({
|
|
|
40
55
|
});
|
|
41
56
|
},
|
|
42
57
|
});
|
|
43
|
-
_a = billTransaction.actions, exports.updateBillTransactions = _a.updateBillTransactions, exports.updateBillTransaction = _a.updateBillTransaction, exports.updateBillTransactionsWithBulkActionStatus = _a.updateBillTransactionsWithBulkActionStatus, exports.removeBillTransaction = _a.removeBillTransaction;
|
|
58
|
+
_a = billTransaction.actions, exports.updateBillTransactions = _a.updateBillTransactions, exports.updateBillTransaction = _a.updateBillTransaction, exports.updateBillTransactionRecommendations = _a.updateBillTransactionRecommendations, exports.updateBillTransactionsWithBulkActionStatus = _a.updateBillTransactionsWithBulkActionStatus, exports.removeBillTransaction = _a.removeBillTransaction;
|
|
44
59
|
exports.default = billTransaction.reducer;
|
|
45
60
|
/**
|
|
46
61
|
* Helper functions
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AccountBasePayload } from '../../account/accountPayload';
|
|
1
2
|
import { InvoicingCoupon } from './couponState';
|
|
2
3
|
import { InvoicingCouponApplyOn, InvoicingCouponDurationType, InvoicingCouponPeriodUnit, InvoicingCouponStatus, InvoicingDiscountType } from './couponTypes';
|
|
3
4
|
export interface InvoicingCouponPayload {
|
|
@@ -11,6 +12,13 @@ export interface InvoicingCouponPayload {
|
|
|
11
12
|
discount_percentage?: number;
|
|
12
13
|
discount_quantity?: number;
|
|
13
14
|
discount_type?: InvoicingDiscountType;
|
|
15
|
+
/**
|
|
16
|
+
* The income account this coupon's discount line posts to. Stored as an
|
|
17
|
+
* `{account_id}` and hydrated on read, the same shape the QBO settings
|
|
18
|
+
* mappings use; `null` when the coupon has none and the settings default
|
|
19
|
+
* applies instead.
|
|
20
|
+
*/
|
|
21
|
+
discounts_account?: Partial<AccountBasePayload> | null;
|
|
14
22
|
duration_type?: InvoicingCouponDurationType;
|
|
15
23
|
invoice_name?: string;
|
|
16
24
|
invoice_notes?: string;
|
|
@@ -4,6 +4,7 @@ exports.mapInvoicingCouponPayloadToState = void 0;
|
|
|
4
4
|
const amount_1 = require("../../../commonStateTypes/amount");
|
|
5
5
|
const currencyHelper_1 = require("../../../commonStateTypes/currencyHelper");
|
|
6
6
|
const zeniDayJS_1 = require("../../../zeniDayJS");
|
|
7
|
+
const invoicingCommonPayload_1 = require("../invoicingCommonPayload");
|
|
7
8
|
// ── Payload → State mappers (snake_case wire shape → camelCase domain shape) ──
|
|
8
9
|
const mapInvoicingCouponPayloadToState = (payload) => {
|
|
9
10
|
const currencyCode = payload.currency_code ?? currencyHelper_1.defaultCustomerCurrency.currencyCode;
|
|
@@ -20,6 +21,13 @@ const mapInvoicingCouponPayloadToState = (payload) => {
|
|
|
20
21
|
discountPercentage: payload.discount_percentage,
|
|
21
22
|
discountQuantity: payload.discount_quantity,
|
|
22
23
|
discountType: payload.discount_type,
|
|
24
|
+
// The QuickBooks id first, for the reason `firstSelectableInvoicingId`
|
|
25
|
+
// documents: the form's picker is keyed on it, so reading the internal id
|
|
26
|
+
// would leave the field blank over an account that is set.
|
|
27
|
+
discountsAccountId: (0, invoicingCommonPayload_1.firstSelectableInvoicingId)([
|
|
28
|
+
payload.discounts_account?.qbo_id,
|
|
29
|
+
payload.discounts_account?.account_id,
|
|
30
|
+
]),
|
|
23
31
|
durationType: payload.duration_type,
|
|
24
32
|
invoiceName: payload.invoice_name,
|
|
25
33
|
invoiceNotes: payload.invoice_notes,
|
|
@@ -11,6 +11,12 @@ export interface InvoicingCoupon {
|
|
|
11
11
|
discountAmount?: Amount;
|
|
12
12
|
discountPercentage?: number;
|
|
13
13
|
discountQuantity?: number;
|
|
14
|
+
/**
|
|
15
|
+
* The income account for this coupon's discount line, as the id its picker
|
|
16
|
+
* submits. Absent when the coupon has none, which is what makes the QBO
|
|
17
|
+
* settings discounts account apply instead.
|
|
18
|
+
*/
|
|
19
|
+
discountsAccountId?: ID;
|
|
14
20
|
discountType?: InvoicingDiscountType;
|
|
15
21
|
durationType?: InvoicingCouponDurationType;
|
|
16
22
|
invoiceName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type InvoicingDunningStatus = '
|
|
1
|
+
export type InvoicingDunningStatus = 'retrying' | 'scheduled' | 'manual_review' | 'resolved' | 'cancelled' | 'paused';
|
|
@@ -1,4 +1,24 @@
|
|
|
1
|
+
import { Amount } from '../../../commonStateTypes/amount';
|
|
1
2
|
import { ID } from '../../../commonStateTypes/common';
|
|
3
|
+
import { InvoicingProduct } from '../product/productState';
|
|
2
4
|
import { InvoicingPlan, InvoicingPlanState } from './planState';
|
|
3
5
|
export declare function getInvoicingPlansByIds(planState: InvoicingPlanState, ids: ID[]): InvoicingPlan[];
|
|
4
6
|
export declare function getInvoicingPlanById(planState: InvoicingPlanState, id: ID): InvoicingPlan | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* The amount to show for one price point: what the service computed for a
|
|
9
|
+
* single unit. `price` is only a fallback for responses predating
|
|
10
|
+
* `display_price` — reading it first would show `0` for every tiered, volume
|
|
11
|
+
* and stairstep model, whose configured price is legitimately zero because the
|
|
12
|
+
* money lives in its tiers.
|
|
13
|
+
*/
|
|
14
|
+
export declare const invoicingPricePointDisplayAmount: (pricePoint: InvoicingProduct) => Amount | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* The lowest amount a catalog item can be bought at: the smallest single-unit
|
|
17
|
+
* price across its active price points.
|
|
18
|
+
*
|
|
19
|
+
* Undefined rather than a number when there is nothing to compare — no active
|
|
20
|
+
* price points, or none carrying an amount — and equally when the active price
|
|
21
|
+
* points are priced in different currencies, where the smallest number is not
|
|
22
|
+
* the lowest price. A zero is a real price and wins on its merits.
|
|
23
|
+
*/
|
|
24
|
+
export declare const getLowestInvoicingPlanPricePointAmount: (plan: InvoicingPlan | undefined) => Amount | undefined;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getLowestInvoicingPlanPricePointAmount = exports.invoicingPricePointDisplayAmount = void 0;
|
|
6
7
|
exports.getInvoicingPlansByIds = getInvoicingPlansByIds;
|
|
7
8
|
exports.getInvoicingPlanById = getInvoicingPlanById;
|
|
8
9
|
const get_1 = __importDefault(require("lodash/get"));
|
|
@@ -15,3 +16,44 @@ function getInvoicingPlansByIds(planState, ids) {
|
|
|
15
16
|
function getInvoicingPlanById(planState, id) {
|
|
16
17
|
return (0, get_1.default)(planState.planByID, id);
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* A price point counts while it is active. A missing status is treated as
|
|
21
|
+
* active: the list responses omit it for items that have never been archived.
|
|
22
|
+
*/
|
|
23
|
+
const isActiveInvoicingPricePoint = (pricePoint) => pricePoint.status == null || pricePoint.status === 'active';
|
|
24
|
+
/**
|
|
25
|
+
* The amount to show for one price point: what the service computed for a
|
|
26
|
+
* single unit. `price` is only a fallback for responses predating
|
|
27
|
+
* `display_price` — reading it first would show `0` for every tiered, volume
|
|
28
|
+
* and stairstep model, whose configured price is legitimately zero because the
|
|
29
|
+
* money lives in its tiers.
|
|
30
|
+
*/
|
|
31
|
+
const invoicingPricePointDisplayAmount = (pricePoint) => pricePoint.displayPrice ?? pricePoint.price;
|
|
32
|
+
exports.invoicingPricePointDisplayAmount = invoicingPricePointDisplayAmount;
|
|
33
|
+
/**
|
|
34
|
+
* The lowest amount a catalog item can be bought at: the smallest single-unit
|
|
35
|
+
* price across its active price points.
|
|
36
|
+
*
|
|
37
|
+
* Undefined rather than a number when there is nothing to compare — no active
|
|
38
|
+
* price points, or none carrying an amount — and equally when the active price
|
|
39
|
+
* points are priced in different currencies, where the smallest number is not
|
|
40
|
+
* the lowest price. A zero is a real price and wins on its merits.
|
|
41
|
+
*/
|
|
42
|
+
const getLowestInvoicingPlanPricePointAmount = (plan) => {
|
|
43
|
+
const amounts = (plan?.subFamilies ?? [])
|
|
44
|
+
.filter(isActiveInvoicingPricePoint)
|
|
45
|
+
.map(exports.invoicingPricePointDisplayAmount)
|
|
46
|
+
.filter((amount) => amount != null);
|
|
47
|
+
if (amounts.length === 0) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const [firstAmount] = amounts;
|
|
51
|
+
if (amounts.some((amount) => amount.currencyCode !== firstAmount.currencyCode)) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
// `reduce` keeps the earlier of two equal amounts, so a tie resolves to the
|
|
55
|
+
// price point listed first rather than to whichever the comparison happened
|
|
56
|
+
// to visit last.
|
|
57
|
+
return amounts.reduce((lowest, amount) => amount.amount < lowest.amount ? amount : lowest);
|
|
58
|
+
};
|
|
59
|
+
exports.getLowestInvoicingPlanPricePointAmount = getLowestInvoicingPlanPricePointAmount;
|
|
@@ -34,6 +34,13 @@ export interface InvoicingProductPayload {
|
|
|
34
34
|
currency_code?: string;
|
|
35
35
|
currency_symbol?: string;
|
|
36
36
|
description?: string;
|
|
37
|
+
/**
|
|
38
|
+
* What one unit of this price point costs, computed by the service. Read-only
|
|
39
|
+
* and never sent back: `price` stays the configured scalar the create/edit
|
|
40
|
+
* flows own, which for a tiered, volume or stairstep model is legitimately
|
|
41
|
+
* `0` because the money lives in `tiers`.
|
|
42
|
+
*/
|
|
43
|
+
display_price?: number;
|
|
37
44
|
enabled?: boolean;
|
|
38
45
|
enabled_for_checkout?: boolean;
|
|
39
46
|
enabled_in_portal?: boolean;
|
|
@@ -53,7 +60,7 @@ export interface InvoicingProductPayload {
|
|
|
53
60
|
period_unit?: string;
|
|
54
61
|
price?: number;
|
|
55
62
|
price_code?: string;
|
|
56
|
-
pricing_model?: string;
|
|
63
|
+
pricing_model?: string | null;
|
|
57
64
|
product_code?: string;
|
|
58
65
|
proration_type?: string;
|
|
59
66
|
shipping_period?: number;
|
|
@@ -47,6 +47,9 @@ const mapInvoicingProductPayloadToState = (payload) => {
|
|
|
47
47
|
createdAt: payload.created_at != null ? (0, zeniDayJS_1.date)(payload.created_at) : undefined,
|
|
48
48
|
currencyCode: payload.currency_code,
|
|
49
49
|
description: payload.description,
|
|
50
|
+
displayPrice: payload.display_price != null
|
|
51
|
+
? (0, amount_1.toAmount)(payload.display_price, currencyCode, currencySymbol)
|
|
52
|
+
: undefined,
|
|
50
53
|
enabled: payload.enabled,
|
|
51
54
|
enabledForCheckout: payload.enabled_for_checkout,
|
|
52
55
|
enabledInPortal: payload.enabled_in_portal,
|
|
@@ -68,7 +71,7 @@ const mapInvoicingProductPayloadToState = (payload) => {
|
|
|
68
71
|
? (0, amount_1.toAmount)(payload.price, currencyCode, currencySymbol)
|
|
69
72
|
: undefined,
|
|
70
73
|
priceCode: payload.price_code,
|
|
71
|
-
pricingModel: payload.pricing_model,
|
|
74
|
+
pricingModel: payload.pricing_model ?? undefined,
|
|
72
75
|
productCode: payload.product_code,
|
|
73
76
|
prorationType: payload.proration_type,
|
|
74
77
|
shippingPeriod: payload.shipping_period,
|
|
@@ -16,6 +16,11 @@ export interface InvoicingAccountingDetail {
|
|
|
16
16
|
accountingCode?: string;
|
|
17
17
|
sku?: string;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Pricing models the catalog supports. The service has no enum for them yet,
|
|
21
|
+
* so this union is the single place they are named on the client.
|
|
22
|
+
*/
|
|
23
|
+
export type InvoicingCatalogPricingModel = 'flat_fee' | 'per_unit' | 'tiered' | 'volume' | 'stairstep';
|
|
19
24
|
export interface InvoicingProduct {
|
|
20
25
|
id: ID;
|
|
21
26
|
accountingDetail?: InvoicingAccountingDetail;
|
|
@@ -25,6 +30,12 @@ export interface InvoicingProduct {
|
|
|
25
30
|
createdAt?: ZeniDate;
|
|
26
31
|
currencyCode?: string;
|
|
27
32
|
description?: string;
|
|
33
|
+
/**
|
|
34
|
+
* What one unit costs, as the service computes it. Unlike {@link price} — the
|
|
35
|
+
* configured scalar, which a tiered model stores as `0` — this is the amount
|
|
36
|
+
* to show.
|
|
37
|
+
*/
|
|
38
|
+
displayPrice?: Amount;
|
|
28
39
|
enabled?: boolean;
|
|
29
40
|
enabledForCheckout?: boolean;
|
|
30
41
|
enabledInPortal?: boolean;
|
|
@@ -44,6 +55,11 @@ export interface InvoicingProduct {
|
|
|
44
55
|
periodUnit?: string;
|
|
45
56
|
price?: Amount;
|
|
46
57
|
priceCode?: string;
|
|
58
|
+
/**
|
|
59
|
+
* One of [[InvoicingCatalogPricingModel]] for records written by this app;
|
|
60
|
+
* kept `string` because the service has no enum yet and imports may carry
|
|
61
|
+
* other values. Absent means `per_unit` (the service default).
|
|
62
|
+
*/
|
|
47
63
|
pricingModel?: string;
|
|
48
64
|
productCode?: string;
|
|
49
65
|
prorationType?: string;
|
|
@@ -22,7 +22,10 @@ export declare const updateJESchedules: import("@reduxjs/toolkit").ActionCreator
|
|
|
22
22
|
jeScheduleTransactionKey: `${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}`;
|
|
23
23
|
}, "jeSchedules/deleteJESchedulesDetails", never, never>, deleteAccruedJESchedulesDetails: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[JEScheduleKey: `${string}_${string}`], {
|
|
24
24
|
JEScheduleKey: `${string}_${string}`;
|
|
25
|
-
}, "jeSchedules/deleteAccruedJESchedulesDetails", never, never>, clearAllAccruedJESchedules: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"jeSchedules/clearAllAccruedJESchedules">, clearAllJEScheduleTransactions: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"jeSchedules/clearAllJEScheduleTransactions">,
|
|
25
|
+
}, "jeSchedules/deleteAccruedJESchedulesDetails", never, never>, clearAllAccruedJESchedules: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"jeSchedules/clearAllAccruedJESchedules">, clearAllJEScheduleTransactions: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"jeSchedules/clearAllJEScheduleTransactions">, removeScheduledJournalEntryFromJESchedule: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeScheduleTransactionKey: `${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}`, scheduledJournalEntryID: string], {
|
|
26
|
+
jeScheduleTransactionKey: `${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}`;
|
|
27
|
+
scheduledJournalEntryID: string;
|
|
28
|
+
}, "jeSchedules/removeScheduledJournalEntryFromJESchedule", never, never>, updateJEOneTimeAccruals: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeOneTimeAccrualsPayload: JEOneTimeAccrualPayload[]], {
|
|
26
29
|
jeOneTimeAccrualsPayload: JEOneTimeAccrualPayload[];
|
|
27
30
|
}, "jeSchedules/updateJEOneTimeAccruals", never, never>;
|
|
28
31
|
declare const _default: import("redux").Reducer<JESchedulesState>;
|
|
@@ -4,9 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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;
|
|
7
|
+
exports.updateJEOneTimeAccruals = exports.removeScheduledJournalEntryFromJESchedule = 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
|
+
const omit_1 = __importDefault(require("lodash/omit"));
|
|
10
11
|
const rootActions_1 = require("../../rootActions");
|
|
11
12
|
const jeScheduleHelper_1 = require("./jeScheduleHelper");
|
|
12
13
|
const jeSchedulesPayload_1 = require("./jeSchedulesPayload");
|
|
@@ -137,6 +138,27 @@ const jeSchedules = (0, toolkit_1.createSlice)({
|
|
|
137
138
|
});
|
|
138
139
|
},
|
|
139
140
|
},
|
|
141
|
+
/**
|
|
142
|
+
* Drops one journal entry from a schedule, leaving the schedule and its other entries.
|
|
143
|
+
*
|
|
144
|
+
* A schedule that failed to post in several months is one schedule key and several rows on the
|
|
145
|
+
* Failed Postings list. Resolving one of them must retire only that row -- removing the whole
|
|
146
|
+
* schedule key took the still-failing months off the list with it, where nothing would surface
|
|
147
|
+
* them again.
|
|
148
|
+
*/
|
|
149
|
+
removeScheduledJournalEntryFromJESchedule: {
|
|
150
|
+
prepare(jeScheduleTransactionKey, scheduledJournalEntryID) {
|
|
151
|
+
return { payload: { jeScheduleTransactionKey, scheduledJournalEntryID } };
|
|
152
|
+
},
|
|
153
|
+
reducer(draft, action) {
|
|
154
|
+
const { jeScheduleTransactionKey, scheduledJournalEntryID } = action.payload;
|
|
155
|
+
const schedule = draft.schedulesByTransactionKey[jeScheduleTransactionKey];
|
|
156
|
+
if (schedule == null) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
schedule.scheduledJournalEntry = schedule.scheduledJournalEntry.filter((journalEntry) => journalEntry.scheduledJournalEntryID !== scheduledJournalEntryID);
|
|
160
|
+
},
|
|
161
|
+
},
|
|
140
162
|
clearAllJEScheduleTransactions(draft) {
|
|
141
163
|
draft.schedulesByTransactionKey = {};
|
|
142
164
|
},
|
|
@@ -152,7 +174,7 @@ const jeSchedules = (0, toolkit_1.createSlice)({
|
|
|
152
174
|
});
|
|
153
175
|
},
|
|
154
176
|
});
|
|
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;
|
|
177
|
+
_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.removeScheduledJournalEntryFromJESchedule = _a.removeScheduledJournalEntryFromJESchedule, exports.updateJEOneTimeAccruals = _a.updateJEOneTimeAccruals;
|
|
156
178
|
exports.default = jeSchedules.reducer;
|
|
157
179
|
/**
|
|
158
180
|
* Helper functions
|
|
@@ -161,7 +183,13 @@ function doUpdateJEScheduledTransaction(draft, id, payload, updateType) {
|
|
|
161
183
|
const jeTransaction = (0, jeSchedulesPayload_1.toJEScheduledTransaction)(payload);
|
|
162
184
|
const existingTransaction = draft[id];
|
|
163
185
|
if (existingTransaction != null && updateType === 'merge') {
|
|
164
|
-
|
|
186
|
+
// scheduledJournalEntry is held back from the merge. The list payload never carries journal
|
|
187
|
+
// entries -- toJEScheduledTransaction always sets [] -- and [] is not nullish, so the
|
|
188
|
+
// customizer below would treat it as a value and wipe whatever updateJESchedulesDetails had
|
|
189
|
+
// already written. Only the details action may write this field. It is still set on the
|
|
190
|
+
// insert path below, so it is always present.
|
|
191
|
+
const mergeable = (0, omit_1.default)(jeTransaction, ['scheduledJournalEntry']);
|
|
192
|
+
(0, assignWith_1.default)(draft[id], mergeable, (objValue, srcValue) => srcValue ?? objValue); // IMPORTANT: replace the value only when source has valid value. Otherwise keep the existing value!
|
|
165
193
|
}
|
|
166
194
|
else {
|
|
167
195
|
draft[id] = jeTransaction;
|
|
@@ -180,6 +208,32 @@ function doUpdateJEAccruedScheduledTransaction(draft, id, payload, updateType) {
|
|
|
180
208
|
/**
|
|
181
209
|
* Helper functions
|
|
182
210
|
*/
|
|
211
|
+
/**
|
|
212
|
+
* Upserts `incomingEntries` into `existingEntries`, matched on scheduledJournalEntryID.
|
|
213
|
+
*
|
|
214
|
+
* A details payload carries only the entries its caller asked for, never a statement about the
|
|
215
|
+
* complete set: the detail fetch sends every month of a schedule, fetchFailedJePostingsEpic sends
|
|
216
|
+
* only the currently-failing ones. Replacing the array wholesale therefore let a tenant-wide
|
|
217
|
+
* failures refresh shrink a schedule whose Quick View had already loaded all of its months, and
|
|
218
|
+
* the posted ones silently vanished from the store until the detail call ran again.
|
|
219
|
+
*
|
|
220
|
+
* Each writer owns only the entries it actually sent. Callers that do hold the authoritative list
|
|
221
|
+
* pass updateType 'replace' and skip this path entirely.
|
|
222
|
+
*/
|
|
223
|
+
function mergeScheduledJournalEntries(existingEntries, incomingEntries) {
|
|
224
|
+
const incomingEntryByID = new Map(incomingEntries.map((incomingEntry) => [
|
|
225
|
+
incomingEntry.scheduledJournalEntryID,
|
|
226
|
+
incomingEntry,
|
|
227
|
+
]));
|
|
228
|
+
const existingEntryIDs = new Set(existingEntries.map((existingEntry) => existingEntry.scheduledJournalEntryID));
|
|
229
|
+
// Existing order is preserved so a re-fetch cannot reshuffle rows under the user; entries the
|
|
230
|
+
// store has not seen before are appended.
|
|
231
|
+
return [
|
|
232
|
+
...existingEntries.map((existingEntry) => incomingEntryByID.get(existingEntry.scheduledJournalEntryID) ??
|
|
233
|
+
existingEntry),
|
|
234
|
+
...incomingEntries.filter((incomingEntry) => !existingEntryIDs.has(incomingEntry.scheduledJournalEntryID)),
|
|
235
|
+
];
|
|
236
|
+
}
|
|
183
237
|
function doUpdateAccruedScheduledDetailTransaction(draft, id, jeSchedulePayload, scheduleJournalEntries, updateType) {
|
|
184
238
|
const jeTransaction = (0, jeSchedulesPayload_1.toJEAccruedScheduledTransaction)(jeSchedulePayload);
|
|
185
239
|
const { currencyCode, currencySymbol } = jeTransaction;
|
|
@@ -190,7 +244,17 @@ function doUpdateAccruedScheduledDetailTransaction(draft, id, jeSchedulePayload,
|
|
|
190
244
|
}
|
|
191
245
|
const existingTransaction = draft[id];
|
|
192
246
|
if (existingTransaction != null && updateType === 'merge') {
|
|
193
|
-
|
|
247
|
+
// An empty array here means "this payload carried no entries for this schedule", not "this
|
|
248
|
+
// schedule has none" -- and [] is not nullish, so the customizer below would treat it as a
|
|
249
|
+
// value and clear entries another call already wrote. Only overwrite when there is something
|
|
250
|
+
// to write.
|
|
251
|
+
const mergeable = scheduledJournalEntries.length > 0
|
|
252
|
+
? {
|
|
253
|
+
...jeTransaction,
|
|
254
|
+
scheduledJournalEntry: mergeScheduledJournalEntries(existingTransaction.scheduledJournalEntry, scheduledJournalEntries),
|
|
255
|
+
}
|
|
256
|
+
: (0, omit_1.default)(jeTransaction, ['scheduledJournalEntry']);
|
|
257
|
+
(0, assignWith_1.default)(draft[id], mergeable, (objValue, srcValue) => srcValue ?? objValue); // IMPORTANT: replace the value only when source has valid value. Otherwise keep the existing value!
|
|
194
258
|
}
|
|
195
259
|
else {
|
|
196
260
|
draft[id] = {
|
|
@@ -210,7 +274,17 @@ function doUpdateScheduledDetailTransaction(draft, id, jeSchedulePayload, schedu
|
|
|
210
274
|
}
|
|
211
275
|
const existingTransaction = draft[id];
|
|
212
276
|
if (existingTransaction != null && updateType === 'merge') {
|
|
213
|
-
|
|
277
|
+
// An empty array here means "this payload carried no entries for this schedule", not "this
|
|
278
|
+
// schedule has none" -- and [] is not nullish, so the customizer below would treat it as a
|
|
279
|
+
// value and clear entries another call already wrote. Only overwrite when there is something
|
|
280
|
+
// to write.
|
|
281
|
+
const mergeable = scheduledJournalEntries.length > 0
|
|
282
|
+
? {
|
|
283
|
+
...jeTransaction,
|
|
284
|
+
scheduledJournalEntry: mergeScheduledJournalEntries(existingTransaction.scheduledJournalEntry, scheduledJournalEntries),
|
|
285
|
+
}
|
|
286
|
+
: (0, omit_1.default)(jeTransaction, ['scheduledJournalEntry']);
|
|
287
|
+
(0, assignWith_1.default)(draft[id], mergeable, (objValue, srcValue) => srcValue ?? objValue); // IMPORTANT: replace the value only when source has valid value. Otherwise keep the existing value!
|
|
214
288
|
}
|
|
215
289
|
else {
|
|
216
290
|
draft[id] = {
|
|
@@ -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" | "actual_matching_match_and_reverse" | "actual_matching_undo_reversal" | "actual_matching_ignore_suggestion" | "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";
|
|
1
|
+
export declare const toSnackbarMessageSection: (v: string) => "common" | "recommendation_feedback" | "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" | "actual_matching_match_and_reverse" | "actual_matching_undo_reversal" | "actual_matching_ignore_suggestion" | "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>;
|
|
@@ -4,6 +4,7 @@ exports.toSnackbarMessageSectionTexts = exports.toSnackbarMessageSection = void
|
|
|
4
4
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
5
5
|
const ALL_SNACKBAR_MESSAGE_SECTIONS = [
|
|
6
6
|
'common',
|
|
7
|
+
'recommendation_feedback',
|
|
7
8
|
'transactionDetails_updatingPastTransactions',
|
|
8
9
|
'transactionDetails_transactionUpdated',
|
|
9
10
|
'cockpit_month_end_email_sent',
|
|
@@ -50,7 +50,7 @@ export declare const toPriorityCodeType: (v: string) => "urgent" | "high" | "nor
|
|
|
50
50
|
export declare const toPriorityCodeTypeStrict: (v?: string) => "urgent" | "high" | "normal" | "medium" | "low" | undefined;
|
|
51
51
|
export type PriorityCodeType = ReturnType<typeof toPriorityCodeType>;
|
|
52
52
|
export declare const ALL_TASK_STATUS_CODE: readonly ["todo", "in_progress", "on_hold", "done", "resolved"];
|
|
53
|
-
export declare const toTaskStatusCodeType: (v: string) => "in_progress" | "
|
|
53
|
+
export declare const toTaskStatusCodeType: (v: string) => "in_progress" | "resolved" | "todo" | "on_hold" | "done";
|
|
54
54
|
export type TaskStatusCodeType = ReturnType<typeof toTaskStatusCodeType>;
|
|
55
55
|
export declare const toTaskCodeType: (v: string) => "one_time" | "recurring";
|
|
56
56
|
export type TaskCodeType = NonNullable<ReturnType<typeof toTaskCodeType>>;
|