@zeniai/client-epic-state 5.0.9-betaRD2 → 5.0.9-betaRD3

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 (33) hide show
  1. package/lib/entity/account/accountReducer.js +0 -3
  2. package/lib/entity/account/accountReducer.js.map +1 -1
  3. package/lib/entity/project/projectReducer.js +0 -2
  4. package/lib/entity/project/projectReducer.js.map +1 -1
  5. package/lib/entity/sectionAccountsView/sectionAccountsViewEpic.js +0 -3
  6. package/lib/entity/sectionAccountsView/sectionAccountsViewEpic.js.map +1 -1
  7. package/lib/entity/sectionAccountsView/sectionAccountsViewReducer.js +0 -1
  8. package/lib/entity/sectionAccountsView/sectionAccountsViewReducer.js.map +1 -1
  9. package/lib/entity/sectionProjectView/sectionProjectViewEpic.js +0 -4
  10. package/lib/entity/sectionProjectView/sectionProjectViewEpic.js.map +1 -1
  11. package/lib/entity/sectionProjectView/sectionProjectViewReducer.js +0 -2
  12. package/lib/entity/sectionProjectView/sectionProjectViewReducer.js.map +1 -1
  13. package/lib/entity/sectionProjectView/sectionProjectViewSelector.js +37 -8
  14. package/lib/entity/sectionProjectView/sectionProjectViewSelector.js.map +1 -1
  15. package/lib/esm/entity/account/accountReducer.js +0 -3
  16. package/lib/esm/entity/account/accountReducer.js.map +1 -1
  17. package/lib/esm/entity/project/projectReducer.js +0 -2
  18. package/lib/esm/entity/project/projectReducer.js.map +1 -1
  19. package/lib/esm/entity/sectionAccountsView/sectionAccountsViewEpic.js +0 -3
  20. package/lib/esm/entity/sectionAccountsView/sectionAccountsViewEpic.js.map +1 -1
  21. package/lib/esm/entity/sectionAccountsView/sectionAccountsViewReducer.js +0 -1
  22. package/lib/esm/entity/sectionAccountsView/sectionAccountsViewReducer.js.map +1 -1
  23. package/lib/esm/entity/sectionProjectView/sectionProjectViewEpic.js +0 -4
  24. package/lib/esm/entity/sectionProjectView/sectionProjectViewEpic.js.map +1 -1
  25. package/lib/esm/entity/sectionProjectView/sectionProjectViewReducer.js +0 -2
  26. package/lib/esm/entity/sectionProjectView/sectionProjectViewReducer.js.map +1 -1
  27. package/lib/esm/entity/sectionProjectView/sectionProjectViewSelector.js +37 -8
  28. package/lib/esm/entity/sectionProjectView/sectionProjectViewSelector.js.map +1 -1
  29. package/lib/esm/view/profitAndLossProjectView/profitAndLossForTimeframeProjectViewEpic.js +0 -15
  30. package/lib/esm/view/profitAndLossProjectView/profitAndLossForTimeframeProjectViewEpic.js.map +1 -1
  31. package/lib/view/profitAndLossProjectView/profitAndLossForTimeframeProjectViewEpic.js +0 -15
  32. package/lib/view/profitAndLossProjectView/profitAndLossForTimeframeProjectViewEpic.js.map +1 -1
  33. package/package.json +1 -1
@@ -22,7 +22,6 @@ const account = (0, toolkit_1.createSlice)({
22
22
  reducers: {
23
23
  updateAccounts: {
24
24
  reducer(draft, action) {
25
- console.log('$$$ [accountReducer.updateAccounts] reportId:', action.meta.reportId, 'updateType:', action.meta.updateType, 'classesViewParentId:', action.meta.classesViewParentId, 'count:', action.payload.length);
26
25
  doUpdateAccounts(draft.accountsByKey, action.payload, action.meta.reportId, action.meta.classesViewParentId, action.meta.updateType);
27
26
  },
28
27
  prepare(payload, reportId, classesViewParentId, updateType = 'merge') {
@@ -34,7 +33,6 @@ const account = (0, toolkit_1.createSlice)({
34
33
  },
35
34
  updateMultipleSubAccountsWithBalances: {
36
35
  reducer(draft, action) {
37
- console.log('$$$ [accountReducer.updateMultipleSubAccountsWithBalances] reportId:', action.payload.reportId, 'timeframe:', action.payload.timeframe, 'updateType:', action.payload.updateType, 'count:', action.payload.subAccountWithBalancesListPayloads.length, 'payloads:', action.payload.subAccountWithBalancesListPayloads);
38
36
  doUpdateSubAccountsWithBalances(draft.accountsByKey, action.payload.subAccountWithBalancesListPayloads, action.payload.currencyPayload, action.payload.reportId, action.payload.timeframe, action.payload.updateType);
39
37
  },
40
38
  prepare(subAccountWithBalancesListPayloads, currencyPayload, reportId, timeframe, updateType = 'merge') {
@@ -98,7 +96,6 @@ function doUpdateSubAccountsWithBalances(draft, subAccountWithBalancesListPayloa
98
96
  }
99
97
  function doUpdateAccountWithBalancesV2(draft, accountBasePayload, accountBalancesPayload, currencyPayload, reportId, timeframe, classesViewParentId, accountsViewParentId, projectsViewParentId, updateType) {
100
98
  const key = (0, accountState_1.getAccountKey)(reportId, accountBasePayload.account_id, classesViewParentId, accountsViewParentId, projectsViewParentId);
101
- console.log('$$$ [accountReducer.doUpdateAccountWithBalancesV2] key:', key, 'accountId:', accountBasePayload.account_id, 'projectsViewParentId:', projectsViewParentId, 'accountsViewParentId:', accountsViewParentId, 'classesViewParentId:', classesViewParentId);
102
99
  const balancesByPeriod = (0, coaBalancePayload_2.mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod)(accountBalancesPayload, currencyPayload, timeframe);
103
100
  if (key in draft && updateType === 'merge') {
104
101
  // only add balances
@@ -1 +1 @@
1
- {"version":3,"file":"accountReducer.js","sourceRoot":"","sources":["../../../src/entity/account/accountReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\nimport assignWith from 'lodash/assignWith';\n\nimport {mapBalancePayloadToBalance} from '../../commonPayloadTypes/balanceChangePayload';\nimport {mapCOABalanceGroupedPayloadToCOABalanceGrouped} from '../../commonPayloadTypes/coaBalancePayload';\nimport {mapStatusPayloadToStatus} from '../../commonPayloadTypes/statusPayload';\nimport {AccountMetadataWithBalancesPayload} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {\n COABalanceGroupedByPeriodPayloadV2,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod,\n} from '../../commonPayloadTypes/v2/coaBalancePayload';\nimport {CurrencyPayload} from '../../commonPayloadTypes/v2/viewAndReportPayloadv2';\nimport {AccountsViewParentID} from '../../commonStateTypes/accountView/nestedAccountID';\nimport {ClassesViewParentID} from '../../commonStateTypes/classesView/nestedClassID';\nimport {ProjectsViewParentID} from '../../commonStateTypes/projectView/projectViewParentID';\nimport {ID, UpdateType} from '../../commonStateTypes/common';\nimport {ReportIDPlusForecastID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {\n AccountBasePayload,\n AccountPayload,\n mapAccountBasePayloadToAccountBase,\n mapStatementCloseDayPayloadToStatementCloseDay,\n} from './accountPayload';\nimport {\n Account,\n AccountBase,\n AccountKey,\n AccountState,\n StatementCloseDay,\n getAccountKey,\n} from './accountState';\n\nexport const initialState: AccountState = {\n accountsByKey: {} as Record<AccountKey, Account>,\n};\n\nconst account = createSlice({\n name: 'account',\n initialState,\n reducers: {\n updateAccounts: {\n reducer(\n draft,\n action: PayloadAction<\n AccountPayload[],\n string,\n {\n reportId: ReportIDPlusForecastID;\n updateType: UpdateType;\n classesViewParentId?: ClassesViewParentID;\n }\n >\n ) {\n console.log('$$$ [accountReducer.updateAccounts] reportId:', action.meta.reportId, 'updateType:', action.meta.updateType, 'classesViewParentId:', action.meta.classesViewParentId, 'count:', action.payload.length);\n doUpdateAccounts(\n draft.accountsByKey,\n action.payload,\n action.meta.reportId,\n action.meta.classesViewParentId,\n action.meta.updateType\n );\n },\n prepare(\n payload: AccountPayload[],\n reportId: ReportIDPlusForecastID,\n classesViewParentId?: ClassesViewParentID,\n updateType: UpdateType = 'merge'\n ) {\n return {\n payload,\n meta: {reportId, classesViewParentId, updateType},\n };\n },\n },\n updateMultipleSubAccountsWithBalances: {\n reducer(\n draft,\n action: PayloadAction<{\n currencyPayload: CurrencyPayload;\n reportId: ReportIDPlusForecastID;\n subAccountWithBalancesListPayloads: AccountMetadataWithBalancesPayload[];\n timeframe: 'month' | 'quarter' | 'year';\n updateType: UpdateType;\n }>\n ) {\n console.log('$$$ [accountReducer.updateMultipleSubAccountsWithBalances] reportId:', action.payload.reportId, 'timeframe:', action.payload.timeframe, 'updateType:', action.payload.updateType, 'count:', action.payload.subAccountWithBalancesListPayloads.length, 'payloads:', action.payload.subAccountWithBalancesListPayloads);\n doUpdateSubAccountsWithBalances(\n draft.accountsByKey,\n action.payload.subAccountWithBalancesListPayloads,\n action.payload.currencyPayload,\n action.payload.reportId,\n action.payload.timeframe,\n action.payload.updateType\n );\n },\n prepare(\n subAccountWithBalancesListPayloads: AccountMetadataWithBalancesPayload[],\n currencyPayload: CurrencyPayload,\n reportId: ReportIDPlusForecastID,\n timeframe: 'month' | 'quarter' | 'year',\n updateType: UpdateType = 'merge'\n ) {\n return {\n payload: {\n subAccountWithBalancesListPayloads,\n currencyPayload,\n reportId,\n updateType,\n timeframe,\n },\n };\n },\n },\n updateAccountStatementCloseDay(\n draft,\n action: PayloadAction<{\n accountId: ID;\n reportId: ReportIDPlusForecastID;\n statementCloseDay: StatementCloseDay;\n }>\n ) {\n const key = getAccountKey(\n action.payload.reportId,\n action.payload.accountId\n );\n draft.accountsByKey[key].statementCloseDay =\n action.payload.statementCloseDay;\n },\n changeAccountKey(\n draft,\n action: PayloadAction<{newKey: AccountKey; oldKey: AccountKey}>\n ) {\n const {oldKey, newKey} = action.payload;\n draft.accountsByKey[newKey] = draft.accountsByKey[oldKey];\n delete draft.accountsByKey[oldKey];\n },\n clearAllAccounts(draft) {\n draft.accountsByKey = {} as Record<AccountKey, Account>;\n },\n },\n});\n\nexport const {\n updateAccounts,\n updateMultipleSubAccountsWithBalances,\n updateAccountStatementCloseDay,\n changeAccountKey,\n clearAllAccounts,\n} = account.actions;\nexport default account.reducer;\n\n/**\n * Helper functions.\n */\n\n/**\n * Update accountsById draft.\n * @param draft\n * @param payload\n */\n\nfunction doUpdateAccounts(\n draft: Record<ID, Account>,\n payload: AccountPayload[],\n reportId: ReportIDPlusForecastID,\n classesViewParentId: ClassesViewParentID | undefined,\n updateType: UpdateType\n) {\n payload.forEach((accountPayload) => {\n const latestAccount = mapAccountPayloadToAccount(\n accountPayload,\n reportId,\n classesViewParentId,\n undefined\n );\n if (latestAccount.key in draft && updateType === 'merge') {\n assignWith(\n draft[latestAccount.key],\n latestAccount,\n (objValue, srcValue) => (srcValue == null ? objValue : srcValue) // IMPORTANT: replace the value only when source has valid value. Otherwise keep the existing value!\n );\n } else {\n draft[latestAccount.key] = latestAccount;\n }\n });\n}\n\nfunction doUpdateSubAccountsWithBalances(\n draft: Record<ID, Account>,\n subAccountWithBalancesListPayload: AccountMetadataWithBalancesPayload[],\n currencyPayload: CurrencyPayload,\n reportId: ReportIDPlusForecastID,\n timeframe: 'month' | 'quarter' | 'year',\n updateType: UpdateType\n) {\n for (\n let index = 0;\n index < subAccountWithBalancesListPayload.length;\n index++\n ) {\n const accountBasePayload =\n subAccountWithBalancesListPayload[index].accountMetadataPayload;\n const accountBalancesPayload =\n subAccountWithBalancesListPayload[index].accountBalancesPayload;\n const accountViewParentId =\n subAccountWithBalancesListPayload[index].accountsViewParentID;\n const classesViewParentId =\n subAccountWithBalancesListPayload[index].classesViewParentID;\n const projectsViewParentId =\n subAccountWithBalancesListPayload[index].projectsViewParentID;\n doUpdateAccountWithBalancesV2(\n draft,\n accountBasePayload,\n accountBalancesPayload,\n currencyPayload,\n reportId,\n timeframe,\n classesViewParentId,\n accountViewParentId,\n projectsViewParentId,\n updateType\n );\n }\n}\n\nfunction doUpdateAccountWithBalancesV2(\n draft: Record<ID, Account>,\n accountBasePayload: AccountBasePayload,\n accountBalancesPayload: COABalanceGroupedByPeriodPayloadV2,\n currencyPayload: CurrencyPayload,\n reportId: ReportIDPlusForecastID,\n timeframe: 'month' | 'quarter' | 'year',\n classesViewParentId: ClassesViewParentID | undefined,\n accountsViewParentId: AccountsViewParentID | undefined,\n projectsViewParentId: ProjectsViewParentID | undefined,\n updateType: UpdateType\n) {\n const key = getAccountKey(\n reportId,\n accountBasePayload.account_id,\n classesViewParentId,\n accountsViewParentId,\n projectsViewParentId\n );\n\n console.log('$$$ [accountReducer.doUpdateAccountWithBalancesV2] key:', key, 'accountId:', accountBasePayload.account_id, 'projectsViewParentId:', projectsViewParentId, 'accountsViewParentId:', accountsViewParentId, 'classesViewParentId:', classesViewParentId);\n\n const balancesByPeriod =\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n accountBalancesPayload,\n currencyPayload,\n timeframe\n );\n if (key in draft && updateType === 'merge') {\n // only add balances\n draft[key].balancesByPeriod = Object.assign(\n {},\n draft[key].balancesByPeriod,\n balancesByPeriod\n );\n } else {\n const latestAccount: Account = {\n ...mapAccountBasePayloadToAccountBase(accountBasePayload),\n key,\n accountsViewParentId,\n classesViewParentId,\n projectsViewParentId,\n };\n latestAccount.balancesByPeriod = balancesByPeriod;\n draft[latestAccount.key] = latestAccount;\n }\n}\n\nconst mapAccountPayloadToAccount = (\n payload: AccountPayload,\n reportId: ReportIDPlusForecastID,\n classesViewParentId: ClassesViewParentID | undefined,\n accountsViewParentId: AccountsViewParentID | undefined\n): Account => ({\n ...mapAccountBasePayloadToAccountBase(payload),\n key: getAccountKey(\n reportId,\n payload.account_id,\n classesViewParentId,\n accountsViewParentId\n ),\n classesViewParentId,\n accountsViewParentId,\n status:\n payload.status == null\n ? undefined\n : mapStatusPayloadToStatus(payload.status),\n balance:\n payload.balance == null\n ? undefined\n : mapBalancePayloadToBalance(payload.balance),\n expenses:\n payload.expenses == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.expenses),\n income:\n payload.income == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.income),\n cogs:\n payload.cogs == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cogs),\n cashPosition:\n payload.cash_position == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cash_position),\n cashIn:\n payload.cash_in == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cash_in),\n cashOut:\n payload.cash_out == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cash_out),\n otherIncome:\n payload.other_income == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.other_income),\n otherExpenses:\n payload.other_expenses == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.other_expenses),\n equity:\n payload.equity == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.equity),\n assets:\n payload.assets == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.assets),\n liabilities:\n payload.liabilities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.liabilities),\n operatingActivities:\n payload.operating_activities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(\n payload.operating_activities\n ),\n investingActivities:\n payload.investing_activities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(\n payload.investing_activities\n ),\n financingActivities:\n payload.financing_activities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(\n payload.financing_activities\n ),\n statementCloseDay:\n payload.statement_close_day == null\n ? undefined\n : mapStatementCloseDayPayloadToStatementCloseDay(\n payload.statement_close_day\n ),\n qboId: payload.qbo_id == null ? undefined : payload.qbo_id,\n coaId: payload.coa_id == null ? undefined : payload.coa_id,\n});\n\nexport const emptyAccount: AccountBase = {\n labels: [],\n accountId: '',\n accountName: '',\n accountDescription: '',\n};\n"]}
1
+ {"version":3,"file":"accountReducer.js","sourceRoot":"","sources":["../../../src/entity/account/accountReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\nimport assignWith from 'lodash/assignWith';\n\nimport {mapBalancePayloadToBalance} from '../../commonPayloadTypes/balanceChangePayload';\nimport {mapCOABalanceGroupedPayloadToCOABalanceGrouped} from '../../commonPayloadTypes/coaBalancePayload';\nimport {mapStatusPayloadToStatus} from '../../commonPayloadTypes/statusPayload';\nimport {AccountMetadataWithBalancesPayload} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {\n COABalanceGroupedByPeriodPayloadV2,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod,\n} from '../../commonPayloadTypes/v2/coaBalancePayload';\nimport {CurrencyPayload} from '../../commonPayloadTypes/v2/viewAndReportPayloadv2';\nimport {AccountsViewParentID} from '../../commonStateTypes/accountView/nestedAccountID';\nimport {ClassesViewParentID} from '../../commonStateTypes/classesView/nestedClassID';\nimport {ProjectsViewParentID} from '../../commonStateTypes/projectView/projectViewParentID';\nimport {ID, UpdateType} from '../../commonStateTypes/common';\nimport {ReportIDPlusForecastID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {\n AccountBasePayload,\n AccountPayload,\n mapAccountBasePayloadToAccountBase,\n mapStatementCloseDayPayloadToStatementCloseDay,\n} from './accountPayload';\nimport {\n Account,\n AccountBase,\n AccountKey,\n AccountState,\n StatementCloseDay,\n getAccountKey,\n} from './accountState';\n\nexport const initialState: AccountState = {\n accountsByKey: {} as Record<AccountKey, Account>,\n};\n\nconst account = createSlice({\n name: 'account',\n initialState,\n reducers: {\n updateAccounts: {\n reducer(\n draft,\n action: PayloadAction<\n AccountPayload[],\n string,\n {\n reportId: ReportIDPlusForecastID;\n updateType: UpdateType;\n classesViewParentId?: ClassesViewParentID;\n }\n >\n ) {\n doUpdateAccounts(\n draft.accountsByKey,\n action.payload,\n action.meta.reportId,\n action.meta.classesViewParentId,\n action.meta.updateType\n );\n },\n prepare(\n payload: AccountPayload[],\n reportId: ReportIDPlusForecastID,\n classesViewParentId?: ClassesViewParentID,\n updateType: UpdateType = 'merge'\n ) {\n return {\n payload,\n meta: {reportId, classesViewParentId, updateType},\n };\n },\n },\n updateMultipleSubAccountsWithBalances: {\n reducer(\n draft,\n action: PayloadAction<{\n currencyPayload: CurrencyPayload;\n reportId: ReportIDPlusForecastID;\n subAccountWithBalancesListPayloads: AccountMetadataWithBalancesPayload[];\n timeframe: 'month' | 'quarter' | 'year';\n updateType: UpdateType;\n }>\n ) {\n doUpdateSubAccountsWithBalances(\n draft.accountsByKey,\n action.payload.subAccountWithBalancesListPayloads,\n action.payload.currencyPayload,\n action.payload.reportId,\n action.payload.timeframe,\n action.payload.updateType\n );\n },\n prepare(\n subAccountWithBalancesListPayloads: AccountMetadataWithBalancesPayload[],\n currencyPayload: CurrencyPayload,\n reportId: ReportIDPlusForecastID,\n timeframe: 'month' | 'quarter' | 'year',\n updateType: UpdateType = 'merge'\n ) {\n return {\n payload: {\n subAccountWithBalancesListPayloads,\n currencyPayload,\n reportId,\n updateType,\n timeframe,\n },\n };\n },\n },\n updateAccountStatementCloseDay(\n draft,\n action: PayloadAction<{\n accountId: ID;\n reportId: ReportIDPlusForecastID;\n statementCloseDay: StatementCloseDay;\n }>\n ) {\n const key = getAccountKey(\n action.payload.reportId,\n action.payload.accountId\n );\n draft.accountsByKey[key].statementCloseDay =\n action.payload.statementCloseDay;\n },\n changeAccountKey(\n draft,\n action: PayloadAction<{newKey: AccountKey; oldKey: AccountKey}>\n ) {\n const {oldKey, newKey} = action.payload;\n draft.accountsByKey[newKey] = draft.accountsByKey[oldKey];\n delete draft.accountsByKey[oldKey];\n },\n clearAllAccounts(draft) {\n draft.accountsByKey = {} as Record<AccountKey, Account>;\n },\n },\n});\n\nexport const {\n updateAccounts,\n updateMultipleSubAccountsWithBalances,\n updateAccountStatementCloseDay,\n changeAccountKey,\n clearAllAccounts,\n} = account.actions;\nexport default account.reducer;\n\n/**\n * Helper functions.\n */\n\n/**\n * Update accountsById draft.\n * @param draft\n * @param payload\n */\n\nfunction doUpdateAccounts(\n draft: Record<ID, Account>,\n payload: AccountPayload[],\n reportId: ReportIDPlusForecastID,\n classesViewParentId: ClassesViewParentID | undefined,\n updateType: UpdateType\n) {\n payload.forEach((accountPayload) => {\n const latestAccount = mapAccountPayloadToAccount(\n accountPayload,\n reportId,\n classesViewParentId,\n undefined\n );\n if (latestAccount.key in draft && updateType === 'merge') {\n assignWith(\n draft[latestAccount.key],\n latestAccount,\n (objValue, srcValue) => (srcValue == null ? objValue : srcValue) // IMPORTANT: replace the value only when source has valid value. Otherwise keep the existing value!\n );\n } else {\n draft[latestAccount.key] = latestAccount;\n }\n });\n}\n\nfunction doUpdateSubAccountsWithBalances(\n draft: Record<ID, Account>,\n subAccountWithBalancesListPayload: AccountMetadataWithBalancesPayload[],\n currencyPayload: CurrencyPayload,\n reportId: ReportIDPlusForecastID,\n timeframe: 'month' | 'quarter' | 'year',\n updateType: UpdateType\n) {\n for (\n let index = 0;\n index < subAccountWithBalancesListPayload.length;\n index++\n ) {\n const accountBasePayload =\n subAccountWithBalancesListPayload[index].accountMetadataPayload;\n const accountBalancesPayload =\n subAccountWithBalancesListPayload[index].accountBalancesPayload;\n const accountViewParentId =\n subAccountWithBalancesListPayload[index].accountsViewParentID;\n const classesViewParentId =\n subAccountWithBalancesListPayload[index].classesViewParentID;\n const projectsViewParentId =\n subAccountWithBalancesListPayload[index].projectsViewParentID;\n doUpdateAccountWithBalancesV2(\n draft,\n accountBasePayload,\n accountBalancesPayload,\n currencyPayload,\n reportId,\n timeframe,\n classesViewParentId,\n accountViewParentId,\n projectsViewParentId,\n updateType\n );\n }\n}\n\nfunction doUpdateAccountWithBalancesV2(\n draft: Record<ID, Account>,\n accountBasePayload: AccountBasePayload,\n accountBalancesPayload: COABalanceGroupedByPeriodPayloadV2,\n currencyPayload: CurrencyPayload,\n reportId: ReportIDPlusForecastID,\n timeframe: 'month' | 'quarter' | 'year',\n classesViewParentId: ClassesViewParentID | undefined,\n accountsViewParentId: AccountsViewParentID | undefined,\n projectsViewParentId: ProjectsViewParentID | undefined,\n updateType: UpdateType\n) {\n const key = getAccountKey(\n reportId,\n accountBasePayload.account_id,\n classesViewParentId,\n accountsViewParentId,\n projectsViewParentId\n );\n\n const balancesByPeriod =\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n accountBalancesPayload,\n currencyPayload,\n timeframe\n );\n if (key in draft && updateType === 'merge') {\n // only add balances\n draft[key].balancesByPeriod = Object.assign(\n {},\n draft[key].balancesByPeriod,\n balancesByPeriod\n );\n } else {\n const latestAccount: Account = {\n ...mapAccountBasePayloadToAccountBase(accountBasePayload),\n key,\n accountsViewParentId,\n classesViewParentId,\n projectsViewParentId,\n };\n latestAccount.balancesByPeriod = balancesByPeriod;\n draft[latestAccount.key] = latestAccount;\n }\n}\n\nconst mapAccountPayloadToAccount = (\n payload: AccountPayload,\n reportId: ReportIDPlusForecastID,\n classesViewParentId: ClassesViewParentID | undefined,\n accountsViewParentId: AccountsViewParentID | undefined\n): Account => ({\n ...mapAccountBasePayloadToAccountBase(payload),\n key: getAccountKey(\n reportId,\n payload.account_id,\n classesViewParentId,\n accountsViewParentId\n ),\n classesViewParentId,\n accountsViewParentId,\n status:\n payload.status == null\n ? undefined\n : mapStatusPayloadToStatus(payload.status),\n balance:\n payload.balance == null\n ? undefined\n : mapBalancePayloadToBalance(payload.balance),\n expenses:\n payload.expenses == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.expenses),\n income:\n payload.income == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.income),\n cogs:\n payload.cogs == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cogs),\n cashPosition:\n payload.cash_position == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cash_position),\n cashIn:\n payload.cash_in == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cash_in),\n cashOut:\n payload.cash_out == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.cash_out),\n otherIncome:\n payload.other_income == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.other_income),\n otherExpenses:\n payload.other_expenses == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.other_expenses),\n equity:\n payload.equity == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.equity),\n assets:\n payload.assets == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.assets),\n liabilities:\n payload.liabilities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(payload.liabilities),\n operatingActivities:\n payload.operating_activities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(\n payload.operating_activities\n ),\n investingActivities:\n payload.investing_activities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(\n payload.investing_activities\n ),\n financingActivities:\n payload.financing_activities == null\n ? undefined\n : mapCOABalanceGroupedPayloadToCOABalanceGrouped(\n payload.financing_activities\n ),\n statementCloseDay:\n payload.statement_close_day == null\n ? undefined\n : mapStatementCloseDayPayloadToStatementCloseDay(\n payload.statement_close_day\n ),\n qboId: payload.qbo_id == null ? undefined : payload.qbo_id,\n coaId: payload.coa_id == null ? undefined : payload.coa_id,\n});\n\nexport const emptyAccount: AccountBase = {\n labels: [],\n accountId: '',\n accountName: '',\n accountDescription: '',\n};\n"]}
@@ -13,11 +13,9 @@ const projectSlice = (0, toolkit_1.createSlice)({
13
13
  reducers: {
14
14
  updateProjects: {
15
15
  reducer(draft, action) {
16
- console.log('$$$ [projectReducer.updateProjects] payload count:', action.payload.length, 'payload:', action.payload);
17
16
  action.payload.forEach((projectPayload) => {
18
17
  const project = (0, projectPayload_1.mapProjectMetadataPayloadToProject)(projectPayload);
19
18
  draft.projects[project.projectId] = project;
20
- console.log('$$$ [projectReducer.updateProjects] stored project', project.projectId, project);
21
19
  });
22
20
  },
23
21
  prepare(payload) {
@@ -1 +1 @@
1
- {"version":3,"file":"projectReducer.js","sourceRoot":"","sources":["../../../src/entity/project/projectReducer.ts"],"names":[],"mappings":";;;;AAAA,8CAA4D;AAG5D,qDAG0B;AAOb,QAAA,YAAY,GAAiB;IACxC,QAAQ,EAAE,EAAyB;CACpC,CAAC;AAEF,MAAM,YAAY,GAAG,IAAA,qBAAW,EAAC;IAC/B,IAAI,EAAE,SAAS;IACf,YAAY,EAAZ,oBAAY;IACZ,QAAQ,EAAE;QACR,cAAc,EAAE;YACd,OAAO,CACL,KAAK,EACL,MAA+C;gBAE/C,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oBACxC,MAAM,OAAO,GAAG,IAAA,mDAAkC,EAAC,cAAc,CAAC,CAAC;oBACnE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChG,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,OAAiC;gBACvC,OAAO,EAAC,OAAO,EAAC,CAAC;YACnB,CAAC;SACF;QACD,gBAAgB,CAAC,KAAK;YACpB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAY,CAAC,CAAC;QACrC,CAAC;KACF;CACF,CAAC,CAAC;AAEU,KAAqC,YAAY,CAAC,OAAO,EAAxD,sBAAc,sBAAE,wBAAgB,uBAAyB;AAEvE,kBAAe,YAAY,CAAC,OAAO,CAAC","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\n\nimport {ID} from '../../commonStateTypes/common';\nimport {\n ProjectMetadataPayload,\n mapProjectMetadataPayloadToProject,\n} from './projectPayload';\nimport {Project} from './projectState';\n\nexport interface ProjectState {\n projects: Record<ID, Project>;\n}\n\nexport const initialState: ProjectState = {\n projects: {} as Record<ID, Project>,\n};\n\nconst projectSlice = createSlice({\n name: 'project',\n initialState,\n reducers: {\n updateProjects: {\n reducer(\n draft,\n action: PayloadAction<ProjectMetadataPayload[]>\n ) {\n console.log('$$$ [projectReducer.updateProjects] payload count:', action.payload.length, 'payload:', action.payload);\n action.payload.forEach((projectPayload) => {\n const project = mapProjectMetadataPayloadToProject(projectPayload);\n draft.projects[project.projectId] = project;\n console.log('$$$ [projectReducer.updateProjects] stored project', project.projectId, project);\n });\n },\n prepare(payload: ProjectMetadataPayload[]) {\n return {payload};\n },\n },\n clearAllProjects(draft) {\n Object.assign(draft, initialState);\n },\n },\n});\n\nexport const {updateProjects, clearAllProjects} = projectSlice.actions;\n\nexport default projectSlice.reducer;\n"]}
1
+ {"version":3,"file":"projectReducer.js","sourceRoot":"","sources":["../../../src/entity/project/projectReducer.ts"],"names":[],"mappings":";;;;AAAA,8CAA4D;AAG5D,qDAG0B;AAOb,QAAA,YAAY,GAAiB;IACxC,QAAQ,EAAE,EAAyB;CACpC,CAAC;AAEF,MAAM,YAAY,GAAG,IAAA,qBAAW,EAAC;IAC/B,IAAI,EAAE,SAAS;IACf,YAAY,EAAZ,oBAAY;IACZ,QAAQ,EAAE;QACR,cAAc,EAAE;YACd,OAAO,CACL,KAAK,EACL,MAA+C;gBAE/C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oBACxC,MAAM,OAAO,GAAG,IAAA,mDAAkC,EAAC,cAAc,CAAC,CAAC;oBACnE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,OAAiC;gBACvC,OAAO,EAAC,OAAO,EAAC,CAAC;YACnB,CAAC;SACF;QACD,gBAAgB,CAAC,KAAK;YACpB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAY,CAAC,CAAC;QACrC,CAAC;KACF;CACF,CAAC,CAAC;AAEU,KAAqC,YAAY,CAAC,OAAO,EAAxD,sBAAc,sBAAE,wBAAgB,uBAAyB;AAEvE,kBAAe,YAAY,CAAC,OAAO,CAAC","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\n\nimport {ID} from '../../commonStateTypes/common';\nimport {\n ProjectMetadataPayload,\n mapProjectMetadataPayloadToProject,\n} from './projectPayload';\nimport {Project} from './projectState';\n\nexport interface ProjectState {\n projects: Record<ID, Project>;\n}\n\nexport const initialState: ProjectState = {\n projects: {} as Record<ID, Project>,\n};\n\nconst projectSlice = createSlice({\n name: 'project',\n initialState,\n reducers: {\n updateProjects: {\n reducer(\n draft,\n action: PayloadAction<ProjectMetadataPayload[]>\n ) {\n action.payload.forEach((projectPayload) => {\n const project = mapProjectMetadataPayloadToProject(projectPayload);\n draft.projects[project.projectId] = project;\n });\n },\n prepare(payload: ProjectMetadataPayload[]) {\n return {payload};\n },\n },\n clearAllProjects(draft) {\n Object.assign(draft, initialState);\n },\n },\n});\n\nexport const {updateProjects, clearAllProjects} = projectSlice.actions;\n\nexport default projectSlice.reducer;\n"]}
@@ -21,12 +21,10 @@ const updateSectionAccountsViewEpic = (actions$) => actions$.pipe((0, operators_
21
21
  const currencyPayload = action.payload.currencyPayload;
22
22
  const accountsMetadata = accountsMetadataPayload.map((eachAccount) => (0, accountPayload_1.mapAccountMetadataPayloadToAccountMetadata)(eachAccount));
23
23
  const accountMetadataRecordsByID = (0, getNestedAccountIDHierarchyForReport_1.getAllAccountMetadataRecordsByID)(accountsMetadataPayload);
24
- console.log('$$$ [sectionAccountsViewEpic] triggered for section:', sectionId, 'reportId:', reportId, 'hasAccounts:', sectionPayload.accounts != null, 'hasAccountGroups:', sectionPayload.account_groups != null);
25
24
  // This would mean a non-zeni COA
26
25
  if (sectionPayload.accounts != null) {
27
26
  const accounts = sectionPayload.accounts;
28
27
  const accountMetadataWithBalancesPayloads = (0, subAccountPayloadHelper_1.getSubAccountsMetadataForAccountList)(accounts, accountMetadataRecordsByID, sectionId);
29
- console.log('$$$ [sectionAccountsViewEpic] non-zeni COA path — section:', sectionId, 'built', accountMetadataWithBalancesPayloads.length, 'sub-account payloads');
30
28
  if (accountMetadataWithBalancesPayloads.length > 0) {
31
29
  actions.push((0, accountReducer_1.updateMultipleSubAccountsWithBalances)(accountMetadataWithBalancesPayloads, currencyPayload, reportId, timeframe));
32
30
  }
@@ -50,7 +48,6 @@ const updateSectionAccountsViewEpic = (actions$) => actions$.pipe((0, operators_
50
48
  accountMetadataWithBalancesPayloads.push(...subAccounts);
51
49
  }
52
50
  });
53
- console.log('$$$ [sectionAccountsViewEpic] zeni COA path — section:', sectionId, 'accountGroups:', accountGroupMetadataWithBalancesPayloads.length, 'subAccounts:', accountMetadataWithBalancesPayloads.length);
54
51
  actions.push((0, accountGroupReducer_1.addAccountGroupsWithBalances)(timeframe, accountGroupMetadataWithBalancesPayloads, currencyPayload, sectionId, reportId));
55
52
  actions.push((0, accountReducer_1.updateMultipleSubAccountsWithBalances)(accountMetadataWithBalancesPayloads, currencyPayload, reportId, timeframe));
56
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sectionAccountsViewEpic.js","sourceRoot":"","sources":["../../../src/entity/sectionAccountsView/sectionAccountsViewEpic.ts"],"names":[],"mappings":"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","sourcesContent":["import {ActionsObservable} from 'redux-observable';\nimport {Observable, from} from 'rxjs';\nimport {filter, mergeMap} from 'rxjs/operators';\n\nimport {\n AccountGroupMetadataWithBalancesPayload,\n AccountMetadataWithBalancesPayload,\n} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {getSubAccountsMetadataForAccountList} from '../../commonPayloadTypes/subAccountView/subAccountPayloadHelper';\nimport {getAllAccountMetadataRecordsByID} from '../../commonStateTypes/accountView/getNestedAccountIDHierarchyForReport';\nimport {AccountMetadataRecordsByID} from '../../commonStateTypes/accountView/nestedAccountID';\nimport {mapAccountMetadataPayloadToAccountMetadata} from '../account/accountPayload';\nimport {updateMultipleSubAccountsWithBalances} from '../account/accountReducer';\nimport {addAccountGroupsWithBalances} from '../accountGroup/accountGroupReducer';\nimport {getNestedAccountIDHierarchyForAccounts} from './getNestedAccountIDHierarchyForSection';\nimport {updateSectionAccountsView} from './sectionAccountsViewReducer';\n\nexport type ActionType =\n | ReturnType<typeof updateSectionAccountsView>\n | ReturnType<typeof addAccountGroupsWithBalances>\n | ReturnType<typeof updateMultipleSubAccountsWithBalances>;\n\nexport const updateSectionAccountsViewEpic = (\n actions$: ActionsObservable<ActionType>\n): Observable<ActionType> =>\n actions$.pipe(\n filter(updateSectionAccountsView.match),\n mergeMap((action) => {\n const actions: ActionType[] = [];\n\n const sectionPayload = action.payload.sectionPayload;\n const sectionId = action.payload.sectionId;\n const timeframe = action.payload.timeframe;\n const reportId = action.payload.reportId;\n const accountsMetadataPayload = action.payload.accountsMetadataPayload;\n const accountGroupMetadataPayload =\n action.payload.accountGroupMetadataPayload;\n const currencyPayload = action.payload.currencyPayload;\n\n const accountsMetadata = accountsMetadataPayload.map((eachAccount) =>\n mapAccountMetadataPayloadToAccountMetadata(eachAccount)\n );\n\n const accountMetadataRecordsByID: AccountMetadataRecordsByID =\n getAllAccountMetadataRecordsByID(accountsMetadataPayload);\n\n console.log('$$$ [sectionAccountsViewEpic] triggered for section:', sectionId, 'reportId:', reportId, 'hasAccounts:', sectionPayload.accounts != null, 'hasAccountGroups:', sectionPayload.account_groups != null);\n\n // This would mean a non-zeni COA\n if (sectionPayload.accounts != null) {\n const accounts = sectionPayload.accounts;\n const accountMetadataWithBalancesPayloads: AccountMetadataWithBalancesPayload[] =\n getSubAccountsMetadataForAccountList(\n accounts,\n accountMetadataRecordsByID,\n sectionId\n );\n\n console.log('$$$ [sectionAccountsViewEpic] non-zeni COA path — section:', sectionId, 'built', accountMetadataWithBalancesPayloads.length, 'sub-account payloads');\n\n if (accountMetadataWithBalancesPayloads.length > 0) {\n actions.push(\n updateMultipleSubAccountsWithBalances(\n accountMetadataWithBalancesPayloads,\n currencyPayload,\n reportId,\n timeframe\n )\n );\n }\n }\n if (sectionPayload.account_groups != null) {\n // This would be zeni COA - then add all account groups in this section\n\n const accountGroups = sectionPayload.account_groups;\n const accountGroupMetadataWithBalancesPayloads: AccountGroupMetadataWithBalancesPayload[] =\n [];\n const accountMetadataWithBalancesPayloads: AccountMetadataWithBalancesPayload[] =\n [];\n\n Object.keys(accountGroups).forEach((eachAccountGroupId) => {\n const accountGroupMeta = accountGroupMetadataPayload.find(\n (acGroupMetadata) =>\n eachAccountGroupId === acGroupMetadata.account_group_id\n );\n if (accountGroupMeta != null) {\n const accountGroupsAccounts = Object.keys(\n accountGroups[eachAccountGroupId].accounts\n );\n const nestedAccountIds = getNestedAccountIDHierarchyForAccounts(\n accountGroupsAccounts,\n accountsMetadata\n );\n\n accountGroupMetadataWithBalancesPayloads.push({\n accountGroupMetadataPayload: accountGroupMeta,\n accountGroupBalances: accountGroups[eachAccountGroupId],\n nestedAccountIds,\n });\n\n const subAccounts = getSubAccountsMetadataForAccountList(\n accountGroups[eachAccountGroupId].accounts,\n accountMetadataRecordsByID,\n sectionId\n );\n\n accountMetadataWithBalancesPayloads.push(...subAccounts);\n }\n });\n\n console.log('$$$ [sectionAccountsViewEpic] zeni COA path — section:', sectionId, 'accountGroups:', accountGroupMetadataWithBalancesPayloads.length, 'subAccounts:', accountMetadataWithBalancesPayloads.length);\n\n actions.push(\n addAccountGroupsWithBalances(\n timeframe,\n accountGroupMetadataWithBalancesPayloads,\n currencyPayload,\n sectionId,\n reportId\n )\n );\n actions.push(\n updateMultipleSubAccountsWithBalances(\n accountMetadataWithBalancesPayloads,\n currencyPayload,\n reportId,\n timeframe\n )\n );\n }\n return from(actions);\n })\n );\n"]}
1
+ {"version":3,"file":"sectionAccountsViewEpic.js","sourceRoot":"","sources":["../../../src/entity/sectionAccountsView/sectionAccountsViewEpic.ts"],"names":[],"mappings":"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","sourcesContent":["import {ActionsObservable} from 'redux-observable';\nimport {Observable, from} from 'rxjs';\nimport {filter, mergeMap} from 'rxjs/operators';\n\nimport {\n AccountGroupMetadataWithBalancesPayload,\n AccountMetadataWithBalancesPayload,\n} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {getSubAccountsMetadataForAccountList} from '../../commonPayloadTypes/subAccountView/subAccountPayloadHelper';\nimport {getAllAccountMetadataRecordsByID} from '../../commonStateTypes/accountView/getNestedAccountIDHierarchyForReport';\nimport {AccountMetadataRecordsByID} from '../../commonStateTypes/accountView/nestedAccountID';\nimport {mapAccountMetadataPayloadToAccountMetadata} from '../account/accountPayload';\nimport {updateMultipleSubAccountsWithBalances} from '../account/accountReducer';\nimport {addAccountGroupsWithBalances} from '../accountGroup/accountGroupReducer';\nimport {getNestedAccountIDHierarchyForAccounts} from './getNestedAccountIDHierarchyForSection';\nimport {updateSectionAccountsView} from './sectionAccountsViewReducer';\n\nexport type ActionType =\n | ReturnType<typeof updateSectionAccountsView>\n | ReturnType<typeof addAccountGroupsWithBalances>\n | ReturnType<typeof updateMultipleSubAccountsWithBalances>;\n\nexport const updateSectionAccountsViewEpic = (\n actions$: ActionsObservable<ActionType>\n): Observable<ActionType> =>\n actions$.pipe(\n filter(updateSectionAccountsView.match),\n mergeMap((action) => {\n const actions: ActionType[] = [];\n\n const sectionPayload = action.payload.sectionPayload;\n const sectionId = action.payload.sectionId;\n const timeframe = action.payload.timeframe;\n const reportId = action.payload.reportId;\n const accountsMetadataPayload = action.payload.accountsMetadataPayload;\n const accountGroupMetadataPayload =\n action.payload.accountGroupMetadataPayload;\n const currencyPayload = action.payload.currencyPayload;\n\n const accountsMetadata = accountsMetadataPayload.map((eachAccount) =>\n mapAccountMetadataPayloadToAccountMetadata(eachAccount)\n );\n\n const accountMetadataRecordsByID: AccountMetadataRecordsByID =\n getAllAccountMetadataRecordsByID(accountsMetadataPayload);\n\n // This would mean a non-zeni COA\n if (sectionPayload.accounts != null) {\n const accounts = sectionPayload.accounts;\n const accountMetadataWithBalancesPayloads: AccountMetadataWithBalancesPayload[] =\n getSubAccountsMetadataForAccountList(\n accounts,\n accountMetadataRecordsByID,\n sectionId\n );\n\n if (accountMetadataWithBalancesPayloads.length > 0) {\n actions.push(\n updateMultipleSubAccountsWithBalances(\n accountMetadataWithBalancesPayloads,\n currencyPayload,\n reportId,\n timeframe\n )\n );\n }\n }\n if (sectionPayload.account_groups != null) {\n // This would be zeni COA - then add all account groups in this section\n\n const accountGroups = sectionPayload.account_groups;\n const accountGroupMetadataWithBalancesPayloads: AccountGroupMetadataWithBalancesPayload[] =\n [];\n const accountMetadataWithBalancesPayloads: AccountMetadataWithBalancesPayload[] =\n [];\n\n Object.keys(accountGroups).forEach((eachAccountGroupId) => {\n const accountGroupMeta = accountGroupMetadataPayload.find(\n (acGroupMetadata) =>\n eachAccountGroupId === acGroupMetadata.account_group_id\n );\n if (accountGroupMeta != null) {\n const accountGroupsAccounts = Object.keys(\n accountGroups[eachAccountGroupId].accounts\n );\n const nestedAccountIds = getNestedAccountIDHierarchyForAccounts(\n accountGroupsAccounts,\n accountsMetadata\n );\n\n accountGroupMetadataWithBalancesPayloads.push({\n accountGroupMetadataPayload: accountGroupMeta,\n accountGroupBalances: accountGroups[eachAccountGroupId],\n nestedAccountIds,\n });\n\n const subAccounts = getSubAccountsMetadataForAccountList(\n accountGroups[eachAccountGroupId].accounts,\n accountMetadataRecordsByID,\n sectionId\n );\n\n accountMetadataWithBalancesPayloads.push(...subAccounts);\n }\n });\n\n actions.push(\n addAccountGroupsWithBalances(\n timeframe,\n accountGroupMetadataWithBalancesPayloads,\n currencyPayload,\n sectionId,\n reportId\n )\n );\n actions.push(\n updateMultipleSubAccountsWithBalances(\n accountMetadataWithBalancesPayloads,\n currencyPayload,\n reportId,\n timeframe\n )\n );\n }\n return from(actions);\n })\n );\n"]}
@@ -31,7 +31,6 @@ const sectionAccountsView = (0, toolkit_1.createSlice)({
31
31
  };
32
32
  },
33
33
  reducer(draft, action) {
34
- console.log('$$$ [sectionAccountsViewReducer.updateSectionAccountsView] section:', action.payload.sectionId, 'reportId:', action.payload.reportId, 'timeframe:', action.payload.timeframe, 'sectionPayload:', action.payload.sectionPayload);
35
34
  updateSection(draft, action.payload.timeframe, action.payload.sectionId, action.payload.reportId, action.payload.sectionPayload, action.payload.accountsMetadataPayload, action.payload.currencyPayload);
36
35
  },
37
36
  },
@@ -1 +1 @@
1
- {"version":3,"file":"sectionAccountsViewReducer.js","sourceRoot":"","sources":["../../../src/entity/sectionAccountsView/sectionAccountsViewReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\n\nimport {\n AccountGroupCOABalanceGroupedPayloadByAccountGroupId,\n SectionByAccountGroupCOABalanceGroupedPayload,\n} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {\n COABalanceGroupedByPeriodPayloadV2,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod,\n} from '../../commonPayloadTypes/v2/coaBalancePayload';\nimport {CurrencyPayload} from '../../commonPayloadTypes/v2/viewAndReportPayloadv2';\nimport {ID} from '../../commonStateTypes/common';\nimport {ReportIDPlusForecastID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {\n AccountMetadataPayload,\n mapAccountMetadataPayloadToAccountMetadata,\n} from '../account/accountPayload';\nimport {AccountGroupMetadataPayload} from '../accountGroup/accountGroupPayload';\nimport {\n AccountGroupKey,\n AccountGroupType,\n getAccountGroupKey,\n} from '../accountGroup/accountGroupState';\nimport {getNestedAccountIDHierarchyForAccounts} from './getNestedAccountIDHierarchyForSection';\nimport {getSectionAccountViewKey} from './sectionAccountsView';\nimport {mapSectionByAccountCOABalanceGroupedPayloadToSection} from './sectionAccountsViewHelper';\nimport {SectionAccountsViewState} from './sectionAccountsViewState';\n\nexport const initialState: SectionAccountsViewState = {\n sectionsByKey: {},\n};\n\nconst sectionAccountsView = createSlice({\n name: 'sectionAccountsView',\n initialState,\n reducers: {\n updateSectionAccountsView: {\n prepare(\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n sectionPayload: SectionByAccountGroupCOABalanceGroupedPayload,\n accountsMetadataPayload: AccountMetadataPayload[],\n accountGroupMetadataPayload: AccountGroupMetadataPayload[],\n currencyPayload: CurrencyPayload\n ) {\n return {\n payload: {\n timeframe,\n reportId,\n sectionId,\n sectionPayload,\n accountsMetadataPayload,\n accountGroupMetadataPayload,\n currencyPayload,\n },\n };\n },\n reducer(\n draft,\n action: PayloadAction<{\n accountGroupMetadataPayload: AccountGroupMetadataPayload[];\n accountsMetadataPayload: AccountMetadataPayload[];\n currencyPayload: CurrencyPayload;\n reportId: ReportIDPlusForecastID;\n sectionId: ID;\n sectionPayload: SectionByAccountGroupCOABalanceGroupedPayload;\n timeframe: 'month' | 'quarter' | 'year';\n }>\n ) {\n console.log('$$$ [sectionAccountsViewReducer.updateSectionAccountsView] section:', action.payload.sectionId, 'reportId:', action.payload.reportId, 'timeframe:', action.payload.timeframe, 'sectionPayload:', action.payload.sectionPayload);\n updateSection(\n draft,\n action.payload.timeframe,\n action.payload.sectionId,\n action.payload.reportId,\n action.payload.sectionPayload,\n action.payload.accountsMetadataPayload,\n action.payload.currencyPayload\n );\n },\n },\n updateCalculatedSectionAccountsView: {\n prepare(\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n calculatedSectionPayload: COABalanceGroupedByPeriodPayloadV2,\n currencyPayload: CurrencyPayload\n ) {\n return {\n payload: {\n timeframe,\n reportId,\n sectionId,\n calculatedSectionPayload,\n currencyPayload,\n },\n };\n },\n reducer(\n draft,\n action: PayloadAction<{\n calculatedSectionPayload: COABalanceGroupedByPeriodPayloadV2;\n currencyPayload: CurrencyPayload;\n reportId: ReportIDPlusForecastID;\n sectionId: ID;\n timeframe: 'month' | 'quarter' | 'year';\n }>\n ) {\n updateCalculatedSection(\n draft,\n action.payload.timeframe,\n action.payload.sectionId,\n action.payload.reportId,\n action.payload.calculatedSectionPayload,\n action.payload.currencyPayload\n );\n },\n },\n clearAllSectionsAccountsView(draft) {\n Object.assign(draft, initialState);\n },\n },\n});\n\nexport const {\n updateSectionAccountsView,\n updateCalculatedSectionAccountsView,\n clearAllSectionsAccountsView,\n} = sectionAccountsView.actions;\n\nexport default sectionAccountsView.reducer;\n\nconst updateSection = (\n draft: SectionAccountsViewState,\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n sectionPayload: SectionByAccountGroupCOABalanceGroupedPayload,\n accountsMetadataPayload: AccountMetadataPayload[],\n currencyPayload: CurrencyPayload\n) => {\n const sectionKey = getSectionAccountViewKey(sectionId, reportId);\n const section = draft.sectionsByKey[sectionKey];\n\n if (section != null) {\n draft.sectionsByKey[sectionKey].balancesByPeriod = Object.assign(\n {},\n draft.sectionsByKey[sectionKey].balancesByPeriod,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n sectionPayload,\n currencyPayload,\n timeframe\n )\n );\n } else {\n const accountsMetadata = accountsMetadataPayload.map((eachAccount) =>\n mapAccountMetadataPayloadToAccountMetadata(eachAccount)\n );\n const nestedAccounts = getNestedAccountIDHierarchyForAccounts(\n sectionPayload.accounts != null\n ? Object.keys(sectionPayload.accounts)\n : [],\n accountsMetadata\n );\n\n const accountGroupKeys = getAccountGroupsKeysInSection(\n sectionPayload.account_groups,\n sectionId as AccountGroupType,\n reportId\n );\n\n draft.sectionsByKey[sectionKey] =\n mapSectionByAccountCOABalanceGroupedPayloadToSection(\n timeframe,\n sectionPayload,\n accountGroupKeys,\n nestedAccounts,\n currencyPayload,\n {sectionId, reportId}\n );\n }\n};\n\nconst updateCalculatedSection = (\n draft: SectionAccountsViewState,\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n calculatedSectionPayload: COABalanceGroupedByPeriodPayloadV2,\n currencyPayload: CurrencyPayload\n) => {\n const sectionKey = getSectionAccountViewKey(sectionId, reportId);\n const section = draft.sectionsByKey[sectionKey];\n const balances =\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n calculatedSectionPayload,\n currencyPayload,\n timeframe\n );\n if (section != null) {\n draft.sectionsByKey[sectionKey].balancesByPeriod = Object.assign(\n {},\n draft.sectionsByKey[sectionKey].balancesByPeriod,\n balances\n );\n } else {\n draft.sectionsByKey[sectionKey] = {\n key: sectionKey,\n sectionId: sectionId,\n accountGroupKeys: [],\n nestedAccountIds: [],\n balancesByPeriod: balances,\n };\n }\n};\n\nconst getAccountGroupsKeysInSection = (\n accountGroups: AccountGroupCOABalanceGroupedPayloadByAccountGroupId,\n sectionId: AccountGroupType,\n reportId: ReportIDPlusForecastID\n) => {\n const accountGroupsKeys: AccountGroupKey[] = [];\n if (accountGroups != null) {\n Object.keys(accountGroups).forEach((accountGroup) => {\n accountGroupsKeys.push(\n getAccountGroupKey(accountGroup, sectionId, reportId)\n );\n });\n }\n\n return accountGroupsKeys;\n};\n"]}
1
+ {"version":3,"file":"sectionAccountsViewReducer.js","sourceRoot":"","sources":["../../../src/entity/sectionAccountsView/sectionAccountsViewReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\n\nimport {\n AccountGroupCOABalanceGroupedPayloadByAccountGroupId,\n SectionByAccountGroupCOABalanceGroupedPayload,\n} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {\n COABalanceGroupedByPeriodPayloadV2,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod,\n} from '../../commonPayloadTypes/v2/coaBalancePayload';\nimport {CurrencyPayload} from '../../commonPayloadTypes/v2/viewAndReportPayloadv2';\nimport {ID} from '../../commonStateTypes/common';\nimport {ReportIDPlusForecastID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {\n AccountMetadataPayload,\n mapAccountMetadataPayloadToAccountMetadata,\n} from '../account/accountPayload';\nimport {AccountGroupMetadataPayload} from '../accountGroup/accountGroupPayload';\nimport {\n AccountGroupKey,\n AccountGroupType,\n getAccountGroupKey,\n} from '../accountGroup/accountGroupState';\nimport {getNestedAccountIDHierarchyForAccounts} from './getNestedAccountIDHierarchyForSection';\nimport {getSectionAccountViewKey} from './sectionAccountsView';\nimport {mapSectionByAccountCOABalanceGroupedPayloadToSection} from './sectionAccountsViewHelper';\nimport {SectionAccountsViewState} from './sectionAccountsViewState';\n\nexport const initialState: SectionAccountsViewState = {\n sectionsByKey: {},\n};\n\nconst sectionAccountsView = createSlice({\n name: 'sectionAccountsView',\n initialState,\n reducers: {\n updateSectionAccountsView: {\n prepare(\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n sectionPayload: SectionByAccountGroupCOABalanceGroupedPayload,\n accountsMetadataPayload: AccountMetadataPayload[],\n accountGroupMetadataPayload: AccountGroupMetadataPayload[],\n currencyPayload: CurrencyPayload\n ) {\n return {\n payload: {\n timeframe,\n reportId,\n sectionId,\n sectionPayload,\n accountsMetadataPayload,\n accountGroupMetadataPayload,\n currencyPayload,\n },\n };\n },\n reducer(\n draft,\n action: PayloadAction<{\n accountGroupMetadataPayload: AccountGroupMetadataPayload[];\n accountsMetadataPayload: AccountMetadataPayload[];\n currencyPayload: CurrencyPayload;\n reportId: ReportIDPlusForecastID;\n sectionId: ID;\n sectionPayload: SectionByAccountGroupCOABalanceGroupedPayload;\n timeframe: 'month' | 'quarter' | 'year';\n }>\n ) {\n updateSection(\n draft,\n action.payload.timeframe,\n action.payload.sectionId,\n action.payload.reportId,\n action.payload.sectionPayload,\n action.payload.accountsMetadataPayload,\n action.payload.currencyPayload\n );\n },\n },\n updateCalculatedSectionAccountsView: {\n prepare(\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n calculatedSectionPayload: COABalanceGroupedByPeriodPayloadV2,\n currencyPayload: CurrencyPayload\n ) {\n return {\n payload: {\n timeframe,\n reportId,\n sectionId,\n calculatedSectionPayload,\n currencyPayload,\n },\n };\n },\n reducer(\n draft,\n action: PayloadAction<{\n calculatedSectionPayload: COABalanceGroupedByPeriodPayloadV2;\n currencyPayload: CurrencyPayload;\n reportId: ReportIDPlusForecastID;\n sectionId: ID;\n timeframe: 'month' | 'quarter' | 'year';\n }>\n ) {\n updateCalculatedSection(\n draft,\n action.payload.timeframe,\n action.payload.sectionId,\n action.payload.reportId,\n action.payload.calculatedSectionPayload,\n action.payload.currencyPayload\n );\n },\n },\n clearAllSectionsAccountsView(draft) {\n Object.assign(draft, initialState);\n },\n },\n});\n\nexport const {\n updateSectionAccountsView,\n updateCalculatedSectionAccountsView,\n clearAllSectionsAccountsView,\n} = sectionAccountsView.actions;\n\nexport default sectionAccountsView.reducer;\n\nconst updateSection = (\n draft: SectionAccountsViewState,\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n sectionPayload: SectionByAccountGroupCOABalanceGroupedPayload,\n accountsMetadataPayload: AccountMetadataPayload[],\n currencyPayload: CurrencyPayload\n) => {\n const sectionKey = getSectionAccountViewKey(sectionId, reportId);\n const section = draft.sectionsByKey[sectionKey];\n\n if (section != null) {\n draft.sectionsByKey[sectionKey].balancesByPeriod = Object.assign(\n {},\n draft.sectionsByKey[sectionKey].balancesByPeriod,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n sectionPayload,\n currencyPayload,\n timeframe\n )\n );\n } else {\n const accountsMetadata = accountsMetadataPayload.map((eachAccount) =>\n mapAccountMetadataPayloadToAccountMetadata(eachAccount)\n );\n const nestedAccounts = getNestedAccountIDHierarchyForAccounts(\n sectionPayload.accounts != null\n ? Object.keys(sectionPayload.accounts)\n : [],\n accountsMetadata\n );\n\n const accountGroupKeys = getAccountGroupsKeysInSection(\n sectionPayload.account_groups,\n sectionId as AccountGroupType,\n reportId\n );\n\n draft.sectionsByKey[sectionKey] =\n mapSectionByAccountCOABalanceGroupedPayloadToSection(\n timeframe,\n sectionPayload,\n accountGroupKeys,\n nestedAccounts,\n currencyPayload,\n {sectionId, reportId}\n );\n }\n};\n\nconst updateCalculatedSection = (\n draft: SectionAccountsViewState,\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportIDPlusForecastID,\n calculatedSectionPayload: COABalanceGroupedByPeriodPayloadV2,\n currencyPayload: CurrencyPayload\n) => {\n const sectionKey = getSectionAccountViewKey(sectionId, reportId);\n const section = draft.sectionsByKey[sectionKey];\n const balances =\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n calculatedSectionPayload,\n currencyPayload,\n timeframe\n );\n if (section != null) {\n draft.sectionsByKey[sectionKey].balancesByPeriod = Object.assign(\n {},\n draft.sectionsByKey[sectionKey].balancesByPeriod,\n balances\n );\n } else {\n draft.sectionsByKey[sectionKey] = {\n key: sectionKey,\n sectionId: sectionId,\n accountGroupKeys: [],\n nestedAccountIds: [],\n balancesByPeriod: balances,\n };\n }\n};\n\nconst getAccountGroupsKeysInSection = (\n accountGroups: AccountGroupCOABalanceGroupedPayloadByAccountGroupId,\n sectionId: AccountGroupType,\n reportId: ReportIDPlusForecastID\n) => {\n const accountGroupsKeys: AccountGroupKey[] = [];\n if (accountGroups != null) {\n Object.keys(accountGroups).forEach((accountGroup) => {\n accountGroupsKeys.push(\n getAccountGroupKey(accountGroup, sectionId, reportId)\n );\n });\n }\n\n return accountGroupsKeys;\n};\n"]}
@@ -16,7 +16,6 @@ const updateSectionProjectViewEpic = (actions$) => actions$.pipe((0, operators_1
16
16
  const accountsMetadataPayload = action.payload.accountsMetadataPayload;
17
17
  const accountMetadataRecordsByID = (0, getNestedAccountIDHierarchyForReport_1.getAllAccountMetadataRecordsByID)(accountsMetadataPayload);
18
18
  const accountMetadataWithBalancesPayloads = [];
19
- console.log('$$$ [sectionProjectViewEpic] triggered for section:', sectionId, 'timeframe:', timeframe, 'projectIds:', sectionPayload.projects ? Object.keys(sectionPayload.projects) : 'null');
20
19
  if (sectionPayload.projects != null) {
21
20
  Object.keys(sectionPayload.projects).forEach((projectId) => {
22
21
  const projectAccounts = sectionPayload.projects[projectId].accounts;
@@ -24,14 +23,11 @@ const updateSectionProjectViewEpic = (actions$) => actions$.pipe((0, operators_1
24
23
  projectId,
25
24
  sectionId,
26
25
  };
27
- console.log('$$$ [sectionProjectViewEpic] project', projectId, 'in section', sectionId, 'has account keys:', projectAccounts ? Object.keys(projectAccounts) : 'null');
28
26
  getSubAccountsMetadataForProjectAccountList(projectAccounts, accountMetadataRecordsByID, sectionId, projectsViewParentID, accountMetadataWithBalancesPayloads);
29
27
  });
30
28
  }
31
- console.log('$$$ [sectionProjectViewEpic] built', accountMetadataWithBalancesPayloads.length, 'accountMetadataWithBalancesPayloads for section', sectionId, accountMetadataWithBalancesPayloads);
32
29
  if (accountMetadataWithBalancesPayloads.length > 0) {
33
30
  actions.push((0, accountReducer_1.updateMultipleSubAccountsWithBalances)(accountMetadataWithBalancesPayloads, currencyPayload, reportId, timeframe));
34
- console.log('$$$ [sectionProjectViewEpic] dispatching updateMultipleSubAccountsWithBalances for section', sectionId);
35
31
  }
36
32
  return (0, rxjs_1.from)(actions);
37
33
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"sectionProjectViewEpic.js","sourceRoot":"","sources":["../../../src/entity/sectionProjectView/sectionProjectViewEpic.ts"],"names":[],"mappings":"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","sourcesContent":["import {ActionsObservable} from 'redux-observable';\nimport {Observable, from} from 'rxjs';\nimport {filter, mergeMap} from 'rxjs/operators';\n\nimport {\n AccountCOABalanceGroupedPayloadByAccountId,\n AccountMetadataWithBalancesPayload,\n} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {\n getAllAccountMetadataRecordsByID,\n getParentAccountId,\n} from '../../commonStateTypes/accountView/getNestedAccountIDHierarchyForReport';\nimport {AccountMetadataRecordsByID} from '../../commonStateTypes/accountView/nestedAccountID';\nimport {ID} from '../../commonStateTypes/common';\nimport {ProjectsViewParentID} from '../../commonStateTypes/projectView/projectViewParentID';\nimport {updateMultipleSubAccountsWithBalances} from '../account/accountReducer';\nimport {updateSectionProjectView} from './sectionProjectViewReducer';\n\nexport type ActionType =\n | ReturnType<typeof updateSectionProjectView>\n | ReturnType<typeof updateMultipleSubAccountsWithBalances>;\n\nexport const updateSectionProjectViewEpic = (\n actions$: ActionsObservable<ActionType>\n): Observable<ActionType> =>\n actions$.pipe(\n filter(updateSectionProjectView.match),\n mergeMap((action) => {\n const actions: ActionType[] = [];\n\n const sectionPayload = action.payload.sectionPayload;\n const sectionId = action.payload.sectionId;\n const timeframe = action.payload.timeframe;\n const reportId = action.payload.reportId;\n const currencyPayload = action.payload.currencyPayload;\n\n const accountsMetadataPayload =\n action.payload.accountsMetadataPayload;\n const accountMetadataRecordsByID: AccountMetadataRecordsByID =\n getAllAccountMetadataRecordsByID(accountsMetadataPayload);\n\n const accountMetadataWithBalancesPayloads: AccountMetadataWithBalancesPayload[] =\n [];\n\n console.log('$$$ [sectionProjectViewEpic] triggered for section:', sectionId, 'timeframe:', timeframe, 'projectIds:', sectionPayload.projects ? Object.keys(sectionPayload.projects) : 'null');\n\n if (sectionPayload.projects != null) {\n Object.keys(sectionPayload.projects).forEach((projectId) => {\n const projectAccounts =\n sectionPayload.projects[projectId].accounts;\n const projectsViewParentID: ProjectsViewParentID = {\n projectId,\n sectionId,\n };\n\n console.log('$$$ [sectionProjectViewEpic] project', projectId, 'in section', sectionId, 'has account keys:', projectAccounts ? Object.keys(projectAccounts) : 'null');\n\n getSubAccountsMetadataForProjectAccountList(\n projectAccounts,\n accountMetadataRecordsByID,\n sectionId,\n projectsViewParentID,\n accountMetadataWithBalancesPayloads\n );\n });\n }\n\n console.log('$$$ [sectionProjectViewEpic] built', accountMetadataWithBalancesPayloads.length, 'accountMetadataWithBalancesPayloads for section', sectionId, accountMetadataWithBalancesPayloads);\n\n if (accountMetadataWithBalancesPayloads.length > 0) {\n actions.push(\n updateMultipleSubAccountsWithBalances(\n accountMetadataWithBalancesPayloads,\n currencyPayload,\n reportId,\n timeframe\n )\n );\n console.log('$$$ [sectionProjectViewEpic] dispatching updateMultipleSubAccountsWithBalances for section', sectionId);\n }\n\n return from(actions);\n })\n );\n\nconst getSubAccountsMetadataForProjectAccountList = (\n accountListWithBalances: AccountCOABalanceGroupedPayloadByAccountId,\n accountMetadataRecordsByID: AccountMetadataRecordsByID,\n sectionId: ID,\n projectsViewParentID: ProjectsViewParentID,\n result: AccountMetadataWithBalancesPayload[]\n) => {\n if (accountListWithBalances != null) {\n Object.keys(accountListWithBalances).forEach((eachAccountId) => {\n const accountMetadataRecord =\n accountMetadataRecordsByID[eachAccountId];\n if (accountMetadataRecord != null) {\n const accountId = accountMetadataRecord.nestedAccountId;\n result.push({\n accountsViewParentID: {\n parentAccountId: getParentAccountId(accountId),\n sectionId,\n },\n accountMetadataPayload:\n accountMetadataRecord.accountMetadataPayload,\n accountBalancesPayload: accountListWithBalances[eachAccountId],\n projectsViewParentID,\n });\n } else {\n console.warn(\n `Account ${eachAccountId} in Section ${sectionId} Project ${projectsViewParentID.projectId} is missing metadata.`\n );\n }\n });\n }\n};\n"]}
1
+ {"version":3,"file":"sectionProjectViewEpic.js","sourceRoot":"","sources":["../../../src/entity/sectionProjectView/sectionProjectViewEpic.ts"],"names":[],"mappings":";;;AACA,+BAAsC;AACtC,8CAAgD;AAMhD,kIAGiF;AAIjF,8DAAgF;AAChF,2EAAqE;AAM9D,MAAM,4BAA4B,GAAG,CAC1C,QAAuC,EACf,EAAE,CAC1B,QAAQ,CAAC,IAAI,CACX,IAAA,kBAAM,EAAC,oDAAwB,CAAC,KAAK,CAAC,EACtC,IAAA,oBAAQ,EAAC,CAAC,MAAM,EAAE,EAAE;IAClB,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;IAEvD,MAAM,uBAAuB,GAC3B,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACzC,MAAM,0BAA0B,GAC9B,IAAA,uEAAgC,EAAC,uBAAuB,CAAC,CAAC;IAE5D,MAAM,mCAAmC,GACvC,EAAE,CAAC;IAEL,IAAI,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACzD,MAAM,eAAe,GACnB,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;YAC9C,MAAM,oBAAoB,GAAyB;gBACjD,SAAS;gBACT,SAAS;aACV,CAAC;YAEF,2CAA2C,CACzC,eAAe,EACf,0BAA0B,EAC1B,SAAS,EACT,oBAAoB,EACpB,mCAAmC,CACpC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,mCAAmC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CACV,IAAA,sDAAqC,EACnC,mCAAmC,EACnC,eAAe,EACf,QAAQ,EACR,SAAS,CACV,CACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,WAAI,EAAC,OAAO,CAAC,CAAC;AACvB,CAAC,CAAC,CACH,CAAC;AAtDS,QAAA,4BAA4B,gCAsDrC;AAEJ,MAAM,2CAA2C,GAAG,CAClD,uBAAmE,EACnE,0BAAsD,EACtD,SAAa,EACb,oBAA0C,EAC1C,MAA4C,EAC5C,EAAE;IACF,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YAC7D,MAAM,qBAAqB,GACzB,0BAA0B,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC;oBACV,oBAAoB,EAAE;wBACpB,eAAe,EAAE,IAAA,yDAAkB,EAAC,SAAS,CAAC;wBAC9C,SAAS;qBACV;oBACD,sBAAsB,EACpB,qBAAqB,CAAC,sBAAsB;oBAC9C,sBAAsB,EAAE,uBAAuB,CAAC,aAAa,CAAC;oBAC9D,oBAAoB;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CACV,WAAW,aAAa,eAAe,SAAS,YAAY,oBAAoB,CAAC,SAAS,uBAAuB,CAClH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC","sourcesContent":["import {ActionsObservable} from 'redux-observable';\nimport {Observable, from} from 'rxjs';\nimport {filter, mergeMap} from 'rxjs/operators';\n\nimport {\n AccountCOABalanceGroupedPayloadByAccountId,\n AccountMetadataWithBalancesPayload,\n} from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload';\nimport {\n getAllAccountMetadataRecordsByID,\n getParentAccountId,\n} from '../../commonStateTypes/accountView/getNestedAccountIDHierarchyForReport';\nimport {AccountMetadataRecordsByID} from '../../commonStateTypes/accountView/nestedAccountID';\nimport {ID} from '../../commonStateTypes/common';\nimport {ProjectsViewParentID} from '../../commonStateTypes/projectView/projectViewParentID';\nimport {updateMultipleSubAccountsWithBalances} from '../account/accountReducer';\nimport {updateSectionProjectView} from './sectionProjectViewReducer';\n\nexport type ActionType =\n | ReturnType<typeof updateSectionProjectView>\n | ReturnType<typeof updateMultipleSubAccountsWithBalances>;\n\nexport const updateSectionProjectViewEpic = (\n actions$: ActionsObservable<ActionType>\n): Observable<ActionType> =>\n actions$.pipe(\n filter(updateSectionProjectView.match),\n mergeMap((action) => {\n const actions: ActionType[] = [];\n\n const sectionPayload = action.payload.sectionPayload;\n const sectionId = action.payload.sectionId;\n const timeframe = action.payload.timeframe;\n const reportId = action.payload.reportId;\n const currencyPayload = action.payload.currencyPayload;\n\n const accountsMetadataPayload =\n action.payload.accountsMetadataPayload;\n const accountMetadataRecordsByID: AccountMetadataRecordsByID =\n getAllAccountMetadataRecordsByID(accountsMetadataPayload);\n\n const accountMetadataWithBalancesPayloads: AccountMetadataWithBalancesPayload[] =\n [];\n\n if (sectionPayload.projects != null) {\n Object.keys(sectionPayload.projects).forEach((projectId) => {\n const projectAccounts =\n sectionPayload.projects[projectId].accounts;\n const projectsViewParentID: ProjectsViewParentID = {\n projectId,\n sectionId,\n };\n\n getSubAccountsMetadataForProjectAccountList(\n projectAccounts,\n accountMetadataRecordsByID,\n sectionId,\n projectsViewParentID,\n accountMetadataWithBalancesPayloads\n );\n });\n }\n\n if (accountMetadataWithBalancesPayloads.length > 0) {\n actions.push(\n updateMultipleSubAccountsWithBalances(\n accountMetadataWithBalancesPayloads,\n currencyPayload,\n reportId,\n timeframe\n )\n );\n }\n\n return from(actions);\n })\n );\n\nconst getSubAccountsMetadataForProjectAccountList = (\n accountListWithBalances: AccountCOABalanceGroupedPayloadByAccountId,\n accountMetadataRecordsByID: AccountMetadataRecordsByID,\n sectionId: ID,\n projectsViewParentID: ProjectsViewParentID,\n result: AccountMetadataWithBalancesPayload[]\n) => {\n if (accountListWithBalances != null) {\n Object.keys(accountListWithBalances).forEach((eachAccountId) => {\n const accountMetadataRecord =\n accountMetadataRecordsByID[eachAccountId];\n if (accountMetadataRecord != null) {\n const accountId = accountMetadataRecord.nestedAccountId;\n result.push({\n accountsViewParentID: {\n parentAccountId: getParentAccountId(accountId),\n sectionId,\n },\n accountMetadataPayload:\n accountMetadataRecord.accountMetadataPayload,\n accountBalancesPayload: accountListWithBalances[eachAccountId],\n projectsViewParentID,\n });\n } else {\n console.warn(\n `Account ${eachAccountId} in Section ${sectionId} Project ${projectsViewParentID.projectId} is missing metadata.`\n );\n }\n });\n }\n};\n"]}
@@ -28,7 +28,6 @@ const sectionProjectView = (0, toolkit_1.createSlice)({
28
28
  },
29
29
  reducer(draft, action) {
30
30
  const { timeframe, sectionPayload, sectionId, reportId, currencyPayload } = action.payload;
31
- console.log('$$$ [sectionProjectViewReducer.updateSectionProjectView] section:', sectionId, 'timeframe:', timeframe, 'reportId:', reportId, 'projectsInPayload:', sectionPayload.projects ? Object.keys(sectionPayload.projects) : 'null', 'fullPayload:', sectionPayload);
32
31
  if (sectionPayload.projects != null) {
33
32
  Object.keys(sectionPayload.projects).forEach((projectId) => {
34
33
  const projectPayload = sectionPayload.projects[projectId];
@@ -47,7 +46,6 @@ exports.default = sectionProjectView.reducer;
47
46
  const updateSectionProject = (draft, timeframe, projectPayload, sectionId, projectId, reportId, currencyPayload) => {
48
47
  const sectionKey = (0, sectionProjectView_1.getSectionProjectViewKey)(sectionId, projectId, reportId);
49
48
  const section = draft.sectionsByKey[sectionKey];
50
- console.log('$$$ Updating section project view for section key:', sectionKey, 'with payload:', projectPayload);
51
49
  if (section != null) {
52
50
  draft.sectionsByKey[sectionKey].balancesByPeriod = Object.assign({}, draft.sectionsByKey[sectionKey].balancesByPeriod, (0, coaBalancePayload_1.mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod)(projectPayload, currencyPayload, timeframe));
53
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sectionProjectViewReducer.js","sourceRoot":"","sources":["../../../src/entity/sectionProjectView/sectionProjectViewReducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\n\nimport {COABalanceGroupedByPeriodPayloadV2, mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod} from '../../commonPayloadTypes/v2/coaBalancePayload';\nimport {CurrencyPayload} from '../../commonPayloadTypes/v2/viewAndReportPayloadv2';\nimport {ID} from '../../commonStateTypes/common';\nimport {ReportID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {AccountMetadataPayload} from '../account/accountPayload';\nimport {SectionByProjectCOABalanceGroupedPayloadV2} from '../../view/profitAndLossProjectView/profitAndLossProjectViewPayload';\nimport {getSectionProjectViewKey} from './sectionProjectView';\nimport {mapProjectCOABalanceGroupedPayloadToSectionProjectView} from './sectionProjectViewHelper';\nimport {SectionProjectViewState} from './sectionProjectViewState';\n\nexport const initialState: SectionProjectViewState = {\n sectionsByKey: {},\n};\n\nconst sectionProjectView = createSlice({\n name: 'sectionProjectView',\n initialState,\n reducers: {\n updateSectionProjectView: {\n prepare(\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportID,\n sectionPayload: SectionByProjectCOABalanceGroupedPayloadV2,\n accountsMetadataPayload: AccountMetadataPayload[],\n currencyPayload: CurrencyPayload\n ) {\n return {\n payload: {\n timeframe,\n reportId,\n sectionId,\n sectionPayload,\n accountsMetadataPayload,\n currencyPayload,\n },\n };\n },\n reducer(\n draft,\n action: PayloadAction<{\n accountsMetadataPayload: AccountMetadataPayload[];\n currencyPayload: CurrencyPayload;\n reportId: ReportID;\n sectionId: ID;\n sectionPayload: SectionByProjectCOABalanceGroupedPayloadV2;\n timeframe: 'month' | 'quarter' | 'year';\n }>\n ) {\n const {timeframe, sectionPayload, sectionId, reportId, currencyPayload} =\n action.payload;\n\n console.log('$$$ [sectionProjectViewReducer.updateSectionProjectView] section:', sectionId, 'timeframe:', timeframe, 'reportId:', reportId, 'projectsInPayload:', sectionPayload.projects ? Object.keys(sectionPayload.projects) : 'null', 'fullPayload:', sectionPayload);\n\n if (sectionPayload.projects != null) {\n Object.keys(sectionPayload.projects).forEach((projectId) => {\n const projectPayload = sectionPayload.projects[projectId];\n updateSectionProject(\n draft,\n timeframe,\n projectPayload,\n sectionId,\n projectId,\n reportId,\n currencyPayload\n );\n });\n }\n },\n },\n clearAllSectionsProjectView(draft) {\n Object.assign(draft, initialState);\n },\n },\n});\n\nexport const {updateSectionProjectView, clearAllSectionsProjectView} =\n sectionProjectView.actions;\n\nexport default sectionProjectView.reducer;\n\nconst updateSectionProject = (\n draft: SectionProjectViewState,\n timeframe: 'month' | 'quarter' | 'year',\n projectPayload: COABalanceGroupedByPeriodPayloadV2,\n sectionId: ID,\n projectId: ID,\n reportId: ReportID,\n currencyPayload: CurrencyPayload\n) => {\n const sectionKey = getSectionProjectViewKey(sectionId, projectId, reportId);\n const section = draft.sectionsByKey[sectionKey];\n console.log('$$$ Updating section project view for section key:', sectionKey, 'with payload:', projectPayload);\n if (section != null) {\n draft.sectionsByKey[sectionKey].balancesByPeriod = Object.assign(\n {},\n draft.sectionsByKey[sectionKey].balancesByPeriod,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n projectPayload,\n currencyPayload,\n timeframe\n )\n );\n } else {\n draft.sectionsByKey[sectionKey] =\n mapProjectCOABalanceGroupedPayloadToSectionProjectView(\n timeframe,\n projectPayload,\n currencyPayload,\n {sectionId, projectId, reportId}\n );\n }\n};\n"]}
1
+ {"version":3,"file":"sectionProjectViewReducer.js","sourceRoot":"","sources":["../../../src/entity/sectionProjectView/sectionProjectViewReducer.ts"],"names":[],"mappings":";;;;AAAA,8CAA4D;AAE5D,qFAAmK;AAMnK,6DAA8D;AAC9D,yEAAkG;AAGrF,QAAA,YAAY,GAA4B;IACnD,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAA,qBAAW,EAAC;IACrC,IAAI,EAAE,oBAAoB;IAC1B,YAAY,EAAZ,oBAAY;IACZ,QAAQ,EAAE;QACR,wBAAwB,EAAE;YACxB,OAAO,CACL,SAAuC,EACvC,SAAa,EACb,QAAkB,EAClB,cAA0D,EAC1D,uBAAiD,EACjD,eAAgC;gBAEhC,OAAO;oBACL,OAAO,EAAE;wBACP,SAAS;wBACT,QAAQ;wBACR,SAAS;wBACT,cAAc;wBACd,uBAAuB;wBACvB,eAAe;qBAChB;iBACF,CAAC;YACJ,CAAC;YACD,OAAO,CACL,KAAK,EACL,MAOE;gBAEF,MAAM,EAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAC,GACrE,MAAM,CAAC,OAAO,CAAC;gBAEjB,IAAI,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;wBACzD,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAC1D,oBAAoB,CAClB,KAAK,EACL,SAAS,EACT,cAAc,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EACR,eAAe,CAChB,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QACD,2BAA2B,CAAC,KAAK;YAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAY,CAAC,CAAC;QACrC,CAAC;KACF;CACF,CAAC,CAAC;AAEU,KACX,kBAAkB,CAAC,OAAO,EADd,gCAAwB,gCAAE,mCAA2B,kCACtC;AAE7B,kBAAe,kBAAkB,CAAC,OAAO,CAAC;AAE1C,MAAM,oBAAoB,GAAG,CAC3B,KAA8B,EAC9B,SAAuC,EACvC,cAAkD,EAClD,SAAa,EACb,SAAa,EACb,QAAkB,EAClB,eAAgC,EAChC,EAAE;IACF,MAAM,UAAU,GAAG,IAAA,6CAAwB,EAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEhD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAC9D,EAAE,EACF,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAChD,IAAA,oFAAgE,EAC9D,cAAc,EACd,eAAe,EACf,SAAS,CACV,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;YAC7B,IAAA,iFAAsD,EACpD,SAAS,EACT,cAAc,EACd,eAAe,EACf,EAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAC,CACjC,CAAC;IACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import {PayloadAction, createSlice} from '@reduxjs/toolkit';\n\nimport {COABalanceGroupedByPeriodPayloadV2, mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod} from '../../commonPayloadTypes/v2/coaBalancePayload';\nimport {CurrencyPayload} from '../../commonPayloadTypes/v2/viewAndReportPayloadv2';\nimport {ID} from '../../commonStateTypes/common';\nimport {ReportID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {AccountMetadataPayload} from '../account/accountPayload';\nimport {SectionByProjectCOABalanceGroupedPayloadV2} from '../../view/profitAndLossProjectView/profitAndLossProjectViewPayload';\nimport {getSectionProjectViewKey} from './sectionProjectView';\nimport {mapProjectCOABalanceGroupedPayloadToSectionProjectView} from './sectionProjectViewHelper';\nimport {SectionProjectViewState} from './sectionProjectViewState';\n\nexport const initialState: SectionProjectViewState = {\n sectionsByKey: {},\n};\n\nconst sectionProjectView = createSlice({\n name: 'sectionProjectView',\n initialState,\n reducers: {\n updateSectionProjectView: {\n prepare(\n timeframe: 'month' | 'quarter' | 'year',\n sectionId: ID,\n reportId: ReportID,\n sectionPayload: SectionByProjectCOABalanceGroupedPayloadV2,\n accountsMetadataPayload: AccountMetadataPayload[],\n currencyPayload: CurrencyPayload\n ) {\n return {\n payload: {\n timeframe,\n reportId,\n sectionId,\n sectionPayload,\n accountsMetadataPayload,\n currencyPayload,\n },\n };\n },\n reducer(\n draft,\n action: PayloadAction<{\n accountsMetadataPayload: AccountMetadataPayload[];\n currencyPayload: CurrencyPayload;\n reportId: ReportID;\n sectionId: ID;\n sectionPayload: SectionByProjectCOABalanceGroupedPayloadV2;\n timeframe: 'month' | 'quarter' | 'year';\n }>\n ) {\n const {timeframe, sectionPayload, sectionId, reportId, currencyPayload} =\n action.payload;\n\n if (sectionPayload.projects != null) {\n Object.keys(sectionPayload.projects).forEach((projectId) => {\n const projectPayload = sectionPayload.projects[projectId];\n updateSectionProject(\n draft,\n timeframe,\n projectPayload,\n sectionId,\n projectId,\n reportId,\n currencyPayload\n );\n });\n }\n },\n },\n clearAllSectionsProjectView(draft) {\n Object.assign(draft, initialState);\n },\n },\n});\n\nexport const {updateSectionProjectView, clearAllSectionsProjectView} =\n sectionProjectView.actions;\n\nexport default sectionProjectView.reducer;\n\nconst updateSectionProject = (\n draft: SectionProjectViewState,\n timeframe: 'month' | 'quarter' | 'year',\n projectPayload: COABalanceGroupedByPeriodPayloadV2,\n sectionId: ID,\n projectId: ID,\n reportId: ReportID,\n currencyPayload: CurrencyPayload\n) => {\n const sectionKey = getSectionProjectViewKey(sectionId, projectId, reportId);\n const section = draft.sectionsByKey[sectionKey];\n\n if (section != null) {\n draft.sectionsByKey[sectionKey].balancesByPeriod = Object.assign(\n {},\n draft.sectionsByKey[sectionKey].balancesByPeriod,\n mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(\n projectPayload,\n currencyPayload,\n timeframe\n )\n );\n } else {\n draft.sectionsByKey[sectionKey] =\n mapProjectCOABalanceGroupedPayloadToSectionProjectView(\n timeframe,\n projectPayload,\n currencyPayload,\n {sectionId, projectId, reportId}\n );\n }\n};\n"]}
@@ -15,20 +15,27 @@ const getNestedAccountIDHierarchyForSection_1 = require("../sectionAccountsView/
15
15
  const sectionProjectView_1 = require("./sectionProjectView");
16
16
  const getSectionProjectViewReport = (accountState, projectState, sectionState, projectIds, id, filter) => {
17
17
  const projectIdsToShow = projectIds.filter((projectId) => !filter.projectsToFilterOut.includes(projectId));
18
+ console.log('$$$ [getSectionProjectViewReport] IN section:', id.sectionId, 'reportId:', id.reportId, 'projectIds:', projectIds, 'projectIdsToShow:', projectIdsToShow, 'filter:', filter);
19
+ console.log('$$$ [getSectionProjectViewReport] sectionState.sectionsByKey keys:', Object.keys(sectionState.sectionsByKey));
20
+ console.log('$$$ [getSectionProjectViewReport] projectState.projects keys:', Object.keys(projectState.projects));
18
21
  const projectReports = [];
19
22
  const sectionBalancesTotalByPeriodArray = [];
20
23
  const accountsByProject = getAccountsByProject(accountState, id.sectionId, id.reportId);
24
+ console.log('$$$ [getSectionProjectViewReport] accountsByProject for section', id.sectionId, ':', accountsByProject);
21
25
  projectIdsToShow.forEach((projectId) => {
22
26
  const project = (0, projectSelector_1.getProjectById)(projectState, projectId);
23
27
  if (project == null) {
28
+ console.log('$$$ [getSectionProjectViewReport] SKIP projectId', projectId, '- not found in projectState');
24
29
  return;
25
30
  }
26
31
  const projectAccountIds = accountsByProject[projectId] ?? [];
32
+ console.log('$$$ [getSectionProjectViewReport] project', projectId, '(', project.projectName, ') has', projectAccountIds.length, 'accountIds:', projectAccountIds);
27
33
  const accountsMetadata = projectAccountIds
28
34
  .map((accountId) => {
29
35
  const key = (0, accountState_1.getAccountKey)(id.reportId, accountId, undefined, undefined, { projectId, sectionId: id.sectionId });
30
36
  const account = accountState.accountsByKey[key];
31
37
  if (account == null) {
38
+ console.log('$$$ [getSectionProjectViewReport] account lookup MISS for key', key);
32
39
  return undefined;
33
40
  }
34
41
  return (0, accountPayload_1.mapAccountMetadataPayloadToAccountMetadata)({
@@ -42,6 +49,7 @@ const getSectionProjectViewReport = (accountState, projectState, sectionState, p
42
49
  })
43
50
  .filter((metadata) => metadata != null);
44
51
  const nestedAccountHierarchy = (0, getNestedAccountIDHierarchyForSection_1.getNestedAccountIDHierarchyForAccounts)(projectAccountIds, accountsMetadata);
52
+ console.log('$$$ [getSectionProjectViewReport] project', projectId, 'nestedAccountHierarchy length:', nestedAccountHierarchy.length, 'hierarchy:', nestedAccountHierarchy);
45
53
  const nestedAccountReports = [];
46
54
  nestedAccountHierarchy.forEach((accountIdHierarchy) => {
47
55
  const report = (0, subAccountSelector_1.getNestedAccountReportForAccount)(accountState, {
@@ -55,9 +63,13 @@ const getSectionProjectViewReport = (accountState, projectState, sectionState, p
55
63
  if (report != null) {
56
64
  nestedAccountReports.push(report);
57
65
  }
66
+ else {
67
+ console.log('$$$ [getSectionProjectViewReport] nested report NULL for hierarchy', accountIdHierarchy);
68
+ }
58
69
  });
59
70
  const projectSectionKey = (0, sectionProjectView_1.getSectionProjectViewKey)(id.sectionId, projectId, id.reportId);
60
71
  const projectSectionView = (0, get_1.default)(sectionState.sectionsByKey, projectSectionKey, undefined);
72
+ console.log('$$$ [getSectionProjectViewReport] project', projectId, 'projectSectionKey:', projectSectionKey, 'projectSectionView found:', projectSectionView != null, 'balancesByPeriod keys:', projectSectionView?.balancesByPeriod ? Object.keys(projectSectionView.balancesByPeriod) : 'n/a');
61
73
  const projectBalancesTotalByPeriod = projectSectionView?.balancesByPeriod ?? {};
62
74
  const projectReport = {
63
75
  projectId,
@@ -66,10 +78,12 @@ const getSectionProjectViewReport = (accountState, projectState, sectionState, p
66
78
  ...(0, coaBalance_1.getCOABalances)(projectBalancesTotalByPeriod, filter),
67
79
  projectBalancesTotalByPeriod,
68
80
  };
81
+ console.log('$$$ [getSectionProjectViewReport] built projectReport for', projectId, '- accounts:', nestedAccountReports.length, 'report:', projectReport);
69
82
  projectReports.push(projectReport);
70
83
  sectionBalancesTotalByPeriodArray.push(projectBalancesTotalByPeriod);
71
84
  });
72
85
  const sectionBalancesTotalByPeriod = (0, getSumOfBalancesGroupedByPeriod_1.getSumOfBalancesByGroupedByPeriod)(sectionBalancesTotalByPeriodArray) ?? {};
86
+ console.log('$$$ [getSectionProjectViewReport] OUT section:', id.sectionId, 'projectReports count:', projectReports.length, 'projectReports:', projectReports);
73
87
  return {
74
88
  projects: projectReports,
75
89
  ...(0, coaBalance_1.getCOABalances)(sectionBalancesTotalByPeriod, filter),
@@ -79,17 +93,32 @@ const getSectionProjectViewReport = (accountState, projectState, sectionState, p
79
93
  exports.getSectionProjectViewReport = getSectionProjectViewReport;
80
94
  const getAccountsByProject = (accountState, sectionId, reportId) => {
81
95
  const result = {};
96
+ const allKeys = Object.keys(accountState.accountsByKey);
97
+ let matched = 0;
98
+ let skippedNoProjectParent = 0;
99
+ let skippedSectionMismatch = 0;
100
+ let skippedReportMismatch = 0;
82
101
  Object.values(accountState.accountsByKey).forEach((account) => {
83
- if (account.projectsViewParentId != null &&
84
- account.projectsViewParentId.sectionId === sectionId &&
85
- account.key.endsWith(reportId)) {
86
- const projectId = account.projectsViewParentId.projectId;
87
- if (result[projectId] == null) {
88
- result[projectId] = [];
89
- }
90
- result[projectId].push(account.accountId);
102
+ if (account.projectsViewParentId == null) {
103
+ skippedNoProjectParent += 1;
104
+ return;
105
+ }
106
+ if (account.projectsViewParentId.sectionId !== sectionId) {
107
+ skippedSectionMismatch += 1;
108
+ return;
109
+ }
110
+ if (!account.key.endsWith(reportId)) {
111
+ skippedReportMismatch += 1;
112
+ return;
113
+ }
114
+ matched += 1;
115
+ const projectId = account.projectsViewParentId.projectId;
116
+ if (result[projectId] == null) {
117
+ result[projectId] = [];
91
118
  }
119
+ result[projectId].push(account.accountId);
92
120
  });
121
+ console.log('$$$ [getAccountsByProject] section:', sectionId, 'reportId:', reportId, 'totalAccounts:', allKeys.length, 'matched:', matched, 'skippedNoProjectParent:', skippedNoProjectParent, 'skippedSectionMismatch:', skippedSectionMismatch, 'skippedReportMismatch:', skippedReportMismatch);
93
122
  return result;
94
123
  };
95
124
  //# sourceMappingURL=sectionProjectViewSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sectionProjectViewSelector.js","sourceRoot":"","sources":["../../../src/entity/sectionProjectView/sectionProjectViewSelector.ts"],"names":[],"mappings":"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","sourcesContent":["import recordGet from 'lodash/get';\n\nimport {COABalancesFilterProjectView} from '../../commonStateTypes/coaBalance/coaBalancesFilterProjectView';\nimport {\n COABalanceGroupedByPeriod,\n getCOABalances,\n} from '../../commonStateTypes/coaBalance/coaBalance';\nimport {getSumOfBalancesByGroupedByPeriod} from '../../commonStateTypes/coaBalance/classBalances/getSumOfBalancesGroupedByPeriod';\nimport {ID} from '../../commonStateTypes/common';\nimport {ReportID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {mapAccountMetadataPayloadToAccountMetadata} from '../account/accountPayload';\nimport {Account, AccountState, getAccountKey} from '../account/accountState';\nimport {\n NestedAccountReport,\n getNestedAccountReportForAccount,\n} from '../account/subAccountSelector';\nimport {getProjectById} from '../project/projectSelector';\nimport {ProjectState} from '../project/projectReducer';\nimport {getNestedAccountIDHierarchyForAccounts} from '../sectionAccountsView/getNestedAccountIDHierarchyForSection';\nimport {getSectionProjectViewKey} from './sectionProjectView';\nimport {\n ProjectReportWithBalances,\n SectionProjectViewReport,\n} from './sectionProjectViewSelectorTypes';\nimport {SectionProjectViewState} from './sectionProjectViewState';\n\nexport const getSectionProjectViewReport = (\n accountState: AccountState,\n projectState: ProjectState,\n sectionState: SectionProjectViewState,\n projectIds: ID[],\n id: {\n reportId: ReportID;\n sectionId: ID;\n },\n filter: COABalancesFilterProjectView\n): SectionProjectViewReport => {\n const projectIdsToShow = projectIds.filter(\n (projectId) => !filter.projectsToFilterOut.includes(projectId)\n );\n\n const projectReports: ProjectReportWithBalances[] = [];\n const sectionBalancesTotalByPeriodArray: COABalanceGroupedByPeriod[] = [];\n\n const accountsByProject = getAccountsByProject(\n accountState,\n id.sectionId,\n id.reportId\n );\n\n projectIdsToShow.forEach((projectId) => {\n const project = getProjectById(projectState, projectId);\n if (project == null) {\n return;\n }\n\n const projectAccountIds = accountsByProject[projectId] ?? [];\n\n const accountsMetadata = projectAccountIds\n .map((accountId) => {\n const key = getAccountKey(\n id.reportId,\n accountId,\n undefined,\n undefined,\n {projectId, sectionId: id.sectionId}\n );\n const account = accountState.accountsByKey[key];\n if (account == null) {\n return undefined;\n }\n return mapAccountMetadataPayloadToAccountMetadata({\n account_id: account.accountId,\n account_name: account.accountName,\n account_description: account.accountDescription,\n labels: account.labels,\n is_sub_account: account.accountsViewParentId != null,\n parent_account_id:\n account.accountsViewParentId?.parentAccountId?.[0] ?? null,\n });\n })\n .filter(\n (metadata): metadata is NonNullable<typeof metadata> =>\n metadata != null\n );\n\n const nestedAccountHierarchy = getNestedAccountIDHierarchyForAccounts(\n projectAccountIds,\n accountsMetadata\n );\n\n const nestedAccountReports: NestedAccountReport[] = [];\n nestedAccountHierarchy.forEach((accountIdHierarchy) => {\n const report = getNestedAccountReportForAccount(\n accountState,\n {\n accountIdHierarchy,\n reportId: id.reportId,\n projectsViewParentId: {\n projectId,\n sectionId: id.sectionId,\n },\n },\n filter,\n nestedAccountHierarchy.length > 1\n );\n if (report != null) {\n nestedAccountReports.push(report);\n }\n });\n\n const projectSectionKey = getSectionProjectViewKey(\n id.sectionId,\n projectId,\n id.reportId\n );\n const projectSectionView = recordGet(\n sectionState.sectionsByKey,\n projectSectionKey,\n undefined\n );\n\n const projectBalancesTotalByPeriod =\n projectSectionView?.balancesByPeriod ?? {};\n\n const projectReport: ProjectReportWithBalances = {\n projectId,\n projectName: project.projectName,\n accounts: nestedAccountReports,\n ...getCOABalances(projectBalancesTotalByPeriod, filter),\n projectBalancesTotalByPeriod,\n };\n\n projectReports.push(projectReport);\n sectionBalancesTotalByPeriodArray.push(projectBalancesTotalByPeriod);\n });\n\n const sectionBalancesTotalByPeriod =\n getSumOfBalancesByGroupedByPeriod(sectionBalancesTotalByPeriodArray) ?? {};\n\n return {\n projects: projectReports,\n ...getCOABalances(sectionBalancesTotalByPeriod, filter),\n sectionBalancesTotalByPeriod,\n };\n};\n\nconst getAccountsByProject = (\n accountState: AccountState,\n sectionId: ID,\n reportId: ReportID\n): Record<ID, ID[]> => {\n const result: Record<ID, ID[]> = {};\n Object.values(accountState.accountsByKey).forEach((account: Account) => {\n if (\n account.projectsViewParentId != null &&\n account.projectsViewParentId.sectionId === sectionId &&\n account.key.endsWith(reportId)\n ) {\n const projectId = account.projectsViewParentId.projectId;\n if (result[projectId] == null) {\n result[projectId] = [];\n }\n result[projectId].push(account.accountId);\n }\n });\n return result;\n};\n"]}
1
+ {"version":3,"file":"sectionProjectViewSelector.js","sourceRoot":"","sources":["../../../src/entity/sectionProjectView/sectionProjectViewSelector.ts"],"names":[],"mappings":"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","sourcesContent":["import recordGet from 'lodash/get';\n\nimport {COABalancesFilterProjectView} from '../../commonStateTypes/coaBalance/coaBalancesFilterProjectView';\nimport {\n COABalanceGroupedByPeriod,\n getCOABalances,\n} from '../../commonStateTypes/coaBalance/coaBalance';\nimport {getSumOfBalancesByGroupedByPeriod} from '../../commonStateTypes/coaBalance/classBalances/getSumOfBalancesGroupedByPeriod';\nimport {ID} from '../../commonStateTypes/common';\nimport {ReportID} from '../../commonStateTypes/viewAndReport/viewAndReport';\nimport {mapAccountMetadataPayloadToAccountMetadata} from '../account/accountPayload';\nimport {Account, AccountState, getAccountKey} from '../account/accountState';\nimport {\n NestedAccountReport,\n getNestedAccountReportForAccount,\n} from '../account/subAccountSelector';\nimport {getProjectById} from '../project/projectSelector';\nimport {ProjectState} from '../project/projectReducer';\nimport {getNestedAccountIDHierarchyForAccounts} from '../sectionAccountsView/getNestedAccountIDHierarchyForSection';\nimport {getSectionProjectViewKey} from './sectionProjectView';\nimport {\n ProjectReportWithBalances,\n SectionProjectViewReport,\n} from './sectionProjectViewSelectorTypes';\nimport {SectionProjectViewState} from './sectionProjectViewState';\n\nexport const getSectionProjectViewReport = (\n accountState: AccountState,\n projectState: ProjectState,\n sectionState: SectionProjectViewState,\n projectIds: ID[],\n id: {\n reportId: ReportID;\n sectionId: ID;\n },\n filter: COABalancesFilterProjectView\n): SectionProjectViewReport => {\n const projectIdsToShow = projectIds.filter(\n (projectId) => !filter.projectsToFilterOut.includes(projectId)\n );\n\n console.log('$$$ [getSectionProjectViewReport] IN section:', id.sectionId, 'reportId:', id.reportId, 'projectIds:', projectIds, 'projectIdsToShow:', projectIdsToShow, 'filter:', filter);\n console.log('$$$ [getSectionProjectViewReport] sectionState.sectionsByKey keys:', Object.keys(sectionState.sectionsByKey));\n console.log('$$$ [getSectionProjectViewReport] projectState.projects keys:', Object.keys(projectState.projects));\n\n const projectReports: ProjectReportWithBalances[] = [];\n const sectionBalancesTotalByPeriodArray: COABalanceGroupedByPeriod[] = [];\n\n const accountsByProject = getAccountsByProject(\n accountState,\n id.sectionId,\n id.reportId\n );\n\n console.log('$$$ [getSectionProjectViewReport] accountsByProject for section', id.sectionId, ':', accountsByProject);\n\n projectIdsToShow.forEach((projectId) => {\n const project = getProjectById(projectState, projectId);\n if (project == null) {\n console.log('$$$ [getSectionProjectViewReport] SKIP projectId', projectId, '- not found in projectState');\n return;\n }\n\n const projectAccountIds = accountsByProject[projectId] ?? [];\n\n console.log('$$$ [getSectionProjectViewReport] project', projectId, '(', project.projectName, ') has', projectAccountIds.length, 'accountIds:', projectAccountIds);\n\n const accountsMetadata = projectAccountIds\n .map((accountId) => {\n const key = getAccountKey(\n id.reportId,\n accountId,\n undefined,\n undefined,\n {projectId, sectionId: id.sectionId}\n );\n const account = accountState.accountsByKey[key];\n if (account == null) {\n console.log('$$$ [getSectionProjectViewReport] account lookup MISS for key', key);\n return undefined;\n }\n return mapAccountMetadataPayloadToAccountMetadata({\n account_id: account.accountId,\n account_name: account.accountName,\n account_description: account.accountDescription,\n labels: account.labels,\n is_sub_account: account.accountsViewParentId != null,\n parent_account_id:\n account.accountsViewParentId?.parentAccountId?.[0] ?? null,\n });\n })\n .filter(\n (metadata): metadata is NonNullable<typeof metadata> =>\n metadata != null\n );\n\n const nestedAccountHierarchy = getNestedAccountIDHierarchyForAccounts(\n projectAccountIds,\n accountsMetadata\n );\n\n console.log('$$$ [getSectionProjectViewReport] project', projectId, 'nestedAccountHierarchy length:', nestedAccountHierarchy.length, 'hierarchy:', nestedAccountHierarchy);\n\n const nestedAccountReports: NestedAccountReport[] = [];\n nestedAccountHierarchy.forEach((accountIdHierarchy) => {\n const report = getNestedAccountReportForAccount(\n accountState,\n {\n accountIdHierarchy,\n reportId: id.reportId,\n projectsViewParentId: {\n projectId,\n sectionId: id.sectionId,\n },\n },\n filter,\n nestedAccountHierarchy.length > 1\n );\n if (report != null) {\n nestedAccountReports.push(report);\n } else {\n console.log('$$$ [getSectionProjectViewReport] nested report NULL for hierarchy', accountIdHierarchy);\n }\n });\n\n const projectSectionKey = getSectionProjectViewKey(\n id.sectionId,\n projectId,\n id.reportId\n );\n const projectSectionView = recordGet(\n sectionState.sectionsByKey,\n projectSectionKey,\n undefined\n );\n\n console.log('$$$ [getSectionProjectViewReport] project', projectId, 'projectSectionKey:', projectSectionKey, 'projectSectionView found:', projectSectionView != null, 'balancesByPeriod keys:', projectSectionView?.balancesByPeriod ? Object.keys(projectSectionView.balancesByPeriod) : 'n/a');\n\n const projectBalancesTotalByPeriod =\n projectSectionView?.balancesByPeriod ?? {};\n\n const projectReport: ProjectReportWithBalances = {\n projectId,\n projectName: project.projectName,\n accounts: nestedAccountReports,\n ...getCOABalances(projectBalancesTotalByPeriod, filter),\n projectBalancesTotalByPeriod,\n };\n\n console.log('$$$ [getSectionProjectViewReport] built projectReport for', projectId, '- accounts:', nestedAccountReports.length, 'report:', projectReport);\n\n projectReports.push(projectReport);\n sectionBalancesTotalByPeriodArray.push(projectBalancesTotalByPeriod);\n });\n\n const sectionBalancesTotalByPeriod =\n getSumOfBalancesByGroupedByPeriod(sectionBalancesTotalByPeriodArray) ?? {};\n\n console.log('$$$ [getSectionProjectViewReport] OUT section:', id.sectionId, 'projectReports count:', projectReports.length, 'projectReports:', projectReports);\n\n return {\n projects: projectReports,\n ...getCOABalances(sectionBalancesTotalByPeriod, filter),\n sectionBalancesTotalByPeriod,\n };\n};\n\nconst getAccountsByProject = (\n accountState: AccountState,\n sectionId: ID,\n reportId: ReportID\n): Record<ID, ID[]> => {\n const result: Record<ID, ID[]> = {};\n const allKeys = Object.keys(accountState.accountsByKey);\n let matched = 0;\n let skippedNoProjectParent = 0;\n let skippedSectionMismatch = 0;\n let skippedReportMismatch = 0;\n Object.values(accountState.accountsByKey).forEach((account: Account) => {\n if (account.projectsViewParentId == null) {\n skippedNoProjectParent += 1;\n return;\n }\n if (account.projectsViewParentId.sectionId !== sectionId) {\n skippedSectionMismatch += 1;\n return;\n }\n if (!account.key.endsWith(reportId)) {\n skippedReportMismatch += 1;\n return;\n }\n matched += 1;\n const projectId = account.projectsViewParentId.projectId;\n if (result[projectId] == null) {\n result[projectId] = [];\n }\n result[projectId].push(account.accountId);\n });\n console.log('$$$ [getAccountsByProject] section:', sectionId, 'reportId:', reportId, 'totalAccounts:', allKeys.length, 'matched:', matched, 'skippedNoProjectParent:', skippedNoProjectParent, 'skippedSectionMismatch:', skippedSectionMismatch, 'skippedReportMismatch:', skippedReportMismatch);\n return result;\n};\n"]}
@@ -15,7 +15,6 @@ const account = createSlice({
15
15
  reducers: {
16
16
  updateAccounts: {
17
17
  reducer(draft, action) {
18
- console.log('$$$ [accountReducer.updateAccounts] reportId:', action.meta.reportId, 'updateType:', action.meta.updateType, 'classesViewParentId:', action.meta.classesViewParentId, 'count:', action.payload.length);
19
18
  doUpdateAccounts(draft.accountsByKey, action.payload, action.meta.reportId, action.meta.classesViewParentId, action.meta.updateType);
20
19
  },
21
20
  prepare(payload, reportId, classesViewParentId, updateType = 'merge') {
@@ -27,7 +26,6 @@ const account = createSlice({
27
26
  },
28
27
  updateMultipleSubAccountsWithBalances: {
29
28
  reducer(draft, action) {
30
- console.log('$$$ [accountReducer.updateMultipleSubAccountsWithBalances] reportId:', action.payload.reportId, 'timeframe:', action.payload.timeframe, 'updateType:', action.payload.updateType, 'count:', action.payload.subAccountWithBalancesListPayloads.length, 'payloads:', action.payload.subAccountWithBalancesListPayloads);
31
29
  doUpdateSubAccountsWithBalances(draft.accountsByKey, action.payload.subAccountWithBalancesListPayloads, action.payload.currencyPayload, action.payload.reportId, action.payload.timeframe, action.payload.updateType);
32
30
  },
33
31
  prepare(subAccountWithBalancesListPayloads, currencyPayload, reportId, timeframe, updateType = 'merge') {
@@ -91,7 +89,6 @@ function doUpdateSubAccountsWithBalances(draft, subAccountWithBalancesListPayloa
91
89
  }
92
90
  function doUpdateAccountWithBalancesV2(draft, accountBasePayload, accountBalancesPayload, currencyPayload, reportId, timeframe, classesViewParentId, accountsViewParentId, projectsViewParentId, updateType) {
93
91
  const key = getAccountKey(reportId, accountBasePayload.account_id, classesViewParentId, accountsViewParentId, projectsViewParentId);
94
- console.log('$$$ [accountReducer.doUpdateAccountWithBalancesV2] key:', key, 'accountId:', accountBasePayload.account_id, 'projectsViewParentId:', projectsViewParentId, 'accountsViewParentId:', accountsViewParentId, 'classesViewParentId:', classesViewParentId);
95
92
  const balancesByPeriod = mapCOABalanceGroupedByPeriodPayloadV2ToCOABalanceGroupedByPeriod(accountBalancesPayload, currencyPayload, timeframe);
96
93
  if (key in draft && updateType === 'merge') {
97
94
  // only add balances