@zeniai/client-epic-state 5.1.57-betaDI1 → 5.1.57-betaRD2

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 (100) hide show
  1. package/lib/coreEpics.js +2 -3
  2. package/lib/entity/chargeCard/chargeCard.d.ts +1 -1
  3. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +2 -0
  4. package/lib/entity/jeSchedules/jeSchedulesPayload.js +2 -0
  5. package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +4 -0
  6. package/lib/entity/jeSchedules/jeSchedulesSelector.js +11 -1
  7. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +2 -0
  8. package/lib/entity/tenant/clearAllEpic.d.ts +1 -3
  9. package/lib/entity/tenant/clearAllEpic.js +0 -4
  10. package/lib/entity/transaction/scheduleTransactionHelper.d.ts +15 -0
  11. package/lib/entity/transaction/scheduleTransactionHelper.js +43 -0
  12. package/lib/epic.d.ts +5 -2
  13. package/lib/epic.js +5 -2
  14. package/lib/esm/coreEpics.js +2 -3
  15. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +2 -0
  16. package/lib/esm/entity/jeSchedules/jeSchedulesSelector.js +11 -1
  17. package/lib/esm/entity/tenant/clearAllEpic.js +0 -4
  18. package/lib/esm/entity/transaction/scheduleTransactionHelper.js +39 -0
  19. package/lib/esm/epic.js +5 -2
  20. package/lib/esm/index.js +7 -9
  21. package/lib/esm/reducer.js +0 -6
  22. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +15 -2
  23. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.js +21 -0
  24. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +110 -0
  25. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.js +53 -0
  26. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +22 -0
  27. package/lib/esm/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +152 -0
  28. package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +126 -6
  29. package/lib/esm/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.js +1 -0
  30. package/lib/esm/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.js +71 -0
  31. package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +65 -11
  32. package/lib/esm/view/expenseAutomationView/types/jeSchedulesViewState.js +3 -6
  33. package/lib/esm/view/settingsView/epic/fetchNotificationSettingsEpic.js +2 -21
  34. package/lib/esm/view/settingsView/epic/saveNotificationSettingsEpic.js +1 -2
  35. package/lib/esm/view/settingsView/settingsViewHelpers.js +2 -3
  36. package/lib/index.d.ts +9 -12
  37. package/lib/index.js +58 -56
  38. package/lib/reducer.d.ts +0 -6
  39. package/lib/reducer.js +0 -6
  40. package/lib/view/common/recurringViewHelper.d.ts +2 -2
  41. package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +14 -1
  42. package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.d.ts +8 -0
  43. package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/initializeNewScheduleEpic.js +25 -0
  44. package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.d.ts +45 -0
  45. package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +114 -0
  46. package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.d.ts +8 -0
  47. package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/searchTransactionsForNewScheduleEpic.js +57 -0
  48. package/lib/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.d.ts +6 -0
  49. package/lib/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +26 -0
  50. package/lib/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.d.ts +43 -0
  51. package/lib/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +158 -0
  52. package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.d.ts +1 -0
  53. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +36 -8
  54. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +128 -7
  55. package/lib/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.d.ts +25 -0
  56. package/lib/view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes.js +2 -0
  57. package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +29 -4
  58. package/lib/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.d.ts +10 -0
  59. package/lib/view/expenseAutomationView/selectors/jeNewScheduleViewSelector.js +76 -0
  60. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +65 -11
  61. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +53 -6
  62. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.js +5 -8
  63. package/lib/view/settingsView/epic/fetchNotificationSettingsEpic.d.ts +1 -9
  64. package/lib/view/settingsView/epic/fetchNotificationSettingsEpic.js +2 -21
  65. package/lib/view/settingsView/epic/saveNotificationSettingsEpic.js +1 -2
  66. package/lib/view/settingsView/settingsViewHelpers.d.ts +1 -1
  67. package/lib/view/settingsView/settingsViewHelpers.js +2 -3
  68. package/lib/view/settingsView/settingsViewPayload.d.ts +0 -4
  69. package/lib/view/settingsView/settingsViewState.d.ts +1 -1
  70. package/package.json +1 -1
  71. package/lib/entity/notificationRegistry/notificationRegistryPayload.d.ts +0 -18
  72. package/lib/entity/notificationRegistry/notificationRegistryPayload.js +0 -28
  73. package/lib/entity/notificationRegistry/notificationRegistryReducer.d.ts +0 -6
  74. package/lib/entity/notificationRegistry/notificationRegistryReducer.js +0 -26
  75. package/lib/entity/notificationRegistry/notificationRegistrySelector.d.ts +0 -2
  76. package/lib/entity/notificationRegistry/notificationRegistrySelector.js +0 -10
  77. package/lib/entity/notificationRegistry/notificationRegistryState.d.ts +0 -31
  78. package/lib/entity/notificationRegistry/notificationRegistryState.js +0 -10
  79. package/lib/esm/entity/notificationRegistry/notificationRegistryPayload.js +0 -24
  80. package/lib/esm/entity/notificationRegistry/notificationRegistryReducer.js +0 -22
  81. package/lib/esm/entity/notificationRegistry/notificationRegistrySelector.js +0 -6
  82. package/lib/esm/entity/notificationRegistry/notificationRegistryState.js +0 -5
  83. package/lib/esm/view/notificationPreferencesView/epics/saveNotificationPreferencesEpic.js +0 -103
  84. package/lib/esm/view/notificationPreferencesView/notificationPreferencesEndpoint.js +0 -5
  85. package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewPayload.js +0 -36
  86. package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewReducer.js +0 -222
  87. package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewSelector.js +0 -25
  88. package/lib/esm/view/notificationPreferencesView/notificationPreferencesViewState.js +0 -4
  89. package/lib/view/notificationPreferencesView/epics/saveNotificationPreferencesEpic.d.ts +0 -34
  90. package/lib/view/notificationPreferencesView/epics/saveNotificationPreferencesEpic.js +0 -107
  91. package/lib/view/notificationPreferencesView/notificationPreferencesEndpoint.d.ts +0 -2
  92. package/lib/view/notificationPreferencesView/notificationPreferencesEndpoint.js +0 -9
  93. package/lib/view/notificationPreferencesView/notificationPreferencesViewPayload.d.ts +0 -7
  94. package/lib/view/notificationPreferencesView/notificationPreferencesViewPayload.js +0 -41
  95. package/lib/view/notificationPreferencesView/notificationPreferencesViewReducer.d.ts +0 -30
  96. package/lib/view/notificationPreferencesView/notificationPreferencesViewReducer.js +0 -226
  97. package/lib/view/notificationPreferencesView/notificationPreferencesViewSelector.d.ts +0 -7
  98. package/lib/view/notificationPreferencesView/notificationPreferencesViewSelector.js +0 -32
  99. package/lib/view/notificationPreferencesView/notificationPreferencesViewState.d.ts +0 -14
  100. package/lib/view/notificationPreferencesView/notificationPreferencesViewState.js +0 -8
@@ -2,13 +2,16 @@ import { ID } from '../../../commonStateTypes/common';
2
2
  import { MonthYearPeriod, TimePeriod } from '../../../commonStateTypes/timePeriod';
3
3
  import { AccountMetadataPayload } from '../../../entity/account/accountPayload';
4
4
  import { JEScheduledTransactionPayload } from '../../../entity/jeSchedules/jeSchedulesPayload';
5
- import { JEScheduleTransactionKey } from '../../../entity/jeSchedules/jeSchedulesTypes';
5
+ import { JEScheduleTransactionKey, ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes';
6
6
  import { ZeniAPIStatus } from '../../../responsePayload';
7
7
  import { AccountTypeRecommendationPayload } from '../../accountMappingView/accountTypeRecommendation/accountTypeRecommendationPayload';
8
- import { AccountSettingsLocalData, AccountSettingsState, JEScheduleLocalData, JESchedulesViewState, JESchedulesViewUIState } from '../types/jeSchedulesViewState';
8
+ import { AccountSettingsLocalData, AccountSettingsState, JEScheduleLocalData, JESchedulesViewState, JESchedulesViewUIState, NewScheduleLocalData, NewScheduleLocalDataFixedAssets, SearchTransactionsState } from '../types/jeSchedulesViewState';
9
9
  export declare const accountSettingsInitialState: AccountSettingsState;
10
+ export declare const getBaseNewScheduleLocalData: (scheduleType: ScheduleTypes) => NewScheduleLocalData;
11
+ export declare const newScheduleInitialState: JESchedulesViewState['newSchedule']['newScheduleState'];
12
+ export declare const searchTransactionsInitialState: SearchTransactionsState;
10
13
  export declare const initialState: JESchedulesViewState;
11
- export declare const clearExpenseAutomationJESchedulesView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/clearExpenseAutomationJESchedulesView">, clearJeAccountSettingsLocalData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/clearJeAccountSettingsLocalData">, clearJeScheduleLocalData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/clearJeScheduleLocalData">, fetchAccountSettingsListForAccountTypes: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/fetchAccountSettingsListForAccountTypes">, fetchJeSchedules: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any], {
14
+ export declare const clearExpenseAutomationJESchedulesView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/clearExpenseAutomationJESchedulesView">, clearJeAccountSettingsLocalData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/clearJeAccountSettingsLocalData">, clearJeScheduleLocalData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/clearJeScheduleLocalData">, clearSearchTransactionsForNewSchedule: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/clearSearchTransactionsForNewSchedule">, fetchAccountSettingsListForAccountTypes: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/fetchAccountSettingsListForAccountTypes">, fetchJeSchedules: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any], {
12
15
  period: TimePeriod;
13
16
  refreshViewInBackground: any;
14
17
  }, "expenseAutomationJESchedulesView/fetchJeSchedules", never, never>, fetchJeSchedulesFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
@@ -32,7 +35,11 @@ export declare const clearExpenseAutomationJESchedulesView: import("@reduxjs/too
32
35
  jeScheduleTransactionKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`;
33
36
  }, "expenseAutomationJESchedulesView/ignoreRecommendedJeScheduleSuccess", never, never>, initializeAccountSettingsView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/initializeAccountSettingsView">, initializeJeScheduleLocalData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeSchedules: JEScheduledTransactionPayload[]], {
34
37
  jeScheduleTransactionKeys: (`${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`)[];
35
- }, "expenseAutomationJESchedulesView/initializeJeScheduleLocalData", never, never>, removeFailedJeScheduleTransactionKey: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[failedJeScheduleKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`, selectedPeriod: MonthYearPeriod], {
38
+ }, "expenseAutomationJESchedulesView/initializeJeScheduleLocalData", never, never>, initializeNewSchedule: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[{
39
+ scheduleType: "fixed_assets" | "prepaid_expenses";
40
+ }], {
41
+ scheduleType: "prepaid_expenses" | "fixed_assets";
42
+ }, "expenseAutomationJESchedulesView/initializeNewSchedule", never, never>, removeFailedJeScheduleTransactionKey: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[failedJeScheduleKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`, selectedPeriod: MonthYearPeriod], {
36
43
  failedJeScheduleKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`;
37
44
  selectedPeriod: MonthYearPeriod;
38
45
  }, "expenseAutomationJESchedulesView/removeFailedJeScheduleTransactionKey", never, never>, removeJeScheduleLocalDataById: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
@@ -40,7 +47,11 @@ export declare const clearExpenseAutomationJESchedulesView: import("@reduxjs/too
40
47
  }, "expenseAutomationJESchedulesView/removeJeScheduleLocalDataById">, removeJeScheduleTransactionKey: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeScheduleKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`, selectedPeriod: MonthYearPeriod], {
41
48
  jeScheduleKey: `${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`;
42
49
  selectedPeriod: MonthYearPeriod;
43
- }, "expenseAutomationJESchedulesView/removeJeScheduleTransactionKey", never, never>, retryJeSchedule: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
50
+ }, "expenseAutomationJESchedulesView/removeJeScheduleTransactionKey", never, never>, resetNewScheduleLocalData: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[{
51
+ scheduleType: "fixed_assets" | "prepaid_expenses";
52
+ }], {
53
+ scheduleType: "prepaid_expenses" | "fixed_assets";
54
+ }, "expenseAutomationJESchedulesView/resetNewScheduleLocalData", never, never>, retryJeSchedule: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
44
55
  jeScheduleTransactionKey: JEScheduleTransactionKey;
45
56
  scheduledJournalEntryID: ID;
46
57
  }, "expenseAutomationJESchedulesView/retryJeSchedule">, retryJeScheduleFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
@@ -52,17 +63,34 @@ export declare const clearExpenseAutomationJESchedulesView: import("@reduxjs/too
52
63
  status: ZeniAPIStatus;
53
64
  }, "expenseAutomationJESchedulesView/saveAccountSettingsFailure">, saveAccountSettingsLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
54
65
  data: Partial<AccountSettingsLocalData>;
55
- }, "expenseAutomationJESchedulesView/saveAccountSettingsLocalData">, saveAccountSettingsSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/saveAccountSettingsSuccess">, updateAccountSettingsListForAccountTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
66
+ }, "expenseAutomationJESchedulesView/saveAccountSettingsLocalData">, saveAccountSettingsSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/saveAccountSettingsSuccess">, saveNewSchedule: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[{
67
+ scheduleType: "fixed_assets" | "prepaid_expenses";
68
+ }], {
69
+ scheduleType: "prepaid_expenses" | "fixed_assets";
70
+ }, "expenseAutomationJESchedulesView/saveNewSchedule", never, never>, saveNewScheduleFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
71
+ status: ZeniAPIStatus;
72
+ }, "expenseAutomationJESchedulesView/saveNewScheduleFailure">, saveNewScheduleSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/saveNewScheduleSuccess">, searchTransactionsForNewSchedule: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[{
73
+ query: string;
74
+ }], {
75
+ query: string;
76
+ }, "expenseAutomationJESchedulesView/searchTransactionsForNewSchedule", never, never>, searchTransactionsForNewScheduleFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
77
+ status: ZeniAPIStatus;
78
+ }, "expenseAutomationJESchedulesView/searchTransactionsForNewScheduleFailure">, searchTransactionsForNewScheduleSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
79
+ searchResults: ID[];
80
+ }, "expenseAutomationJESchedulesView/searchTransactionsForNewScheduleSuccess">, toggleJECreatedGroupCollapsed: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/toggleJECreatedGroupCollapsed">, toggleJEPendingGroupCollapsed: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/toggleJEPendingGroupCollapsed">, updateAccountSettingsListForAccountTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
56
81
  accountPayload: AccountMetadataPayload[];
57
82
  }, "expenseAutomationJESchedulesView/updateAccountSettingsListForAccountTypes">, updateAccountSettingsListForAccountTypesFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
58
83
  status: ZeniAPIStatus;
59
- }, "expenseAutomationJESchedulesView/updateAccountSettingsListForAccountTypesFailure">, updateJESchedulesUIState: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<JESchedulesViewUIState>, "expenseAutomationJESchedulesView/updateJESchedulesUIState">, updateJeScheduleLocalDataById: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
84
+ }, "expenseAutomationJESchedulesView/updateAccountSettingsListForAccountTypesFailure">, updateJESchedulesUIState: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<JESchedulesViewUIState>, "expenseAutomationJESchedulesView/updateJESchedulesUIState">, updateJEScheduleTypeFilter: import("@reduxjs/toolkit").ActionCreatorWithPayload<"prepaid_expenses" | "fixed_assets" | "accrued_expenses" | "deferred_revenue" | null, "expenseAutomationJESchedulesView/updateJEScheduleTypeFilter">, updateJeScheduleLocalDataById: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
60
85
  localData: Partial<JEScheduleLocalData>;
61
86
  scheduledJournalEntryID: ID;
62
87
  }, "expenseAutomationJESchedulesView/updateJeScheduleLocalDataById">, updateJeScheduleTransactionKeys: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeScheduleKeys: (`${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`)[], selectedPeriod: MonthYearPeriod], {
63
88
  jeScheduleKeys: (`${string}_bill_${string}` | `${string}_expense_${string}` | `${string}_check_${string}` | `${string}_refund_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`)[];
64
89
  selectedPeriod: MonthYearPeriod;
65
- }, "expenseAutomationJESchedulesView/updateJeScheduleTransactionKeys", never, never>, updateRecommendationForAccountSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<AccountTypeRecommendationPayload, "expenseAutomationJESchedulesView/updateRecommendationForAccountSettings">, updateRecommendationForAccountSettingsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
90
+ }, "expenseAutomationJESchedulesView/updateJeScheduleTransactionKeys", never, never>, updateNewScheduleLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
91
+ localData: Partial<NewScheduleLocalDataFixedAssets>;
92
+ scheduleType: "fixed_assets" | "prepaid_expenses";
93
+ }, "expenseAutomationJESchedulesView/updateNewScheduleLocalData">, updateRecommendationForAccountSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<AccountTypeRecommendationPayload, "expenseAutomationJESchedulesView/updateRecommendationForAccountSettings">, updateRecommendationForAccountSettingsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
66
94
  status: ZeniAPIStatus;
67
95
  }, "expenseAutomationJESchedulesView/updateRecommendationForAccountSettingsFailure">;
68
96
  declare const _default: import("redux").Reducer<JESchedulesViewState>;
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.updateRecommendationForAccountSettingsFailure = exports.updateRecommendationForAccountSettings = exports.updateJeScheduleTransactionKeys = exports.updateJeScheduleLocalDataById = exports.updateJESchedulesUIState = exports.updateAccountSettingsListForAccountTypesFailure = exports.updateAccountSettingsListForAccountTypes = exports.saveAccountSettingsSuccess = exports.saveAccountSettingsLocalData = exports.saveAccountSettingsFailure = exports.saveAccountSettings = exports.retryJeScheduleSuccess = exports.retryJeScheduleFailure = exports.retryJeSchedule = exports.removeJeScheduleTransactionKey = exports.removeJeScheduleLocalDataById = exports.removeFailedJeScheduleTransactionKey = exports.initializeJeScheduleLocalData = exports.initializeAccountSettingsView = exports.ignoreRecommendedJeScheduleSuccess = exports.ignoreRecommendedJeScheduleFailure = exports.ignoreRecommendedJeSchedule = exports.fetchRecommendationForAccountSettings = exports.fetchJeSchedulesSuccess = exports.fetchJeSchedulesPage = exports.fetchJeSchedulesFailure = exports.fetchJeSchedules = exports.fetchAccountSettingsListForAccountTypes = exports.clearJeScheduleLocalData = exports.clearJeAccountSettingsLocalData = exports.clearExpenseAutomationJESchedulesView = exports.initialState = exports.accountSettingsInitialState = void 0;
4
+ exports.updateRecommendationForAccountSettingsFailure = exports.updateRecommendationForAccountSettings = exports.updateNewScheduleLocalData = exports.updateJeScheduleTransactionKeys = exports.updateJeScheduleLocalDataById = exports.updateJEScheduleTypeFilter = exports.updateJESchedulesUIState = exports.updateAccountSettingsListForAccountTypesFailure = exports.updateAccountSettingsListForAccountTypes = exports.toggleJEPendingGroupCollapsed = exports.toggleJECreatedGroupCollapsed = exports.searchTransactionsForNewScheduleSuccess = exports.searchTransactionsForNewScheduleFailure = exports.searchTransactionsForNewSchedule = exports.saveNewScheduleSuccess = exports.saveNewScheduleFailure = exports.saveNewSchedule = exports.saveAccountSettingsSuccess = exports.saveAccountSettingsLocalData = exports.saveAccountSettingsFailure = exports.saveAccountSettings = exports.retryJeScheduleSuccess = exports.retryJeScheduleFailure = exports.retryJeSchedule = exports.resetNewScheduleLocalData = exports.removeJeScheduleTransactionKey = exports.removeJeScheduleLocalDataById = exports.removeFailedJeScheduleTransactionKey = exports.initializeNewSchedule = exports.initializeJeScheduleLocalData = exports.initializeAccountSettingsView = exports.ignoreRecommendedJeScheduleSuccess = exports.ignoreRecommendedJeScheduleFailure = exports.ignoreRecommendedJeSchedule = exports.fetchRecommendationForAccountSettings = exports.fetchJeSchedulesSuccess = exports.fetchJeSchedulesPage = exports.fetchJeSchedulesFailure = exports.fetchJeSchedules = exports.fetchAccountSettingsListForAccountTypes = exports.clearSearchTransactionsForNewSchedule = exports.clearJeScheduleLocalData = exports.clearJeAccountSettingsLocalData = exports.clearExpenseAutomationJESchedulesView = exports.initialState = exports.searchTransactionsInitialState = exports.newScheduleInitialState = exports.getBaseNewScheduleLocalData = exports.accountSettingsInitialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const getNestedAccountIDHierarchyForReport_1 = require("../../../commonStateTypes/accountView/getNestedAccountIDHierarchyForReport");
7
7
  const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
8
8
  const accountPayload_1 = require("../../../entity/account/accountPayload");
9
9
  const jeSchedulesPayload_1 = require("../../../entity/jeSchedules/jeSchedulesPayload");
10
10
  const accountTypeRecommendationPayload_1 = require("../../accountMappingView/accountTypeRecommendation/accountTypeRecommendationPayload");
11
+ const jeSchedulesViewState_1 = require("../types/jeSchedulesViewState");
11
12
  exports.accountSettingsInitialState = {
12
13
  localData: {
13
14
  selectedPrepaidExpensesAccountIds: [],
@@ -39,6 +40,20 @@ exports.accountSettingsInitialState = {
39
40
  accruedExpensesNestedAccountListHierarchy: [],
40
41
  accruedExpensesRecommendations: [],
41
42
  };
43
+ const getBaseNewScheduleLocalData = (scheduleType) => ({
44
+ scheduleType,
45
+ jeScheduleDetails: [],
46
+ });
47
+ exports.getBaseNewScheduleLocalData = getBaseNewScheduleLocalData;
48
+ exports.newScheduleInitialState = {
49
+ fixed_assets: (0, exports.getBaseNewScheduleLocalData)('fixed_assets'),
50
+ prepaid_expenses: (0, exports.getBaseNewScheduleLocalData)('prepaid_expenses'),
51
+ };
52
+ exports.searchTransactionsInitialState = {
53
+ searchResults: [],
54
+ fetchState: 'Not-Started',
55
+ error: undefined,
56
+ };
42
57
  exports.initialState = {
43
58
  jeScheduleTransactionKeysByPeriod: {},
44
59
  failedJeScheduleTransactionKeysByPeriod: {},
@@ -46,9 +61,12 @@ exports.initialState = {
46
61
  ignoreStatusById: {},
47
62
  jeScheduleLocalDataById: {},
48
63
  uiState: {
49
- searchString: '',
64
+ createdGroupCollapsed: false,
65
+ pendingGroupCollapsed: false,
50
66
  scrollPosition: { scrollTop: 0, scrollLeft: undefined },
51
- selectedMainTab: 'pending_review',
67
+ searchString: '',
68
+ selectedJETypeFilter: null,
69
+ selectedPageTab: 'schedules',
52
70
  sortKey: 'transactionDate',
53
71
  sortOrder: 'descending',
54
72
  totalCount: 0,
@@ -59,6 +77,13 @@ exports.initialState = {
59
77
  error: undefined,
60
78
  },
61
79
  accountSettings: exports.accountSettingsInitialState,
80
+ newSchedule: {
81
+ newScheduleState: exports.newScheduleInitialState,
82
+ saveStatus: { fetchState: 'Not-Started', error: undefined },
83
+ searchTransactions: exports.searchTransactionsInitialState,
84
+ fetchState: 'Not-Started',
85
+ error: undefined,
86
+ },
62
87
  fetchState: 'Not-Started',
63
88
  error: undefined,
64
89
  hasValidState() {
@@ -125,8 +150,8 @@ const expenseAutomationJESchedulesView = (0, toolkit_1.createSlice)({
125
150
  else {
126
151
  draft.fetchState = 'Error';
127
152
  draft.error = status;
153
+ draft.jeScheduleTransactionKeysByPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = [];
128
154
  }
129
- draft.jeScheduleTransactionKeysByPeriod[(0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod)] = [];
130
155
  },
131
156
  retryJeSchedule(draft, action) {
132
157
  const { scheduledJournalEntryID } = action.payload;
@@ -372,6 +397,91 @@ const expenseAutomationJESchedulesView = (0, toolkit_1.createSlice)({
372
397
  clearJeAccountSettingsLocalData(draft) {
373
398
  draft.accountSettings.localData = exports.accountSettingsInitialState.localData;
374
399
  },
400
+ initializeNewSchedule: {
401
+ prepare({ scheduleType, }) {
402
+ return { payload: { scheduleType } };
403
+ },
404
+ reducer() {
405
+ // Purely an epic-trigger action — the epic fans out the account/class
406
+ // list fetches plus resetNewScheduleLocalData.
407
+ },
408
+ },
409
+ resetNewScheduleLocalData: {
410
+ prepare({ scheduleType, }) {
411
+ return { payload: { scheduleType } };
412
+ },
413
+ reducer(draft, action) {
414
+ const { scheduleType } = action.payload;
415
+ draft.newSchedule.newScheduleState[scheduleType] =
416
+ (0, exports.getBaseNewScheduleLocalData)(scheduleType);
417
+ },
418
+ },
419
+ updateNewScheduleLocalData(draft, action) {
420
+ const { scheduleType, localData } = action.payload;
421
+ draft.newSchedule.newScheduleState[scheduleType] = {
422
+ ...draft.newSchedule.newScheduleState[scheduleType],
423
+ ...localData,
424
+ };
425
+ },
426
+ searchTransactionsForNewSchedule: {
427
+ prepare({ query }) {
428
+ return { payload: { query } };
429
+ },
430
+ reducer(draft, action) {
431
+ const trimmed = action.payload.query.trim();
432
+ // Cleared or too-short query: no API (see epic) — reset immediately.
433
+ if (trimmed.length < jeSchedulesViewState_1.MIN_NEW_SCHEDULE_SEARCH_LENGTH) {
434
+ draft.newSchedule.searchTransactions = exports.searchTransactionsInitialState;
435
+ return;
436
+ }
437
+ draft.newSchedule.searchTransactions = {
438
+ ...draft.newSchedule.searchTransactions,
439
+ searchString: action.payload.query,
440
+ fetchState: 'In-Progress',
441
+ };
442
+ },
443
+ },
444
+ searchTransactionsForNewScheduleSuccess(draft, action) {
445
+ draft.newSchedule.searchTransactions = {
446
+ ...draft.newSchedule.searchTransactions,
447
+ searchResults: action.payload.searchResults,
448
+ fetchState: 'Completed',
449
+ error: undefined,
450
+ };
451
+ },
452
+ searchTransactionsForNewScheduleFailure(draft, action) {
453
+ draft.newSchedule.searchTransactions = {
454
+ ...draft.newSchedule.searchTransactions,
455
+ fetchState: 'Error',
456
+ error: action.payload.status,
457
+ };
458
+ },
459
+ clearSearchTransactionsForNewSchedule(draft) {
460
+ draft.newSchedule.searchTransactions = exports.searchTransactionsInitialState;
461
+ },
462
+ saveNewSchedule: {
463
+ prepare({ scheduleType, }) {
464
+ return { payload: { scheduleType } };
465
+ },
466
+ reducer(draft) {
467
+ draft.newSchedule.saveStatus = {
468
+ fetchState: 'In-Progress',
469
+ error: undefined,
470
+ };
471
+ },
472
+ },
473
+ saveNewScheduleSuccess(draft) {
474
+ draft.newSchedule.saveStatus = {
475
+ fetchState: 'Completed',
476
+ error: undefined,
477
+ };
478
+ },
479
+ saveNewScheduleFailure(draft, action) {
480
+ draft.newSchedule.saveStatus = {
481
+ fetchState: 'Error',
482
+ error: action.payload.status,
483
+ };
484
+ },
375
485
  updateJESchedulesUIState(draft, action) {
376
486
  if (action.payload.sortKey != null) {
377
487
  draft.uiState.sortKey = action.payload.sortKey;
@@ -385,16 +495,27 @@ const expenseAutomationJESchedulesView = (0, toolkit_1.createSlice)({
385
495
  if (action.payload.scrollPosition != null) {
386
496
  draft.uiState.scrollPosition = action.payload.scrollPosition;
387
497
  }
388
- if (action.payload.selectedMainTab != null) {
389
- draft.uiState.selectedMainTab = action.payload.selectedMainTab;
498
+ if (action.payload.selectedPageTab != null) {
499
+ draft.uiState.selectedPageTab = action.payload.selectedPageTab;
390
500
  }
391
501
  },
502
+ updateJEScheduleTypeFilter(draft, action) {
503
+ draft.uiState.selectedJETypeFilter = action.payload;
504
+ },
505
+ toggleJEPendingGroupCollapsed(draft) {
506
+ draft.uiState.pendingGroupCollapsed =
507
+ !draft.uiState.pendingGroupCollapsed;
508
+ },
509
+ toggleJECreatedGroupCollapsed(draft) {
510
+ draft.uiState.createdGroupCollapsed =
511
+ !draft.uiState.createdGroupCollapsed;
512
+ },
392
513
  clearExpenseAutomationJESchedulesView(draft) {
393
514
  Object.assign(draft, exports.initialState);
394
515
  },
395
516
  },
396
517
  });
397
- _a = expenseAutomationJESchedulesView.actions, exports.clearExpenseAutomationJESchedulesView = _a.clearExpenseAutomationJESchedulesView, exports.clearJeAccountSettingsLocalData = _a.clearJeAccountSettingsLocalData, exports.clearJeScheduleLocalData = _a.clearJeScheduleLocalData, exports.fetchAccountSettingsListForAccountTypes = _a.fetchAccountSettingsListForAccountTypes, exports.fetchJeSchedules = _a.fetchJeSchedules, exports.fetchJeSchedulesFailure = _a.fetchJeSchedulesFailure, exports.fetchJeSchedulesPage = _a.fetchJeSchedulesPage, exports.fetchJeSchedulesSuccess = _a.fetchJeSchedulesSuccess, exports.fetchRecommendationForAccountSettings = _a.fetchRecommendationForAccountSettings, exports.ignoreRecommendedJeSchedule = _a.ignoreRecommendedJeSchedule, exports.ignoreRecommendedJeScheduleFailure = _a.ignoreRecommendedJeScheduleFailure, exports.ignoreRecommendedJeScheduleSuccess = _a.ignoreRecommendedJeScheduleSuccess, exports.initializeAccountSettingsView = _a.initializeAccountSettingsView, exports.initializeJeScheduleLocalData = _a.initializeJeScheduleLocalData, exports.removeFailedJeScheduleTransactionKey = _a.removeFailedJeScheduleTransactionKey, exports.removeJeScheduleLocalDataById = _a.removeJeScheduleLocalDataById, exports.removeJeScheduleTransactionKey = _a.removeJeScheduleTransactionKey, exports.retryJeSchedule = _a.retryJeSchedule, exports.retryJeScheduleFailure = _a.retryJeScheduleFailure, exports.retryJeScheduleSuccess = _a.retryJeScheduleSuccess, exports.saveAccountSettings = _a.saveAccountSettings, exports.saveAccountSettingsFailure = _a.saveAccountSettingsFailure, exports.saveAccountSettingsLocalData = _a.saveAccountSettingsLocalData, exports.saveAccountSettingsSuccess = _a.saveAccountSettingsSuccess, exports.updateAccountSettingsListForAccountTypes = _a.updateAccountSettingsListForAccountTypes, exports.updateAccountSettingsListForAccountTypesFailure = _a.updateAccountSettingsListForAccountTypesFailure, exports.updateJESchedulesUIState = _a.updateJESchedulesUIState, exports.updateJeScheduleLocalDataById = _a.updateJeScheduleLocalDataById, exports.updateJeScheduleTransactionKeys = _a.updateJeScheduleTransactionKeys, exports.updateRecommendationForAccountSettings = _a.updateRecommendationForAccountSettings, exports.updateRecommendationForAccountSettingsFailure = _a.updateRecommendationForAccountSettingsFailure;
518
+ _a = expenseAutomationJESchedulesView.actions, exports.clearExpenseAutomationJESchedulesView = _a.clearExpenseAutomationJESchedulesView, exports.clearJeAccountSettingsLocalData = _a.clearJeAccountSettingsLocalData, exports.clearJeScheduleLocalData = _a.clearJeScheduleLocalData, exports.clearSearchTransactionsForNewSchedule = _a.clearSearchTransactionsForNewSchedule, exports.fetchAccountSettingsListForAccountTypes = _a.fetchAccountSettingsListForAccountTypes, exports.fetchJeSchedules = _a.fetchJeSchedules, exports.fetchJeSchedulesFailure = _a.fetchJeSchedulesFailure, exports.fetchJeSchedulesPage = _a.fetchJeSchedulesPage, exports.fetchJeSchedulesSuccess = _a.fetchJeSchedulesSuccess, exports.fetchRecommendationForAccountSettings = _a.fetchRecommendationForAccountSettings, exports.ignoreRecommendedJeSchedule = _a.ignoreRecommendedJeSchedule, exports.ignoreRecommendedJeScheduleFailure = _a.ignoreRecommendedJeScheduleFailure, exports.ignoreRecommendedJeScheduleSuccess = _a.ignoreRecommendedJeScheduleSuccess, exports.initializeAccountSettingsView = _a.initializeAccountSettingsView, exports.initializeJeScheduleLocalData = _a.initializeJeScheduleLocalData, exports.initializeNewSchedule = _a.initializeNewSchedule, exports.removeFailedJeScheduleTransactionKey = _a.removeFailedJeScheduleTransactionKey, exports.removeJeScheduleLocalDataById = _a.removeJeScheduleLocalDataById, exports.removeJeScheduleTransactionKey = _a.removeJeScheduleTransactionKey, exports.resetNewScheduleLocalData = _a.resetNewScheduleLocalData, exports.retryJeSchedule = _a.retryJeSchedule, exports.retryJeScheduleFailure = _a.retryJeScheduleFailure, exports.retryJeScheduleSuccess = _a.retryJeScheduleSuccess, exports.saveAccountSettings = _a.saveAccountSettings, exports.saveAccountSettingsFailure = _a.saveAccountSettingsFailure, exports.saveAccountSettingsLocalData = _a.saveAccountSettingsLocalData, exports.saveAccountSettingsSuccess = _a.saveAccountSettingsSuccess, exports.saveNewSchedule = _a.saveNewSchedule, exports.saveNewScheduleFailure = _a.saveNewScheduleFailure, exports.saveNewScheduleSuccess = _a.saveNewScheduleSuccess, exports.searchTransactionsForNewSchedule = _a.searchTransactionsForNewSchedule, exports.searchTransactionsForNewScheduleFailure = _a.searchTransactionsForNewScheduleFailure, exports.searchTransactionsForNewScheduleSuccess = _a.searchTransactionsForNewScheduleSuccess, exports.toggleJECreatedGroupCollapsed = _a.toggleJECreatedGroupCollapsed, exports.toggleJEPendingGroupCollapsed = _a.toggleJEPendingGroupCollapsed, exports.updateAccountSettingsListForAccountTypes = _a.updateAccountSettingsListForAccountTypes, exports.updateAccountSettingsListForAccountTypesFailure = _a.updateAccountSettingsListForAccountTypesFailure, exports.updateJESchedulesUIState = _a.updateJESchedulesUIState, exports.updateJEScheduleTypeFilter = _a.updateJEScheduleTypeFilter, exports.updateJeScheduleLocalDataById = _a.updateJeScheduleLocalDataById, exports.updateJeScheduleTransactionKeys = _a.updateJeScheduleTransactionKeys, exports.updateNewScheduleLocalData = _a.updateNewScheduleLocalData, exports.updateRecommendationForAccountSettings = _a.updateRecommendationForAccountSettings, exports.updateRecommendationForAccountSettingsFailure = _a.updateRecommendationForAccountSettingsFailure;
398
519
  exports.default = expenseAutomationJESchedulesView.reducer;
399
520
  const doUpdateRecommendationForAccountSettings = (draft, payload) => {
400
521
  const { prepaidExpensesRecommendations, fixedAssetsRecommendations, accruedExpensesRecommendations, } = (0, accountTypeRecommendationPayload_1.mapAccountTypeRecommendationPayloadToAccountRecommendationByType)(payload);
@@ -0,0 +1,25 @@
1
+ import { NestedAccountHierarchyForReport } from '../../../commonStateTypes/accountView/nestedAccountID';
2
+ import { NestedClassHierarchyForReport } from '../../../commonStateTypes/classesView/nestedClassID';
3
+ import { FetchStateAndError, ID } from '../../../commonStateTypes/common';
4
+ import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
5
+ import { AccountBase } from '../../../entity/account/accountState';
6
+ import { ClassBase } from '../../../entity/class/classState';
7
+ import { ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes';
8
+ import { SupportedTransaction } from '../../../entity/transaction/transactionState';
9
+ import { NewScheduleLocalData, NewScheduleLocalDataFixedAssets } from '../types/jeSchedulesViewState';
10
+ export interface NewScheduleSearchTransactionsView {
11
+ searchTransactionsFetchState: FetchStateAndError;
12
+ searchTransactionsResults: SupportedTransaction[];
13
+ selectableBaseTransactionIds: ID[];
14
+ searchTransactionsString?: string;
15
+ }
16
+ export interface NewScheduleView extends SelectorView, NewScheduleSearchTransactionsView {
17
+ accountListNestedAccountHierarchy: NestedAccountHierarchyForReport[];
18
+ allAccountList: AccountBase[];
19
+ allClassList: ClassBase[];
20
+ classListNestedAccountHierarchy: NestedClassHierarchyForReport[];
21
+ newScheduleLocalData: NewScheduleLocalData | NewScheduleLocalDataFixedAssets;
22
+ scheduleType: ScheduleTypes;
23
+ allDepreciationAccountList?: AccountBase[];
24
+ allDepreciationAccountListNestedAccountHierarchy?: NestedAccountHierarchyForReport[];
25
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -5,11 +5,30 @@ import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndRep
5
5
  import { AccountBase } from '../../../entity/account/accountState';
6
6
  import { ClassBase } from '../../../entity/class/classState';
7
7
  import { JEScheduledTransaction } from '../../../entity/jeSchedules/jeSchedulesSelector';
8
- import { JEScheduleTransactionKey } from '../../../entity/jeSchedules/jeSchedulesTypes';
8
+ import { JEScheduleTransactionKey, ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes';
9
9
  import { UncategorizedAccounts } from '../../accountList/accountListSelector';
10
10
  import { JEAccountSettingsView } from '../selectorTypes/jeAccountSettingsViewSelectorTypes';
11
+ import { NewScheduleView } from '../selectorTypes/jeNewScheduleViewSelectorTypes';
11
12
  import { JEScheduledTransactionWithFailedEntries } from '../selectors/jeSchedulesViewSelector';
12
13
  import { JEScheduleLocalData, JESchedulesViewUIState } from '../types/jeSchedulesViewState';
14
+ export interface JEKpiSummary {
15
+ aiAccountant: {
16
+ amount: number;
17
+ count: number;
18
+ };
19
+ manual: {
20
+ amount: number;
21
+ count: number;
22
+ };
23
+ needsReview: {
24
+ amount: number;
25
+ count: number;
26
+ };
27
+ total: {
28
+ amount: number;
29
+ count: number;
30
+ };
31
+ }
13
32
  export interface ExpenseAutomationJESchedulesViewSelector extends SelectorView {
14
33
  accountListNestedAccountHierarchy: NestedAccountHierarchyForReport[];
15
34
  accountSettingsView: JEAccountSettingsView;
@@ -18,13 +37,19 @@ export interface ExpenseAutomationJESchedulesViewSelector extends SelectorView {
18
37
  allDepreciationAccountList: AccountBase[];
19
38
  allDepreciationAccountListNestedAccountHierarchy: NestedAccountHierarchyForReport[];
20
39
  classListNestedAccountHierarchy: NestedClassHierarchyForReport[];
21
- completedSchedules: JEScheduledTransaction[];
22
40
  completionStatus: CompletionStatusType;
23
- draftSchedules: JEScheduledTransaction[];
41
+ createdSchedules: JEScheduledTransaction[];
42
+ createdTotal: number;
24
43
  ignoreStatusById: Record<JEScheduleTransactionKey, FetchStateAndError>;
25
44
  jeScheduleLocalDataById: Record<ID, JEScheduleLocalData>;
26
- ongoingSchedules: JEScheduledTransaction[];
45
+ jeScheduleTypeCounts: {
46
+ active: Record<ScheduleTypes, number>;
47
+ ongoing: Record<ScheduleTypes, number>;
48
+ };
49
+ kpiSummary: JEKpiSummary;
50
+ newScheduleView: NewScheduleView | undefined;
27
51
  pendingReviewSchedules: (JEScheduledTransaction | JEScheduledTransactionWithFailedEntries)[];
52
+ pendingReviewTotal: number;
28
53
  postStatusById: Record<ID, FetchStateAndError>;
29
54
  refreshStatus: FetchStateAndError;
30
55
  resolveSchedules: JEScheduledTransactionWithFailedEntries[];
@@ -0,0 +1,10 @@
1
+ import { RootState } from '../../../reducer';
2
+ import { NewScheduleSearchTransactionsView, NewScheduleView } from '../selectorTypes/jeNewScheduleViewSelectorTypes';
3
+ /**
4
+ * The Base Transaction search is shared across schedule types (one search
5
+ * box, not one per prepaid_expenses/fixed_assets) — split out from
6
+ * getNewScheduleView so a consumer can read it without supplying an
7
+ * otherwise-irrelevant scheduleType.
8
+ */
9
+ export declare const getNewScheduleSearchTransactionsView: (state: RootState) => NewScheduleSearchTransactionsView;
10
+ export declare const getNewScheduleView: (state: RootState, scheduleType: "fixed_assets" | "prepaid_expenses") => NewScheduleView;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNewScheduleView = exports.getNewScheduleSearchTransactionsView = void 0;
4
+ const accountSelector_1 = require("../../../entity/account/accountSelector");
5
+ const transactionSelector_1 = require("../../../entity/transaction/transactionSelector");
6
+ const accountListSelector_1 = require("../../accountList/accountListSelector");
7
+ const classListSelector_1 = require("../../classList/classListSelector");
8
+ const scheduleDetailLocalDataHelper_1 = require("../../scheduleView/scheduleDetailView/scheduleDetailLocalDataHelper");
9
+ const scheduleDetailSelector_1 = require("../../scheduleView/scheduleDetailView/scheduleDetailSelector");
10
+ const scheduleListHelper_1 = require("../../scheduleView/scheduleListView/scheduleListHelper");
11
+ const newScheduleLocalDataHelper_1 = require("../helpers/newScheduleLocalDataHelper");
12
+ /**
13
+ * The Base Transaction search is shared across schedule types (one search
14
+ * box, not one per prepaid_expenses/fixed_assets) — split out from
15
+ * getNewScheduleView so a consumer can read it without supplying an
16
+ * otherwise-irrelevant scheduleType.
17
+ */
18
+ const getNewScheduleSearchTransactionsView = (state) => {
19
+ const { searchTransactions } = state.expenseAutomationJESchedulesViewState.newSchedule;
20
+ const searchTransactionsResults = (0, transactionSelector_1.getSupportedTransactionsByIds)(state.transactionState, searchTransactions.searchResults);
21
+ return {
22
+ searchTransactionsResults,
23
+ selectableBaseTransactionIds: searchTransactionsResults
24
+ .filter(newScheduleLocalDataHelper_1.isSupportedTransactionSelectableForNewSchedule)
25
+ .map((transaction) => transaction.id),
26
+ searchTransactionsFetchState: {
27
+ fetchState: searchTransactions.fetchState,
28
+ error: searchTransactions.error,
29
+ },
30
+ searchTransactionsString: searchTransactions.searchString,
31
+ };
32
+ };
33
+ exports.getNewScheduleSearchTransactionsView = getNewScheduleSearchTransactionsView;
34
+ const getNewScheduleView = (state, scheduleType) => {
35
+ const { accountState, accountListState, classState, classListState } = state;
36
+ const { newSchedule } = state.expenseAutomationJESchedulesViewState;
37
+ const searchTransactionsView = (0, exports.getNewScheduleSearchTransactionsView)(state);
38
+ const accountType = (0, scheduleListHelper_1.getAccountsTypesForScheduleEpics)();
39
+ const newScheduleAccountTypes = (0, scheduleDetailLocalDataHelper_1.getAccountsTypesForScheduleDetails)(scheduleType);
40
+ const newScheduleAccountIds = (0, accountSelector_1.getAccountIdsForTypes)(accountState, newScheduleAccountTypes);
41
+ const allAccountList = (0, accountListSelector_1.getAccountList)(accountState, accountListState, accountType.accountListKey);
42
+ const filteredAccounts = allAccountList.accounts.filter((account) => newScheduleAccountIds.includes(account.accountId));
43
+ const accountListNestedAccountHierarchy = (0, scheduleDetailSelector_1.filterNestedAccountHierarchyById)((0, accountListSelector_1.getNestedAccountListHierarchy)(accountListState, accountType.accountListKey), filteredAccounts.map((account) => account.accountId));
44
+ const allClassList = (0, classListSelector_1.getClassList)(classState, classListState);
45
+ const classListNestedAccountHierarchy = (0, classListSelector_1.getNestedClassListHierarchy)(classListState);
46
+ let allDepreciationAccountList;
47
+ let allDepreciationAccountListNestedAccountHierarchy;
48
+ if (scheduleType === 'fixed_assets') {
49
+ const depreciationCategoryIds = (0, accountSelector_1.getAccountIdsForTypes)(accountState, [
50
+ 'fixed_assets',
51
+ 'other_assets',
52
+ ]);
53
+ const accountLabel = (0, scheduleListHelper_1.getAccountLabelForScheduleType)('fixed_assets');
54
+ const fixedAssetLabelAccountIds = accountLabel != null
55
+ ? (0, accountListSelector_1.getAccountIdsForLabel)(accountListState, accountType.accountListKey, accountLabel)
56
+ : [];
57
+ allDepreciationAccountList = allAccountList.accounts.filter((account) => depreciationCategoryIds.includes(account.accountId) &&
58
+ !fixedAssetLabelAccountIds.includes(account.accountId));
59
+ allDepreciationAccountListNestedAccountHierarchy =
60
+ (0, scheduleDetailSelector_1.filterNestedAccountHierarchyById)((0, accountListSelector_1.getNestedAccountListHierarchy)(accountListState, accountType.accountListKey), allDepreciationAccountList.map((account) => account.accountId));
61
+ }
62
+ return {
63
+ scheduleType,
64
+ accountListNestedAccountHierarchy,
65
+ allAccountList: filteredAccounts,
66
+ allClassList: allClassList.classes,
67
+ allDepreciationAccountList,
68
+ allDepreciationAccountListNestedAccountHierarchy,
69
+ classListNestedAccountHierarchy,
70
+ newScheduleLocalData: newSchedule.newScheduleState[scheduleType],
71
+ ...searchTransactionsView,
72
+ fetchState: newSchedule.fetchState,
73
+ error: newSchedule.error,
74
+ };
75
+ };
76
+ exports.getNewScheduleView = getNewScheduleView;
@@ -10,6 +10,7 @@ const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState")
10
10
  const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
11
11
  const accountSelector_1 = require("../../../entity/account/accountSelector");
12
12
  const jeSchedulesSelector_1 = require("../../../entity/jeSchedules/jeSchedulesSelector");
13
+ const jeSchedulesTypes_1 = require("../../../entity/jeSchedules/jeSchedulesTypes");
13
14
  const tenantSelector_1 = require("../../../entity/tenant/tenantSelector");
14
15
  const accountListSelector_1 = require("../../accountList/accountListSelector");
15
16
  const classListSelector_1 = require("../../classList/classListSelector");
@@ -18,6 +19,7 @@ const scheduleDetailSelector_1 = require("../../scheduleView/scheduleDetailView/
18
19
  const scheduleListHelper_1 = require("../../scheduleView/scheduleListView/scheduleListHelper");
19
20
  const expenseAutomationViewSelectorTypes_1 = require("../selectorTypes/expenseAutomationViewSelectorTypes");
20
21
  const jeAccountSettingsViewSelector_1 = require("./jeAccountSettingsViewSelector");
22
+ const jeNewScheduleViewSelector_1 = require("./jeNewScheduleViewSelector");
21
23
  function getJEScheduleSortAccessor(sortKey) {
22
24
  switch (sortKey) {
23
25
  case 'vendor':
@@ -59,7 +61,7 @@ function getJEScheduleSortAccessor(sortKey) {
59
61
  case 'totalAmount':
60
62
  return (s) => s.baseTransaction.amount.amount;
61
63
  case 'transactionDate':
62
- return (s) => s.baseTransaction.date.valueOf();
64
+ return (s) => s.createTime?.valueOf();
63
65
  case 'memo':
64
66
  return (s) => s.baseTransaction.memo?.toLowerCase();
65
67
  default:
@@ -74,8 +76,12 @@ function getExpenseAutomationJESchedulesView(state) {
74
76
  const jeScheduledTransaction = [];
75
77
  const failedJeScheduledTransaction = [];
76
78
  const { accountState, accountListState, classState, classListState, expenseAutomationJESchedulesViewState, expenseAutomationViewState, monthEndCloseChecksState, monthEndCloseChecksViewState, } = state;
77
- const { jeScheduleTransactionKeysByPeriod, failedJeScheduleTransactionKeysByPeriod, jeScheduleLocalDataById, postStatusById, ignoreStatusById, uiState, error, fetchState, refreshStatus, } = expenseAutomationJESchedulesViewState;
79
+ const { jeScheduleTransactionKeysByPeriod, failedJeScheduleTransactionKeysByPeriod, jeScheduleLocalDataById, postStatusById, ignoreStatusById, uiState, error, fetchState, refreshStatus, newSchedule, } = expenseAutomationJESchedulesViewState;
78
80
  const accountSettingsView = (0, jeAccountSettingsViewSelector_1.getJEAccountSettingsView)(state);
81
+ const newScheduleView = newSchedule.selectedDetailScheduleType === 'fixed_assets' ||
82
+ newSchedule.selectedDetailScheduleType === 'prepaid_expenses'
83
+ ? (0, jeNewScheduleViewSelector_1.getNewScheduleView)(state, newSchedule.selectedDetailScheduleType)
84
+ : undefined;
79
85
  const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
80
86
  const { selectedPeriodByTenantId } = expenseAutomationViewState;
81
87
  const selectedPeriod = selectedPeriodByTenantId[currentTenant.tenantId];
@@ -119,11 +125,7 @@ function getExpenseAutomationJESchedulesView(state) {
119
125
  const jeScheduleDetails = (0, jeSchedulesSelector_1.getJEScheduledTransactionByJEScheduleTransactionKey)(jeScheduleKey, state);
120
126
  failedJeScheduledTransaction.push(jeScheduleDetails);
121
127
  });
122
- const { sortKey, sortOrder } = uiState;
123
- const draftSchedules = sortJEScheduledTransactions(jeScheduledTransaction.filter((schedule) => schedule.status.code === 'draft'), sortKey, sortOrder);
124
- const ongoingSchedules = sortJEScheduledTransactions(jeScheduledTransaction.filter((schedule) => schedule.status.code === 'ongoing'), sortKey, sortOrder);
125
- const completedSchedules = sortJEScheduledTransactions(jeScheduledTransaction.filter((schedule) => schedule.status.code === 'completed' ||
126
- schedule.status.code === 'marked_as_completed'), sortKey, sortOrder);
128
+ const { sortKey, sortOrder, selectedJETypeFilter } = uiState;
127
129
  const unsortedResolveSchedules = [];
128
130
  failedJeScheduledTransaction.forEach((schedule) => {
129
131
  schedule.scheduledJournalEntry.forEach((journalEntry) => {
@@ -136,9 +138,42 @@ function getExpenseAutomationJESchedulesView(state) {
136
138
  const resolveSchedules = sortJEScheduledTransactions(unsortedResolveSchedules, sortKey, sortOrder);
137
139
  const validResolveForPending = unsortedResolveSchedules.filter((r) => jeScheduleLocalDataById[r.scheduledJournalEntry.scheduledJournalEntryID] != null);
138
140
  const pendingReviewSchedules = sortJEScheduledTransactions([
139
- ...jeScheduledTransaction.filter((schedule) => schedule.status.code === 'draft'),
141
+ ...jeScheduledTransaction.filter((schedule) => schedule.status.code === 'draft' &&
142
+ (selectedJETypeFilter == null ||
143
+ schedule.jeScheduleType === selectedJETypeFilter)),
140
144
  ...validResolveForPending,
141
145
  ], sortKey, sortOrder);
146
+ const createdSchedules = sortJEScheduledTransactions(jeScheduledTransaction.filter((schedule) => (schedule.status.code === 'ongoing' ||
147
+ schedule.status.code === 'completed' ||
148
+ schedule.status.code === 'marked_as_completed') &&
149
+ (selectedJETypeFilter == null ||
150
+ schedule.jeScheduleType === selectedJETypeFilter)), sortKey, sortOrder);
151
+ // KPI summary — derived from unfiltered schedules so counts are always accurate
152
+ const allSchedules = jeScheduledTransaction;
153
+ const sumAmount = (schedules) => schedules.reduce((total, schedule) => total + (schedule.baseTransaction.amount.amount ?? 0), 0);
154
+ const pendingReviewTotal = sumAmount(pendingReviewSchedules);
155
+ const createdTotal = sumAmount(createdSchedules);
156
+ const aiAccountantSchedules = allSchedules.filter((schedule) => schedule.confidenceScore != null);
157
+ const pendingUnfiltered = allSchedules.filter((schedule) => schedule.status.code === 'draft');
158
+ const kpiSummary = {
159
+ aiAccountant: {
160
+ count: aiAccountantSchedules.length,
161
+ amount: sumAmount(aiAccountantSchedules),
162
+ },
163
+ manual: {
164
+ count: allSchedules.filter((schedule) => schedule.confidenceScore == null)
165
+ .length,
166
+ amount: sumAmount(allSchedules.filter((schedule) => schedule.confidenceScore == null)),
167
+ },
168
+ needsReview: {
169
+ count: pendingUnfiltered.length,
170
+ amount: sumAmount(pendingUnfiltered),
171
+ },
172
+ total: {
173
+ count: allSchedules.length,
174
+ amount: sumAmount(allSchedules),
175
+ },
176
+ };
142
177
  const allSteps = monthYearPeriodId != null
143
178
  ? (0, expenseAutomationViewSelectorTypes_1.getAllSteps)(monthEndCloseChecksState, monthYearPeriodId, currentTenant.tenantId)
144
179
  : [];
@@ -151,6 +186,22 @@ function getExpenseAutomationJESchedulesView(state) {
151
186
  { fetchState, error },
152
187
  monthEndFetchState,
153
188
  ]);
189
+ const countByType = (schedules) => {
190
+ const counts = jeSchedulesTypes_1.ALL_SCHEDULES_TYPES.reduce((acc, type) => ({ ...acc, [type]: 0 }), {});
191
+ schedules.forEach((schedule) => {
192
+ if (schedule.jeScheduleType != null) {
193
+ counts[schedule.jeScheduleType] += 1;
194
+ }
195
+ });
196
+ return counts;
197
+ };
198
+ const jeScheduleTypeCounts = {
199
+ active: countByType(allSchedules.filter((schedule) => schedule.status.code === 'draft' ||
200
+ schedule.status.code === 'ongoing' ||
201
+ schedule.status.code === 'completed' ||
202
+ schedule.status.code === 'marked_as_completed')),
203
+ ongoing: countByType(allSchedules.filter((schedule) => schedule.status.code === 'ongoing')),
204
+ };
154
205
  return {
155
206
  uncategorizedAccounts,
156
207
  allDepreciationAccountList: filteredDepAccounts,
@@ -159,12 +210,15 @@ function getExpenseAutomationJESchedulesView(state) {
159
210
  allAccountList: filteredAccounts,
160
211
  accountListNestedAccountHierarchy,
161
212
  allClassList: allClasses,
162
- completedSchedules,
163
- draftSchedules,
164
- ongoingSchedules,
213
+ createdSchedules,
214
+ createdTotal,
215
+ jeScheduleTypeCounts,
216
+ kpiSummary,
165
217
  pendingReviewSchedules,
218
+ pendingReviewTotal,
166
219
  resolveSchedules: resolveSchedules,
167
220
  accountSettingsView,
221
+ newScheduleView,
168
222
  postStatusById: postStatusById,
169
223
  ignoreStatusById: ignoreStatusById,
170
224
  fetchState: reducedFetchStatus.fetchState,