@zeniai/client-epic-state 4.18.0 → 4.18.3
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/commonPayloadTypes/recommendationPayload.d.ts +19 -0
- package/lib/entity/account/accountPayload.d.ts +3 -2
- package/lib/entity/account/accountPayload.js +10 -1
- package/lib/entity/class/classPayload.d.ts +3 -2
- package/lib/entity/class/classPayload.js +9 -0
- package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
- package/lib/entity/tenant/clearAllEpic.js +2 -0
- package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +3 -2
- package/lib/entity/transaction/payloadTypes/transactionPayload.js +51 -1
- package/lib/entity/transaction/transactionHelper.d.ts +1 -0
- package/lib/entity/transaction/transactionHelper.js +13 -0
- package/lib/epic.d.ts +2 -1
- package/lib/epic.js +2 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +6 -1
- package/lib/reducer.d.ts +3 -0
- package/lib/reducer.js +3 -0
- package/lib/view/commonVendorView/vendorView/epics/saveVendorEpic.js +1 -1
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +3 -3
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +2 -2
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +3 -3
- package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.js +11 -6
- package/lib/view/recommendation/recommendationHelper.d.ts +5 -3
- package/lib/view/recommendation/recommendationHelper.js +31 -1
- package/lib/view/recommendation/recommendationPayload.d.ts +5 -1
- package/lib/view/recommendation/recommendationReducer.d.ts +2 -1
- package/lib/view/recommendation/recommendationReducer.js +2 -1
- package/lib/view/spendManagement/treasury/treasuryList/epics/fetchTreasuryDetailEpic.d.ts +2 -1
- package/lib/view/spendManagement/treasury/treasuryList/epics/fetchTreasuryDetailEpic.js +7 -0
- package/lib/view/spendManagement/treasury/treasuryStatementList/fetchTreasuryStatementListEpic.js +2 -1
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/fetchTreasuryTaxLetterListEpic.d.ts +7 -0
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/fetchTreasuryTaxLetterListEpic.js +42 -0
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer.d.ts +15 -0
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer.js +57 -0
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector.d.ts +7 -0
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector.js +18 -0
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListState.d.ts +6 -0
- package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListState.js +11 -0
- package/lib/view/transactionDetail/transactionDetailLocalDataHelper.d.ts +3 -3
- package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +1 -4
- package/lib/view/transactionDetail/transactionDetailReducer.d.ts +3 -3
- package/lib/view/transactionDetail/transactionDetailReducer.js +4 -4
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -65,7 +65,8 @@ exports.resetVendorFirstReviewLocalData = exports.updateVendorFirstReviewViewScr
|
|
|
65
65
|
exports.bulkUpdateTaskList = exports.discardTaskUpdatesInLocalStore = exports.deleteTask = exports.TASK_LIST_GROUP_BY_CATEGORIES = exports.TASK_LIST_FILTER_CATEGORIES = exports.updateTaskFilters = exports.allTaskPriority = exports.allTaskStatus = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.archiveTask = exports.saveTaskDetail = exports.saveTaskUpdatesToLocalStore = exports.fetchTaskDetailPage = exports.getTaskDetail = exports.fetchTaskListPage = exports.getAllTasks = exports.toRecurringBillFrequencyStrict = exports.toRecurringBillFrequency = exports.updateArAgingNodeCollapseState = exports.getArAgingDetailForCustomer = exports.getArAgingReport = exports.updateArAgingDetailUIState = exports.fetchArAgingDetail = exports.updateArAgingUIState = exports.fetchArAging = exports.updateVendorGlobalReviewViewLocalData = exports.toVendorGlobalReviewColumnSortKeyType = exports.getTenantMerchantByMerchantId = exports.getVendorGlobalReviewView = exports.updateVendorGlobalReviewViewUIState = exports.updateSelectedGlobalMerchant = exports.fetchVendorGlobalReviewView = exports.rejectVendorGlobalReview = exports.approveVendorGlobalReview = exports.getGlobalMerchantView = exports.clearGlobalMerchantView = exports.updateCreateGlobalMerchantLocalData = exports.createGlobalMerchant = exports.fetchGlobalMerchantRecommendation = exports.getVendorDetailSelectorView = exports.saveVendorDetailsView = exports.updateReviewVendorDetailLocalData = exports.clearGlobalMerchantAutoCompleteResults = exports.fetchGlobalMerchantAutoCompleteView = exports.updateVendorFirstReviewSortUiState = exports.updateVendorFirstReviewViewLocalData = exports.saveVendorFirstReviewView = exports.clearRecentlySavedErroredVendorData = exports.updateVendorFirstReviewViewPageToken = void 0;
|
|
66
66
|
exports.updateNotificationViewNotificationStatus = exports.updateNotificationViewAllNotificationsStatus = exports.fetchNotificationUnreadCountSuccess = exports.fetchNotificationUnreadCount = exports.fetchNotificationView = exports.toNotificationTabTypeStrict = exports.toNotificationSubTabTypeStrict = exports.updateCommentsNotificationsStatuses = exports.updateCommentsNotifications = exports.toNotificationModeStrict = exports.fetchZeniAccountsPromoCard = exports.getZeniAccountsPromoCard = exports.getAuthenticationView = exports.fetchCollaborationAuthToken = exports.clearAuditReportGroupViewByCompanyId = exports.saveReasonForAuditRule = exports.fetchAuditReportGroupView = exports.fetchAuditRuleGroupView = exports.getUserFromAllUsers = exports.getAuditRuleGroupViewSelectorView = exports.getAuditReportGroupViewSelectorView = exports.clearCardPaymentView = exports.resetCardPaymentErrorStatuses = exports.fetchPaymentSources = exports.addCardPaymentSource = exports.confirmCardSetupIntent = exports.createCardSetupIntent = exports.getAllCardsAndBankPaymentMethods = exports.deleteTag = exports.createTag = exports.fetchTagList = exports.getAllTags = exports.initialTaskDetailLocalData = exports.convertHHMMStrToMinutes = exports.updateTaskFromListView = exports.toDueDateGroupKeyType = exports.toTaskStatusCodeType = exports.toPriorityCodeType = exports.getDueDateValueFromDueDateGroupId = exports.initialTaskDetail = exports.fetchAllTaskGroups = exports.getTaskUpdates = exports.toTaskListGroupByKeyTypeStrict = exports.toTaskListGroupByKeyType = exports.updateTaskGroupName = exports.dragNDropTasks = exports.updateTaskListLocalData = exports.deleteTaskGroup = exports.initiateTaskListLocalData = exports.createNewTaskGroup = void 0;
|
|
67
67
|
exports.createSession = exports.fetchChatSessionsForUser = exports.getTreasuryFundsMaximumYield = exports.getTreasurySetupViewDetails = exports.updateFundAllocationLocalData = exports.fetchPortfolioAllocation = exports.updatePortfolioAllocation = exports.fetchTreasuryFunds = exports.clearTreasurySetupView = exports.fetchTreasurySetupView = exports.acceptTreasuryTerms = exports.getExpressPayView = exports.resetExpressPayLocalData = exports.submitExpressPay = exports.updateExpressPayFormLocalData = exports.fetchExpressPayInitialDetails = exports.getIntlWireVerificationView = exports.updateVerificationFormLocalData = exports.submitInternationalVerificationForm = exports.fetchInternationalVerificationForm = exports.createTaskFromTaskGroupTemplate = exports.getCompanyTaskManagerView = exports.fetchCompanyTaskManagerView = exports.getMinAllowedEndDate = exports.toRecurringFrequency = exports.getRecurringEndDateFromCount = exports.updateReferViewed = exports.getRewardsPlanCard = exports.fetchRewardsPlan = exports.resendReferralInvite = exports.updateReferralListSortUiState = exports.saveReferralFormDataInLocalStore = exports.clearReferrals = exports.sendReferralInvite = exports.fetchReferrals = exports.AmountStatusTypes = exports.StatusTypes = exports.toReferralListViewSortKeyType = exports.getInviteFormView = exports.getReferralListView = exports.getNotifications = exports.getLastNotificationTime = exports.pushToastNotification = exports.getNotificationsForSelectedSubTab = exports.getExternalNotificationsForSelectedSubTab = exports.getNotificationView = exports.updateNotificationViewUIState = exports.updateNotificationViewSubTab = exports.updateNotificationViewCurrentTabAndSubTab = exports.updateNotificationViewTabState = void 0;
|
|
68
|
-
exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryOverviewDetail = exports.toMessageType = exports.toMessageSender = exports.toAiCfoAnswerResponseTypeStrict = exports.toAiCfoAnswerResponseType = exports.toAiCfoAnswerStateTypeStrict = exports.toAiCfoAnswerStateType = exports.toAiCfoChartTypeStrict = exports.toAiCfoChartType = exports.toAiCfoVisualizationTypeStrict = exports.toAiCfoVisualizationType = exports.ALL_AI_CFO_ANSWER_RESPONSE_TYPES = exports.ALL_AI_CFO_ANSWER_STATE_TYPES = exports.ALL_AI_CFO_VISUALIZATION_TYPES = exports.ALL_AI_CFO_CHARTS_TYPES = exports.getAiCfoSelectorView = exports.getAllQuestionsForChatSession = exports.getQuestionAnswerByIdForChatSession = exports.getAllQuestionAnswersForChatSession = exports.toAiCfoVisualization = exports.clearAiCfo = exports.clearSession = exports.addQuestionPayload = exports.upsertOrAddQuestionAnswerPayload = exports.upsertAnswerPayload = exports.setSessions = exports.setNewSession = exports.getAiCfoView = exports.updateResponseState = exports.acceptMasterTOS = exports.fetchChatHistory = exports.stopSubmitQuestion = exports.stopSubmit = exports.createSessionAndSubmit = exports.clearCurrentSessionId = exports.clearAiCfoView = exports.setSession = exports.clearInput = exports.updateCurrentInput = exports.updateAiCfoViewScrollPosition = exports.submitQuestion = void 0;
|
|
68
|
+
exports.fetchTreasuryTaxLetterList = exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryOverviewDetail = exports.toMessageType = exports.toMessageSender = exports.toAiCfoAnswerResponseTypeStrict = exports.toAiCfoAnswerResponseType = exports.toAiCfoAnswerStateTypeStrict = exports.toAiCfoAnswerStateType = exports.toAiCfoChartTypeStrict = exports.toAiCfoChartType = exports.toAiCfoVisualizationTypeStrict = exports.toAiCfoVisualizationType = exports.ALL_AI_CFO_ANSWER_RESPONSE_TYPES = exports.ALL_AI_CFO_ANSWER_STATE_TYPES = exports.ALL_AI_CFO_VISUALIZATION_TYPES = exports.ALL_AI_CFO_CHARTS_TYPES = exports.getAiCfoSelectorView = exports.getAllQuestionsForChatSession = exports.getQuestionAnswerByIdForChatSession = exports.getAllQuestionAnswersForChatSession = exports.toAiCfoVisualization = exports.clearAiCfo = exports.clearSession = exports.addQuestionPayload = exports.upsertOrAddQuestionAnswerPayload = exports.upsertAnswerPayload = exports.setSessions = exports.setNewSession = exports.getAiCfoView = exports.updateResponseState = exports.acceptMasterTOS = exports.fetchChatHistory = exports.stopSubmitQuestion = exports.stopSubmit = exports.createSessionAndSubmit = exports.clearCurrentSessionId = exports.clearAiCfoView = exports.setSession = exports.clearInput = exports.updateCurrentInput = exports.updateAiCfoViewScrollPosition = exports.submitQuestion = void 0;
|
|
69
|
+
exports.getTreasuryTaxLetters = void 0;
|
|
69
70
|
const allowedValue_1 = require("./commonStateTypes/allowedValue");
|
|
70
71
|
Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
|
|
71
72
|
Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
|
|
@@ -1979,3 +1980,7 @@ var treasuryStatementListReducer_1 = require("./view/spendManagement/treasury/tr
|
|
|
1979
1980
|
Object.defineProperty(exports, "fetchTreasuryStatementList", { enumerable: true, get: function () { return treasuryStatementListReducer_1.fetchTreasuryStatementList; } });
|
|
1980
1981
|
var treasuryStatementListSelector_1 = require("./view/spendManagement/treasury/treasuryStatementList/treasuryStatementListSelector");
|
|
1981
1982
|
Object.defineProperty(exports, "getTreasuryStatements", { enumerable: true, get: function () { return treasuryStatementListSelector_1.getTreasuryStatements; } });
|
|
1983
|
+
var treasuryTaxLetterListReducer_1 = require("./view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer");
|
|
1984
|
+
Object.defineProperty(exports, "fetchTreasuryTaxLetterList", { enumerable: true, get: function () { return treasuryTaxLetterListReducer_1.fetchTreasuryTaxLetterList; } });
|
|
1985
|
+
var treasuryTaxLetterListSelector_1 = require("./view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector");
|
|
1986
|
+
Object.defineProperty(exports, "getTreasuryTaxLetters", { enumerable: true, get: function () { return treasuryTaxLetterListSelector_1.getTreasuryTaxLetters; } });
|
package/lib/reducer.d.ts
CHANGED
|
@@ -166,6 +166,7 @@ import { RemisBulkActionViewState } from './view/spendManagement/reimbursement/r
|
|
|
166
166
|
import { TreasuryDetailState } from './view/spendManagement/treasury/treasuryList/treasuryDetailState';
|
|
167
167
|
import { TreasurySetupViewState } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewState';
|
|
168
168
|
import { TreasuryStatementListState } from './view/spendManagement/treasury/treasuryStatementList/treasuryStatementList';
|
|
169
|
+
import { TreasuryTaxLetterListState } from './view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListState';
|
|
169
170
|
import { TreasuryTransferMoneyState } from './view/spendManagement/treasury/treasuryTransferMoney/treasuryTransferMoneyState';
|
|
170
171
|
import { CheckDepositState } from './view/spendManagement/zeniAccounts/checkDeposit/checkDepositState';
|
|
171
172
|
import { DepositAccountDetailState } from './view/spendManagement/zeniAccounts/depositAccountDetail/depositAccountDetailState';
|
|
@@ -389,6 +390,7 @@ type ViewsState = {
|
|
|
389
390
|
treasuryDetailState: TreasuryDetailState;
|
|
390
391
|
treasurySetupViewState: TreasurySetupViewState;
|
|
391
392
|
treasuryStatementListState: TreasuryStatementListState;
|
|
393
|
+
treasuryTaxLetterListState: TreasuryTaxLetterListState;
|
|
392
394
|
treasuryTransferMoneyState: TreasuryTransferMoneyState;
|
|
393
395
|
trendState: TrendState;
|
|
394
396
|
trendWithTransactionsState: TrendWithTransactionsState;
|
|
@@ -538,6 +540,7 @@ declare const reducers: import("redux").Reducer<import("redux").CombinedState<{
|
|
|
538
540
|
treasuryTransferMoneyState: TreasuryTransferMoneyState;
|
|
539
541
|
treasurySetupViewState: TreasurySetupViewState;
|
|
540
542
|
treasuryStatementListState: TreasuryStatementListState;
|
|
543
|
+
treasuryTaxLetterListState: TreasuryTaxLetterListState;
|
|
541
544
|
trendState: TrendState;
|
|
542
545
|
trendWithTransactionsState: TrendWithTransactionsState;
|
|
543
546
|
twoFactorAuthenticationState: TwoFactorAuthenticationState;
|
package/lib/reducer.js
CHANGED
|
@@ -207,6 +207,7 @@ const remisBulkActionViewReducer_1 = __importStar(require("./view/spendManagemen
|
|
|
207
207
|
const treasuryDetailReducer_1 = __importStar(require("./view/spendManagement/treasury/treasuryList/treasuryDetailReducer"));
|
|
208
208
|
const treasurySetupViewReducer_1 = __importStar(require("./view/spendManagement/treasury/treasurySetUp/treasurySetupViewReducer"));
|
|
209
209
|
const treasuryStatementListReducer_1 = __importStar(require("./view/spendManagement/treasury/treasuryStatementList/treasuryStatementListReducer"));
|
|
210
|
+
const treasuryTaxLetterListReducer_1 = __importStar(require("./view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer"));
|
|
210
211
|
const treasuryTransferMoneyReducer_1 = __importStar(require("./view/spendManagement/treasury/treasuryTransferMoney/treasuryTransferMoneyReducer"));
|
|
211
212
|
const checkDepositReducer_1 = __importStar(require("./view/spendManagement/zeniAccounts/checkDeposit/checkDepositReducer"));
|
|
212
213
|
const depositAccountDetailReducer_1 = __importStar(require("./view/spendManagement/zeniAccounts/depositAccountDetail/depositAccountDetailReducer"));
|
|
@@ -433,6 +434,7 @@ const initialViewsState = {
|
|
|
433
434
|
treasuryTransferMoneyState: treasuryTransferMoneyReducer_1.initialState,
|
|
434
435
|
treasurySetupViewState: treasurySetupViewReducer_1.initialState,
|
|
435
436
|
treasuryStatementListState: treasuryStatementListReducer_1.initialState,
|
|
437
|
+
treasuryTaxLetterListState: treasuryTaxLetterListReducer_1.initialState,
|
|
436
438
|
trendState: trendReducer_1.initialTrendState,
|
|
437
439
|
trendWithTransactionsState: trendWithTransactionsReducer_1.initialTrendWithTransactionsState,
|
|
438
440
|
twoFactorAuthenticationState: twoFactorAuthenticationReducer_1.initialState,
|
|
@@ -647,6 +649,7 @@ const viewReducers = {
|
|
|
647
649
|
treasuryTransferMoneyState: treasuryTransferMoneyReducer_1.default,
|
|
648
650
|
treasurySetupViewState: treasurySetupViewReducer_1.default,
|
|
649
651
|
treasuryStatementListState: treasuryStatementListReducer_1.default,
|
|
652
|
+
treasuryTaxLetterListState: treasuryTaxLetterListReducer_1.default,
|
|
650
653
|
trendState: trendReducer_1.default,
|
|
651
654
|
trendWithTransactionsState: trendWithTransactionsReducer_1.default,
|
|
652
655
|
twoFactorAuthenticationState: twoFactorAuthenticationReducer_1.default,
|
|
@@ -159,7 +159,7 @@ const saveVendorEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operator
|
|
|
159
159
|
//this is done beacuse we are doing similar calcualtion in getDefaultValues of editBillDetailPage.
|
|
160
160
|
(0, zeniDayJS_1.date)((0, workingDayHelper_1.getNextNthWorkingDay)((0, zeniDayJS_1.dateNow)().toDate(), [0, 6], isPayNowEnabled ? 0 : 1).toISOString()) }),
|
|
161
161
|
isCollectToAccountInfoFromVendorContact: false,
|
|
162
|
-
isRecurring:
|
|
162
|
+
isRecurring: billInLocalStore.billDetailLocalData.isRecurring,
|
|
163
163
|
},
|
|
164
164
|
billId: action.payload.billId,
|
|
165
165
|
}));
|
package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { TabSpecificLineItems, TransactionReviewLocalData, TransactionsTab, Tran
|
|
|
10
10
|
export declare const MAX_SELECTION_LIMIT = 5;
|
|
11
11
|
export declare const toTransactionDetailLocalData: (transaction: SupportedTransactionWithCOT, selectedTab: TransactionsTab, lineItemsByTransactionIds: string[], uncategorizedIncomeExpense: UncategorizedAccounts) => TransactionReviewLocalData;
|
|
12
12
|
export declare const toSetAllLineItemsToCategoryClass: (draft: TransactionsTabViewState, transaction: SupportedTransactionWithCOT, transactionId: ID, transactionLineId: ID, transactionDetailLocalData: TransactionReviewLocalData, updatedItem: "category" | "class", uncategorizedAccounts: UncategorizedAccounts, selectedTab: TransactionsTab, vendorId?: ID, customerId?: ID, selectedAccount?: AccountBase, selectedClassBase?: ClassBase) => TransactionReviewLocalData;
|
|
13
|
-
export declare const setEntityRecommendationForLineIdInLocalData: (draft: TransactionsTabViewState, transaction: SupportedTransactionWithCOT, transactionDetailLocalData: TransactionReviewLocalData, entity: Entity, recommendationLineIds: ID[], uncategorizedAccounts: UncategorizedAccounts,
|
|
13
|
+
export declare const setEntityRecommendationForLineIdInLocalData: (draft: TransactionsTabViewState, transaction: SupportedTransactionWithCOT, transactionDetailLocalData: TransactionReviewLocalData, entity: Entity, recommendationLineIds: ID[], uncategorizedAccounts: UncategorizedAccounts, recommendationWithCOTByLineId?: RecommendationWithCOTByLineId) => TransactionReviewLocalData;
|
|
14
14
|
export declare const checkIfAllLineItemsAreCategoryClassFilled: (transaction: SupportedTransactionWithCOT, transactionDetailLocalData: TransactionReviewLocalData, uncategorizedAccounts: UncategorizedAccounts) => boolean;
|
|
15
15
|
export declare const getLineItemsByTransactionsIdsFromResponse: (transactions: SupportedTransactionPayload[]) => Record<string, string[]>;
|
|
16
16
|
export declare const getLineItemsByTransactionIdsFromLocalData: (transactionLocalData: TransactionReviewLocalDataSelectorView[], selectedTab: TransactionsTab) => Record<ID, string[]>;
|
|
@@ -317,7 +317,7 @@ const toSetAllLineItemsToCategoryClass = (draft, transaction, transactionId, tra
|
|
|
317
317
|
return newLocalData;
|
|
318
318
|
};
|
|
319
319
|
exports.toSetAllLineItemsToCategoryClass = toSetAllLineItemsToCategoryClass;
|
|
320
|
-
const setEntityRecommendationForLineIdInLocalData = (draft, transaction, transactionDetailLocalData, entity, recommendationLineIds, uncategorizedAccounts,
|
|
320
|
+
const setEntityRecommendationForLineIdInLocalData = (draft, transaction, transactionDetailLocalData, entity, recommendationLineIds, uncategorizedAccounts, recommendationWithCOTByLineId) => {
|
|
321
321
|
const newLineItems = {};
|
|
322
322
|
let matchingEntityLineId = undefined;
|
|
323
323
|
const checkIfNotJEAndDeposit = !(0, vendorTransaction_1.isVendorTransaction)(transaction);
|
|
@@ -334,7 +334,7 @@ const setEntityRecommendationForLineIdInLocalData = (draft, transaction, transac
|
|
|
334
334
|
line.type === 'transaction_with_product_or_service_line' ||
|
|
335
335
|
line.type === 'journal_entry_transaction_line') {
|
|
336
336
|
const record = Object.assign({}, oldRecord);
|
|
337
|
-
const recommendations = (0, transactionDetailLocalDataHelper_1.mergeTransactionAndEntityRecommendationsWithCOT)(oldRecord.recommendationsWithCOT,
|
|
337
|
+
const recommendations = (0, transactionDetailLocalDataHelper_1.mergeTransactionAndEntityRecommendationsWithCOT)(oldRecord.recommendationsWithCOT, recommendationWithCOTByLineId === null || recommendationWithCOTByLineId === void 0 ? void 0 : recommendationWithCOTByLineId[lineId]);
|
|
338
338
|
const accountLine = line;
|
|
339
339
|
const isUncategorizedAccount = (0, transactionDetailLocalDataHelper_2.isAccountUncategorized)(uncategorizedAccounts, accountLine.account.qboId);
|
|
340
340
|
record.account =
|
|
@@ -366,7 +366,7 @@ const setEntityRecommendationForLineIdInLocalData = (draft, transaction, transac
|
|
|
366
366
|
}
|
|
367
367
|
const record = Object.assign({}, oldRecord);
|
|
368
368
|
if (checkIfNotJEAndDeposit === false) {
|
|
369
|
-
const recommendations = (0, transactionDetailLocalDataHelper_1.mergeTransactionAndEntityRecommendationsWithCOT)(oldRecord.recommendationsWithCOT,
|
|
369
|
+
const recommendations = (0, transactionDetailLocalDataHelper_1.mergeTransactionAndEntityRecommendationsWithCOT)(oldRecord.recommendationsWithCOT, recommendationWithCOTByLineId === null || recommendationWithCOTByLineId === void 0 ? void 0 : recommendationWithCOTByLineId[lineId]);
|
|
370
370
|
const accountLine = line;
|
|
371
371
|
record.account = accountLine.account;
|
|
372
372
|
record.class = accountLine.class;
|
|
@@ -124,14 +124,14 @@ export declare const fetchTransactionCategorization: import("@reduxjs/toolkit").
|
|
|
124
124
|
}, "expenseAutomationTransactionsView/fetchTransactionCategorizationView", never, never>, updateSelectedCheckboxTransactionIds: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
125
125
|
selectedTab: TransactionsTab;
|
|
126
126
|
transactionIds: ID[];
|
|
127
|
-
}, "expenseAutomationTransactionsView/updateSelectedCheckboxTransactionIds">, clearExpenseAutomationTransactionsViewPerTabView: import("@reduxjs/toolkit").ActionCreatorWithPayload<"review" | "autoCategorized", "expenseAutomationTransactionsView/clearExpenseAutomationTransactionsViewPerTabView">, clearExpenseAutomationTransactionsView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationTransactionsView/clearExpenseAutomationTransactionsView">, setEntityRecommendationForLineIdsForCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionId: TransactionID, transaction: SupportedTransactionWithCOT, lineIds: string[], entity: Entity, amount: number,
|
|
127
|
+
}, "expenseAutomationTransactionsView/updateSelectedCheckboxTransactionIds">, clearExpenseAutomationTransactionsViewPerTabView: import("@reduxjs/toolkit").ActionCreatorWithPayload<"review" | "autoCategorized", "expenseAutomationTransactionsView/clearExpenseAutomationTransactionsViewPerTabView">, clearExpenseAutomationTransactionsView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationTransactionsView/clearExpenseAutomationTransactionsView">, setEntityRecommendationForLineIdsForCategorization: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionId: TransactionID, transaction: SupportedTransactionWithCOT, lineIds: string[], entity: Entity, amount: number, recommendationWithCOTByLineId: RecommendationWithCOTByLineId, uncategorizedAccounts: UncategorizedAccounts], {
|
|
128
128
|
selectedTab: "review" | "autoCategorized";
|
|
129
129
|
transactionId: TransactionID;
|
|
130
130
|
transaction: SupportedTransactionWithCOT;
|
|
131
131
|
lineIds: string[];
|
|
132
132
|
entity: Entity;
|
|
133
133
|
amount: number;
|
|
134
|
-
|
|
134
|
+
recommendationWithCOTByLineId: RecommendationWithCOTByLineId;
|
|
135
135
|
uncategorizedAccounts: UncategorizedAccounts;
|
|
136
136
|
}, "expenseAutomationTransactionsView/setEntityRecommendationForLineIdsForCategorization", never, never>, updateSelectedTransactionId: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
137
137
|
lineId: ID;
|
|
@@ -326,7 +326,7 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
326
326
|
},
|
|
327
327
|
},
|
|
328
328
|
setEntityRecommendationForLineIdsForCategorization: {
|
|
329
|
-
prepare(selectedTab, transactionId, transaction, lineIds, entity, amount,
|
|
329
|
+
prepare(selectedTab, transactionId, transaction, lineIds, entity, amount, recommendationWithCOTByLineId, uncategorizedAccounts) {
|
|
330
330
|
return {
|
|
331
331
|
payload: {
|
|
332
332
|
selectedTab,
|
|
@@ -335,7 +335,7 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
335
335
|
lineIds,
|
|
336
336
|
entity,
|
|
337
337
|
amount,
|
|
338
|
-
|
|
338
|
+
recommendationWithCOTByLineId,
|
|
339
339
|
uncategorizedAccounts,
|
|
340
340
|
},
|
|
341
341
|
};
|
|
@@ -347,7 +347,7 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
|
|
|
347
347
|
if (transactionLocalData != null) {
|
|
348
348
|
draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById[transaction.id] = {
|
|
349
349
|
transactionId: transaction.id,
|
|
350
|
-
transactionReviewLocalData: (0, transactionCategorizationLocalDataHelper_1.setEntityRecommendationForLineIdInLocalData)(draft.transactionCategorizationView[selectedTab], transaction, transactionLocalData.transactionReviewLocalData, entity, lineIds, uncategorizedAccounts, action.payload.
|
|
350
|
+
transactionReviewLocalData: (0, transactionCategorizationLocalDataHelper_1.setEntityRecommendationForLineIdInLocalData)(draft.transactionCategorizationView[selectedTab], transaction, transactionLocalData.transactionReviewLocalData, entity, lineIds, uncategorizedAccounts, action.payload.recommendationWithCOTByLineId),
|
|
351
351
|
};
|
|
352
352
|
}
|
|
353
353
|
},
|
|
@@ -12,7 +12,7 @@ const transactionDetailState_1 = require("../transactionDetail/transactionDetail
|
|
|
12
12
|
const recommendationHelper_1 = require("./recommendationHelper");
|
|
13
13
|
const recommendationReducer_1 = require("./recommendationReducer");
|
|
14
14
|
const fetchEntityRecommendationsByTransactionIdEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(recommendationReducer_1.fetchEntityRecommendationsByTransactionId.match), (0, operators_1.switchMap)((action) => {
|
|
15
|
-
const { entity, amount, transactionDetails, isBulkFetch, isTransactionCategorizationFlow, } = action.payload;
|
|
15
|
+
const { entity, amount, transactionDetails, isBulkFetch, isTransactionCategorizationFlow, isFetchCOT, } = action.payload;
|
|
16
16
|
const { expenseAutomationTransactionsViewState: { selectedTransactionCategorizationTab, }, } = state$.value;
|
|
17
17
|
const query = {
|
|
18
18
|
amount,
|
|
@@ -20,16 +20,22 @@ const fetchEntityRecommendationsByTransactionIdEpic = (actions$, state$, zeniAPI
|
|
|
20
20
|
transaction_type: transactionDetails.transaction.type,
|
|
21
21
|
line_ids: transactionDetails.lineIds,
|
|
22
22
|
};
|
|
23
|
+
if (isFetchCOT === true) {
|
|
24
|
+
query.include_cot = true;
|
|
25
|
+
}
|
|
23
26
|
return zeniAPI
|
|
24
27
|
.getJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/${(0, exports.toEntityTypeURL)(entity.type)}/${entity.qboId}/recommendations?query=${encodeURIComponent(JSON.stringify(query))}`)
|
|
25
28
|
.pipe((0, operators_1.mergeMap)((response) => {
|
|
26
29
|
if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
|
|
27
30
|
const actions = [];
|
|
28
31
|
const { transactionId, transaction, lineIds } = transactionDetails;
|
|
29
|
-
const
|
|
32
|
+
const recommendationWithCOTByLineId = (0, recommendationHelper_1.getRecommendationByLineIdWithCOTFromRecommendationPayloadWithCOT)(response.data.recommendations, lineIds);
|
|
30
33
|
const recommendations = (0, recommendationHelper_1.getRecommendationFromRecommendationPayload)(response.data.recommendations);
|
|
31
34
|
// Convert transaction to COT format for categorization flow
|
|
32
|
-
|
|
35
|
+
// Use COT recommendations if available, otherwise use existing transaction recommendations
|
|
36
|
+
const transactionWithCOT = isFetchCOT === true && recommendationWithCOTByLineId != null
|
|
37
|
+
? (0, transactionHelper_1.getTransactionWithCOTFromRecommendations)(transaction, recommendationWithCOTByLineId)
|
|
38
|
+
: (0, transactionHelper_1.getTransactionWithCOT)(transaction);
|
|
33
39
|
actions.push((0, recommendationReducer_1.updateRecommendationForEntity)({
|
|
34
40
|
entityId: entity.id,
|
|
35
41
|
entityType: entity.type,
|
|
@@ -38,14 +44,13 @@ const fetchEntityRecommendationsByTransactionIdEpic = (actions$, state$, zeniAPI
|
|
|
38
44
|
if (isBulkFetch === true) {
|
|
39
45
|
actions.push((0, transactionDetailReducer_1.updateVendorBulkRecommendationsFetchStatus)(transactionId, 'Completed'));
|
|
40
46
|
}
|
|
41
|
-
if (
|
|
47
|
+
if (recommendationWithCOTByLineId != null) {
|
|
42
48
|
const uncategorizedIncomeExpense = (0, accountListSelector_1.getUncategorizedAccounts)(state$.value.accountState, state$.value.accountListState, 'accountList');
|
|
43
49
|
if (isTransactionCategorizationFlow === true) {
|
|
44
|
-
const recommendationWithCOTByLineId = (0, transactionHelper_1.convertRecommendationByLineIdToCOT)(recommendationByLineId, transactionWithCOT);
|
|
45
50
|
actions.push((0, transactionsViewReducer_1.setEntityRecommendationForLineIdsForCategorization)(selectedTransactionCategorizationTab, transactionId, transactionWithCOT, lineIds, entity, amount, recommendationWithCOTByLineId, uncategorizedIncomeExpense));
|
|
46
51
|
}
|
|
47
52
|
else {
|
|
48
|
-
actions.push((0, transactionDetailReducer_1.setEntityRecommendationForLineIdsForTransactionDetail)(transactionId,
|
|
53
|
+
actions.push((0, transactionDetailReducer_1.setEntityRecommendationForLineIdsForTransactionDetail)(transactionId, transactionWithCOT, lineIds, entity, amount, recommendationWithCOTByLineId, uncategorizedIncomeExpense));
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
return (0, rxjs_1.from)(actions);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { RecommendationPayload } from '../../commonPayloadTypes/recommendationPayload';
|
|
1
|
+
import { RecommendationPayload, RecommendationPayloadWithCOT } from '../../commonPayloadTypes/recommendationPayload';
|
|
2
2
|
import { ID } from '../../commonStateTypes/common';
|
|
3
|
-
import { Recommendation } from '../../commonStateTypes/recommendationBase';
|
|
4
|
-
import { RecommendationByLineId } from '../../entity/transaction/stateTypes/transaction';
|
|
3
|
+
import { Recommendation, RecommendationWithCOT } from '../../commonStateTypes/recommendationBase';
|
|
4
|
+
import { RecommendationByLineId, RecommendationWithCOTByLineId } from '../../entity/transaction/stateTypes/transaction';
|
|
5
5
|
export declare const getRecommendationFromRecommendationPayload: (payload: RecommendationPayload[]) => Recommendation[] | undefined;
|
|
6
6
|
export declare const getRecommendationByLineIdFromRecommendationPayload: (recommendationPayload: RecommendationPayload[], lineIds: ID[]) => RecommendationByLineId | undefined;
|
|
7
|
+
export declare const getRecommendationWithCOTFromRecommendationPayloadWithCOT: (payload: RecommendationPayloadWithCOT[]) => RecommendationWithCOT[] | undefined;
|
|
8
|
+
export declare const getRecommendationByLineIdWithCOTFromRecommendationPayloadWithCOT: (recommendationPayload: RecommendationPayloadWithCOT[], lineIds: ID[]) => RecommendationWithCOTByLineId | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRecommendationByLineIdFromRecommendationPayload = exports.getRecommendationFromRecommendationPayload = void 0;
|
|
3
|
+
exports.getRecommendationByLineIdWithCOTFromRecommendationPayloadWithCOT = exports.getRecommendationWithCOTFromRecommendationPayloadWithCOT = exports.getRecommendationByLineIdFromRecommendationPayload = exports.getRecommendationFromRecommendationPayload = void 0;
|
|
4
4
|
const transactionPayload_1 = require("../../entity/transaction/payloadTypes/transactionPayload");
|
|
5
5
|
const getRecommendationFromRecommendationPayload = (payload) => {
|
|
6
6
|
if (payload == null || payload.length === 0) {
|
|
@@ -32,3 +32,33 @@ const getRecommendationByLineIdFromRecommendationPayload = (recommendationPayloa
|
|
|
32
32
|
return recommendationsWithLine;
|
|
33
33
|
};
|
|
34
34
|
exports.getRecommendationByLineIdFromRecommendationPayload = getRecommendationByLineIdFromRecommendationPayload;
|
|
35
|
+
const getRecommendationWithCOTFromRecommendationPayloadWithCOT = (payload) => {
|
|
36
|
+
if (payload == null || payload.length === 0) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
const recommendations = [];
|
|
40
|
+
payload.forEach((recommendationPayload) => {
|
|
41
|
+
recommendations.push(...(0, transactionPayload_1.transformRecommendationWithCOT)(recommendationPayload));
|
|
42
|
+
});
|
|
43
|
+
return recommendations;
|
|
44
|
+
};
|
|
45
|
+
exports.getRecommendationWithCOTFromRecommendationPayloadWithCOT = getRecommendationWithCOTFromRecommendationPayloadWithCOT;
|
|
46
|
+
const getRecommendationByLineIdWithCOTFromRecommendationPayloadWithCOT = (recommendationPayload, lineIds) => {
|
|
47
|
+
if (recommendationPayload.length === 0) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const recommendationsWithLine = {};
|
|
51
|
+
/* Note: Below case will happen only when we are fetching vendor recomemndations from a JE transaction line item.
|
|
52
|
+
And in such a case, we only want to update recommendation for that line.lineIds will always have a single element */
|
|
53
|
+
if (lineIds.length !== recommendationPayload.length) {
|
|
54
|
+
recommendationsWithLine[lineIds[0]] = (0, transactionPayload_1.transformRecommendationWithCOT)(recommendationPayload[parseInt(lineIds[0])]);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
recommendationPayload.forEach((lineRecommendations, index) => {
|
|
58
|
+
recommendationsWithLine[lineIds[index]] =
|
|
59
|
+
(0, transactionPayload_1.transformRecommendationWithCOT)(lineRecommendations);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return recommendationsWithLine;
|
|
63
|
+
};
|
|
64
|
+
exports.getRecommendationByLineIdWithCOTFromRecommendationPayloadWithCOT = getRecommendationByLineIdWithCOTFromRecommendationPayloadWithCOT;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RecommendationPayload } from '../../commonPayloadTypes/recommendationPayload';
|
|
1
|
+
import { RecommendationPayload, RecommendationPayloadWithCOT } from '../../commonPayloadTypes/recommendationPayload';
|
|
2
2
|
import { ZeniAPIResponse } from '../../responsePayload';
|
|
3
3
|
interface RecommendationUpdatePayload {
|
|
4
4
|
recommendations: RecommendationPayload[];
|
|
@@ -8,4 +8,8 @@ interface FetchRecommendationPayload {
|
|
|
8
8
|
recommendations: RecommendationPayload[];
|
|
9
9
|
}
|
|
10
10
|
export type FetchRecommendationResponse = ZeniAPIResponse<FetchRecommendationPayload>;
|
|
11
|
+
interface FetchRecommendationPayloadWithCOT {
|
|
12
|
+
recommendations: RecommendationPayloadWithCOT[];
|
|
13
|
+
}
|
|
14
|
+
export type FetchRecommendationResponseWithCOT = ZeniAPIResponse<FetchRecommendationPayloadWithCOT>;
|
|
11
15
|
export {};
|
|
@@ -10,7 +10,7 @@ export declare const fetchEntityRecommendationsByTransactionId: import("@reduxjs
|
|
|
10
10
|
lineIds: ID[];
|
|
11
11
|
transaction: SupportedTransaction;
|
|
12
12
|
transactionId: TransactionID;
|
|
13
|
-
}, isBulkFetch: boolean, isTransactionCategorizationFlow?: any], {
|
|
13
|
+
}, isBulkFetch: boolean, isTransactionCategorizationFlow?: any, isFetchCOT?: any], {
|
|
14
14
|
entity: Entity;
|
|
15
15
|
amount: number;
|
|
16
16
|
transactionDetails: {
|
|
@@ -20,6 +20,7 @@ export declare const fetchEntityRecommendationsByTransactionId: import("@reduxjs
|
|
|
20
20
|
};
|
|
21
21
|
isBulkFetch: boolean;
|
|
22
22
|
isTransactionCategorizationFlow: any;
|
|
23
|
+
isFetchCOT: any;
|
|
23
24
|
}, "recommendation/fetchEntityRecommendationsByTransactionId", never, never>, fetchRecommendationByEntityName: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[entityName: string, entityType: EntityType], {
|
|
24
25
|
entityName: string;
|
|
25
26
|
entityType: EntityType;
|
|
@@ -20,7 +20,7 @@ const recommendation = (0, toolkit_1.createSlice)({
|
|
|
20
20
|
draft.recommendationByEntity[key] = Object.assign(Object.assign({}, recommendationState_1.initialEntityRecommendationState), { fetchState: 'In-Progress' });
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
|
-
prepare(entity, amount, transactionDetails, isBulkFetch, isTransactionCategorizationFlow = false) {
|
|
23
|
+
prepare(entity, amount, transactionDetails, isBulkFetch, isTransactionCategorizationFlow = false, isFetchCOT = false) {
|
|
24
24
|
return {
|
|
25
25
|
payload: {
|
|
26
26
|
entity,
|
|
@@ -28,6 +28,7 @@ const recommendation = (0, toolkit_1.createSlice)({
|
|
|
28
28
|
transactionDetails,
|
|
29
29
|
isBulkFetch,
|
|
30
30
|
isTransactionCategorizationFlow,
|
|
31
|
+
isFetchCOT,
|
|
31
32
|
},
|
|
32
33
|
};
|
|
33
34
|
},
|
|
@@ -4,6 +4,7 @@ import { RootState } from '../../../../../reducer';
|
|
|
4
4
|
import { ZeniAPI } from '../../../../../zeniAPI';
|
|
5
5
|
import { fetchPortfolioAllocation, fetchTreasuryFunds } from '../../treasurySetUp/treasurySetupViewReducer';
|
|
6
6
|
import { fetchTreasuryStatementList } from '../../treasuryStatementList/treasuryStatementListReducer';
|
|
7
|
+
import { fetchTreasuryTaxLetterList } from '../../treasuryTaxLetterList/treasuryTaxLetterListReducer';
|
|
7
8
|
import { fetchTreasuryHistory, fetchTreasuryOverviewDetail, fetchTreasurySummaryFailure, fetchTreasurySummarySuccess, fetchTreasuryTransactionList } from '../treasuryDetailReducer';
|
|
8
|
-
export type ActionType = ReturnType<typeof fetchTreasuryOverviewDetail> | ReturnType<typeof fetchTreasuryHistory> | ReturnType<typeof fetchTreasuryFunds> | ReturnType<typeof fetchPortfolioAllocation> | ReturnType<typeof fetchTreasuryTransactionList> | ReturnType<typeof fetchTreasuryStatementList> | ReturnType<typeof fetchTreasurySummarySuccess> | ReturnType<typeof fetchTreasurySummaryFailure>;
|
|
9
|
+
export type ActionType = ReturnType<typeof fetchTreasuryOverviewDetail> | ReturnType<typeof fetchTreasuryHistory> | ReturnType<typeof fetchTreasuryFunds> | ReturnType<typeof fetchPortfolioAllocation> | ReturnType<typeof fetchTreasuryTransactionList> | ReturnType<typeof fetchTreasuryStatementList> | ReturnType<typeof fetchTreasuryTaxLetterList> | ReturnType<typeof fetchTreasurySummarySuccess> | ReturnType<typeof fetchTreasurySummaryFailure>;
|
|
9
10
|
export declare const fetchTreasuryDetailEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
|
@@ -6,6 +6,7 @@ const operators_1 = require("rxjs/operators");
|
|
|
6
6
|
const responsePayload_1 = require("../../../../../responsePayload");
|
|
7
7
|
const treasurySetupViewReducer_1 = require("../../treasurySetUp/treasurySetupViewReducer");
|
|
8
8
|
const treasuryStatementListReducer_1 = require("../../treasuryStatementList/treasuryStatementListReducer");
|
|
9
|
+
const treasuryTaxLetterListReducer_1 = require("../../treasuryTaxLetterList/treasuryTaxLetterListReducer");
|
|
9
10
|
const treasuryDetailReducer_1 = require("../treasuryDetailReducer");
|
|
10
11
|
const fetchTreasuryDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(treasuryDetailReducer_1.fetchTreasuryOverviewDetail.match), (0, operators_1.switchMap)((action) => {
|
|
11
12
|
const { cacheOverride } = action.payload;
|
|
@@ -15,6 +16,7 @@ const fetchTreasuryDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0,
|
|
|
15
16
|
treasuryActions.push((0, treasurySetupViewReducer_1.fetchTreasuryFunds)());
|
|
16
17
|
treasuryActions.push((0, treasurySetupViewReducer_1.fetchPortfolioAllocation)());
|
|
17
18
|
treasuryActions.push((0, treasuryStatementListReducer_1.fetchTreasuryStatementList)(true));
|
|
19
|
+
treasuryActions.push((0, treasuryTaxLetterListReducer_1.fetchTreasuryTaxLetterList)(true));
|
|
18
20
|
treasuryActions.push((0, treasuryDetailReducer_1.fetchTreasuryHistory)());
|
|
19
21
|
treasuryActions.push((0, treasuryDetailReducer_1.fetchTreasuryTransactionList)(true));
|
|
20
22
|
}
|
|
@@ -25,6 +27,11 @@ const fetchTreasuryDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0,
|
|
|
25
27
|
treasuryStatementListState.fetchState !== 'In-Progress') {
|
|
26
28
|
treasuryActions.push((0, treasuryStatementListReducer_1.fetchTreasuryStatementList)(false));
|
|
27
29
|
}
|
|
30
|
+
const treasuryTaxLetterListState = state.treasuryTaxLetterListState;
|
|
31
|
+
if (treasuryTaxLetterListState.hasValidState() === false &&
|
|
32
|
+
treasuryTaxLetterListState.fetchState !== 'In-Progress') {
|
|
33
|
+
treasuryActions.push((0, treasuryTaxLetterListReducer_1.fetchTreasuryTaxLetterList)(false));
|
|
34
|
+
}
|
|
28
35
|
// Check treasury detail state for history
|
|
29
36
|
const treasuryDetailState = state.treasuryDetailState;
|
|
30
37
|
if (treasuryDetailState.hasValidState() === false &&
|
package/lib/view/spendManagement/treasury/treasuryStatementList/fetchTreasuryStatementListEpic.js
CHANGED
|
@@ -9,7 +9,8 @@ const fetchTreasuryStatementListEpic = (actions$, state$, zeniAPI) => actions$.p
|
|
|
9
9
|
const { cacheOverride } = action.payload;
|
|
10
10
|
const currentFetchState = state$.value.treasuryStatementListState.fetchState;
|
|
11
11
|
if (cacheOverride === true || currentFetchState !== 'Completed') {
|
|
12
|
-
const
|
|
12
|
+
const queryParams = { statement_type: 'monthly_statement' };
|
|
13
|
+
const apiEndpoint = `${zeniAPI.apiEndPoints.bankingMicroServiceBaseUrl}/1.0/treasury-account/statements?query=${encodeURIComponent(JSON.stringify(queryParams))}`;
|
|
13
14
|
return zeniAPI
|
|
14
15
|
.getJSON(apiEndpoint)
|
|
15
16
|
.pipe((0, operators_1.mergeMap)((response) => {
|
package/lib/view/spendManagement/treasury/treasuryTaxLetterList/fetchTreasuryTaxLetterListEpic.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { RootState } from '../../../../reducer';
|
|
4
|
+
import { ZeniAPI } from '../../../../zeniAPI';
|
|
5
|
+
import { fetchTreasuryTaxLetterList, updateTreasuryTaxLetterList, updateTreasuryTaxLetterListFetchStatus } from './treasuryTaxLetterListReducer';
|
|
6
|
+
export type ActionType = ReturnType<typeof fetchTreasuryTaxLetterList> | ReturnType<typeof updateTreasuryTaxLetterList> | ReturnType<typeof updateTreasuryTaxLetterListFetchStatus>;
|
|
7
|
+
export declare const fetchTreasuryTaxLetterListEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
package/lib/view/spendManagement/treasury/treasuryTaxLetterList/fetchTreasuryTaxLetterListEpic.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchTreasuryTaxLetterListEpic = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const responsePayload_1 = require("../../../../responsePayload");
|
|
7
|
+
const treasuryTaxLetterListReducer_1 = require("./treasuryTaxLetterListReducer");
|
|
8
|
+
const fetchTreasuryTaxLetterListEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(treasuryTaxLetterListReducer_1.fetchTreasuryTaxLetterList.match), (0, operators_1.mergeMap)((action) => {
|
|
9
|
+
const { cacheOverride } = action.payload;
|
|
10
|
+
const currentFetchState = state$.value.treasuryTaxLetterListState.fetchState;
|
|
11
|
+
if (cacheOverride === true || currentFetchState !== 'Completed') {
|
|
12
|
+
const queryParams = { statement_type: 'tax_statement' };
|
|
13
|
+
const apiEndpoint = `${zeniAPI.apiEndPoints.bankingMicroServiceBaseUrl}/1.0/treasury-account/statements?query=${encodeURIComponent(JSON.stringify(queryParams))}`;
|
|
14
|
+
return zeniAPI
|
|
15
|
+
.getJSON(apiEndpoint)
|
|
16
|
+
.pipe((0, operators_1.mergeMap)((response) => {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
if ((0, responsePayload_1.isSuccessResponse)(response)) {
|
|
19
|
+
return (0, rxjs_1.of)((0, treasuryTaxLetterListReducer_1.updateTreasuryTaxLetterList)({
|
|
20
|
+
data: (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.statements) !== null && _b !== void 0 ? _b : [],
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return (0, rxjs_1.of)((0, treasuryTaxLetterListReducer_1.updateTreasuryTaxLetterListFetchStatus)({
|
|
25
|
+
fetchState: 'Error',
|
|
26
|
+
error: response.status,
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
}), (0, operators_1.catchError)((error) => {
|
|
30
|
+
return (0, rxjs_1.of)((0, treasuryTaxLetterListReducer_1.updateTreasuryTaxLetterListFetchStatus)({
|
|
31
|
+
fetchState: 'Error',
|
|
32
|
+
error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch treasury tax letter REST API call errored out ' +
|
|
33
|
+
JSON.stringify(error)),
|
|
34
|
+
}));
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
return (0, rxjs_1.of)((0, treasuryTaxLetterListReducer_1.updateTreasuryTaxLetterListFetchStatus)({
|
|
38
|
+
fetchState: 'Completed',
|
|
39
|
+
error: undefined,
|
|
40
|
+
}));
|
|
41
|
+
}));
|
|
42
|
+
exports.fetchTreasuryTaxLetterListEpic = fetchTreasuryTaxLetterListEpic;
|
package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FetchState } from '../../../../commonStateTypes/common';
|
|
2
|
+
import { ZeniAPIStatus } from '../../../../responsePayload';
|
|
3
|
+
import { StatementPayload } from '../treasuryStatementList/treasuryStatementListPayload';
|
|
4
|
+
import { TreasuryTaxLetterListState } from './treasuryTaxLetterListState';
|
|
5
|
+
export declare const initialState: TreasuryTaxLetterListState;
|
|
6
|
+
export declare const fetchTreasuryTaxLetterList: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[cacheOverride?: any], {
|
|
7
|
+
cacheOverride: any;
|
|
8
|
+
}, "treasuryTaxLetterList/fetchTreasuryTaxLetterList", never, never>, updateTreasuryTaxLetterList: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
9
|
+
data: StatementPayload[];
|
|
10
|
+
}, "treasuryTaxLetterList/updateTreasuryTaxLetterList">, updateTreasuryTaxLetterListFetchStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
11
|
+
fetchState: FetchState;
|
|
12
|
+
error?: ZeniAPIStatus;
|
|
13
|
+
}, "treasuryTaxLetterList/updateTreasuryTaxLetterListFetchStatus">, clearTreasuryTaxLetterList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"treasuryTaxLetterList/clearTreasuryTaxLetterList">;
|
|
14
|
+
declare const _default: import("redux").Reducer<TreasuryTaxLetterListState>;
|
|
15
|
+
export default _default;
|
package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.clearTreasuryTaxLetterList = exports.updateTreasuryTaxLetterListFetchStatus = exports.updateTreasuryTaxLetterList = exports.fetchTreasuryTaxLetterList = exports.initialState = void 0;
|
|
5
|
+
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
|
+
exports.initialState = {
|
|
7
|
+
taxLetters: [],
|
|
8
|
+
fetchState: 'Not-Started',
|
|
9
|
+
error: undefined,
|
|
10
|
+
hasValidState() {
|
|
11
|
+
return this.fetchState === 'Completed';
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
const treasuryTaxLetterList = (0, toolkit_1.createSlice)({
|
|
15
|
+
name: 'treasuryTaxLetterList',
|
|
16
|
+
initialState: exports.initialState,
|
|
17
|
+
reducers: {
|
|
18
|
+
fetchTreasuryTaxLetterList: {
|
|
19
|
+
reducer(draft) {
|
|
20
|
+
draft.fetchState = 'In-Progress';
|
|
21
|
+
},
|
|
22
|
+
prepare(cacheOverride = false) {
|
|
23
|
+
return {
|
|
24
|
+
payload: {
|
|
25
|
+
cacheOverride,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
updateTreasuryTaxLetterList(draft, action) {
|
|
31
|
+
const { data } = action.payload;
|
|
32
|
+
const statements = data.map((payload) => {
|
|
33
|
+
const segment = payload.period.split('-');
|
|
34
|
+
return {
|
|
35
|
+
id: payload.statement_id,
|
|
36
|
+
title: {
|
|
37
|
+
year: parseInt(segment[0]),
|
|
38
|
+
month: parseInt(segment[1]),
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
draft.taxLetters = statements;
|
|
43
|
+
draft.fetchState = 'Completed';
|
|
44
|
+
draft.error = undefined;
|
|
45
|
+
},
|
|
46
|
+
updateTreasuryTaxLetterListFetchStatus(draft, action) {
|
|
47
|
+
const { fetchState, error } = action.payload;
|
|
48
|
+
draft.fetchState = fetchState;
|
|
49
|
+
draft.error = error;
|
|
50
|
+
},
|
|
51
|
+
clearTreasuryTaxLetterList(draft) {
|
|
52
|
+
Object.assign(draft, exports.initialState);
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
_a = treasuryTaxLetterList.actions, exports.fetchTreasuryTaxLetterList = _a.fetchTreasuryTaxLetterList, exports.updateTreasuryTaxLetterList = _a.updateTreasuryTaxLetterList, exports.updateTreasuryTaxLetterListFetchStatus = _a.updateTreasuryTaxLetterListFetchStatus, exports.clearTreasuryTaxLetterList = _a.clearTreasuryTaxLetterList;
|
|
57
|
+
exports.default = treasuryTaxLetterList.reducer;
|
package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SelectorView } from '../../../../commonStateTypes/viewAndReport/viewAndReport';
|
|
2
|
+
import { RootState } from '../../../../reducer';
|
|
3
|
+
import { Statement } from '../treasuryStatementList/treasuryStatementList';
|
|
4
|
+
export interface TreasuryTaxLettersSelectorView extends SelectorView {
|
|
5
|
+
taxLetters: Statement[];
|
|
6
|
+
}
|
|
7
|
+
export declare const getTreasuryTaxLetters: (state: RootState) => TreasuryTaxLettersSelectorView;
|
package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTreasuryTaxLetters = void 0;
|
|
4
|
+
const getTreasuryTaxLetters = (state) => {
|
|
5
|
+
var _a;
|
|
6
|
+
const { treasuryTaxLetterListState } = state;
|
|
7
|
+
const fetchStateAndError = {
|
|
8
|
+
fetchState: treasuryTaxLetterListState.fetchState,
|
|
9
|
+
error: treasuryTaxLetterListState.error,
|
|
10
|
+
};
|
|
11
|
+
return {
|
|
12
|
+
taxLetters: (_a = treasuryTaxLetterListState.taxLetters) !== null && _a !== void 0 ? _a : [],
|
|
13
|
+
fetchState: fetchStateAndError.fetchState,
|
|
14
|
+
error: fetchStateAndError.error,
|
|
15
|
+
version: 0,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
exports.getTreasuryTaxLetters = getTreasuryTaxLetters;
|
package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListState.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FetchedState } from '../../../../commonStateTypes/common';
|
|
2
|
+
import { Statement } from '../treasuryStatementList/treasuryStatementList';
|
|
3
|
+
export interface TreasuryTaxLetterListState extends FetchedState {
|
|
4
|
+
taxLetters: Statement[];
|
|
5
|
+
}
|
|
6
|
+
export declare const initialTaxLetters: TreasuryTaxLetterListState;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initialTaxLetters = void 0;
|
|
4
|
+
exports.initialTaxLetters = {
|
|
5
|
+
taxLetters: [],
|
|
6
|
+
fetchState: 'Not-Started',
|
|
7
|
+
error: undefined,
|
|
8
|
+
hasValidState() {
|
|
9
|
+
return this.fetchState === 'Completed';
|
|
10
|
+
},
|
|
11
|
+
};
|
|
@@ -3,9 +3,9 @@ import { RecommendationWithCOT } from '../../commonStateTypes/recommendationBase
|
|
|
3
3
|
import { AccountBase, RecommendedAccountBase } from '../../entity/account/accountState';
|
|
4
4
|
import { ClassBase, RecommendedClassBase } from '../../entity/class/classState';
|
|
5
5
|
import { Entity } from '../../entity/genericEntity/entity';
|
|
6
|
-
import {
|
|
6
|
+
import { RecommendationWithCOTByLineId } from '../../entity/transaction/stateTypes/transaction';
|
|
7
7
|
import { JournalEntryTransactionLine, TransactionWithAccountAndClassLine } from '../../entity/transaction/stateTypes/transactionLine';
|
|
8
|
-
import { SupportedTransaction } from '../../entity/transaction/transactionState';
|
|
8
|
+
import { SupportedTransaction, SupportedTransactionWithCOT } from '../../entity/transaction/transactionState';
|
|
9
9
|
import { UncategorizedAccounts } from '../accountList/accountListSelector';
|
|
10
10
|
import { TransactionDetailLineItemData, TransactionDetailLocalData } from './transactionDetailTypes';
|
|
11
11
|
export declare const toTransactionDetailLocalData: (transaction: SupportedTransaction, defaultVendorId: ID | undefined, uncategorizedIncomeExpense: UncategorizedAccounts) => TransactionDetailLocalData;
|
|
@@ -30,7 +30,7 @@ export declare const toSetAllLineItemsToCategoryClass: (transaction: SupportedTr
|
|
|
30
30
|
updateOrRetain: "update" | "retain";
|
|
31
31
|
}) => TransactionDetailLocalData;
|
|
32
32
|
export declare const toSetAllLineItemsLocalDataIsUpdateAllChecked: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, isUpdateAll: boolean, entity?: Entity) => TransactionDetailLocalData;
|
|
33
|
-
export declare const setEntityRecommendationForLineIdInLocalData: (transaction:
|
|
33
|
+
export declare const setEntityRecommendationForLineIdInLocalData: (transaction: SupportedTransactionWithCOT, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity, recommendationLineIds: ID[], uncategorizedIncomeExpense: UncategorizedAccounts, recommendationWithCOTByLineId?: RecommendationWithCOTByLineId) => TransactionDetailLocalData;
|
|
34
34
|
export declare const removeEntityRecommendationForLineIdInLocalData: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, recommendationLineIds: ID[]) => TransactionDetailLocalData;
|
|
35
35
|
export declare const getChangedLineItemCountFromLocalData: (transaction: SupportedTransaction, transactionLocalData: TransactionDetailLocalData) => number;
|
|
36
36
|
export declare const toSetAllLineItemsToVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity) => TransactionDetailLocalData;
|