@zeniai/client-epic-state 5.0.55 → 5.0.56

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 (132) hide show
  1. package/lib/commonStateTypes/recommendationBase.d.ts +1 -2
  2. package/lib/commonStateTypes/viewAndReport/viewAndReport.d.ts +2 -2
  3. package/lib/commonStateTypes/viewAndReport/viewAndReport.js +0 -1
  4. package/lib/entity/account/accountState.d.ts +1 -1
  5. package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
  6. package/lib/entity/class/classReducer.d.ts +4 -4
  7. package/lib/entity/class/classState.d.ts +1 -1
  8. package/lib/entity/forecast/forecastState.d.ts +1 -1
  9. package/lib/entity/project/projectPayload.d.ts +1 -8
  10. package/lib/entity/project/projectPayload.js +1 -15
  11. package/lib/entity/project/projectState.d.ts +2 -4
  12. package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
  13. package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
  14. package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
  15. package/lib/entity/sectionProjectView/sectionProjectView.d.ts +1 -1
  16. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +2 -2
  17. package/lib/entity/tenant/clearAllEpic.d.ts +1 -2
  18. package/lib/entity/tenant/clearAllEpic.js +0 -2
  19. package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +1 -1
  20. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +1 -1
  21. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +1 -1
  22. package/lib/entity/tenant/tenantReducer.d.ts +16 -64
  23. package/lib/entity/tenant/tenantReducer.js +7 -86
  24. package/lib/entity/tenant/tenantState.d.ts +1 -3
  25. package/lib/entity/transaction/payloadTypes/transactionLinePayload.d.ts +0 -2
  26. package/lib/entity/transaction/payloadTypes/transactionLinePayload.js +0 -9
  27. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +0 -2
  28. package/lib/entity/transaction/payloadTypes/transactionPayload.js +0 -6
  29. package/lib/entity/transaction/stateTypes/transaction.d.ts +0 -2
  30. package/lib/entity/transaction/stateTypes/transactionLine.d.ts +0 -2
  31. package/lib/epic.d.ts +1 -4
  32. package/lib/epic.js +1 -5
  33. package/lib/esm/commonStateTypes/viewAndReport/viewAndReport.js +0 -1
  34. package/lib/esm/entity/project/projectPayload.js +0 -12
  35. package/lib/esm/entity/tenant/clearAllEpic.js +0 -2
  36. package/lib/esm/entity/tenant/tenantReducer.js +5 -84
  37. package/lib/esm/entity/transaction/payloadTypes/transactionLinePayload.js +0 -9
  38. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +0 -6
  39. package/lib/esm/epic.js +1 -5
  40. package/lib/esm/index.js +7 -11
  41. package/lib/esm/reducer.js +0 -3
  42. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +0 -8
  43. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +0 -3
  44. package/lib/esm/view/expenseAutomationView/helpers/saveTransactionHelper.js +0 -1
  45. package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -11
  46. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +4 -13
  47. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +2 -7
  48. package/lib/esm/view/expenseAutomationView/types/transactionsViewState.js +0 -1
  49. package/lib/esm/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +0 -44
  50. package/lib/esm/view/spendManagement/zeniAccounts/depositAccountDetail/depositAccountDetailSelector.js +1 -1
  51. package/lib/esm/view/spendManagement/zeniAccounts/depositAccountDetail/fetchDepositAccountDetailEpic.js +2 -7
  52. package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +0 -1
  53. package/lib/esm/view/transactionDetail/epics/transactionDetailEpic.js +0 -6
  54. package/lib/esm/view/transactionDetail/epics/updateTransactionDetailEpic.js +0 -3
  55. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +2 -14
  56. package/lib/esm/view/transactionList/transactionListReducer.js +2 -83
  57. package/lib/esm/view/transactionList/transactionListState.js +0 -10
  58. package/lib/index.d.ts +9 -14
  59. package/lib/index.js +30 -44
  60. package/lib/reducer.d.ts +0 -3
  61. package/lib/reducer.js +0 -3
  62. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  63. package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
  64. package/lib/view/billPayCard/billPayCardSelector.d.ts +1 -1
  65. package/lib/view/cardBalance/cardBalanceSelector.d.ts +1 -1
  66. package/lib/view/cashBalance/cashBalanceSelector.d.ts +1 -1
  67. package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +1 -1
  68. package/lib/view/cashPosition/cashPositionSelector.d.ts +1 -1
  69. package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
  70. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.d.ts +1 -2
  71. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +0 -8
  72. package/lib/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +0 -3
  73. package/lib/view/expenseAutomationView/helpers/saveTransactionHelper.js +0 -1
  74. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -2
  75. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -11
  76. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -3
  77. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +4 -13
  78. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +0 -3
  79. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -6
  80. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -4
  81. package/lib/view/expenseAutomationView/types/transactionsViewState.js +0 -1
  82. package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
  83. package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
  84. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.d.ts +1 -15
  85. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +0 -45
  86. package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +1 -1
  87. package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
  88. package/lib/view/spendManagement/zeniAccounts/depositAccountDetail/depositAccountDetailSelector.js +1 -1
  89. package/lib/view/spendManagement/zeniAccounts/depositAccountDetail/fetchDepositAccountDetailEpic.js +2 -7
  90. package/lib/view/tasksCard/tasksCardSelector.d.ts +1 -1
  91. package/lib/view/topEx/topExSelector.d.ts +1 -1
  92. package/lib/view/transactionDetail/epics/saveTransactionHelper.js +0 -1
  93. package/lib/view/transactionDetail/epics/transactionDetailEpic.d.ts +1 -2
  94. package/lib/view/transactionDetail/epics/transactionDetailEpic.js +0 -6
  95. package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +0 -3
  96. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +0 -3
  97. package/lib/view/transactionDetail/transactionDetailSelector.js +1 -13
  98. package/lib/view/transactionDetail/transactionDetailState.d.ts +0 -2
  99. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +0 -2
  100. package/lib/view/transactionList/transactionListPayload.d.ts +0 -15
  101. package/lib/view/transactionList/transactionListReducer.d.ts +2 -25
  102. package/lib/view/transactionList/transactionListReducer.js +2 -83
  103. package/lib/view/transactionList/transactionListState.d.ts +0 -15
  104. package/lib/view/transactionList/transactionListState.js +1 -13
  105. package/package.json +1 -1
  106. package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.d.ts +0 -21
  107. package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.js +0 -42
  108. package/lib/esm/entity/tenant/epic/saveConnectorCredentialsEpic.js +0 -38
  109. package/lib/esm/view/projectList/fetchProjectListEpic.js +0 -38
  110. package/lib/esm/view/projectList/projectListPayload.js +0 -1
  111. package/lib/esm/view/projectList/projectListReducer.js +0 -39
  112. package/lib/esm/view/projectList/projectListSelector.js +0 -9
  113. package/lib/esm/view/projectList/projectListState.js +0 -1
  114. package/lib/esm/view/transactionList/fetchTransactionListByProjectEpic.js +0 -45
  115. package/lib/esm/view/transactionList/parallelFetchProjectTransactionListEpic.js +0 -32
  116. package/lib/esm/view/transactionList/transactionListByProjectSelector.js +0 -58
  117. package/lib/view/projectList/fetchProjectListEpic.d.ts +0 -8
  118. package/lib/view/projectList/fetchProjectListEpic.js +0 -42
  119. package/lib/view/projectList/projectListPayload.d.ts +0 -7
  120. package/lib/view/projectList/projectListPayload.js +0 -2
  121. package/lib/view/projectList/projectListReducer.d.ts +0 -9
  122. package/lib/view/projectList/projectListReducer.js +0 -43
  123. package/lib/view/projectList/projectListSelector.d.ts +0 -8
  124. package/lib/view/projectList/projectListSelector.js +0 -13
  125. package/lib/view/projectList/projectListState.d.ts +0 -4
  126. package/lib/view/projectList/projectListState.js +0 -2
  127. package/lib/view/transactionList/fetchTransactionListByProjectEpic.d.ts +0 -8
  128. package/lib/view/transactionList/fetchTransactionListByProjectEpic.js +0 -52
  129. package/lib/view/transactionList/parallelFetchProjectTransactionListEpic.d.ts +0 -6
  130. package/lib/view/transactionList/parallelFetchProjectTransactionListEpic.js +0 -36
  131. package/lib/view/transactionList/transactionListByProjectSelector.d.ts +0 -22
  132. package/lib/view/transactionList/transactionListByProjectSelector.js +0 -66
package/lib/esm/index.js CHANGED
@@ -59,7 +59,7 @@ import { closeSnackbar, openSnackbar } from './entity/snackbar/snackbarReducer';
59
59
  import { getSnackbar } from './entity/snackbar/snackbarSelector';
60
60
  import { ALL_WEEK_DAYS, toDayOfWeek, toPriorityCodeType, toTaskStatusCodeType, } from './entity/task/taskState';
61
61
  import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
62
- import { clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, deleteConnection, saveAPIKeyConnection, saveConnectorCredentials, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, sendEmailMagicLinkToUser, sendSessionHeartbeat, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
62
+ import { clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, deleteConnection, saveAPIKeyConnection, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, sendEmailMagicLinkToUser, sendSessionHeartbeat, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
63
63
  import { getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView, } from './entity/tenant/tenantSelector';
64
64
  import { pushToastNotification } from './entity/toastNotification/toastNotificationReducer';
65
65
  import { getLastNotificationTime, getNotifications, } from './entity/toastNotification/toastNotificationSelector';
@@ -123,8 +123,6 @@ import { fetchCashPosition, updateCashPositionCOABalancesRange, updateCashPositi
123
123
  import { getCashPosition, getCashPositionForHighlightedRange, getCashPositionForSelectedRange, getCashPositionUIState, } from './view/cashPosition/cashPositionSelector';
124
124
  import { fetchClassList } from './view/classList/classListReducer';
125
125
  import { getClassList, } from './view/classList/classListSelector';
126
- import { fetchProjectList } from './view/projectList/projectListReducer';
127
- import { getProjectList, } from './view/projectList/projectListSelector';
128
126
  import { SEMI_WEEKLY_REQUIRED_DAYS_COUNT, getMinAllowedEndDate, getRecurringEndDateFromCount, toRecurringFrequency, } from './view/common/recurringViewHelper';
129
127
  import { ZENI_CLEARING_ACCOUNT, isZeniClearingAccount, isZeniClearingAccountReport, } from './view/common/zeniClearingAccountHelper';
130
128
  import { clearTransactionVendorSaveStatus, resetTransactionVendorLocalData, saveTransactionVendor, saveTransactionVendorSuccessOrFailure, updateTransactionVendorLocalData, } from './view/commonVendorView/transactionVendorView/transactionVendorViewReducer';
@@ -224,7 +222,6 @@ import { fetchProfitAndLoss, fetchProfitAndLossForTimeframe, resetProfitAndLossN
224
222
  import { getPandLReportFetchState, getProfitAndLossReport, } from './view/profitAndLoss/profitAndLossSelector';
225
223
  import { getEmptyHorizontalSectionBalancesSlice } from './view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice';
226
224
  import { getProfitAndLossClassesHorizontalView } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector';
227
- import { aggregateHorizontalDescendantBalances } from './view/profitAndLossClassesView/profitAndLossHorizontalEnrichment';
228
225
  import { HORIZONTAL_CLASS_TOTAL_BALANCE_ID, isHorizontalAccountReportData, } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes';
229
226
  import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateClassViewLayout, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateProfitAndLossClassesViewUIState, } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
230
227
  import { getProfitAndLossClassesView } from './view/profitAndLossClassesView/profitAndLossClassesViewSelector';
@@ -384,9 +381,8 @@ import { getThirdPartyIdFromTransactionId, } from './view/transactionDetail/tran
384
381
  import { getTransactionListByAccount, getTransactionListUIStateByAccountKey, } from './view/transactionList/transactionListByAccountSelector';
385
382
  import { getTransactionListUIStateByCategoryType, getTransactionsListByCategoryType, } from './view/transactionList/transactionListByCategoryTypeSelector';
386
383
  import { getTransactionListByClass, getTransactionListUIStateByClassKey, } from './view/transactionList/transactionListByClassSelector';
387
- import { getTransactionListByProject, getTransactionListUIStateByProjectKey, } from './view/transactionList/transactionListByProjectSelector';
388
384
  import { getTransactionListByEntity, getTransactionListByEntityForSinglePeriod, } from './view/transactionList/transactionListByEntitySelector';
389
- import { clearTransactionList, fetchAccountTransactionList, fetchEntityTransactionList, parallelFetchAccountTransactionList, parallelFetchClassTransactionList, parallelFetchProjectTransactionList, parallelFetchEntityTransactionList, parallelFetchTransactionListByCategoryType, updateLatestTransactionId, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByProject, updateTransactionListByProjectUIState, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListUIStateByCategoryType, } from './view/transactionList/transactionListReducer';
385
+ import { clearTransactionList, fetchAccountTransactionList, fetchEntityTransactionList, parallelFetchAccountTransactionList, parallelFetchClassTransactionList, parallelFetchEntityTransactionList, parallelFetchTransactionListByCategoryType, updateLatestTransactionId, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListUIStateByCategoryType, } from './view/transactionList/transactionListReducer';
390
386
  import { clearTrendData, fetchExpenseTrend, fetchIncomeTrend, } from './view/trend/trendReducer';
391
387
  import { getCurrentFiscalQuarterDateRange, getTrendForEntity, } from './view/trend/trendSelector';
392
388
  import { clearTrendWithTransactions, fetchTransactionsForEntity, fetchTrendForEntity, updateSelectedTimeperiod, } from './view/trendWithTransactions/trendWithTransactionsReducer';
@@ -450,7 +446,7 @@ export { toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsolute
450
446
  export { toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
451
447
  export { getNumberOfPeriods };
452
448
  export { SCHEDULE_DAYS_OF_MONTH, toScheduleDaysOfMonth, toMonth, toMonthStrict, toQuarter, toQuarterStrict, };
453
- export { getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut, sendSessionHeartbeat, resetSignInState, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, deleteConnection, saveAPIKeyConnection, saveConnectorCredentials, saveOAuthConnection, toExternalIntegrationType, toExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
449
+ export { getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut, sendSessionHeartbeat, resetSignInState, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, deleteConnection, saveAPIKeyConnection, saveOAuthConnection, toExternalIntegrationType, toExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
454
450
  export { toAccountType, toAccountGroupType, getAccountGroupKey, };
455
451
  export { getClassById } from './entity/class/classSelector';
456
452
  export { getForecast };
@@ -474,7 +470,7 @@ export { fetchDashboard, getDashboard, updateTreasuryVideoClosed, };
474
470
  export { updateDashboardLayout };
475
471
  export { getPandLWithForecast, } from './view/profitAndLoss/pAndLWithForecast/pAndLWithForecastSelector';
476
472
  export { fetchProfitAndLoss, resetProfitAndLossNodeCollapseState, updateProfitAndLossUIState, getProfitAndLossReport, getPandLReportFetchState, fetchProfitAndLossForTimeframe, };
477
- export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, updateClassViewLayout, getProfitAndLossClassesView, aggregateHorizontalDescendantBalances, getEmptyHorizontalSectionBalancesSlice, getProfitAndLossClassesHorizontalView, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, HORIZONTAL_CLASS_TOTAL_BALANCE_ID, isHorizontalAccountReportData, };
473
+ export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, updateClassViewLayout, getProfitAndLossClassesView, getEmptyHorizontalSectionBalancesSlice, getProfitAndLossClassesHorizontalView, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, HORIZONTAL_CLASS_TOTAL_BALANCE_ID, isHorizontalAccountReportData, };
478
474
  export { clearProfitAndLossProjectView, fetchProfitAndLossForTimeframeProjectView, fetchProfitAndLossProjectView, resetProfitAndLossProjectNodeCollapseState, updateProjectViewAccountViewMode, updateProjectsToFilterOut, updateProfitAndLossProjectViewUIState, getProfitAndLossProjectView, };
479
475
  export { getAccountingProviderAttachment };
480
476
  export { fetchUserListByType, getUserList };
@@ -495,12 +491,12 @@ export { defaultVendorCurrency, updateVendors };
495
491
  export { isVendorTransaction, isVendorTransactionWithCustomer, };
496
492
  export { isTransferTransaction };
497
493
  export { getSupportedTransactionById, };
498
- export { clearTransactionList, updateLatestTransactionId, parallelFetchAccountTransactionList, parallelFetchEntityTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, updateTransactionListByClassUIState, updateTransactionListByClass, parallelFetchProjectTransactionList, updateTransactionListByProjectUIState, updateTransactionListByProject, updateTransactionListUIStateByCategoryType, parallelFetchTransactionListByCategoryType, };
494
+ export { clearTransactionList, updateLatestTransactionId, parallelFetchAccountTransactionList, parallelFetchEntityTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, updateTransactionListByClassUIState, updateTransactionListByClass, updateTransactionListUIStateByCategoryType, parallelFetchTransactionListByCategoryType, };
499
495
  export { getTransactionListByAccount, getTransactionListUIStateByAccountKey, };
500
496
  export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetSelectedCustomer, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, };
501
497
  export { downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetail, uploadMissingAttachmentSuccess, deleteTransactionAttachment, getThirdPartyIdFromTransactionId, };
502
498
  export { getTransactionListByEntity };
503
- export { getTransactionListByClass, getTransactionListUIStateByClassKey, getTransactionListByProject, getTransactionListUIStateByProjectKey, getTransactionListByEntityForSinglePeriod, };
499
+ export { getTransactionListByClass, getTransactionListUIStateByClassKey, getTransactionListByEntityForSinglePeriod, };
504
500
  export { getTransactionDetail, getTransactionDetailForTransaction, getInitialUpdatablePeriodsForTransactionRecommendations as getUpdatablePeriodsForTransactionRecommendations, };
505
501
  export { getInsights, fetchInsightsCard, updateSelectedInsightIndex, };
506
502
  export { fetchForecastList } from './view/forecastList/forecastListReducer';
@@ -549,7 +545,7 @@ export { fetchVendorsList, updateScrollYOffset, fetchVendorsFiling1099All, fetch
549
545
  export { updateW9FormUploadFetchState, updateW9FormUploadFile, getVendorUploadDetailsByVendorId, vendorFiling1099UploadDetailsSave, vendorFiling1099UploadDetailsResetFormStatus, vendorFiling1099UploadDetailsResetLocalData, initializeVendorFiling1099UploadDetailsLocalState, updateVendor1099DetailsLocalData, updateW9FormOCRDataToLocalData, };
550
546
  export { toOutsideZeniPaymentModeType, checkShowMarkAsPaidButton, };
551
547
  export { toRemiSubTabType, toRemiSubTabTypeStrict, toRemiTabType, toRemiTabTypeStrict, toReimbursementTypeCode, getRemiList, getRemiDownloadList, fetchRemiList, fetchRemiListPerTab, updateRemiListTab, updateRemiListSubTab, updateRemiDetailSaveRemiCode, updateRemiListUIState, updateRemiListSearchResult, updateBillListFilterResult, updateRemiListFilterResult, REIMBURSEMENT_FILTER_CATEGORIES, REIMBURSEMENT_FILTER_CATEGORIES_RESTRICTED, updateRemiListDownloadUIState, updateBillListDownloadUIState, updateBillsBulkActionList, removeBillFromBulkActionList, clearAllBillsFromBulkActionList, getBillsBulkReviewView, validateBillsBulkAction, approveOrRejectBillsBulkAction, cancelOrDeleteBillsBulkAction, submitDraftBillsBulkAction, autoReviewPendingApprovalBills, incrementBulkActionProcessedCount, getBillsBulkOperationProgress, clearBillPayBulkActionView, isBillConditionallyValid, getRemisBulkReviewView, getRemisBulkOperationProgress, updateRemisBulkActionList, removeRemiFromBulkActionList, clearAllRemisFromBulkActionList, reviewDraftRemisBulkAction, approveOrRejectRemisBulkAction, cancelOrDeleteRemisBulkAction, submitDraftRemisBulkAction, autoReviewPendingApprovalRemis, clearRemiBulkActionView, incrementRemiBulkActionProcessedCount, updateOutsideZeniPaymentLocalData, discardOutsideZeniPaymentLocalData, checkIfCreatorIsApprover, };
552
- export { getClassList, fetchClassList, getProjectList, fetchProjectList, };
548
+ export { getClassList, fetchClassList, };
553
549
  export { fetchBillList, fetchBillListPerTab, updateTab, updateSubTab, updateSelectedBillId, updateBillDetailSaveBillCode, fetchVendorByNameAndParseInvoice, saveBillUpdatesToLocalStore, discardBillUpdatesInLocalStore, saveBillDetail, approveOrRejectBill, updateApprovalStatusOnSuccess, deleteBill, cancelAndDeleteBill, retryOrRefundBill, getBillList, getBillDownloadList, getBillDetailView, checkApproveRejectBtnShowForBill, getBillTransactionDetailKey, fetchBillDetail, fetchEditBillDetailPage, fetchAndUpdateVendorRecommendations, fetchDuplicateBill, clearBillPayReview, getEditBillDetail, getReviewPageBillDetail, fetchBillAndInitializeLocalStore, updateShowAutofill, saveVendorSuccessOrFailure, updateBillListUIState, BILL_PAY_FILTER_CATEGORIES, updateVendorDetailLocalData, resetVendorDetailLocalData, resetVendorSaveStatus, updateContactsInVendorDetailLocalData, updateVendorTabDetailUIState, updateContactsInVendorTabDetailLocalData, updateBillUploadFetchState, updateBillListSearchResult, fetchUserDetails, verifyUser, updateVendorContact, toPaymentToOption, convertAmountToHomeCurrency, fetchVendorAndUpdateBillLocalData, markBillForRetry, updateWithdrawFromAccountId, removeBillFileFromLocalStore, replaceBillFileInLocalStore, updateShouldReplaceBillData, };
554
550
  export { hideCreatedByFilter, };
555
551
  export { fetchBillPaySetupView, fetchZeniAccountSetupView, enableSetup, getPaymentAccounts, getPlaidLinkToken, updateSelectedCompanyOfficer, updateSetupViewLocalStoreData, updateBusinessVerificationDetails, updatePaymentAccount, updatePaymentAccountLoginStatus, updatePaymentAccountStatus, establishPlaidConnection, updateMappedCashAccount, updatePrimaryFundingAccount, acceptBillPayTerms, acceptZeniAccountTerms, acceptBillPayUpdatedTerms, saveSetupViewDataInLocalStore, saveCompnayOfficerPhoneInLocalStore, saveCompnayOfficerAdditionalDocumentsInLocalStore, saveTreasuryAdditionalDocumentsInLocalStore, saveIndustryAndIncDateInLocalStore, clearSetupViewDataInLocalStore, clearBillPaySetupView, clearZeniAccountSetupView, sendOtp, resendOtp, verifyOtp, getBillPaySetupViewDetails, getPlaidAccountDetails, getZeniAccountSetupViewDetails, getBusinessVerificationDetails, getBillPayBusinessVerificationDetails, getZeniAccountBusinessVerificationDetails, getTreasuryBusinessVerificationDetails, getCommonSetupViewDetails, getTwoFactorAuthenticationView, getTwoFactorAuthenticationViewForCardUserOnboarding, getTwoFactorAuthenticationViewForChargeCardHolder, };
@@ -130,7 +130,6 @@ import people, { initialState as initialPeopleState, } from './view/people/peopl
130
130
  import profitAndLoss, { initialState as initialProfitAndLossState, } from './view/profitAndLoss/profitAndLossReducer';
131
131
  import profitAndLossClassesView, { initialState as initialProfitAndLossClassesViewState, } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
132
132
  import profitAndLossProjectView, { initialState as initialProfitAndLossProjectViewState, } from './view/profitAndLossProjectView/profitAndLossProjectViewReducer';
133
- import projectList, { initialState as initialProjectListState, } from './view/projectList/projectListReducer';
134
133
  import recommendation, { initialState as initialEntityRecommendationState, } from './view/recommendation/recommendationReducer';
135
134
  import referralView, { initialState as initialReferralViewState, } from './view/referralView/referralReducer';
136
135
  import reimbursementCard, { initialState as initialReimbursementCardState, } from './view/reimbursementCard/reimbursementCardReducer';
@@ -391,7 +390,6 @@ const initialViewsState = {
391
390
  profitAndLossClassesViewState: initialProfitAndLossClassesViewState,
392
391
  profitAndLossProjectViewState: initialProfitAndLossProjectViewState,
393
392
  profitAndLossState: initialProfitAndLossState,
394
- projectListState: initialProjectListState,
395
393
  realTimeApprovalState: initialRealTimeApprovalState,
396
394
  referralViewState: initialReferralViewState,
397
395
  reimbursementCardState: initialReimbursementCardState,
@@ -627,7 +625,6 @@ const viewReducers = {
627
625
  profitAndLossClassesViewState: profitAndLossClassesView,
628
626
  profitAndLossProjectViewState: profitAndLossProjectView,
629
627
  profitAndLossState: profitAndLoss,
630
- projectListState: projectList,
631
628
  realTimeApprovalState: realTimeApproval,
632
629
  referralViewState: referralView,
633
630
  reimbursementCardState: reimbursementCard,
@@ -1,11 +1,9 @@
1
1
  import { from } from 'rxjs';
2
2
  import { filter, mergeMap } from 'rxjs/operators';
3
3
  import { toMonthYearPeriodId, } from '../../../../commonStateTypes/timePeriod';
4
- import { getIsAccountingProjectsEnabled } from '../../../../entity/tenant/tenantSelector';
5
4
  import { fetchAccountList } from '../../../accountList/accountListReducer';
6
5
  import { fetchClassList } from '../../../classList/classListReducer';
7
6
  import { fetchOwnerList } from '../../../ownerList/ownerListReducer';
8
- import { fetchProjectList } from '../../../projectList/projectListReducer';
9
7
  import { fetchTransactionCategorization, fetchTransactionCategorizationView, } from '../../reducers/transactionsViewReducer';
10
8
  export const fetchTransactionCategorizationViewEpic = (actions$, state$) => actions$.pipe(filter(fetchTransactionCategorizationView.match), mergeMap((action) => {
11
9
  const { selectedTab, cacheOverride, keepExistingListItems, pageToken, period, refreshViewInBackground, searchString, resetListItems, isUncategorizedExpenseCategoryEnabled, } = action.payload;
@@ -28,12 +26,6 @@ export const fetchTransactionCategorizationViewEpic = (actions$, state$) => acti
28
26
  classList.fetchState === 'Not-Started') {
29
27
  updateActions.push(fetchClassList());
30
28
  }
31
- const projectList = state$.value.projectListState;
32
- if (getIsAccountingProjectsEnabled(state$.value) &&
33
- projectList.hasValidState() === false &&
34
- projectList.fetchState === 'Not-Started') {
35
- updateActions.push(fetchProjectList());
36
- }
37
29
  const vendorOwnerList = state$.value.ownerListState;
38
30
  if (vendorOwnerList.hasValidState() === false &&
39
31
  vendorOwnerList.fetchState === 'Not-Started') {
@@ -110,9 +110,6 @@ const toTransactionUpdatePayload = (updates, detail, transactionId, cotTrackingB
110
110
  if (lineUpdates.class != null) {
111
111
  lineToBeUpdated.class = lineUpdates.class;
112
112
  }
113
- if (lineUpdates.project != null) {
114
- lineToBeUpdated.project = lineUpdates.project;
115
- }
116
113
  if (lineUpdates.account != null) {
117
114
  lineToBeUpdated.account = lineUpdates.account;
118
115
  }
@@ -41,7 +41,6 @@ export const toTransactionUpdatesFromTransactionCategorizationLocalData = (trans
41
41
  lineDescription: lineItem.lineDescription,
42
42
  class: lineItem.class,
43
43
  account: lineItem.account,
44
- project: lineItem.project,
45
44
  recommendation: convertCOTRecommendationsToRegular(lineItem.recommendationsWithCOT),
46
45
  };
47
46
  if (line.type === 'journal_entry_transaction_line' ||
@@ -183,7 +183,6 @@ const buildLineItemById = (transaction, uncategorizedIncomeExpense, recommendati
183
183
  const lineId = line.id;
184
184
  record.account = accountLine.account;
185
185
  record.class = accountLine.class;
186
- record.project = accountLine.project;
187
186
  record.vendor =
188
187
  accountLine.vendor != null
189
188
  ? {
@@ -306,7 +305,7 @@ const buildLineItemById = (transaction, uncategorizedIncomeExpense, recommendati
306
305
  });
307
306
  return lineItemData;
308
307
  };
309
- export const toSetAllLineItemsToCategoryClass = (draft, transaction, transactionId, transactionLineId, transactionDetailLocalData, updatedItem, uncategorizedAccounts, selectedTab, vendorId, customerId, selectedAccount, selectedClassBase, selectedProjectBase, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled) => {
308
+ export const toSetAllLineItemsToCategoryClass = (draft, transaction, transactionId, transactionLineId, transactionDetailLocalData, updatedItem, uncategorizedAccounts, selectedTab, vendorId, customerId, selectedAccount, selectedClassBase, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled) => {
310
309
  let newLineItems = {};
311
310
  let selectedCheckBoxTransactionIds = draft.selectedCheckBoxTransactionIds;
312
311
  let similarTransactionUpdated = false;
@@ -326,7 +325,7 @@ export const toSetAllLineItemsToCategoryClass = (draft, transaction, transaction
326
325
  const record = {
327
326
  ...transactionDetailLocalData.lineItemById[lineId],
328
327
  };
329
- // if the line is the one that is being updated, then set the account, class, and project
328
+ // if the line is the one that is being updated, then set the account and class
330
329
  if (transactionId === record.transactionId &&
331
330
  transactionLineId === lineId) {
332
331
  if (selectedAccount != null) {
@@ -335,9 +334,6 @@ export const toSetAllLineItemsToCategoryClass = (draft, transaction, transaction
335
334
  if (selectedClassBase != null) {
336
335
  record.class = selectedClassBase;
337
336
  }
338
- if (selectedProjectBase != null) {
339
- record.project = selectedProjectBase;
340
- }
341
337
  const isClassSatisfied = isAccountingClassesEnabled === false || record.class != null;
342
338
  if (isClassSatisfied && record.account != null) {
343
339
  if (selectedCheckBoxTransactionIds.length < MAX_SELECTION_LIMIT &&
@@ -389,10 +385,6 @@ export const toSetAllLineItemsToCategoryClass = (draft, transaction, transaction
389
385
  selectedCheckBoxTransactionIds.push(transaction.id);
390
386
  }
391
387
  }
392
- // Project intentionally does NOT propagate to other rows of
393
- // the same vendor: each line can carry a different project,
394
- // and auto-filling siblings (the way class does) leads to
395
- // unexpected bulk selection.
396
388
  }
397
389
  }
398
390
  if (line.type === 'transaction_with_product_or_service_line') {
@@ -522,7 +514,6 @@ export const setEntityRecommendationForLineIdInLocalData = (draft, transaction,
522
514
  ...newLineItem,
523
515
  class: matchingRecord.class,
524
516
  account: matchingRecord.account,
525
- project: matchingRecord.project,
526
517
  lineEntity: matchingRecord.lineEntity,
527
518
  };
528
519
  }
@@ -282,7 +282,7 @@ const expenseAutomationTransactionsView = createSlice({
282
282
  },
283
283
  setAllItemsToCategoryClassInLocalDataForCategorization: {
284
284
  reducer(draft, action) {
285
- const { vendorId, customerId, selectedAccount, selectedClassBase, selectedProjectBase, transactions, transactionId, lineId, selectedTab, uncategorizedAccounts, isAccountingClassesEnabled, isUncategorizedExpenseCategoryEnabled, } = action.payload;
285
+ const { vendorId, customerId, selectedAccount, selectedClassBase, transactions, transactionId, lineId, selectedTab, uncategorizedAccounts, isAccountingClassesEnabled, isUncategorizedExpenseCategoryEnabled, } = action.payload;
286
286
  const transactionLocalData = recordGet(draft.transactionCategorizationView[selectedTab]
287
287
  .transactionReviewLocalDataById, transactionId, undefined);
288
288
  const existingAccount = transactionLocalData?.transactionReviewLocalData.lineItemById[lineId]
@@ -296,7 +296,6 @@ const expenseAutomationTransactionsView = createSlice({
296
296
  ...transactionLocalData.transactionReviewLocalData.lineItemById[lineId],
297
297
  account: selectedAccount,
298
298
  class: selectedClassBase,
299
- project: selectedProjectBase,
300
299
  },
301
300
  },
302
301
  };
@@ -325,16 +324,9 @@ const expenseAutomationTransactionsView = createSlice({
325
324
  const transactionLocalData = recordGet(draft.transactionCategorizationView[selectedTab]
326
325
  .transactionReviewLocalDataById, transaction.id, undefined);
327
326
  if (transactionLocalData != null) {
328
- const existingClassId = transactionLocalData.transactionReviewLocalData.lineItemById[lineId]?.class?.classId;
329
- const existingProjectId = transactionLocalData.transactionReviewLocalData.lineItemById[lineId]?.project?.projectId;
330
- const updatedItem = existingAccount?.accountId !== selectedAccount?.accountId
327
+ const { localData, similarTransactionUpdated } = toSetAllLineItemsToCategoryClass(draft.transactionCategorizationView[selectedTab], transaction, transactionId, lineId, transactionLocalData.transactionReviewLocalData, existingAccount?.accountId !== selectedAccount?.accountId
331
328
  ? 'category'
332
- : existingClassId !== selectedClassBase?.classId
333
- ? 'class'
334
- : existingProjectId !== selectedProjectBase?.projectId
335
- ? 'project'
336
- : 'class';
337
- const { localData, similarTransactionUpdated } = toSetAllLineItemsToCategoryClass(draft.transactionCategorizationView[selectedTab], transaction, transactionId, lineId, transactionLocalData.transactionReviewLocalData, updatedItem, uncategorizedAccounts, selectedTab, vendorId, customerId, selectedAccount, selectedClassBase, selectedProjectBase, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled);
329
+ : 'class', uncategorizedAccounts, selectedTab, vendorId, customerId, selectedAccount, selectedClassBase, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled);
338
330
  draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById[transaction.id] = {
339
331
  transactionId: transaction.id,
340
332
  transactionReviewLocalData: localData,
@@ -353,7 +345,7 @@ const expenseAutomationTransactionsView = createSlice({
353
345
  ...dirtyIds,
354
346
  ]);
355
347
  },
356
- prepare(selectedTab, transactionId, lineId, transactions, uncategorizedAccounts, vendorId, customerId, selectedAccount, selectedClassBase, lineEntity, recommendations, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled, selectedProjectBase) {
348
+ prepare(selectedTab, transactionId, lineId, transactions, uncategorizedAccounts, vendorId, customerId, selectedAccount, selectedClassBase, lineEntity, recommendations, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled) {
357
349
  return {
358
350
  payload: {
359
351
  selectedTab,
@@ -365,7 +357,6 @@ const expenseAutomationTransactionsView = createSlice({
365
357
  lineEntity,
366
358
  selectedAccount,
367
359
  selectedClassBase,
368
- selectedProjectBase,
369
360
  recommendations,
370
361
  uncategorizedAccounts,
371
362
  isAccountingClassesEnabled,
@@ -1,15 +1,14 @@
1
1
  import omit from 'lodash/omit';
2
2
  import { reduceAllFetchState, reduceAnyFetchState, } from '../../../commonStateTypes/reduceFetchState';
3
3
  import { toMonthYearPeriodId } from '../../../commonStateTypes/timePeriod';
4
- import { getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, } from '../../../entity/tenant/tenantSelector';
4
+ import { getIsAccountingClassesEnabled, getCurrentTenant, } from '../../../entity/tenant/tenantSelector';
5
5
  import { getTransactionWithCOT } from '../../../entity/transaction/transactionHelper';
6
6
  import { getSupportedTransactionsByIds } from '../../../entity/transaction/transactionSelector';
7
7
  import { getAccountList, getNestedAccountListHierarchy, getUncategorizedAccounts, } from '../../accountList/accountListSelector';
8
8
  import { getClassList, getNestedClassListHierarchy, } from '../../classList/classListSelector';
9
- import { getProjectList } from '../../projectList/projectListSelector';
10
9
  import { getAllSteps } from '../selectorTypes/expenseAutomationViewSelectorTypes';
11
10
  export function getExpenseAutomationTransactionView(state) {
12
- const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, projectState, projectListState, transactionState, monthEndCloseChecksState, monthEndCloseChecksViewState, } = state;
11
+ const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, monthEndCloseChecksViewState, } = state;
13
12
  const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
14
13
  const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, uploadReceiptStatusById, selectedTransactionId, selectedTransactionLineId, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
15
14
  const uncategorizedIncomeExpense = getUncategorizedAccounts(accountState, accountListState, 'accountList');
@@ -18,8 +17,6 @@ export function getExpenseAutomationTransactionView(state) {
18
17
  const allClasses = classList.classes.map((classData) => {
19
18
  return omit(classData, ['accountIds', 'key']);
20
19
  });
21
- const projectList = getProjectList(projectState, projectListState);
22
- const isAccountingProjectsEnabled = getIsAccountingProjectsEnabled(state);
23
20
  const accountsHierarchyList = getNestedAccountListHierarchy(accountListState, 'accountList');
24
21
  const classHierarchyList = getNestedClassListHierarchy(classListState);
25
22
  const currentTenant = getCurrentTenant(state);
@@ -99,8 +96,6 @@ export function getExpenseAutomationTransactionView(state) {
99
96
  classList: allClasses,
100
97
  accountsHierarchyList,
101
98
  classHierarchyList,
102
- isAccountingProjectsEnabled,
103
- projectList,
104
99
  transactionLocalData,
105
100
  uiState,
106
101
  refreshStatus,
@@ -8,7 +8,6 @@ const TRANSACTIONS_SORT_KEYS = [
8
8
  'date',
9
9
  'category',
10
10
  'class',
11
- 'project',
12
11
  'memo_and_receipt',
13
12
  ];
14
13
  export const toTransactionsSortKey = (v) => stringToUnion(v, TRANSACTIONS_SORT_KEYS);
@@ -115,50 +115,6 @@ function buildHorizontalClassColumnBalancesSlice(report, classAmounts, totalAmou
115
115
  },
116
116
  };
117
117
  }
118
- /**
119
- * Sum balances across descendant accounts (recursive).
120
- *
121
- * Parent rows in the horizontal pivot only carry their own direct postings
122
- * (zero for "container" accounts), so callers rendering "Total {parent}" rows
123
- * must aggregate from descendants to get the real per-class totals.
124
- *
125
- * Returns one `COABalance` per class column + total (same shape as the
126
- * enriched `balancesInTimeframe.balances`), with `amount` summed and `type`
127
- * set to `default_with_null_balance` for zeros. Returns `[]` when no
128
- * descendants have enriched data.
129
- */
130
- export function aggregateHorizontalDescendantBalances(accounts, childIndices, childrenByParent) {
131
- let template;
132
- const sums = new Map();
133
- const walk = (idx) => {
134
- const childRow = accounts[idx];
135
- const childBalances = childRow?.accountReportData?.balancesInTimeframe.balances;
136
- if (childBalances != null) {
137
- if (template == null) {
138
- template = childBalances;
139
- }
140
- childBalances.forEach((b, i) => {
141
- sums.set(i, (sums.get(i) ?? 0) + (b.balance.amount ?? 0));
142
- });
143
- }
144
- // Always recurse — a missing intermediate node should not prune its
145
- // descendants from the aggregate.
146
- const grandChildren = childrenByParent[idx] ?? [];
147
- grandChildren.forEach(walk);
148
- };
149
- childIndices.forEach(walk);
150
- if (template == null) {
151
- return [];
152
- }
153
- return template.map((tpl, i) => {
154
- const amount = sums.get(i) ?? 0;
155
- return {
156
- ...tpl,
157
- balance: { ...tpl.balance, amount },
158
- type: amount === 0 ? 'default_with_null_balance' : 'default',
159
- };
160
- });
161
- }
162
118
  /**
163
119
  * Parent index per DFS row — O(n). Matches the scan in the former
164
120
  * `findHorizontalAccountParentIndex` (depth &lt;= 2 rows have no parent).
@@ -30,7 +30,7 @@ export const getDepositAccountDetail = (state, depositAccountId) => {
30
30
  const zeniAccountDetail = zeniAccountDetailState.depositAccountDetailById[depositAccountId];
31
31
  const depositAccount = getDepositAccountByDepositAccountId(depositAccountState, depositAccountId);
32
32
  const zeniAccountsConfig = getZeniAccountsConfigDetail(state);
33
- const transactionListView = getDepositAccountTransactionList(state, depositAccountId);
33
+ const transactionListView = getDepositAccountTransactionList(state, depositAccountId, 5);
34
34
  let accountUpdateStatus = {
35
35
  editName: {
36
36
  fetchState: 'Not-Started',
@@ -16,7 +16,7 @@ export const fetchDepositAccountDetailEpic = (actions$, state$) => actions$.pipe
16
16
  zeniAccountActions.push(fetchPaymentAccountList());
17
17
  zeniAccountActions.push(fetchZeniAccountsConfig());
18
18
  zeniAccountActions.push(fetchDepositAccount(depositAccountId));
19
- zeniAccountActions.push(fetchDepositAccountTransactionList(depositAccountId, true));
19
+ zeniAccountActions.push(fetchDepositAccountTransactionList(depositAccountId, true, 5));
20
20
  zeniAccountActions.push(fetchAccountHistory(depositAccountId));
21
21
  }
22
22
  else {
@@ -37,12 +37,7 @@ export const fetchDepositAccountDetailEpic = (actions$, state$) => actions$.pipe
37
37
  targetZeniAccountAccount.fetchState !== 'In-Progress')) {
38
38
  zeniAccountActions.push(fetchDepositAccount(depositAccountId));
39
39
  }
40
- const transactionList = state.depositAccountTransactionListState.byDepositId[depositAccountId];
41
- if (transactionList == null ||
42
- (transactionList.fetchState !== 'Completed' &&
43
- transactionList.fetchState !== 'In-Progress')) {
44
- zeniAccountActions.push(fetchDepositAccountTransactionList(depositAccountId, false));
45
- }
40
+ zeniAccountActions.push(fetchDepositAccountTransactionList(depositAccountId, false, 5));
46
41
  const zeniAccountsConfig = state.zeniAccountsConfigState;
47
42
  if (zeniAccountsConfig.hasValidState() === false &&
48
43
  zeniAccountsConfig.fetchState !== 'In-Progress') {
@@ -51,7 +51,6 @@ export const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDe
51
51
  lineDescription: lineItem.lineDescription,
52
52
  class: lineItem.class,
53
53
  account: lineItem.account,
54
- project: lineItem.project,
55
54
  recommendation: convertCOTRecommendationsToRegular(lineItem.recommendationsWithCOT),
56
55
  };
57
56
  if (line.type === 'journal_entry_transaction_line' ||
@@ -14,7 +14,6 @@ import { fetchClassList } from '../../classList/classListReducer';
14
14
  import { getInitializedTransactionVendorLocalData } from '../../commonVendorView/transactionVendorView/transactionVendorLocalDataHelper';
15
15
  import { updateTransactionVendorLocalData } from '../../commonVendorView/transactionVendorView/transactionVendorViewReducer';
16
16
  import { fetchOwnerList } from '../../ownerList/ownerListReducer';
17
- import { fetchProjectList } from '../../projectList/projectListReducer';
18
17
  import { fetchTransactionDetail, initializeTransactionDetailLocalData, removeTransactionDetail, updateTransactionDetailFetchState, } from '../transactionDetailReducer';
19
18
  import { getAllLinkedTransactions, getTransactionDetailKey, } from '../transactionDetailState';
20
19
  export const fetchTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchTransactionDetail.match), mergeMap((action) => {
@@ -40,11 +39,6 @@ export const fetchTransactionDetailEpic = (actions$, state$, zeniAPI) => actions
40
39
  classList.fetchState !== 'In-Progress') {
41
40
  transactionActions.push(fetchClassList());
42
41
  }
43
- const projectList = state$.value.projectListState;
44
- if (projectList.hasValidState() === false &&
45
- projectList.fetchState !== 'In-Progress') {
46
- transactionActions.push(fetchProjectList());
47
- }
48
42
  transactionActions.push(updateTransactionDetailFetchState(transactionId, 'In-Progress'));
49
43
  const query = { transaction_type: transactionId.type };
50
44
  const getTransactionDetail$ = zeniAPI
@@ -181,9 +181,6 @@ const toTransactionUpdatePayload = (updates, detail, cotTransactionTracking, ven
181
181
  if (lineUpdates.account != null) {
182
182
  lineTobeUpdated.account = lineUpdates.account;
183
183
  }
184
- if (lineUpdates.project != null) {
185
- lineTobeUpdated.project = lineUpdates.project;
186
- }
187
184
  if (lineUpdates.customer != null) {
188
185
  lineTobeUpdated.customer = lineUpdates.customer;
189
186
  }
@@ -1,6 +1,6 @@
1
1
  import recordGet from 'lodash/get';
2
2
  import { reduceFetchState } from '../../commonStateTypes/reduceFetchState';
3
- import { getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, } from '../../entity/tenant/tenantSelector';
3
+ import { getIsAccountingClassesEnabled } from '../../entity/tenant/tenantSelector';
4
4
  import { toTransactionTypeStrict } from '../../entity/transaction/stateTypes/transactionType';
5
5
  import { getTransactionWithCOT } from '../../entity/transaction/transactionHelper';
6
6
  import { getSupportedTransactionById } from '../../entity/transaction/transactionSelector';
@@ -8,10 +8,9 @@ import { getVendorsByVendorIds } from '../../entity/vendor/vendorSelector';
8
8
  import { dateNow } from '../../zeniDayJS';
9
9
  import { getAccountList, getNestedAccountListHierarchy, } from '../accountList/accountListSelector';
10
10
  import { getClassList, getNestedClassListHierarchy, } from '../classList/classListSelector';
11
- import { getProjectList, } from '../projectList/projectListSelector';
12
11
  import { getAllLinkedTransactions, getTransactionDetailKey, initialSupportedTransactionDetail, } from './transactionDetailState';
13
12
  export const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = true) => {
14
- const { transactionDetailState, transactionState, vendorState, vendorListState, accountState, classState, classListState, accountListState, projectState, projectListState, } = state;
13
+ const { transactionDetailState, transactionState, vendorState, vendorListState, accountState, classState, classListState, accountListState, } = state;
15
14
  const detailKey = getTransactionDetailKey(transactionId);
16
15
  const transactionDetail = recordGet(transactionDetailState.transactionDetailById, detailKey);
17
16
  let fetchState = {
@@ -57,15 +56,6 @@ export const getTransactionDetail = (state, transactionId, fetchLinkedTransactio
57
56
  const classList = isAccountingClassesEnabled
58
57
  ? getClassList(classState, classListState)
59
58
  : { classes: [], nestedClassHierarchy: [], fetchState: 'Completed', error: undefined, version: 0 };
60
- const isAccountingProjectsEnabled = getIsAccountingProjectsEnabled(state);
61
- const projectList = isAccountingProjectsEnabled
62
- ? getProjectList(projectState, projectListState)
63
- : {
64
- projects: [],
65
- fetchState: 'Completed',
66
- error: undefined,
67
- version: 0,
68
- };
69
59
  const accountsHierarchyList = getNestedAccountListHierarchy(accountListState, 'accountList');
70
60
  const classHierarchyList = isAccountingClassesEnabled
71
61
  ? getNestedClassListHierarchy(classListState)
@@ -88,8 +78,6 @@ export const getTransactionDetail = (state, transactionId, fetchLinkedTransactio
88
78
  accountsHierarchyList,
89
79
  classList: classList,
90
80
  isAccountingClassesEnabled,
91
- isAccountingProjectsEnabled,
92
- projectList,
93
81
  isUpdateNotAllowed: transactionDetail?.isUpdateNotAllowed,
94
82
  transactionDetailLocalData: transactionDetail?.transactionDetailLocalData ??
95
83
  initialSupportedTransactionDetail.transactionDetailLocalData,
@@ -2,7 +2,7 @@ import { createSlice } from '@reduxjs/toolkit';
2
2
  import { toAbsoluteDay } from '../../commonStateTypes/timePeriod';
3
3
  import { mapAccountBasePayloadToAccountBase } from '../../entity/account/accountPayload';
4
4
  import { toEntityType } from '../../entity/genericEntity/entity';
5
- import { accountTransactionsInitialState, getAcKey, getAcTranKey, getCategoryTypeTranKey, getClassAcKey, getClassAcTranKey, getEntityTranKey, getProjectAcKey, getProjectAcTranKey, initialClassTransactionState, initialEntityTransactionState, initialProjectTransactionState, initialTransactionsStateByCategoryType, } from './transactionListState';
5
+ import { accountTransactionsInitialState, getAcKey, getAcTranKey, getCategoryTypeTranKey, getClassAcKey, getClassAcTranKey, getEntityTranKey, initialClassTransactionState, initialEntityTransactionState, initialTransactionsStateByCategoryType, } from './transactionListState';
6
6
  export const initialState = {
7
7
  byAccount: {
8
8
  transactionListByAccountKey: {},
@@ -37,10 +37,6 @@ export const initialState = {
37
37
  transactionListByClassKey: {},
38
38
  transactionListUIStateByClassKey: {},
39
39
  },
40
- byProject: {
41
- transactionListByProjectKey: {},
42
- transactionListUIStateByProjectKey: {},
43
- },
44
40
  };
45
41
  const transactionList = createSlice({
46
42
  name: 'transactionList',
@@ -250,64 +246,6 @@ const transactionList = createSlice({
250
246
  return { payload: { accountId, accountType, classId, period, error } };
251
247
  },
252
248
  },
253
- // Transaction list by project related reducers
254
- //
255
- // Mirrors the by-class set; the only behavioural difference is that the
256
- // server query param is `zeni_project_id` (post-Ayon's accounting #3984
257
- // rename) and there's no equivalent of `include_sub_class_transactions`
258
- // — projects don't have a sub-project hierarchy in this layout yet.
259
- parallelFetchProjectTransactionList: {
260
- reducer() {
261
- // Do nothing..
262
- },
263
- prepare(accountId, accountType, projectId, period, cacheOverride = false) {
264
- return {
265
- payload: { accountId, accountType, projectId, period, cacheOverride },
266
- };
267
- },
268
- },
269
- fetchProjectTransactionList: {
270
- reducer(draft, action) {
271
- const key = getProjectAcTranKey(action.payload.accountId, action.payload.accountType, action.payload.projectId, action.payload.period);
272
- if (action.payload.cacheOverride === true ||
273
- draft.byProject.transactionListByProjectKey[key] == null ||
274
- (draft.byProject.transactionListByProjectKey[key]?.hasValidState() ===
275
- false &&
276
- draft.byProject.transactionListByProjectKey[key]?.fetchState !=
277
- 'In-Progress')) {
278
- draft.byProject.transactionListByProjectKey[key] = {
279
- ...initialProjectTransactionState,
280
- fetchState: 'In-Progress',
281
- error: undefined,
282
- };
283
- }
284
- },
285
- prepare(accountId, accountType, projectId, period, cacheOverride = false) {
286
- return {
287
- payload: { accountId, accountType, projectId, period, cacheOverride },
288
- };
289
- },
290
- },
291
- updateTransactionListByProject(draft, action) {
292
- doUpdateTransactionListByProject(draft.byProject.transactionListByProjectKey, action.payload);
293
- },
294
- updateTransactionListByProjectUIState(draft, action) {
295
- const key = getProjectAcKey(action.payload.accountId, action.payload.accountType, action.payload.projectId);
296
- draft.byProject.transactionListUIStateByProjectKey[key] = Object.assign({}, draft.byProject.transactionListUIStateByProjectKey[key], action.payload.uiState);
297
- },
298
- updateTransactionListByProjectFailure: {
299
- reducer(draft, action) {
300
- const key = getProjectAcTranKey(action.payload.accountId, action.payload.accountType, action.payload.projectId, action.payload.period);
301
- draft.byProject.transactionListByProjectKey[key] = {
302
- ...initialProjectTransactionState,
303
- fetchState: 'Error',
304
- error: action.payload.error,
305
- };
306
- },
307
- prepare(accountId, accountType, projectId, period, error) {
308
- return { payload: { accountId, accountType, projectId, period, error } };
309
- },
310
- },
311
249
  parallelFetchTransactionListByCategoryType: {
312
250
  reducer() {
313
251
  // Do nothing..
@@ -402,7 +340,7 @@ const transactionList = createSlice({
402
340
  },
403
341
  },
404
342
  });
405
- export const { parallelFetchAccountTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, parallelFetchEntityTransactionList, fetchEntityTransactionList, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, fetchClassTransactionList, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByClassFailure, parallelFetchProjectTransactionList, fetchProjectTransactionList, updateTransactionListByProject, updateTransactionListByProjectUIState, updateTransactionListByProjectFailure, parallelFetchTransactionListByCategoryType, fetchTransactionsListByCategoryType, updateTransactionListByCategoryType, updateTransactionsListByCategoryTypeFailure, updateTransactionListUIStateByCategoryType, clearTransactionList, updateLatestTransactionId, } = transactionList.actions;
343
+ export const { parallelFetchAccountTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, parallelFetchEntityTransactionList, fetchEntityTransactionList, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, fetchClassTransactionList, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByClassFailure, parallelFetchTransactionListByCategoryType, fetchTransactionsListByCategoryType, updateTransactionListByCategoryType, updateTransactionsListByCategoryTypeFailure, updateTransactionListUIStateByCategoryType, clearTransactionList, updateLatestTransactionId, } = transactionList.actions;
406
344
  export default transactionList.reducer;
407
345
  /**
408
346
  * Helper functions
@@ -452,22 +390,3 @@ function doUpdateTransactionListByClass(draft, payload) {
452
390
  transactionIDs,
453
391
  };
454
392
  }
455
- function doUpdateTransactionListByProject(draft, payload) {
456
- const transactionIDs = payload.account.transactions.map((transactionPaylod) => transactionPaylod.transaction_id);
457
- const account = mapAccountBasePayloadToAccountBase(payload.account);
458
- const projectId = payload.query.zeni_project_id;
459
- const start = toAbsoluteDay(payload.query.start_date);
460
- const end = toAbsoluteDay(payload.query.end_date);
461
- const key = getProjectAcTranKey(account.accountId, account.accountType, projectId, {
462
- start,
463
- end,
464
- });
465
- draft[key] = {
466
- ...initialProjectTransactionState,
467
- fetchState: 'Completed',
468
- error: undefined,
469
- account: account,
470
- projectId: projectId,
471
- transactionIDs,
472
- };
473
- }