@zeniai/client-epic-state 4.15.43 → 4.15.44

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 (235) hide show
  1. package/README.md +19 -1
  2. package/lib/commonPayloadTypes/recommendationPayload.d.ts +1 -0
  3. package/lib/commonStateTypes/common.d.ts +1 -1
  4. package/lib/commonStateTypes/fiscalYearHelpers/getFYMonths.d.ts +2 -2
  5. package/lib/commonStateTypes/fiscalYearHelpers/getFYQuarterAndYear.d.ts +2 -2
  6. package/lib/commonStateTypes/timePeriod.d.ts +7 -7
  7. package/lib/commonStateTypes/timePeriod.js +2 -2
  8. package/lib/commonStateTypes/viewAndReport/agingReportStateTypes.d.ts +1 -1
  9. package/lib/commonStateTypes/viewAndReport/agingReportStateTypes.js +1 -1
  10. package/lib/commonStateTypes/viewAndReport/viewAndReport.d.ts +2 -2
  11. package/lib/commonStateTypes/viewAndReport/viewAndReport.js +1 -0
  12. package/lib/configureStore.js +2 -1
  13. package/lib/entity/account/accountSelector.d.ts +3 -3
  14. package/lib/entity/account/accountState.d.ts +1 -1
  15. package/lib/entity/account/pickAndMergeForecastAccountReport.d.ts +1 -1
  16. package/lib/entity/accountGroup/accountGroupSelector.d.ts +22 -22
  17. package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
  18. package/lib/entity/accountRecon/accountReconPayload.d.ts +70 -0
  19. package/lib/entity/accountRecon/accountReconPayload.js +125 -0
  20. package/lib/entity/accountRecon/accountReconReducer.d.ts +16 -0
  21. package/lib/entity/accountRecon/accountReconReducer.js +71 -0
  22. package/lib/entity/accountRecon/accountReconSelector.d.ts +28 -0
  23. package/lib/entity/accountRecon/accountReconSelector.js +44 -0
  24. package/lib/entity/accountRecon/accountReconState.d.ts +70 -0
  25. package/lib/entity/accountRecon/accountReconState.js +28 -0
  26. package/lib/entity/approvalRule/approvalRuleState.d.ts +2 -2
  27. package/lib/entity/billPay/billTransaction/billTransactionState.d.ts +4 -4
  28. package/lib/entity/chargeCard/chargeCard.d.ts +1 -1
  29. package/lib/entity/chargeCardTransaction/chargeCardTransaction.d.ts +1 -1
  30. package/lib/entity/class/classReducer.d.ts +4 -4
  31. package/lib/entity/class/classState.d.ts +1 -1
  32. package/lib/entity/company/companyReducer.js +0 -1
  33. package/lib/entity/customer/customerPayload.d.ts +1 -1
  34. package/lib/entity/customer/customerPayload.js +16 -6
  35. package/lib/entity/depositAccountTransaction/depositAccountTransaction.d.ts +1 -1
  36. package/lib/entity/entityApprovalStatus/entityApprovalStatusState.d.ts +2 -2
  37. package/lib/entity/file/fileState.d.ts +3 -3
  38. package/lib/entity/forecast/forecastState.d.ts +1 -1
  39. package/lib/entity/jeSchedules/jeSchedulesReducer.d.ts +2 -2
  40. package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +2 -2
  41. package/lib/entity/notification/types/notificationTypes.d.ts +2 -2
  42. package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
  43. package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
  44. package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
  45. package/lib/entity/snackbar/snackbarTypes.d.ts +2 -2
  46. package/lib/entity/snackbar/snackbarTypes.js +4 -0
  47. package/lib/entity/task/taskState.d.ts +3 -3
  48. package/lib/entity/tenant/clearAllEpic.d.ts +4 -2
  49. package/lib/entity/tenant/clearAllEpic.js +4 -0
  50. package/lib/entity/tenant/tenantReducer.d.ts +2 -2
  51. package/lib/entity/tenant/tenantReducer.js +0 -1
  52. package/lib/entity/transaction/payloadTypes/customerTransactionPayload.d.ts +1 -1
  53. package/lib/entity/transaction/payloadTypes/customerTransactionPayload.js +1 -2
  54. package/lib/entity/transaction/payloadTypes/reconciliationTransactionPayloads.d.ts +35 -0
  55. package/lib/entity/transaction/payloadTypes/reconciliationTransactionPayloads.js +53 -0
  56. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +2 -0
  57. package/lib/entity/transaction/payloadTypes/transactionPayload.js +9 -6
  58. package/lib/entity/transaction/payloadTypes/vendorTransactionPayload.d.ts +9 -1
  59. package/lib/entity/transaction/payloadTypes/vendorTransactionPayload.js +24 -2
  60. package/lib/entity/transaction/stateTypes/attachment.d.ts +2 -2
  61. package/lib/entity/transaction/stateTypes/reconciliationTransaction.d.ts +32 -0
  62. package/lib/entity/transaction/stateTypes/reconciliationTransaction.js +10 -0
  63. package/lib/entity/transaction/stateTypes/transaction.d.ts +3 -1
  64. package/lib/entity/transaction/stateTypes/transactionType.d.ts +1 -1
  65. package/lib/entity/transaction/stateTypes/transactionType.js +1 -1
  66. package/lib/entity/transaction/stateTypes/vendorTransaction.d.ts +5 -0
  67. package/lib/entity/transaction/stateTypes/vendorTransaction.js +5 -1
  68. package/lib/entity/transaction/toSupportedTransaction.js +6 -1
  69. package/lib/entity/transaction/transactionReducer.d.ts +17 -0
  70. package/lib/entity/transaction/transactionReducer.js +47 -2
  71. package/lib/entity/transaction/transactionSelector.d.ts +2 -0
  72. package/lib/entity/transaction/transactionSelector.js +5 -0
  73. package/lib/entity/transaction/transactionState.d.ts +6 -4
  74. package/lib/entity/vendorExpense/vendorExpenseReducer.js +0 -1
  75. package/lib/entity/vendorExpense/vendorExpenseSelector.d.ts +2 -2
  76. package/lib/epic.d.ts +6 -1
  77. package/lib/epic.js +6 -1
  78. package/lib/index.d.ts +20 -12
  79. package/lib/index.js +56 -27
  80. package/lib/init.d.ts +2 -1
  81. package/lib/init.js +9 -2
  82. package/lib/reducer.d.ts +7 -1
  83. package/lib/reducer.js +6 -0
  84. package/lib/view/accountList/accountListReducer.js +1 -3
  85. package/lib/view/accountMappingView/accountMappingReducer.js +0 -1
  86. package/lib/view/apAgingView/apAgingDetail/apAgingDetailReducer.js +1 -2
  87. package/lib/view/auditReportView/auditReportViewReducer.d.ts +2 -2
  88. package/lib/view/auditReportView/auditReportViewState.d.ts +2 -2
  89. package/lib/view/balanceSheet/balanceSheetReducer.js +1 -6
  90. package/lib/view/bankAccountView/bankAccountViewReducer.js +0 -1
  91. package/lib/view/billPayCard/billPayCardSelector.d.ts +2 -2
  92. package/lib/view/cardBalance/cardBalanceSelector.d.ts +3 -3
  93. package/lib/view/cashBalance/cashBalanceSelector.d.ts +3 -3
  94. package/lib/view/cashFlow/cashFlowReducer.js +1 -4
  95. package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +2 -2
  96. package/lib/view/cashPosition/cashPositionReducer.js +0 -1
  97. package/lib/view/cashPosition/cashPositionSelector.d.ts +2 -2
  98. package/lib/view/common/reportsHelpers.d.ts +1 -1
  99. package/lib/view/commonVendorView/transactionVendorView/epics/saveTransactionVendorEpic.js +7 -0
  100. package/lib/view/commonVendorView/vendorView/epics/fetchAndUpdateVendorRecommendationsEpic.js +1 -3
  101. package/lib/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewReducer.d.ts +2 -2
  102. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +2 -2
  103. package/lib/view/companyView/companyViewReducer.d.ts +1 -1
  104. package/lib/view/companyView/companyViewReducer.js +1 -10
  105. package/lib/view/companyView/types/cockpitTypes.d.ts +3 -3
  106. package/lib/view/companyView/types/companyPassport/companyUsersLocalData.d.ts +1 -1
  107. package/lib/view/dashboard/dashboardEpic.js +0 -2
  108. package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
  109. package/lib/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.d.ts +15 -0
  110. package/lib/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.js +118 -0
  111. package/lib/view/expenseAutomationView/epics/accountRecon/initialiseLocalDataForSelectedAccountIdEpic.d.ts +10 -0
  112. package/lib/view/expenseAutomationView/epics/accountRecon/initialiseLocalDataForSelectedAccountIdEpic.js +49 -0
  113. package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationDetailEpic.d.ts +14 -0
  114. package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationDetailEpic.js +169 -0
  115. package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.d.ts +9 -0
  116. package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +154 -0
  117. package/lib/view/expenseAutomationView/epics/accountRecon/updateReconcileTabLocalDataEpic.d.ts +6 -0
  118. package/lib/view/expenseAutomationView/epics/accountRecon/updateReconcileTabLocalDataEpic.js +110 -0
  119. package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.d.ts +2 -1
  120. package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +24 -10
  121. package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.d.ts +2 -1
  122. package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +14 -0
  123. package/lib/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +30 -7
  124. package/lib/view/expenseAutomationView/expenseAutomationViewReducer.d.ts +2 -2
  125. package/lib/view/expenseAutomationView/expenseAutomationViewReducer.js +1 -5
  126. package/lib/view/expenseAutomationView/expenseAutomationViewSelector.js +17 -2
  127. package/lib/view/expenseAutomationView/expenseAutomationViewState.d.ts +2 -2
  128. package/lib/view/expenseAutomationView/expenseAutomationViewState.js +1 -1
  129. package/lib/view/expenseAutomationView/helpers/reconciliationHelpers.d.ts +7 -0
  130. package/lib/view/expenseAutomationView/helpers/reconciliationHelpers.js +18 -0
  131. package/lib/view/expenseAutomationView/helpers/saveTransactionHelper.js +98 -42
  132. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  133. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +86 -10
  134. package/lib/view/expenseAutomationView/payload/reconciliationPayload.d.ts +28 -0
  135. package/lib/view/expenseAutomationView/payload/reconciliationPayload.js +51 -0
  136. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +11 -11
  137. package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.d.ts +66 -0
  138. package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.js +384 -0
  139. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +12 -1
  140. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +66 -7
  141. package/lib/view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes.d.ts +2 -0
  142. package/lib/view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes.js +1 -1
  143. package/lib/view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes.d.ts +51 -0
  144. package/lib/view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes.js +7 -0
  145. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +5 -2
  146. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.d.ts +5 -0
  147. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.js +254 -0
  148. package/lib/view/expenseAutomationView/types/fluxAnalysisViewState.d.ts +1 -1
  149. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +1 -1
  150. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +103 -0
  151. package/lib/view/expenseAutomationView/types/reconciliationViewState.js +37 -0
  152. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +12 -2
  153. package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
  154. package/lib/view/financeStatement/financeStatementReducer.js +1 -4
  155. package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +4 -4
  156. package/lib/view/netBurnOrIncome/netBurnOrIncomeReducer.js +3 -10
  157. package/lib/view/netBurnOrIncomeClassesView/netBurnOrIncomeClassesViewReducer.js +1 -6
  158. package/lib/view/netBurnOrIncomeStoryCard/netBurnOrIncomeStoryCardReducer.js +0 -1
  159. package/lib/view/netBurnOrIncomeStoryCard/netBurnOrIncomeStoryCardState.d.ts +1 -1
  160. package/lib/view/notificationView/notificationViewReducer.d.ts +8 -8
  161. package/lib/view/notificationView/notificationViewState.d.ts +2 -2
  162. package/lib/view/onboardingView/cockpitView/onboardingCockpitViewReducer.js +0 -3
  163. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +2 -2
  164. package/lib/view/opEx/opExForTimeFrameEpic.js +1 -1
  165. package/lib/view/opEx/opExReducer.js +4 -14
  166. package/lib/view/opExByVendor/opExByVendorReducer.js +1 -3
  167. package/lib/view/opExByVendor/opExByVendorState.d.ts +1 -1
  168. package/lib/view/opExClassesView/opExClassesViewReducer.js +1 -6
  169. package/lib/view/people/fetchPeopleEpic.js +1 -3
  170. package/lib/view/people/invitePeopleEpic.js +1 -3
  171. package/lib/view/people/inviteZeniPeopleEpic.js +1 -3
  172. package/lib/view/people/peopleReducer.js +0 -1
  173. package/lib/view/people/peopleSaveUpdatesEpic.js +1 -1
  174. package/lib/view/profitAndLoss/profitAndLossReducer.js +1 -6
  175. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +1 -6
  176. package/lib/view/recommendation/recommendationReducer.js +1 -4
  177. package/lib/view/referralView/referralState.d.ts +1 -1
  178. package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +2 -2
  179. package/lib/view/reportUIOptions/reportUIOptionsReducer.d.ts +8 -8
  180. package/lib/view/reportUIOptions/updateReportUIOptionThisPeriodEpic.js +1 -3
  181. package/lib/view/revenue/revenueReducer.js +3 -10
  182. package/lib/view/revenueClassesView/revenueClassesViewReducer.js +1 -6
  183. package/lib/view/scheduleView/scheduleAccruedDetailView/LinkBillExpenseView/linkBillExpense.d.ts +1 -1
  184. package/lib/view/scheduleView/scheduleDetailView/scheduleDetailReducer.d.ts +4 -4
  185. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +2 -2
  186. package/lib/view/settingsView/settingsViewReducer.js +0 -1
  187. package/lib/view/settingsView/settingsViewState.d.ts +1 -1
  188. package/lib/view/spendManagement/billPay/billList/billListReducer.d.ts +1 -1
  189. package/lib/view/spendManagement/billPay/billList/billListReducer.js +0 -1
  190. package/lib/view/spendManagement/billPay/billList/billListState.d.ts +2 -2
  191. package/lib/view/spendManagement/billPay/billPayConfig/billPayConfigState.d.ts +1 -1
  192. package/lib/view/spendManagement/billPay/billPayConfig/billPayConfigState.js +0 -6
  193. package/lib/view/spendManagement/billPay/billsBulkActionView/billsBulkActionViewReducer.d.ts +2 -2
  194. package/lib/view/spendManagement/billPay/billsBulkActionView/epics/validateBillsBulkActionEpic.ts.js +4 -3
  195. package/lib/view/spendManagement/billPay/editBillView/epics/fetchBillAndInitializeLocalStoreEpic.js +1 -3
  196. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetail.d.ts +2 -2
  197. package/lib/view/spendManagement/commonHistoryView/commonHistory.d.ts +1 -1
  198. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +7 -7
  199. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +1 -1
  200. package/lib/view/spendManagement/plaidAccount/epic/plaidConnection/establishPlaidConnectionEpic.js +11 -3
  201. package/lib/view/spendManagement/plaidAccount/plaidAccountViewReducer.d.ts +11 -10
  202. package/lib/view/spendManagement/plaidAccount/plaidAccountViewReducer.js +3 -1
  203. package/lib/view/spendManagement/plaidAccount/plaidAccountViewState.d.ts +1 -1
  204. package/lib/view/spendManagement/reimbursement/editRemiView/epics/fetchRecommendationsAndUpdateMerchantRecommendationsEpic.js +2 -6
  205. package/lib/view/spendManagement/reimbursement/editRemiView/epics/fetchRemiAndInitializeLocalStoreEpic.js +1 -3
  206. package/lib/view/spendManagement/reimbursement/remiListView/remiListReducer.d.ts +1 -1
  207. package/lib/view/spendManagement/reimbursement/remiListView/remiListReducer.js +0 -1
  208. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.d.ts +4 -4
  209. package/lib/view/spendManagement/reimbursement/remisBulkActionView/remisBulkActionViewReducer.d.ts +2 -2
  210. package/lib/view/subscriptionView/subscriptionViewReducer.js +0 -1
  211. package/lib/view/subscriptionView/types/subscriptionTypes.js +0 -1
  212. package/lib/view/taskManager/taskListView/epics/dragNDropTasksEpic.js +1 -3
  213. package/lib/view/taskManager/taskListView/taskList.d.ts +3 -3
  214. package/lib/view/taskManager/taskListView/taskListSelector.d.ts +1 -1
  215. package/lib/view/tasksCard/fetchTasksCardEpic.js +1 -2
  216. package/lib/view/tasksCard/tasksCardSelector.d.ts +2 -2
  217. package/lib/view/tasksCard/tasksCardSelector.js +1 -1
  218. package/lib/view/topEx/topExSelector.d.ts +3 -3
  219. package/lib/view/transactionDetail/epics/saveTransactionHelper.js +30 -52
  220. package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +22 -4
  221. package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +66 -13
  222. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +13 -4
  223. package/lib/view/transactionDetail/transactionDetailReducer.js +51 -21
  224. package/lib/view/transactionDetail/transactionDetailState.d.ts +3 -2
  225. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +8 -0
  226. package/lib/view/transactionList/transactionListByEntitySelector.js +0 -2
  227. package/lib/view/transactionList/transactionListReducer.js +4 -6
  228. package/lib/view/trendWithTransactions/trendWithTransactionsReducer.js +0 -1
  229. package/lib/view/userFinancialAccount/userFinancialAccountReducer.js +1 -3
  230. package/lib/view/vendorFiling1099/vendorFiling1099List/vendorFiling1099ListState.d.ts +1 -1
  231. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewState.d.ts +1 -1
  232. package/lib/view/vendorReviewView/vendorGlobalReviewView/vendorGlobalReviewViewState.d.ts +1 -1
  233. package/lib/zeniAPI.d.ts +1 -0
  234. package/lib/zeniUrl.d.ts +1 -1
  235. package/package.json +13 -12
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateReconcileTabLocalDataEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const accountReconSelector_1 = require("../../../../entity/accountRecon/accountReconSelector");
7
+ const tenantSelector_1 = require("../../../../entity/tenant/tenantSelector");
8
+ const transactionSelector_1 = require("../../../../entity/transaction/transactionSelector");
9
+ const reconciliationViewReducer_1 = require("../../reducers/reconciliationViewReducer");
10
+ const updateReconcileTabLocalDataEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(reconciliationViewReducer_1.updateReconcileTabLocalData.match), (0, operators_1.mergeMap)((action) => {
11
+ var _a, _b;
12
+ const state = state$.value;
13
+ const { transactionState, expenseAutomationReconciliationViewState, expenseAutomationViewState: { selectedPeriodByTenantId }, } = state;
14
+ const { selectedAccountId } = expenseAutomationReconciliationViewState;
15
+ const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
16
+ const selectedPeriod = selectedPeriodByTenantId[currentTenant.tenantId];
17
+ const actions = [];
18
+ const { selectedTransactionIds } = action.payload;
19
+ if (selectedAccountId != null) {
20
+ const transactions = [];
21
+ const reconEntity = (0, accountReconSelector_1.getAccountReconByAccountIdAndSelectedPeriod)(state, selectedAccountId, selectedPeriod);
22
+ if (reconEntity == null) {
23
+ return (0, rxjs_1.from)(actions);
24
+ }
25
+ const initialClearedBalance = (_a = reconEntity.initialClearedBalance) !== null && _a !== void 0 ? _a : {
26
+ amount: 0,
27
+ currencyCode: reconEntity.currency.currencyCode,
28
+ currencySymbol: reconEntity.currency.currencySymbol,
29
+ };
30
+ const bankBalance = (_b = reconEntity.balance) !== null && _b !== void 0 ? _b : {
31
+ amount: 0,
32
+ currencyCode: reconEntity.currency.currencyCode,
33
+ currencySymbol: reconEntity.currency.currencySymbol,
34
+ };
35
+ selectedTransactionIds.forEach((transactionId) => {
36
+ const transaction = (0, transactionSelector_1.getMatchedTransactionById)(transactionState, transactionId);
37
+ if (transaction != null) {
38
+ transactions.push(transaction);
39
+ }
40
+ });
41
+ const updatedClearedBalance = calculateUpdatedClearedBalance(transactions, initialClearedBalance);
42
+ const { variance, variancePercentage } = calculateVariance(updatedClearedBalance, bankBalance);
43
+ const currency = {
44
+ currencyCode: bankBalance.currencyCode,
45
+ currencySymbol: bankBalance.currencySymbol,
46
+ };
47
+ const depositsLocalData = calculateSplitAmounts(transactions, 'deposit', currency);
48
+ const paymentLocalData = calculateSplitAmounts(transactions, 'payment', currency);
49
+ actions.push((0, reconciliationViewReducer_1.updateBalancesLocalData)({
50
+ clearedBalance: updatedClearedBalance,
51
+ variance: variance,
52
+ variancePercentage: variancePercentage,
53
+ deposits: depositsLocalData,
54
+ payments: paymentLocalData,
55
+ }));
56
+ }
57
+ return (0, rxjs_1.from)(actions);
58
+ }));
59
+ exports.updateReconcileTabLocalDataEpic = updateReconcileTabLocalDataEpic;
60
+ function calculateUpdatedClearedBalance(transactions, initialClearedBalance) {
61
+ // Reduce the transactions to calculate the updated cleared balance
62
+ const updatedClearedBalance = transactions.reduce((updatedBalance, transaction) => {
63
+ if (transaction.transactionDirection === 'payment') {
64
+ return updatedBalance - transaction.amount.amount; // Deduct for debit
65
+ }
66
+ else if (transaction.transactionDirection === 'deposit') {
67
+ return updatedBalance + transaction.amount.amount; // Add for credit
68
+ }
69
+ return updatedBalance; // Return unchanged balance for other cases
70
+ }, initialClearedBalance.amount);
71
+ return {
72
+ amount: updatedClearedBalance,
73
+ currencyCode: initialClearedBalance.currencyCode,
74
+ currencySymbol: initialClearedBalance.currencySymbol,
75
+ };
76
+ }
77
+ function calculateSplitAmounts(transactions, transactionDirection, currency) {
78
+ if (transactions.length === 0) {
79
+ return {
80
+ count: 0,
81
+ totalAmount: Object.assign({ amount: 0 }, currency),
82
+ };
83
+ }
84
+ let count = 0;
85
+ let totalAmount = 0;
86
+ transactions.forEach((transaction) => {
87
+ if (transaction.transactionDirection === transactionDirection) {
88
+ count = count + 1;
89
+ totalAmount = totalAmount + transaction.amount.amount;
90
+ }
91
+ });
92
+ return {
93
+ count,
94
+ totalAmount: Object.assign({ amount: totalAmount }, currency),
95
+ };
96
+ }
97
+ function calculateVariance(updatedClearedBalance, bankBalance) {
98
+ const variance = Math.abs(bankBalance.amount - updatedClearedBalance.amount);
99
+ const variancePercent = bankBalance.amount != 0
100
+ ? parseFloat(((variance / Math.abs(bankBalance.amount)) * 100).toFixed(2))
101
+ : 0;
102
+ return {
103
+ variance: {
104
+ amount: variance,
105
+ currencyCode: bankBalance.currencyCode,
106
+ currencySymbol: bankBalance.currencySymbol,
107
+ },
108
+ variancePercentage: variancePercent,
109
+ };
110
+ }
@@ -6,6 +6,7 @@ import { fetchAllExpenseAutomationTabs } from '../../expenseAutomationViewReduce
6
6
  import { fetchFluxAnalysisView } from '../../reducers/fluxAnalysisViewReducer';
7
7
  import { fetchJeSchedulesPage } from '../../reducers/jeSchedulesViewReducer';
8
8
  import { fetchMissingReceipts } from '../../reducers/missingReceiptsViewReducer';
9
+ import { fetchReconciliation } from '../../reducers/reconciliationViewReducer';
9
10
  import { fetchTransactionCategorizationView } from '../../reducers/transactionsViewReducer';
10
- export type ActionType = ReturnType<typeof fetchAllExpenseAutomationTabs> | ReturnType<typeof fetchMissingReceipts> | ReturnType<typeof fetchMonthEndCloseChecks> | ReturnType<typeof fetchFluxAnalysisView> | ReturnType<typeof fetchJeSchedulesPage> | ReturnType<typeof fetchTransactionCategorizationView>;
11
+ export type ActionType = ReturnType<typeof fetchAllExpenseAutomationTabs> | ReturnType<typeof fetchMissingReceipts> | ReturnType<typeof fetchMonthEndCloseChecks> | ReturnType<typeof fetchFluxAnalysisView> | ReturnType<typeof fetchJeSchedulesPage> | ReturnType<typeof fetchReconciliation> | ReturnType<typeof fetchTransactionCategorizationView>;
11
12
  export declare const fetchAllExpenseAutomationTabsEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
@@ -9,10 +9,14 @@ const expenseAutomationViewReducer_1 = require("../../expenseAutomationViewReduc
9
9
  const fluxAnalysisViewReducer_1 = require("../../reducers/fluxAnalysisViewReducer");
10
10
  const jeSchedulesViewReducer_1 = require("../../reducers/jeSchedulesViewReducer");
11
11
  const missingReceiptsViewReducer_1 = require("../../reducers/missingReceiptsViewReducer");
12
+ const reconciliationViewReducer_1 = require("../../reducers/reconciliationViewReducer");
12
13
  const transactionsViewReducer_1 = require("../../reducers/transactionsViewReducer");
13
14
  const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(expenseAutomationViewReducer_1.fetchAllExpenseAutomationTabs.match), (0, operators_1.switchMap)((action) => {
15
+ var _a, _b;
14
16
  const { cacheOverride, refreshViewInBackground } = action.payload;
15
17
  const state = state$.value;
18
+ const { monthEndCloseChecksState } = state;
19
+ const { monthEndCloseChecksByTenantId } = monthEndCloseChecksState;
16
20
  const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
17
21
  const companyId = currentTenant.companyId;
18
22
  const selectedPeriod = state.expenseAutomationViewState.selectedPeriodByTenantId[currentTenant.tenantId];
@@ -21,22 +25,24 @@ const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.pipe((0
21
25
  const timePeriodStart = (0, timePeriod_1.toAbsoluteDay)(period.start);
22
26
  const timePeriodEnd = (0, timePeriod_1.toAbsoluteDay)(period.end);
23
27
  const monthYearPeriodId = (0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod);
28
+ const monthEndCheckState = (_a = monthEndCloseChecksByTenantId === null || monthEndCloseChecksByTenantId === void 0 ? void 0 : monthEndCloseChecksByTenantId[currentTenant.tenantId]) === null || _a === void 0 ? void 0 : _a[monthYearPeriodId];
29
+ const reconciliationEnabled = (_b = monthEndCheckState === null || monthEndCheckState === void 0 ? void 0 : monthEndCheckState.monthEndCloseCheckList.some((list) => list.id === 'reconciliation')) !== null && _b !== void 0 ? _b : false;
24
30
  if (timePeriodStart == null ||
25
31
  timePeriodEnd == null ||
26
32
  companyId == null) {
27
33
  throw Error(`Invalid start - ${timePeriodStart} and end - ${timePeriodEnd} period from given ${selectedPeriod}`);
28
34
  }
29
35
  if (cacheOverride === true) {
30
- return (0, rxjs_1.from)([
31
- (0, transactionsViewReducer_1.fetchTransactionCategorizationView)(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, cacheOverride, false, undefined, undefined, refreshViewInBackground),
32
- (0, missingReceiptsViewReducer_1.fetchMissingReceipts)({ start: timePeriodStart, end: timePeriodEnd }, {
33
- amount: 75.0,
34
- currencyCode: 'USD',
35
- currencySymbol: '$',
36
- }, cacheOverride, refreshViewInBackground),
37
- (0, fluxAnalysisViewReducer_1.fetchFluxAnalysisView)(selectedPeriod, cacheOverride, refreshViewInBackground, null),
38
- (0, jeSchedulesViewReducer_1.fetchJeSchedulesPage)({ start: timePeriodStart, end: timePeriodEnd }, cacheOverride),
39
- ]);
36
+ const actions = [];
37
+ actions.push((0, transactionsViewReducer_1.fetchTransactionCategorizationView)(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, cacheOverride, false, undefined, undefined, refreshViewInBackground), (0, missingReceiptsViewReducer_1.fetchMissingReceipts)({ start: timePeriodStart, end: timePeriodEnd }, {
38
+ amount: 75.0,
39
+ currencyCode: 'USD',
40
+ currencySymbol: '$',
41
+ }, cacheOverride, refreshViewInBackground), (0, fluxAnalysisViewReducer_1.fetchFluxAnalysisView)(selectedPeriod, cacheOverride, refreshViewInBackground, null), (0, jeSchedulesViewReducer_1.fetchJeSchedulesPage)({ start: timePeriodStart, end: timePeriodEnd }, cacheOverride));
42
+ if (reconciliationEnabled) {
43
+ actions.push((0, reconciliationViewReducer_1.fetchReconciliation)(selectedPeriod, undefined, cacheOverride, refreshViewInBackground));
44
+ }
45
+ return (0, rxjs_1.from)(actions);
40
46
  }
41
47
  else {
42
48
  const fetchActions = [];
@@ -68,6 +74,14 @@ const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.pipe((0
68
74
  null)) {
69
75
  fetchActions.push((0, jeSchedulesViewReducer_1.fetchJeSchedulesPage)({ start: timePeriodStart, end: timePeriodEnd }, cacheOverride));
70
76
  }
77
+ if (state.expenseAutomationReconciliationViewState.fetchState !==
78
+ 'In-Progress' &&
79
+ state.expenseAutomationReconciliationViewState
80
+ .accountReconciliationRecordsBySelectedPeriod[monthYearPeriodId] ==
81
+ null &&
82
+ reconciliationEnabled) {
83
+ fetchActions.push((0, reconciliationViewReducer_1.fetchReconciliation)(selectedPeriod, undefined, cacheOverride, refreshViewInBackground));
84
+ }
71
85
  if (state.expenseAutomationTransactionsViewState
72
86
  .transactionCategorizationView[selectedTransactionCategorizationTab]
73
87
  .fetchState !== 'In-Progress' &&
@@ -7,6 +7,7 @@ import { refreshExpenseAutomationCurrentTab } from '../../expenseAutomationViewR
7
7
  import { fetchFluxAnalysisView } from '../../reducers/fluxAnalysisViewReducer';
8
8
  import { fetchJeSchedulesPage } from '../../reducers/jeSchedulesViewReducer';
9
9
  import { fetchMissingReceipts } from '../../reducers/missingReceiptsViewReducer';
10
+ import { fetchReconciliation } from '../../reducers/reconciliationViewReducer';
10
11
  import { fetchTransactionCategorizationView } from '../../reducers/transactionsViewReducer';
11
- export type ActionType = ReturnType<typeof refreshExpenseAutomationCurrentTab> | ReturnType<typeof fetchCompanyMonthEndReportView> | ReturnType<typeof fetchCompanyMonthEndReportTemplates> | ReturnType<typeof fetchMissingReceipts> | ReturnType<typeof fetchMonthEndCloseChecks> | ReturnType<typeof fetchFluxAnalysisView> | ReturnType<typeof fetchJeSchedulesPage> | ReturnType<typeof fetchTransactionCategorizationView>;
12
+ export type ActionType = ReturnType<typeof refreshExpenseAutomationCurrentTab> | ReturnType<typeof fetchCompanyMonthEndReportView> | ReturnType<typeof fetchCompanyMonthEndReportTemplates> | ReturnType<typeof fetchMissingReceipts> | ReturnType<typeof fetchMonthEndCloseChecks> | ReturnType<typeof fetchFluxAnalysisView> | ReturnType<typeof fetchReconciliation> | ReturnType<typeof fetchJeSchedulesPage> | ReturnType<typeof fetchTransactionCategorizationView>;
12
13
  export declare const refreshExpenseAutomationCurrentTabEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
@@ -10,6 +10,7 @@ const expenseAutomationViewReducer_1 = require("../../expenseAutomationViewReduc
10
10
  const fluxAnalysisViewReducer_1 = require("../../reducers/fluxAnalysisViewReducer");
11
11
  const jeSchedulesViewReducer_1 = require("../../reducers/jeSchedulesViewReducer");
12
12
  const missingReceiptsViewReducer_1 = require("../../reducers/missingReceiptsViewReducer");
13
+ const reconciliationViewReducer_1 = require("../../reducers/reconciliationViewReducer");
13
14
  const transactionsViewReducer_1 = require("../../reducers/transactionsViewReducer");
14
15
  const refreshExpenseAutomationCurrentTabEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(expenseAutomationViewReducer_1.refreshExpenseAutomationCurrentTab.match), (0, operators_1.switchMap)(() => {
15
16
  const state = state$.value;
@@ -18,6 +19,7 @@ const refreshExpenseAutomationCurrentTabEpic = (actions$, state$) => actions$.pi
18
19
  const { selectedTransactionCategorizationTab } = state.expenseAutomationTransactionsViewState;
19
20
  const { selectedPeriodByTenantId, currentSelectedView } = state.expenseAutomationViewState;
20
21
  const selectedPeriod = selectedPeriodByTenantId[currentTenant.tenantId];
22
+ const { selectedAccountId } = state.expenseAutomationReconciliationViewState;
21
23
  const period = (0, timePeriod_1.convertToPeriod)(selectedPeriod);
22
24
  const timePeriodStart = (0, timePeriod_1.toAbsoluteDay)(period.start);
23
25
  const timePeriodEnd = (0, timePeriod_1.toAbsoluteDay)(period.end);
@@ -48,6 +50,18 @@ const refreshExpenseAutomationCurrentTabEpic = (actions$, state$) => actions$.pi
48
50
  (0, companyMonthEndReportViewReducer_1.fetchCompanyMonthEndReportView)(true, companyId, currentTenant.tenantId),
49
51
  (0, companyMonthEndReportViewReducer_1.fetchCompanyMonthEndReportTemplates)(companyId, currentTenant.tenantId),
50
52
  ]);
53
+ case 'reconciliation': {
54
+ if (selectedAccountId != null) {
55
+ return (0, rxjs_1.from)([
56
+ (0, reconciliationViewReducer_1.fetchReconciliation)(selectedPeriod, selectedAccountId, true, true),
57
+ ]);
58
+ }
59
+ else {
60
+ return (0, rxjs_1.from)([
61
+ (0, reconciliationViewReducer_1.fetchReconciliation)(selectedPeriod, undefined, true, true),
62
+ ]);
63
+ }
64
+ }
51
65
  case 'transaction_categorization':
52
66
  default:
53
67
  return (0, rxjs_1.from)([
@@ -40,13 +40,17 @@ const updateTransactionCategorizationEpic = (actions$, state$, zeniAPI) => actio
40
40
  }));
41
41
  exports.updateTransactionCategorizationEpic = updateTransactionCategorizationEpic;
42
42
  function prepareTransactionPayload(selectedTab, transactionState, vendorState, transactionsViewState, transactionId, saveUpdates) {
43
- var _a;
43
+ var _a, _b, _c;
44
44
  const detail = (0, transactionSelector_1.getSupportedTransactionById)(transactionState, transactionId);
45
45
  const tranDetail = (0, get_1.default)(transactionsViewState.transactionCategorizationView[selectedTab]
46
46
  .transactionReviewLocalDataById, transactionId, undefined);
47
47
  const tranVendorUpdates = (_a = tranDetail === null || tranDetail === void 0 ? void 0 : tranDetail.transactionReviewLocalData) === null || _a === void 0 ? void 0 : _a.vendorUpdates;
48
+ const tranCustomerUpdates = (_b = tranDetail === null || tranDetail === void 0 ? void 0 : tranDetail.transactionReviewLocalData) === null || _b === void 0 ? void 0 : _b.customerUpdates;
49
+ const tranSelectedEntity = (_c = tranDetail === null || tranDetail === void 0 ? void 0 : tranDetail.transactionReviewLocalData) === null || _c === void 0 ? void 0 : _c.selectedEntity;
48
50
  let vendorUpdates = undefined;
49
- if ((tranVendorUpdates === null || tranVendorUpdates === void 0 ? void 0 : tranVendorUpdates.qboId) != null) {
51
+ if ((tranVendorUpdates === null || tranVendorUpdates === void 0 ? void 0 : tranVendorUpdates.qboId) != null &&
52
+ tranSelectedEntity != null &&
53
+ tranSelectedEntity.type === 'vendor') {
50
54
  const vendor = (0, vendorSelector_1.getVendorByVendorId)(vendorState, tranVendorUpdates.qboId);
51
55
  if (vendor != null) {
52
56
  vendorUpdates = {
@@ -61,8 +65,23 @@ function prepareTransactionPayload(selectedTab, transactionState, vendorState, t
61
65
  };
62
66
  }
63
67
  }
68
+ let customerUpdates = undefined;
69
+ if (tranSelectedEntity != null && tranSelectedEntity.type === 'customer') {
70
+ if ((tranCustomerUpdates === null || tranCustomerUpdates === void 0 ? void 0 : tranCustomerUpdates.qboId) != null) {
71
+ customerUpdates = {
72
+ id: tranCustomerUpdates.qboId,
73
+ name: tranCustomerUpdates.name,
74
+ };
75
+ }
76
+ else {
77
+ customerUpdates = {
78
+ id: tranSelectedEntity.id,
79
+ name: tranSelectedEntity.name,
80
+ };
81
+ }
82
+ }
64
83
  if (detail != null) {
65
- const transUpdates = toTransactionUpdatePayload(saveUpdates.updates, detail, vendorUpdates);
84
+ const transUpdates = toTransactionUpdatePayload(saveUpdates.updates, detail, vendorUpdates, customerUpdates, tranSelectedEntity);
66
85
  const entityUpdates = toEntityUpdatePayload(saveUpdates.entityRelatedUpdates);
67
86
  return {
68
87
  entity_related_updates: entityUpdates,
@@ -91,12 +110,10 @@ function preparePayload(selectedTab, transactionState, vendorState, transactions
91
110
  return payload;
92
111
  }
93
112
  }
94
- const toTransactionUpdatePayload = (updates, detail, vendorUpdates) => {
113
+ const toTransactionUpdatePayload = (updates, detail, vendorUpdates, customerUpdates, tranSelectedEntity) => {
95
114
  var _a, _b;
96
115
  const transaction = Object.assign({}, detail);
97
116
  transaction.memo = (_a = updates.memo) !== null && _a !== void 0 ? _a : '';
98
- transaction.vendorId = vendorUpdates === null || vendorUpdates === void 0 ? void 0 : vendorUpdates.id;
99
- transaction.vendorName = vendorUpdates === null || vendorUpdates === void 0 ? void 0 : vendorUpdates.name;
100
117
  const recommendationUpdates = {};
101
118
  for (const key in updates.updatesByLineId) {
102
119
  const lineUpdates = updates.updatesByLineId[key];
@@ -133,11 +150,17 @@ const toTransactionUpdatePayload = (updates, detail, vendorUpdates) => {
133
150
  transaction.lines = newLineMap;
134
151
  }
135
152
  transaction.recommendations = recommendationUpdates;
153
+ // Added this check because now customer are also part of Expense,Journal Entry and Check type of transactions
136
154
  if ((0, customerTransaction_1.isCustomerTransaction)(transaction)) {
137
155
  return (0, customerTransactionPayload_1.toCustomerTransactionPayload)(transaction);
138
156
  }
139
157
  else if ((0, vendorTransaction_1.isVendorTransaction)(transaction)) {
140
- return (0, vendorTransactionPayload_1.toVendorTransactionPayload)(transaction, vendorUpdates);
158
+ if (tranSelectedEntity != null && tranSelectedEntity.type === 'customer') {
159
+ return (0, vendorTransactionPayload_1.toVendorTransactionWithCustomerPayload)(transaction, customerUpdates);
160
+ }
161
+ else {
162
+ return (0, vendorTransactionPayload_1.toVendorTransactionPayload)(transaction, vendorUpdates);
163
+ }
141
164
  }
142
165
  else if ((0, otherTransaction_1.isTransferTransaction)(transaction)) {
143
166
  return (0, otherTransactionPayload_1.toTransferTransactionPayload)(transaction);
@@ -8,8 +8,8 @@ export declare const fetchAllExpenseAutomationTabs: import("@reduxjs/toolkit").A
8
8
  }, "expenseAutomationView/fetchAllExpenseAutomationTabs", never, never>, updateCurrentSelectedPeriod: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, newSelectedPeriod: MonthYearPeriod], {
9
9
  newSelectedPeriod: MonthYearPeriod;
10
10
  tenantId: string;
11
- }, "expenseAutomationView/updateCurrentSelectedPeriod", never, never>, updateCurrentSelectedView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[newSelectedView: "transaction_categorization" | "je_schedules" | "account_recon" | "missing_receipts" | "flux_analysis" | "month_end_insights"], {
12
- newSelectedView: "transaction_categorization" | "je_schedules" | "account_recon" | "missing_receipts" | "flux_analysis" | "month_end_insights";
11
+ }, "expenseAutomationView/updateCurrentSelectedPeriod", never, never>, updateCurrentSelectedView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[newSelectedView: "transaction_categorization" | "je_schedules" | "reconciliation" | "missing_receipts" | "flux_analysis" | "month_end_insights"], {
12
+ newSelectedView: "transaction_categorization" | "je_schedules" | "reconciliation" | "missing_receipts" | "flux_analysis" | "month_end_insights";
13
13
  }, "expenseAutomationView/updateCurrentSelectedView", never, never>, clearExpenseAutomationView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationView/clearExpenseAutomationView">, initializeSelectedPeriodForTenants: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
14
14
  selectedPeriodByTenantId: Record<ID, MonthYearPeriod>;
15
15
  }, "expenseAutomationView/initializeSelectedPeriodForTenants">, refreshExpenseAutomationCurrentTab: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationView/refreshExpenseAutomationCurrentTab">;
@@ -22,11 +22,7 @@ const expenseAutomationView = (0, toolkit_1.createSlice)({
22
22
  reducer() {
23
23
  //do nothing
24
24
  },
25
- prepare(
26
- // eslint-disable-next-line @typescript-eslint/no-inferrable-types
27
- cacheOverride = false,
28
- // eslint-disable-next-line @typescript-eslint/no-inferrable-types
29
- refreshViewInBackground = false) {
25
+ prepare(cacheOverride = false, refreshViewInBackground = false) {
30
26
  return {
31
27
  payload: { cacheOverride, refreshViewInBackground },
32
28
  };
@@ -11,6 +11,7 @@ const expenseAutomationViewSelectorTypes_1 = require("./selectorTypes/expenseAut
11
11
  const fluxAnalysisViewSelector_1 = require("./selectors/fluxAnalysisViewSelector");
12
12
  const jeSchedulesViewSelector_1 = require("./selectors/jeSchedulesViewSelector");
13
13
  const missingReceiptsSelector_1 = require("./selectors/missingReceiptsSelector");
14
+ const reconciliationViewSelector_1 = require("./selectors/reconciliationViewSelector");
14
15
  const transactionCategorizationSelector_1 = require("./selectors/transactionCategorizationSelector");
15
16
  const isPreviousStepDisabled = (selectedTransactionCategorizationTab, allSteps, stepIndex, currentTenant, selectedPeriod, userAllowedToAccessMonthEndInsights, reportEmailSentDate, auditSummary) => {
16
17
  if (stepIndex === 0) {
@@ -24,7 +25,7 @@ const isPreviousStepDisabled = (selectedTransactionCategorizationTab, allSteps,
24
25
  };
25
26
  function getExpenseAutomationView(state) {
26
27
  var _a, _b, _c;
27
- const { expenseAutomationViewState, tenantState, expenseAutomationMissingReceiptsViewState, expenseAutomationJESchedulesViewState, expenseAutomationTransactionsViewState, monthEndCloseChecksState, companyState, } = state;
28
+ const { expenseAutomationViewState, tenantState, expenseAutomationMissingReceiptsViewState, expenseAutomationJESchedulesViewState, expenseAutomationTransactionsViewState, expenseAutomationReconciliationViewState, monthEndCloseChecksState, companyState, } = state;
28
29
  const { loggedInUser, currentTenantId } = tenantState;
29
30
  const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
30
31
  const { currentSelectedView, selectedPeriodByTenantId } = expenseAutomationViewState;
@@ -42,9 +43,15 @@ function getExpenseAutomationView(state) {
42
43
  const missingReceipts = (0, missingReceiptsSelector_1.getExpenseAutomationMissingReceiptsView)(state);
43
44
  const fluxAnalysis = (0, fluxAnalysisViewSelector_1.getExpenseAutomationFluxAnalysisView)(state);
44
45
  const monthEndInsights = (0, companyMonthEndReportViewSelector_1.getCompanyMonthEndReportSelectorView)(state, currentTenant.companyId, loggedInUser);
46
+ const reconciliation = (0, reconciliationViewSelector_1.getExpenseAutomationReconciliationView)(state);
45
47
  const expenseAutomationTransactionsView = (0, transactionCategorizationSelector_1.getExpenseAutomationTransactionView)(state);
46
48
  const jeSchedules = (0, jeSchedulesViewSelector_1.getExpenseAutomationJESchedulesView)(state);
47
49
  switch (currentSelectedView) {
50
+ case 'reconciliation':
51
+ currentSelectedViewFetchState = reconciliation.fetchStatus;
52
+ currentSelectedViewBackgroundRefreshFetchState =
53
+ reconciliation.refreshStatus;
54
+ break;
48
55
  case 'flux_analysis':
49
56
  currentSelectedViewFetchState = fluxAnalysis.fetchStatus;
50
57
  currentSelectedViewBackgroundRefreshFetchState =
@@ -90,6 +97,7 @@ function getExpenseAutomationView(state) {
90
97
  expenseAutomationJESchedulesViewState,
91
98
  monthEndCloseChecksView,
92
99
  expenseAutomationTransactionsView,
100
+ expenseAutomationReconciliationViewState,
93
101
  ];
94
102
  let allSteps = [];
95
103
  let auditSummary = undefined;
@@ -122,6 +130,9 @@ function getExpenseAutomationView(state) {
122
130
  ? (0, monthEndCloseChecksViewSelector_1.isMonthEndInsightDisabled)(currentTenant, selectedPeriod, userAllowedToAccessMonthEndInsights, auditSummary)
123
131
  : true });
124
132
  return;
133
+ case 'reconciliation':
134
+ allStepsOriginal[index] = Object.assign(Object.assign({}, stepDetail), { completionStatus: reconciliation.completionStatus });
135
+ return;
125
136
  case 'flux_analysis':
126
137
  default:
127
138
  allStepsOriginal[index] = Object.assign(Object.assign({}, stepDetail), { completionStatus: fluxAnalysis.completionStatus });
@@ -131,7 +142,10 @@ function getExpenseAutomationView(state) {
131
142
  allSteps.forEach((stepDetail, index, allStepsOriginal) => {
132
143
  allStepsOriginal[index] = Object.assign(Object.assign({}, stepDetail), { isNextDisabled: index === allStepsOriginal.length - 1
133
144
  ? allStepsOriginal[0].isDisabled
134
- : allStepsOriginal[index + 1].isDisabled, isPrevDisabled: isPreviousStepDisabled(selectedTransactionCategorizationTab, allStepsOriginal, index, currentTenant, selectedPeriod, userAllowedToAccessMonthEndInsights, reportEmailSentDate, auditSummary) });
145
+ : stepDetail.step === 'reconciliation' &&
146
+ reconciliation.selectedTab === 'review'
147
+ ? false
148
+ : allStepsOriginal[index + 1].isDisabled, isPrevDisabled: isPreviousStepDisabled(selectedTransactionCategorizationTab, allStepsOriginal, index, currentTenant, selectedPeriod, userAllowedToAccessMonthEndInsights, reportEmailSentDate, auditSummary) });
135
149
  });
136
150
  }
137
151
  const reducedFetchStatus = (0, reduceFetchState_1.reduceAnyFetchState)(fetchStateVariables); // Add more states
@@ -146,6 +160,7 @@ function getExpenseAutomationView(state) {
146
160
  jeSchedules,
147
161
  transactionView: expenseAutomationTransactionsView,
148
162
  missingReceipts,
163
+ reconciliation,
149
164
  currentSelectedViewFetchState,
150
165
  currentSelectedViewBackgroundRefreshFetchState,
151
166
  fluxAnalysis,
@@ -1,7 +1,7 @@
1
1
  import { FetchStateAndError, FetchedState, ID } from '../../commonStateTypes/common';
2
2
  import { MonthYearPeriod } from '../../commonStateTypes/timePeriod';
3
- export declare const EXPENSE_AUTOMATION_VIEW_TYPES: readonly ["transaction_categorization", "je_schedules", "account_recon", "missing_receipts", "flux_analysis", "month_end_insights"];
4
- export declare const toExpenseAutomationViewType: (v: string) => "transaction_categorization" | "je_schedules" | "account_recon" | "missing_receipts" | "flux_analysis" | "month_end_insights";
3
+ export declare const EXPENSE_AUTOMATION_VIEW_TYPES: readonly ["transaction_categorization", "je_schedules", "reconciliation", "missing_receipts", "flux_analysis", "month_end_insights"];
4
+ export declare const toExpenseAutomationViewType: (v: string) => "transaction_categorization" | "je_schedules" | "reconciliation" | "missing_receipts" | "flux_analysis" | "month_end_insights";
5
5
  export type ExpenseAutomationViewType = ReturnType<typeof toExpenseAutomationViewType>;
6
6
  export interface ExpenseAutomationViewState extends FetchedState {
7
7
  saveStatus: FetchStateAndError;
@@ -5,7 +5,7 @@ const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
5
5
  exports.EXPENSE_AUTOMATION_VIEW_TYPES = [
6
6
  'transaction_categorization',
7
7
  'je_schedules',
8
- 'account_recon', // Not part of scope in v1
8
+ 'reconciliation',
9
9
  'missing_receipts',
10
10
  'flux_analysis',
11
11
  'month_end_insights',
@@ -0,0 +1,7 @@
1
+ import { CurrencyPayload } from '../../../commonPayloadTypes/v2/viewAndReportPayloadv2';
2
+ import { ReconciliationDataPayload } from '../../../entity/accountRecon/accountReconPayload';
3
+ import { MatchedTransactionPayload } from '../../../entity/transaction/payloadTypes/reconciliationTransactionPayloads';
4
+ export declare const getAllReviewTransactionsFromReconcilePayload: (reconcilePayload: ReconciliationDataPayload[]) => {
5
+ allReconciledTransactions: MatchedTransactionPayload[];
6
+ currencyPayload: CurrencyPayload;
7
+ }[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAllReviewTransactionsFromReconcilePayload = void 0;
4
+ const getAllReviewTransactionsFromReconcilePayload = (reconcilePayload) => {
5
+ const transactionsPerRecon = reconcilePayload.map((reconcile) => {
6
+ const allReconciledTransactions = [];
7
+ const currencyPayload = reconcile.currency;
8
+ reconcile.transactions.reconcile.forEach((reconciledTransaction) => {
9
+ allReconciledTransactions.push(reconciledTransaction);
10
+ });
11
+ return {
12
+ allReconciledTransactions,
13
+ currencyPayload,
14
+ };
15
+ });
16
+ return transactionsPerRecon;
17
+ };
18
+ exports.getAllReviewTransactionsFromReconcilePayload = getAllReviewTransactionsFromReconcilePayload;