@zeniai/client-epic-state 4.20.1-beta10ND → 4.20.1

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 (125) hide show
  1. package/lib/commonStateTypes/animations.d.ts +1 -1
  2. package/lib/entity/aiCfo/aiCfoSelector.d.ts +2 -1
  3. package/lib/entity/billPay/billTransaction/billTransactionState.d.ts +2 -2
  4. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +0 -38
  5. package/lib/entity/jeSchedules/jeSchedulesPayload.js +0 -78
  6. package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +1 -4
  7. package/lib/entity/jeSchedules/jeSchedulesSelector.js +1 -5
  8. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +0 -37
  9. package/lib/entity/tenant/tenantPayload.d.ts +0 -1
  10. package/lib/entity/tenant/tenantReducer.js +0 -1
  11. package/lib/entity/tenant/tenantSelector.d.ts +0 -1
  12. package/lib/entity/tenant/tenantSelector.js +1 -9
  13. package/lib/entity/tenant/tenantState.d.ts +0 -1
  14. package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.d.ts +1 -4
  15. package/lib/entity/transaction/payloadTypes/scheduleTransactionPayload.js +0 -1
  16. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +0 -3
  17. package/lib/entity/transaction/payloadTypes/transactionPayload.js +1 -17
  18. package/lib/entity/transaction/stateTypes/scheduleTransaction.d.ts +0 -1
  19. package/lib/entity/transaction/stateTypes/transaction.d.ts +0 -5
  20. package/lib/entity/transaction/stateTypes/transactionLine.d.ts +1 -1
  21. package/lib/epic.d.ts +1 -2
  22. package/lib/epic.js +1 -2
  23. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +0 -78
  24. package/lib/esm/entity/jeSchedules/jeSchedulesSelector.js +1 -5
  25. package/lib/esm/entity/tenant/tenantReducer.js +0 -1
  26. package/lib/esm/entity/tenant/tenantSelector.js +0 -7
  27. package/lib/esm/entity/transaction/payloadTypes/scheduleTransactionPayload.js +0 -1
  28. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +1 -17
  29. package/lib/esm/epic.js +1 -2
  30. package/lib/esm/index.js +8 -10
  31. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +1 -82
  32. package/lib/esm/view/aiCfoView/aiCfoViewSelector.js +2 -8
  33. package/lib/esm/view/classList/fetchClassListEpic.js +2 -9
  34. package/lib/esm/view/commonVendorView/vendorView/vendorViewSelector.js +5 -18
  35. package/lib/esm/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewSelector.js +2 -6
  36. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +2 -2
  37. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +2 -2
  38. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +3 -4
  39. package/lib/esm/view/expenseAutomationView/expenseAutomationViewSelector.js +1 -0
  40. package/lib/esm/view/expenseAutomationView/helpers/saveTransactionHelper.js +2 -2
  41. package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
  42. package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +1 -17
  43. package/lib/esm/view/expenseAutomationView/selectors/fluxAnalysisViewSelector.js +2 -10
  44. package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +6 -63
  45. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +4 -12
  46. package/lib/esm/view/expenseAutomationView/selectors/reconciliationViewSelector.js +9 -22
  47. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +6 -12
  48. package/lib/esm/view/expenseAutomationView/types/jeSchedulesViewState.js +1 -18
  49. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +0 -3
  50. package/lib/esm/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +28 -20
  51. package/lib/esm/view/spendManagement/billPay/billList/billListSelector.js +0 -10
  52. package/lib/esm/view/spendManagement/billPay/billList/billListState.js +0 -1
  53. package/lib/esm/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +3 -7
  54. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +5 -5
  55. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPayApproversDetailsEpic.js +2 -7
  56. package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +6 -13
  57. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardList.js +0 -1
  58. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +0 -2
  59. package/lib/esm/view/spendManagement/reimbursement/editRemiView/editRemiViewSelector.js +4 -7
  60. package/lib/esm/view/spendManagement/reimbursement/remiListView/remiListSelector.js +0 -12
  61. package/lib/esm/view/spendManagement/reimbursement/remiListView/remiListState.js +0 -1
  62. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +2 -2
  63. package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +2 -2
  64. package/lib/esm/view/transactionDetail/transactionDetailLocalDataHelper.js +14 -16
  65. package/lib/index.d.ts +11 -15
  66. package/lib/index.js +32 -44
  67. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  68. package/lib/view/aiCfoView/aiCfoViewPayload.d.ts +0 -7
  69. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +1 -15
  70. package/lib/view/aiCfoView/aiCfoViewReducer.js +2 -83
  71. package/lib/view/aiCfoView/aiCfoViewSelector.d.ts +1 -4
  72. package/lib/view/aiCfoView/aiCfoViewSelector.js +2 -9
  73. package/lib/view/aiCfoView/aiCfoViewState.d.ts +1 -18
  74. package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
  75. package/lib/view/classList/fetchClassListEpic.d.ts +1 -1
  76. package/lib/view/classList/fetchClassListEpic.js +1 -8
  77. package/lib/view/commonVendorView/vendorView/vendorViewSelector.d.ts +0 -1
  78. package/lib/view/commonVendorView/vendorView/vendorViewSelector.js +5 -18
  79. package/lib/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewSelector.d.ts +0 -1
  80. package/lib/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewSelector.js +2 -6
  81. package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +2 -2
  82. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +1 -1
  83. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +3 -4
  84. package/lib/view/expenseAutomationView/expenseAutomationViewSelector.js +1 -0
  85. package/lib/view/expenseAutomationView/helpers/saveTransactionHelper.js +2 -2
  86. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
  87. package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.d.ts +1 -1
  88. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +2 -2
  89. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +2 -18
  90. package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +0 -2
  91. package/lib/view/expenseAutomationView/selectors/fluxAnalysisViewSelector.js +2 -10
  92. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +6 -63
  93. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +4 -12
  94. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.js +9 -22
  95. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +5 -11
  96. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +0 -5
  97. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.js +0 -20
  98. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +0 -3
  99. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +28 -20
  100. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  101. package/lib/view/spendManagement/billPay/billList/billListSelector.js +0 -10
  102. package/lib/view/spendManagement/billPay/billList/billListState.d.ts +1 -1
  103. package/lib/view/spendManagement/billPay/billList/billListState.js +0 -1
  104. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +3 -7
  105. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +5 -5
  106. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPayApproversDetailsEpic.js +2 -7
  107. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +6 -13
  108. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  109. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.js +0 -1
  110. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +0 -2
  111. package/lib/view/spendManagement/reimbursement/editRemiView/editRemiViewSelector.js +3 -6
  112. package/lib/view/spendManagement/reimbursement/remiListView/remiListSelector.d.ts +0 -1
  113. package/lib/view/spendManagement/reimbursement/remiListView/remiListSelector.js +0 -12
  114. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.d.ts +1 -1
  115. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.js +0 -1
  116. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +2 -2
  117. package/lib/view/transactionDetail/epics/saveTransactionHelper.js +2 -2
  118. package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +14 -16
  119. package/package.json +1 -1
  120. package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +0 -29
  121. package/lib/esm/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.js +0 -17
  122. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +0 -8
  123. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +0 -33
  124. package/lib/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.d.ts +0 -9
  125. package/lib/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.js +0 -20
@@ -13,7 +13,7 @@ import { getAccountList, getNestedAccountListHierarchy, } from '../../accountLis
13
13
  import { getClassList, getNestedClassListHierarchy, } from '../../classList/classListSelector';
14
14
  import { initialActionFetchState, initialReconciliationTabsState, initialState, } from '../reducers/reconciliationViewReducer';
15
15
  import { getAllSteps } from '../selectorTypes/expenseAutomationViewSelectorTypes';
16
- export const getExpenseAutomationReconciliationView = createSelector((state) => state, (state) => getCurrentTenant(state), (state) => state.expenseAutomationReconciliationViewState, (state) => state.expenseAutomationViewState, (state) => state.plaidAccountViewState, (state) => state.accountListState, (state) => state.accountState, (state) => state.classListState, (state) => state.classState, (state) => state.monthEndCloseChecksState, (state) => state.vendorState, (state) => state.monthEndCloseChecksViewState, (state, currentTenant, reconciliationViewState, expenseAutomationViewState, plaidAccountViewState, accountListState, accountState, classListState, classState, monthEndCloseChecksState, vendorState, monthEndCloseChecksViewState) => {
16
+ export const getExpenseAutomationReconciliationView = createSelector((state) => state, (state) => getCurrentTenant(state), (state) => state.expenseAutomationReconciliationViewState, (state) => state.expenseAutomationViewState, (state) => state.plaidAccountViewState, (state) => state.accountListState, (state) => state.accountState, (state) => state.classListState, (state) => state.classState, (state) => state.monthEndCloseChecksState, (state) => state.vendorState, (state, currentTenant, reconciliationViewState, expenseAutomationViewState, plaidAccountViewState, accountListState, accountState, classListState, classState, monthEndCloseChecksState, vendorState) => {
17
17
  const { selectedPeriodByTenantId } = expenseAutomationViewState;
18
18
  const reconcileTabUiState = reconciliationViewState.reconTabsState.reconcile.uiState;
19
19
  const reviewTabUiState = reconciliationViewState.reconTabsState.review.uiState;
@@ -35,13 +35,6 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
35
35
  }
36
36
  return acc;
37
37
  }, []);
38
- const monthYearPeriodId = selectedPeriod != null ? toMonthYearPeriodId(selectedPeriod) : null;
39
- const monthEndFetchState = monthYearPeriodId != null
40
- ? (monthEndCloseChecksViewState.monthEndCloseChecksViewByTenantId[currentTenant.tenantId]?.[monthYearPeriodId] ?? {
41
- fetchState: 'Not-Started',
42
- error: undefined,
43
- })
44
- : { fetchState: 'Not-Started', error: undefined };
45
38
  if (accountReconForMonthYearPeriod == null) {
46
39
  return {
47
40
  bankAccounts: [],
@@ -51,13 +44,10 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
51
44
  classListNestedAccountHierarchy: [],
52
45
  allAccountList: [],
53
46
  allClassList: [],
54
- fetchStatus: reduceAnyFetchState([
55
- {
56
- fetchState: reconciliationViewState.fetchState,
57
- error: reconciliationViewState.error,
58
- },
59
- monthEndFetchState,
60
- ]),
47
+ fetchStatus: {
48
+ fetchState: reconciliationViewState.fetchState,
49
+ error: reconciliationViewState.error,
50
+ },
61
51
  plaidConnectionDetails: plaidAccountViewState['expense_automation_reconcile']
62
52
  .plaidConnectionDetails,
63
53
  completionStatus: 'incomplete',
@@ -280,13 +270,10 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
280
270
  bankAccounts: uniqueBankAccounts,
281
271
  creditCards: uniqueCreditCards,
282
272
  accountReconciliationsByAccountID: reconList,
283
- fetchStatus: reduceAnyFetchState([
284
- {
285
- fetchState: reconciliationViewState.fetchState,
286
- error: reconciliationViewState.error,
287
- },
288
- monthEndFetchState,
289
- ]),
273
+ fetchStatus: {
274
+ fetchState: reconciliationViewState.fetchState,
275
+ error: reconciliationViewState.error,
276
+ },
290
277
  plaidConnectionDetails: plaidAccountViewState['expense_automation_reconcile']
291
278
  .plaidConnectionDetails,
292
279
  reconciliationTabsState: reconciliationViewState.reconTabsState,
@@ -1,5 +1,5 @@
1
1
  import omit from 'lodash/omit';
2
- import { reduceAllFetchState, reduceAnyFetchState, } from '../../../commonStateTypes/reduceFetchState';
2
+ import { reduceAllFetchState } from '../../../commonStateTypes/reduceFetchState';
3
3
  import { toMonthYearPeriodId } from '../../../commonStateTypes/timePeriod';
4
4
  import { getCurrentTenant } from '../../../entity/tenant/tenantSelector';
5
5
  import { getTransactionWithCOT } from '../../../entity/transaction/transactionHelper';
@@ -8,7 +8,7 @@ import { getAccountList, getNestedAccountListHierarchy, getUncategorizedAccounts
8
8
  import { getClassList, getNestedClassListHierarchy, } from '../../classList/classListSelector';
9
9
  import { getAllSteps } from '../selectorTypes/expenseAutomationViewSelectorTypes';
10
10
  export function getExpenseAutomationTransactionView(state) {
11
- const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, monthEndCloseChecksViewState, } = state;
11
+ const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, } = state;
12
12
  const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
13
13
  const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, uploadReceiptStatusById, selectedTransactionId, selectedTransactionLineId, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
14
14
  const uncategorizedIncomeExpense = getUncategorizedAccounts(accountState, accountListState, 'accountList');
@@ -41,16 +41,10 @@ export function getExpenseAutomationTransactionView(state) {
41
41
  .filter((transaction) => transaction != null);
42
42
  const transactions = getSupportedTransactionsByIds(transactionState, transactionIds);
43
43
  const transactionsWithCOT = transactions.map((transaction) => getTransactionWithCOT(transaction));
44
- const monthEndFetchState = monthYearPeriodId != null
45
- ? (monthEndCloseChecksViewState.monthEndCloseChecksViewByTenantId[currentTenant.tenantId]?.[monthYearPeriodId] ?? { fetchState: 'Not-Started', error: undefined })
46
- : { fetchState: 'Not-Started', error: undefined };
47
- const fetchStatus = reduceAnyFetchState([
48
- reduceAllFetchState([
49
- accountList,
50
- classList,
51
- expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab],
52
- ]),
53
- monthEndFetchState,
44
+ const fetchStatus = reduceAllFetchState([
45
+ accountList,
46
+ classList,
47
+ expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab],
54
48
  ]);
55
49
  const totalCountByReview = expenseAutomationTransactionsViewState.transactionCategorizationView.review
56
50
  .uiState.totalCount;
@@ -1,18 +1 @@
1
- import { stringToUnion } from '../../../commonStateTypes/stringToUnion';
2
- const JE_SCHEDULE_SORT_KEYS = [
3
- 'vendor',
4
- 'category',
5
- 'class',
6
- 'depCategory',
7
- 'scheduleCategory',
8
- 'startMonth',
9
- 'type',
10
- 'amortizationPeriod',
11
- 'jePostingDate',
12
- 'remainingMonths',
13
- 'runningBalance',
14
- 'totalAmount',
15
- 'transactionDate',
16
- 'memo',
17
- ];
18
- export const toJEScheduleSortKey = (v) => stringToUnion(v, JE_SCHEDULE_SORT_KEYS);
1
+ export {};
@@ -3,7 +3,6 @@ import { getSummationFreeRangeTotalBalance } from '../../commonStateTypes/coaBal
3
3
  import { defaultCustomerCurrency } from '../../commonStateTypes/currencyHelper';
4
4
  import { reduceFetchStateParallelTimeframes } from '../../commonStateTypes/reduceFetchState';
5
5
  import { getSectionClassesViewReport } from '../../entity/sectionClassesViewV2/sectionClassesViewSelector';
6
- import { HORIZONTAL_CLASS_TOTAL_BALANCE_ID, } from './profitAndLossClassesByClassHorizontalSelectorTypes';
7
6
  import { enrichProfitAndLossByClassHorizontalReport } from './profitAndLossHorizontalEnrichment';
8
7
  export const profitAndLossHorizontalIdsInOrder = [
9
8
  'income',
@@ -304,7 +303,6 @@ function buildHeaderBalances(classColumns, timeframe, selectedPeriod, currency)
304
303
  startDate,
305
304
  type: 'default',
306
305
  label: col.className,
307
- id: col.classId,
308
306
  }));
309
307
  // Add a "Total" column
310
308
  balances.push({
@@ -314,7 +312,6 @@ function buildHeaderBalances(classColumns, timeframe, selectedPeriod, currency)
314
312
  startDate,
315
313
  type: 'default',
316
314
  label: 'Total',
317
- id: HORIZONTAL_CLASS_TOTAL_BALANCE_ID,
318
315
  });
319
316
  return balances;
320
317
  }
@@ -1,5 +1,4 @@
1
1
  import { defaultCustomerCurrency } from '../../commonStateTypes/currencyHelper';
2
- import { getEmptyHorizontalSectionBalancesSlice } from './horizontalSectionEmptyBalancesSlice';
3
2
  import { HORIZONTAL_CLASS_TOTAL_BALANCE_ID, } from './profitAndLossClassesByClassHorizontalSelectorTypes';
4
3
  /**
5
4
  * Populates `sectionHeaderBalancesSlice`, and per-account `accountReportData`, so the
@@ -40,17 +39,17 @@ function enrichHorizontalSection(report, section) {
40
39
  };
41
40
  const siblingsPerRow = buildSiblingIndicesPerRow(section.accounts, parentIndices);
42
41
  const hasChildFlags = computeHorizontalHasChildFlags(parentIndices);
43
- for (let accountIndex = 0; accountIndex < section.accounts.length; accountIndex++) {
44
- const row = section.accounts[accountIndex];
42
+ for (let i = 0; i < section.accounts.length; i++) {
43
+ const row = section.accounts[i];
45
44
  // Same column order as `report.classColumns` (see `pivotSectionToHorizontal`).
46
- const classRowAmounts = row.classBalances.map((classBalance) => classBalance.balance.amount);
45
+ const classRowAmounts = row.classBalances.map((b) => b.balance.amount);
47
46
  row.accountReportData = {
48
47
  accountId: row.accountId,
49
48
  accountName: row.accountName,
50
49
  accountType: row.accountType,
51
50
  depth: row.depth,
52
51
  balancesInTimeframe: buildHorizontalClassColumnBalancesSlice(report, classRowAmounts, row.rowTotal.amount),
53
- horizontalTreeView: buildHorizontalTreeViewFromPrecomputed(section.accounts, accountIndex, parentIndices, siblingsPerRow, hasChildFlags),
52
+ horizontalTreeView: buildHorizontalTreeViewFromPrecomputed(section.accounts, i, parentIndices, siblingsPerRow, hasChildFlags),
54
53
  };
55
54
  }
56
55
  }
@@ -68,14 +67,23 @@ function buildHorizontalClassColumnBalancesSlice(report, classAmounts, totalAmou
68
67
  const currencyCode = firstHeader?.balance.currencyCode ?? fallback.currencyCode;
69
68
  const currencySymbol = firstHeader?.balance.currencySymbol ?? fallback.currencySymbol;
70
69
  const timeframe = firstHeader?.balanceTimeFrame ?? 'month';
71
- const emptySlice = getEmptyHorizontalSectionBalancesSlice(report.firstMonthOfFY, timeframe);
70
+ const emptySlice = {
71
+ balances: [],
72
+ additionalBalances: [],
73
+ filter: {
74
+ firstMonthOfFY: report.firstMonthOfFY,
75
+ timeframe,
76
+ balancesRange: { numberOfPeriods: 0, orderBy: 'ascending_date' },
77
+ additionalBalances: [],
78
+ },
79
+ };
72
80
  if (report.selectedPeriod == null) {
73
81
  return emptySlice;
74
82
  }
75
83
  const { startDate, endDate } = report.selectedPeriod;
76
- const balances = report.classColumns.map((col, columnIndex) => ({
84
+ const balances = report.classColumns.map((col, i) => ({
77
85
  balance: {
78
- amount: classAmounts[columnIndex] ?? 0,
86
+ amount: classAmounts[i] ?? 0,
79
87
  currencyCode,
80
88
  currencySymbol,
81
89
  },
@@ -126,22 +134,22 @@ function computeHorizontalAccountParentIndices(rows) {
126
134
  if (accountRow == null) {
127
135
  continue;
128
136
  }
129
- const depth = accountRow.depth;
137
+ const d = accountRow.depth;
130
138
  while (stack.length > 0) {
131
139
  const topRow = rows[stack[stack.length - 1]];
132
140
  if (topRow == null) {
133
141
  stack.pop();
134
142
  continue;
135
143
  }
136
- if (topRow.depth < depth) {
144
+ if (topRow.depth < d) {
137
145
  break;
138
146
  }
139
147
  stack.pop();
140
148
  }
141
- if (depth > 2 && stack.length > 0) {
149
+ if (d > 2 && stack.length > 0) {
142
150
  const peek = stack[stack.length - 1];
143
151
  const parentRow = rows[peek];
144
- if (parentRow != null && parentRow.depth === depth - 1) {
152
+ if (parentRow != null && parentRow.depth === d - 1) {
145
153
  parentIndex[rowIndex] = peek;
146
154
  }
147
155
  }
@@ -160,12 +168,12 @@ function buildSiblingIndicesPerRow(rows, parentIndices) {
160
168
  continue;
161
169
  }
162
170
  const key = `${parentRowIndex}:${accountRow.depth}`;
163
- let siblingGroup = keyToIndices.get(key);
164
- if (siblingGroup == null) {
165
- siblingGroup = [];
166
- keyToIndices.set(key, siblingGroup);
171
+ let g = keyToIndices.get(key);
172
+ if (g == null) {
173
+ g = [];
174
+ keyToIndices.set(key, g);
167
175
  }
168
- siblingGroup.push(rowIndex);
176
+ g.push(rowIndex);
169
177
  }
170
178
  const siblingsPerRow = new Array(accountRowCount);
171
179
  for (let rowIndex = 0; rowIndex < accountRowCount; rowIndex++) {
@@ -233,14 +241,14 @@ function buildHorizontalTreeViewFromPrecomputed(dfsOrderedAccountRows, currentRo
233
241
  const hasChildrenFlag = hasChildFlags[currentRowIndex];
234
242
  const treeDepth = accountRow != null ? Math.max(0, accountRow.depth - 2) : 0;
235
243
  const hasChildren = hasChildrenFlag === true;
236
- const siblings = siblingIndices ?? [currentRowIndex];
244
+ const sibs = siblingIndices ?? [currentRowIndex];
237
245
  return {
238
246
  subAccountAncestorMetadata: buildHorizontalSubAccountAncestorMetadataFromPrecomputed(dfsOrderedAccountRows, currentRowIndex, parentIndices, siblingsPerRow, hasChildFlags),
239
247
  treeDepth,
240
248
  hasChildren,
241
- hasSiblings: siblings.length > 1,
249
+ hasSiblings: sibs.length > 1,
242
250
  isLeaf: !hasChildren,
243
- isLastNode: currentRowIndex === siblings[siblings.length - 1],
251
+ isLastNode: currentRowIndex === sibs[sibs.length - 1],
244
252
  };
245
253
  }
246
254
  function buildHorizontalAccountChildIndicesByParent(parentIndices) {
@@ -416,14 +416,6 @@ export const getBillListOnSort = (sortKey, sortOrder, currentTab, transactions)
416
416
  transactionsWithNoSortKeyValue.push(transaction);
417
417
  }
418
418
  break;
419
- case 'invoiceNumber':
420
- if (transaction.documentId != null) {
421
- transactionsWithSortKeyValue.push(transaction);
422
- }
423
- else {
424
- transactionsWithNoSortKeyValue.push(transaction);
425
- }
426
- break;
427
419
  case 'dueDate':
428
420
  if (currentTab === 'draft') {
429
421
  if (Boolean(transaction.dueDate) === true) {
@@ -526,8 +518,6 @@ export const getBillListOnSort = (sortKey, sortOrder, currentTab, transactions)
526
518
  return transaction.totalAmountInUSD?.amount ?? 0;
527
519
  case 'paymentMethod':
528
520
  return transaction.billPayInfo.billPaymentMethodType.name;
529
- case 'invoiceNumber':
530
- return transaction.documentId;
531
521
  }
532
522
  }, getColumnWiseSortOrder(sortOrder));
533
523
  return [
@@ -43,7 +43,6 @@ const ALL_BILL_PAY_SORT_KEYS = [
43
43
  'invoiceDate',
44
44
  'name',
45
45
  'paymentMethod',
46
- 'invoiceNumber',
47
46
  ];
48
47
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
48
  const toBillPaySortKeyType = (v) => stringToUnion(v, ALL_BILL_PAY_SORT_KEYS);
@@ -2,7 +2,6 @@ import recordGet from 'lodash/get';
2
2
  import { reduceFetchState } from '../../../../commonStateTypes/reduceFetchState';
3
3
  import { getContactsByIds } from '../../../../entity/billPay/contact/contactSelector';
4
4
  import { getPaymentAccountsByPaymentAccountIds } from '../../../../entity/paymentAccount/paymentAccountSelector';
5
- import { getIsAccountingClassesEnabled } from '../../../../entity/tenant/tenantSelector';
6
5
  import { getVendorByVendorId } from '../../../../entity/vendor/vendorSelector';
7
6
  import { getAccountList } from '../../../accountList/accountListSelector';
8
7
  import { getAllFundingAccounts, } from '../../commonSetup/setupViewSelector';
@@ -74,14 +73,11 @@ export const getReviewPageBillDetail = (state, billId) => {
74
73
  }
75
74
  }
76
75
  if (sourceBillDetail != null) {
77
- const fetchStateList = [
76
+ sourceBillDetailFetchState = reduceFetchState([
78
77
  sourceBillDetail.fetchStatus,
79
78
  accountListState.byReportId['billPayAccountList'],
80
- ];
81
- if (getIsAccountingClassesEnabled(state)) {
82
- fetchStateList.push(classListState);
83
- }
84
- sourceBillDetailFetchState = reduceFetchState(fetchStateList).fetchState;
79
+ classListState,
80
+ ]).fetchState;
85
81
  }
86
82
  }
87
83
  else {
@@ -3,7 +3,6 @@ import cloneDeep from 'lodash/cloneDeep';
3
3
  import { reduceAllFetchState, reduceAnyFetchState, } from '../../../../commonStateTypes/reduceFetchState';
4
4
  import { getApprovalRulesByIds } from '../../../../entity/approvalRule/approvalRuleSelector';
5
5
  import { getClassesByIds } from '../../../../entity/class/classSelector';
6
- import { getIsAccountingClassesEnabled } from '../../../../entity/tenant/tenantSelector';
7
6
  import { getUserByUserId } from '../../../../entity/user/userSelector';
8
7
  import { getUserRoleByUserId } from '../../../../entity/userRole/userRoleSelector';
9
8
  export const getBillPaySetupApproverView = createSelector((state) => state.billPaySetupApproverViewState, (state) => state.approvalRuleState, (state) => state.userState, (billPaySetupApproverViewState, approvalRuleState, userState) => {
@@ -45,7 +44,7 @@ export const getBillPaySetupApproverView = createSelector((state) => state.billP
45
44
  newApprovalRuleId,
46
45
  };
47
46
  });
48
- export const getBillPaySetupApproverUpdateDataView = createSelector((state) => state.billPaySetupApproverViewState, (state) => state.approvalRuleState, (state) => state.userState, (state) => state.classState, (state) => state.classListState, (state) => state.userRoleState, (state) => getIsAccountingClassesEnabled(state), (billPaySetupApproverViewState, approvalRuleState, userState, classState, classListState, userRoleState, isAccountingClassesEnabled) => {
47
+ export const getBillPaySetupApproverUpdateDataView = createSelector((state) => state.billPaySetupApproverViewState, (state) => state.approvalRuleState, (state) => state.userState, (state) => state.classState, (state) => state.classListState, (state) => state.userRoleState, (billPaySetupApproverViewState, approvalRuleState, userState, classState, classListState, userRoleState) => {
49
48
  const { affectedEntityIds, approvalRuleIds, approverListState, billPaySetupApproverViewUpdateData, fetchState, error, listeningToPusherEvent, } = billPaySetupApproverViewState;
50
49
  const { approverIds, attributes } = approverListState;
51
50
  const allApprovalRules = getApprovalRulesByIds(approvalRuleState, approvalRuleIds);
@@ -93,9 +92,10 @@ export const getBillPaySetupApproverUpdateDataView = createSelector((state) => s
93
92
  allAttributes,
94
93
  filteredAttributes,
95
94
  billPaySetupApproverViewUpdateData,
96
- approverListFetchStatus: isAccountingClassesEnabled
97
- ? reduceAllFetchState([approverListState.fetchStatus, classListState])
98
- : approverListState.fetchStatus,
95
+ approverListFetchStatus: reduceAllFetchState([
96
+ approverListState.fetchStatus,
97
+ classListState,
98
+ ]),
99
99
  fetchState,
100
100
  allAccountingClasses,
101
101
  error,
@@ -1,27 +1,22 @@
1
1
  import { concat, from } from 'rxjs';
2
2
  import { filter, mergeMap } from 'rxjs/operators';
3
- import { getIsAccountingClassesEnabled } from '../../../../../entity/tenant/tenantSelector';
4
3
  import { fetchClassList } from '../../../../classList/classListReducer';
5
4
  import { fetchBillPayApproversDetails, fetchBillPayApproversList, } from '../billPaySetupApproverViewReducer';
6
5
  export const fetchBillPayApproversDetailsEpic = (actions$, state$) => actions$.pipe(filter(fetchBillPayApproversDetails.match), mergeMap((action) => {
7
6
  const { cacheOverride, includeUserRoles } = action.payload;
8
7
  const { billPaySetupApproverViewState, classListState } = state$.value;
9
8
  const { approverListState } = billPaySetupApproverViewState;
10
- const isAccountingClassesEnabled = getIsAccountingClassesEnabled(state$.value);
11
9
  const actions = [];
12
10
  if (cacheOverride === true) {
13
11
  actions.push(fetchBillPayApproversList(cacheOverride, includeUserRoles));
14
- if (isAccountingClassesEnabled) {
15
- actions.push(fetchClassList());
16
- }
12
+ actions.push(fetchClassList());
17
13
  }
18
14
  else {
19
15
  if (billPaySetupApproverViewState.hasValidState() === false &&
20
16
  approverListState.fetchStatus.fetchState !== 'In-Progress') {
21
17
  actions.push(fetchBillPayApproversList(true, includeUserRoles));
22
18
  }
23
- if (isAccountingClassesEnabled &&
24
- classListState.hasValidState() === false &&
19
+ if (classListState.hasValidState() === false &&
25
20
  classListState.fetchState !== 'In-Progress') {
26
21
  actions.push(fetchClassList());
27
22
  }
@@ -7,7 +7,6 @@ import { getCompanyByCompanyId } from '../../../../entity/company/companySelecto
7
7
  import { getDepositAccountByDepositAccountId } from '../../../../entity/depositAccount/depositAccountSelector';
8
8
  import { getPaymentAccountByPaymentAccountId, getPaymentAccountsByPaymentAccountIds, } from '../../../../entity/paymentAccount/paymentAccountSelector';
9
9
  import { getPaymentInstrumentById, getPaymentInstrumentsByIds, } from '../../../../entity/paymentInstrument/paymentInstrumentSelector';
10
- import { getIsAccountingClassesEnabled } from '../../../../entity/tenant/tenantSelector';
11
10
  import { getUserByUserId } from '../../../../entity/user/userSelector';
12
11
  import { getVendorByQboId, getVendorByVendorId, } from '../../../../entity/vendor/vendorSelector';
13
12
  import { dateNow } from '../../../../zeniDayJS';
@@ -173,15 +172,12 @@ export const getEditBillDetail = (state, isVendorRecommendationFeatureEnabled, i
173
172
  isCancelled = sourceBillDetail.billDetailLocalData.isCancelled;
174
173
  billStage = billPayInfo?.stage.code ?? 'draft';
175
174
  if (billViewState != null) {
176
- const fetchStateList = [
175
+ fetchState = reduceFetchState([
177
176
  sourceBillDetail.fetchStatus,
178
177
  accountListState.byReportId.billPayAccountList,
178
+ classListState,
179
179
  billPaySetupApproverViewState,
180
- ];
181
- if (getIsAccountingClassesEnabled(state)) {
182
- fetchStateList.push(classListState);
183
- }
184
- fetchState = reduceFetchState(fetchStateList).fetchState;
180
+ ]).fetchState;
185
181
  deleteStatus = billViewState.deleteStatus;
186
182
  billActivities = getBillActivities(state, billId, billPayInfo?.stage.code);
187
183
  }
@@ -195,14 +191,11 @@ export const getEditBillDetail = (state, isVendorRecommendationFeatureEnabled, i
195
191
  }
196
192
  }
197
193
  else {
198
- const newBillFetchStateList = [
194
+ fetchState = reduceFetchState([
199
195
  accountListState.byReportId.billPayAccountList,
196
+ classListState,
200
197
  billPaySetupApproverViewState,
201
- ];
202
- if (getIsAccountingClassesEnabled(state)) {
203
- newBillFetchStateList.push(classListState);
204
- }
205
- fetchState = reduceFetchState(newBillFetchStateList).fetchState;
198
+ ]).fetchState;
206
199
  }
207
200
  if (sourceBillDetail != null && fetchState == 'Completed') {
208
201
  const updatedRecord = sourceBillDetail.billDetailLocalData;
@@ -75,7 +75,6 @@ const ALL_CHARGE_CARD_SORT_KEYS = [
75
75
  'cardName',
76
76
  'department',
77
77
  'cardType',
78
- 'accountType',
79
78
  'status',
80
79
  'utilisation',
81
80
  'limit',
@@ -219,8 +219,6 @@ const getCardsBySortKey = (card, sortKey) => {
219
219
  return card.cardName.toLowerCase();
220
220
  case 'cardType':
221
221
  return card.type.code;
222
- case 'accountType':
223
- return card.type.code.includes('credit') ? 'credit' : 'debit';
224
222
  case 'status':
225
223
  return card.status.code;
226
224
  case 'utilisation':
@@ -2,7 +2,7 @@ import recordGet from 'lodash/get';
2
2
  import { reduceFetchState } from '../../../../commonStateTypes/reduceFetchState';
3
3
  import { getBankAccountByBankAccountId } from '../../../../entity/bankAccount/bankAccountSelector';
4
4
  import { getAllCurrencies } from '../../../../entity/currency/currencySelector';
5
- import { getCurrentTenant, getIsAccountingClassesEnabled, } from '../../../../entity/tenant/tenantSelector';
5
+ import { getCurrentTenant } from '../../../../entity/tenant/tenantSelector';
6
6
  import { getUserByUserId } from '../../../../entity/user/userSelector';
7
7
  import { getAccountList, getNestedAccountListHierarchy, } from '../../../accountList/accountListSelector';
8
8
  import { getBankAccount, } from '../../../bankAccountView/bankAccountViewSelector';
@@ -63,16 +63,13 @@ export const getEditRemiDetail = (state, reimbursementId) => {
63
63
  paymentTo: reimbursementInfo?.toAccount.billAccountId,
64
64
  };
65
65
  if (sourceRemiDetail != null) {
66
- const fetchStateList = [
66
+ fetchState = reduceFetchState([
67
67
  sourceRemiDetail.fetchStatus,
68
68
  accountListState.byReportId.reimbursementAccountList,
69
+ classListState,
69
70
  merchantListState,
70
71
  reimbursementConfigState,
71
- ];
72
- if (getIsAccountingClassesEnabled(state)) {
73
- fetchStateList.push(classListState);
74
- }
75
- fetchState = reduceFetchState(fetchStateList).fetchState;
72
+ ]).fetchState;
76
73
  remiStage = reimbursementInfo?.stage.code ?? 'draft';
77
74
  createdBy = getUserByUserId(userState, reimbursement?.createdBy ?? '');
78
75
  createTime = reimbursement?.createTime;
@@ -45,7 +45,6 @@ export const getRemiList = (state, currentTimePeriod, isBulkActionFeatureEnabled
45
45
  return {
46
46
  ...reimbursement,
47
47
  submittedBy: getUserByUserId(userState, reimbursement.reimburseeUserId),
48
- createdByUser: getUserByUserId(userState, reimbursement.createdBy),
49
48
  approvers: approvers,
50
49
  };
51
50
  });
@@ -416,14 +415,6 @@ export const getRemiListOnSort = (sortKey, sortOrder, currentTab, reimbursements
416
415
  reimbursementsWithNoSortKeyValue.push(reimbursement);
417
416
  }
418
417
  break;
419
- case 'createdBy':
420
- if (reimbursement.createdByUser != null) {
421
- reimbursementsWithSortKeyValue.push(reimbursement);
422
- }
423
- else {
424
- reimbursementsWithNoSortKeyValue.push(reimbursement);
425
- }
426
- break;
427
418
  }
428
419
  });
429
420
  const getColumnWiseSortOrder = (sortOrder) => {
@@ -431,7 +422,6 @@ export const getRemiListOnSort = (sortKey, sortOrder, currentTab, reimbursements
431
422
  case 'reportName':
432
423
  case 'type':
433
424
  case 'status':
434
- case 'createdBy':
435
425
  return sortOrder === 'ascending' ? 'asc' : 'desc';
436
426
  default:
437
427
  return sortOrder === 'ascending' ? 'desc' : 'asc';
@@ -451,8 +441,6 @@ export const getRemiListOnSort = (sortKey, sortOrder, currentTab, reimbursements
451
441
  return getStatusPerTab(reimbursement);
452
442
  case 'amount':
453
443
  return reimbursement.amount.amount ?? 0;
454
- case 'createdBy':
455
- return `${reimbursement.createdByUser?.firstName ?? ''} ${reimbursement.createdByUser?.lastName ?? ''}`.toLowerCase();
456
444
  }
457
445
  }, getColumnWiseSortOrder(sortOrder));
458
446
  return [
@@ -55,7 +55,6 @@ export const toRemiSubTabUnderScoreType = (v) => stringToUnion(v, REMI_SUB_TAB_U
55
55
  const ALL_REIMBURSEMENT_SORT_KEYS = [
56
56
  'reportName',
57
57
  'submittedOn',
58
- 'createdBy',
59
58
  'type',
60
59
  'status',
61
60
  'amount',
@@ -91,11 +91,11 @@ export const allTaskStatus = [
91
91
  },
92
92
  {
93
93
  code: 'done',
94
- name: 'In Review',
94
+ name: 'Done',
95
95
  },
96
96
  {
97
97
  code: 'resolved',
98
- name: 'Complete',
98
+ name: 'Resolved',
99
99
  },
100
100
  ];
101
101
  export const allTaskPriority = [
@@ -75,8 +75,8 @@ export const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDe
75
75
  lineItem.account?.qboId !== accountLine.account.qboId &&
76
76
  Boolean(lineItem.account?.qboId);
77
77
  hasClassChanged =
78
- (lineItem.class?.qboId != null || accountLine.class?.qboId != null) &&
79
- lineItem.class?.qboId !== accountLine.class?.qboId;
78
+ Boolean(lineItem.class?.qboId) &&
79
+ lineItem.class?.qboId !== accountLine.class.qboId;
80
80
  const recommendedAccountBase = toRecommendedAccountBase(lineItem.amount.amount, lineItem.account);
81
81
  const recommendedClassBase = toRecommendedClassBase(lineItem.amount.amount, lineItem.class);
82
82
  const latestRecommendedCategory = lineItem.recommendedAccount;