@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.
Files changed (44) hide show
  1. package/lib/commonPayloadTypes/recommendationPayload.d.ts +19 -0
  2. package/lib/entity/account/accountPayload.d.ts +3 -2
  3. package/lib/entity/account/accountPayload.js +10 -1
  4. package/lib/entity/class/classPayload.d.ts +3 -2
  5. package/lib/entity/class/classPayload.js +9 -0
  6. package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
  7. package/lib/entity/tenant/clearAllEpic.js +2 -0
  8. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +3 -2
  9. package/lib/entity/transaction/payloadTypes/transactionPayload.js +51 -1
  10. package/lib/entity/transaction/transactionHelper.d.ts +1 -0
  11. package/lib/entity/transaction/transactionHelper.js +13 -0
  12. package/lib/epic.d.ts +2 -1
  13. package/lib/epic.js +2 -1
  14. package/lib/index.d.ts +2 -0
  15. package/lib/index.js +6 -1
  16. package/lib/reducer.d.ts +3 -0
  17. package/lib/reducer.js +3 -0
  18. package/lib/view/commonVendorView/vendorView/epics/saveVendorEpic.js +1 -1
  19. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  20. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +3 -3
  21. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +2 -2
  22. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +3 -3
  23. package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.js +11 -6
  24. package/lib/view/recommendation/recommendationHelper.d.ts +5 -3
  25. package/lib/view/recommendation/recommendationHelper.js +31 -1
  26. package/lib/view/recommendation/recommendationPayload.d.ts +5 -1
  27. package/lib/view/recommendation/recommendationReducer.d.ts +2 -1
  28. package/lib/view/recommendation/recommendationReducer.js +2 -1
  29. package/lib/view/spendManagement/treasury/treasuryList/epics/fetchTreasuryDetailEpic.d.ts +2 -1
  30. package/lib/view/spendManagement/treasury/treasuryList/epics/fetchTreasuryDetailEpic.js +7 -0
  31. package/lib/view/spendManagement/treasury/treasuryStatementList/fetchTreasuryStatementListEpic.js +2 -1
  32. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/fetchTreasuryTaxLetterListEpic.d.ts +7 -0
  33. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/fetchTreasuryTaxLetterListEpic.js +42 -0
  34. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer.d.ts +15 -0
  35. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListReducer.js +57 -0
  36. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector.d.ts +7 -0
  37. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector.js +18 -0
  38. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListState.d.ts +6 -0
  39. package/lib/view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListState.js +11 -0
  40. package/lib/view/transactionDetail/transactionDetailLocalDataHelper.d.ts +3 -3
  41. package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +1 -4
  42. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +3 -3
  43. package/lib/view/transactionDetail/transactionDetailReducer.js +4 -4
  44. 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: false,
162
+ isRecurring: billInLocalStore.billDetailLocalData.isRecurring,
163
163
  },
164
164
  billId: action.payload.billId,
165
165
  }));
@@ -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, recommendationByLineId?: RecommendationWithCOTByLineId) => TransactionReviewLocalData;
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, recommendationByLineId) => {
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, recommendationByLineId === null || recommendationByLineId === void 0 ? void 0 : recommendationByLineId[lineId]);
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, recommendationByLineId === null || recommendationByLineId === void 0 ? void 0 : recommendationByLineId[lineId]);
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, recommendationByLineId: RecommendationWithCOTByLineId, uncategorizedAccounts: UncategorizedAccounts], {
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
- recommendationByLineId: RecommendationWithCOTByLineId;
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, recommendationByLineId, uncategorizedAccounts) {
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
- recommendationByLineId,
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.recommendationByLineId),
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 recommendationByLineId = (0, recommendationHelper_1.getRecommendationByLineIdFromRecommendationPayload)(response.data.recommendations, lineIds);
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
- const transactionWithCOT = (0, transactionHelper_1.getTransactionWithCOT)(transaction);
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 (recommendationByLineId != null) {
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, transaction, lineIds, entity, amount, recommendationByLineId, uncategorizedIncomeExpense));
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 &&
@@ -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 apiEndpoint = `${zeniAPI.apiEndPoints.bankingMicroServiceBaseUrl}/1.0/treasury-account/statements`;
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) => {
@@ -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>;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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 { RecommendationByLineId } from '../../entity/transaction/stateTypes/transaction';
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: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity, recommendationLineIds: ID[], uncategorizedIncomeExpense: UncategorizedAccounts, recommendationByLineId?: RecommendationByLineId) => TransactionDetailLocalData;
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;