From 526181aa68dc4f7ed496c067e583feafb28dcfbf Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Sat, 12 Feb 2022 12:21:05 +0200 Subject: [PATCH] refactor: re-structure financial reports components. --- .../APAgingSummary/APAgingSummary.js | 23 ++-------- .../APAgingSummary/APAgingSummaryBody.js | 37 +++++++++++++++ .../APAgingSummary/APAgingSummaryTable.js | 18 +++++++- .../APAgingSummary/common.js | 13 +++++- .../ARAgingSummary/ARAgingSummary.js | 40 ++++++---------- .../ARAgingSummary/ARAgingSummaryBody.js | 38 +++++++++++++++ .../ARAgingSummary/ARAgingSummaryTable.js | 18 +++++++- .../ARAgingSummary/common.js | 16 ++++++- .../ARAgingSummary/components.js | 9 +++- .../GeneralLedger/GeneralLedger.js | 31 ++++--------- .../GeneralLedger/GeneralLedgerBody.js | 36 +++++++++++++++ .../GeneralLedger/GeneralLedgerTable.js | 6 ++- .../GeneralLedger/common.js | 17 ++++++- .../FinancialStatements/Journal/Journal.js | 46 ++++++------------- .../Journal/JournalActionsBar.js | 7 +-- .../Journal/JournalBody.js | 37 +++++++++++++++ .../Journal/JournalTable.js | 15 +++--- .../FinancialStatements/Journal/utils.js | 12 +++++ 18 files changed, 301 insertions(+), 118 deletions(-) create mode 100644 src/containers/FinancialStatements/APAgingSummary/APAgingSummaryBody.js create mode 100644 src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryBody.js create mode 100644 src/containers/FinancialStatements/GeneralLedger/GeneralLedgerBody.js create mode 100644 src/containers/FinancialStatements/Journal/JournalBody.js create mode 100644 src/containers/FinancialStatements/Journal/utils.js diff --git a/src/containers/FinancialStatements/APAgingSummary/APAgingSummary.js b/src/containers/FinancialStatements/APAgingSummary/APAgingSummary.js index 1b338bec4..85a6d509b 100644 --- a/src/containers/FinancialStatements/APAgingSummary/APAgingSummary.js +++ b/src/containers/FinancialStatements/APAgingSummary/APAgingSummary.js @@ -1,8 +1,7 @@ import React, { useState, useCallback, useEffect } from 'react'; import moment from 'moment'; -import 'style/pages/FinancialStatements/APAgingSummary.scss'; - +import { getDefaultAPAgingSummaryQuery } from './common'; import { FinancialStatement } from 'components'; import APAgingSummaryHeader from './APAgingSummaryHeader'; @@ -12,8 +11,8 @@ import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; import { APAgingSummaryProvider } from './APAgingSummaryProvider'; import { APAgingSummarySheetLoadingBar } from './components'; -import withCurrentOrganization from '../../Organization/withCurrentOrganization'; import withAPAgingSummaryActions from './withAPAgingSummaryActions'; + import { compose } from 'utils'; /** @@ -27,11 +26,7 @@ function APAgingSummary({ toggleAPAgingSummaryFilterDrawer: toggleDisplayFilterDrawer, }) { const [filter, setFilter] = useState({ - asDate: moment().endOf('day').format('YYYY-MM-DD'), - agingDaysBefore: 30, - agingPeriods: 3, - vendorsIds: [], - filterByOption: 'without-zero-balance', + ...getDefaultAPAgingSummaryQuery(), }); // Handle filter submit. @@ -50,7 +45,6 @@ function APAgingSummary({ numberFormat, }); }; - // Hide the report filter drawer once the page unmount. useEffect( () => () => { @@ -73,18 +67,11 @@ function APAgingSummary({ pageFilter={filter} onSubmitFilter={handleFilterSubmit} /> -
- -
+ ); } -export default compose( - withCurrentOrganization(({ organization }) => ({ - organizationName: organization?.name, - })), - withAPAgingSummaryActions, -)(APAgingSummary); +export default compose(withAPAgingSummaryActions)(APAgingSummary); diff --git a/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryBody.js b/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryBody.js new file mode 100644 index 000000000..cf18c3df4 --- /dev/null +++ b/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryBody.js @@ -0,0 +1,37 @@ +import React from 'react'; +import * as R from 'ramda'; + +import { FinancialReportBody } from '../FinancialReportPage'; +import APAgingSummaryTable from './APAgingSummaryTable'; +import { FinancialSheetSkeleton } from '../../../components/FinancialSheet'; + +import withCurrentOrganization from '../../Organization/withCurrentOrganization'; + +import { useAPAgingSummaryContext } from './APAgingSummaryProvider'; + +/** + * AP aging summary body. + * @returns {JSX.Element} + */ +function APAgingSummaryBodyJSX({ + // #withCurrentOrganization + organizationName, +}) { + const { isLoading } = useAPAgingSummaryContext(); + + return ( + + {isLoading ? ( + + ) : ( + + )} + + ); +} + +export const APAgingSummaryBody = R.compose( + withCurrentOrganization(({ organization }) => ({ + organizationName: organization?.name, + })), +)(APAgingSummaryBodyJSX); diff --git a/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js b/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js index c8feefb61..e5d71abe7 100644 --- a/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js +++ b/src/containers/FinancialStatements/APAgingSummary/APAgingSummaryTable.js @@ -1,7 +1,9 @@ import React from 'react'; import intl from 'react-intl-universal'; +import styled from 'styled-components'; import { DataTable, FinancialSheet } from 'components'; +import { TableStyle } from 'common'; import { useAPAgingSummaryContext } from './APAgingSummaryProvider'; import { useAPAgingSummaryColumns } from './components'; @@ -32,14 +34,26 @@ export default function APAgingSummaryTable({ asDate={new Date()} loading={isAPAgingLoading} > - ); } + +const APAgingSummaryDataTable = styled(DataTable)` + .table { + .tbody .tr { + .td { + border-bottom: 0; + padding-top: 0.32rem; + padding-bottom: 0.32rem; + } + } + } +`; diff --git a/src/containers/FinancialStatements/APAgingSummary/common.js b/src/containers/FinancialStatements/APAgingSummary/common.js index 0cb3aaea0..82ef7dee5 100644 --- a/src/containers/FinancialStatements/APAgingSummary/common.js +++ b/src/containers/FinancialStatements/APAgingSummary/common.js @@ -1,5 +1,16 @@ +import moment from 'moment'; import { transformToCamelCase, flatObject } from 'utils'; export const transformFilterFormToQuery = (form) => { return flatObject(transformToCamelCase(form)); -}; \ No newline at end of file +}; + +export const getDefaultAPAgingSummaryQuery = () => { + return { + asDate: moment().endOf('day').format('YYYY-MM-DD'), + agingDaysBefore: 30, + agingPeriods: 3, + vendorsIds: [], + filterByOption: 'without-zero-balance', + } +} \ No newline at end of file diff --git a/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummary.js b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummary.js index b013ec07f..b2c00f0b5 100644 --- a/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummary.js +++ b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummary.js @@ -1,38 +1,31 @@ import React, { useState, useCallback, useEffect } from 'react'; import moment from 'moment'; -import 'style/pages/FinancialStatements/ARAgingSummary.scss'; +// import 'style/pages/FinancialStatements/ARAgingSummary.scss'; import { FinancialStatement } from 'components'; import ARAgingSummaryHeader from './ARAgingSummaryHeader'; import ARAgingSummaryActionsBar from './ARAgingSummaryActionsBar'; -import ARAgingSummaryTable from './ARAgingSummaryTable'; import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; import { ARAgingSummaryProvider } from './ARAgingSummaryProvider'; import { ARAgingSummarySheetLoadingBar } from './components'; +import { ARAgingSummaryBody } from './ARAgingSummaryBody'; -import withARAgingSummaryActions from './withARAgingSummaryActions' -import withCurrentOrganization from '../../../containers/Organization/withCurrentOrganization'; +import withARAgingSummaryActions from './withARAgingSummaryActions'; +import { getDefaultARAgingSummaryQuery } from './common'; import { compose } from 'utils'; /** * A/R aging summary report. */ function ReceivableAgingSummarySheet({ - // #withSettings - organizationName, - // #withARAgingSummaryActions - toggleARAgingSummaryFilterDrawer: toggleDisplayFilterDrawer + toggleARAgingSummaryFilterDrawer: toggleDisplayFilterDrawer, }) { const [filter, setFilter] = useState({ - asDate: moment().endOf('day').format('YYYY-MM-DD'), - agingDaysBefore: 30, - agingPeriods: 3, - customersIds: [], - filterByOption: 'without-zero-balance', + ...getDefaultARAgingSummaryQuery(), }); // Handle filter submit. @@ -48,11 +41,13 @@ function ReceivableAgingSummarySheet({ const handleNumberFormatSubmit = (numberFormat) => { setFilter({ ...filter, numberFormat }); }; - // Hide the filter drawer once the page unmount. - useEffect(() => () => { - toggleDisplayFilterDrawer(false); - }, [toggleDisplayFilterDrawer]); + useEffect( + () => () => { + toggleDisplayFilterDrawer(false); + }, + [toggleDisplayFilterDrawer], + ); return ( @@ -68,18 +63,11 @@ function ReceivableAgingSummarySheet({ pageFilter={filter} onSubmitFilter={handleFilterSubmit} /> -
- -
+
); } -export default compose( - withCurrentOrganization(({ organization }) => ({ - organizationName: organization.name, - })), - withARAgingSummaryActions -)(ReceivableAgingSummarySheet); +export default compose(withARAgingSummaryActions)(ReceivableAgingSummarySheet); diff --git a/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryBody.js b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryBody.js new file mode 100644 index 000000000..ad5fb74fb --- /dev/null +++ b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryBody.js @@ -0,0 +1,38 @@ +import React from 'react'; +import * as R from 'ramda'; + +import ARAgingSummaryTable from './ARAgingSummaryTable'; +import { + FinancialReportBody, + FinancialSheetSkeleton, +} from '../../../components'; + +import withCurrentOrganization from '../../../containers/Organization/withCurrentOrganization'; +import { useARAgingSummaryContext } from './ARAgingSummaryProvider'; + +/** + * A/R Aging summary body. + * @returns {JSX.Element} + */ +function ARAgingSummaryBodyJSX({ + // #withCurrentOrganization + organizationName, +}) { + const { isARAgingLoading } = useARAgingSummaryContext(); + + return ( + + {isARAgingLoading ? ( + + ) : ( + + )} + + ); +} + +export const ARAgingSummaryBody = R.compose( + withCurrentOrganization(({ organization }) => ({ + organizationName: organization.name, + })), +)(ARAgingSummaryBodyJSX); diff --git a/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js index 0a2a84379..18d4899d1 100644 --- a/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js +++ b/src/containers/FinancialStatements/ARAgingSummary/ARAgingSummaryTable.js @@ -1,7 +1,9 @@ import React from 'react'; import intl from 'react-intl-universal'; +import styled from 'styled-components'; import { DataTable, FinancialSheet } from 'components'; +import { TableStyle } from 'common'; import { useARAgingSummaryContext } from './ARAgingSummaryProvider'; import { useARAgingSummaryColumns } from './components'; @@ -29,14 +31,26 @@ export default function ReceivableAgingSummaryTable({ asDate={new Date()} loading={isARAgingLoading} > - ); } + +const ARAgingSummaryDataTable = styled(DataTable)` + .table { + .tbody .tr { + .td { + border-bottom: 0; + padding-top: 0.32rem; + padding-bottom: 0.32rem; + } + } + } +`; diff --git a/src/containers/FinancialStatements/ARAgingSummary/common.js b/src/containers/FinancialStatements/ARAgingSummary/common.js index 5dc133375..0c9fd1685 100644 --- a/src/containers/FinancialStatements/ARAgingSummary/common.js +++ b/src/containers/FinancialStatements/ARAgingSummary/common.js @@ -1,5 +1,19 @@ +import moment from 'moment'; import { transformToCamelCase, flatObject } from 'utils'; export const transfromFilterFormToQuery = (form) => { return flatObject(transformToCamelCase(form)); -}; \ No newline at end of file +}; + +/** + * Retrieves the default A/R aging summary query. + */ +export const getDefaultARAgingSummaryQuery = () => { + return { + asDate: moment().endOf('day').format('YYYY-MM-DD'), + agingDaysBefore: 30, + agingPeriods: 3, + customersIds: [], + filterByOption: 'without-zero-balance', + }; +}; diff --git a/src/containers/FinancialStatements/ARAgingSummary/components.js b/src/containers/FinancialStatements/ARAgingSummary/components.js index b0e4023bd..dfc008f9e 100644 --- a/src/containers/FinancialStatements/ARAgingSummary/components.js +++ b/src/containers/FinancialStatements/ARAgingSummary/components.js @@ -1,9 +1,11 @@ import React from 'react'; import intl from 'react-intl-universal'; + import { useARAgingSummaryContext } from './ARAgingSummaryProvider'; +import { If, FormattedMessage as T } from 'components'; + import { getColumnWidth } from 'utils'; -import { FormattedMessage as T } from 'components'; -import { If } from 'components'; +import { Align } from 'common'; import FinancialLoadingBar from '../FinancialLoadingBar'; /** @@ -40,6 +42,7 @@ export const useARAgingSummaryColumns = () => { width: getColumnWidth(tableRows, `current`, { minWidth: 120, }), + align: Align.Right }, ...agingColumns.map((agingColumn, index) => ({ Header: agingColumn, @@ -47,6 +50,7 @@ export const useARAgingSummaryColumns = () => { width: getColumnWidth(tableRows, `aging-${index}`, { minWidth: 120, }), + align: Align.Right })), { Header: , @@ -56,6 +60,7 @@ export const useARAgingSummaryColumns = () => { width: getColumnWidth(tableRows, 'total', { minWidth: 120, }), + align: Align.Right }, ], [tableRows, agingColumns], diff --git a/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js b/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js index ae32d63fa..ee2a9709c 100644 --- a/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js +++ b/src/containers/FinancialStatements/GeneralLedger/GeneralLedger.js @@ -1,9 +1,7 @@ import React, { useCallback, useState } from 'react'; import moment from 'moment'; -import 'style/pages/FinancialStatements/GeneralLedger.scss'; - -import GeneralLedgerTable from './GeneralLedgerTable'; +import { FinancialStatement } from 'components'; import GeneralLedgerHeader from './GeneralLedgerHeader'; import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; @@ -13,12 +11,13 @@ import { GeneralLedgerSheetAlerts, GeneralLedgerSheetLoadingBar, } from './components'; +import { GeneralLedgerBody } from './GeneralLedgerBody'; import withGeneralLedgerActions from './withGeneralLedgerActions'; -import withCurrentOrganization from '../../Organization/withCurrentOrganization'; import { transformFilterFormToQuery } from 'containers/FinancialStatements/common'; import { compose } from 'utils'; +import { getDefaultGeneralLedgerQuery } from './common'; /** * General Ledger (GL) sheet. @@ -31,10 +30,7 @@ function GeneralLedger({ organizationName, }) { const [filter, setFilter] = useState({ - fromDate: moment().startOf('year').format('YYYY-MM-DD'), - toDate: moment().endOf('year').format('YYYY-MM-DD'), - basis: 'accural', - filterByOption: 'with-transactions', + ...getDefaultGeneralLedgerQuery(), }); // Handle financial statement filter change. @@ -63,29 +59,18 @@ function GeneralLedger({ -
+ - -
- -
-
+ +
); } -export default compose( - withGeneralLedgerActions, - withCurrentOrganization(({ organization }) => ({ - organizationName: organization.name, - })), -)(GeneralLedger); +export default compose(withGeneralLedgerActions)(GeneralLedger); diff --git a/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerBody.js b/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerBody.js new file mode 100644 index 000000000..85cb85fe4 --- /dev/null +++ b/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerBody.js @@ -0,0 +1,36 @@ +import React from 'react'; +import * as R from 'ramda'; + +import GeneralLedgerTable from './GeneralLedgerTable'; +import { FinancialSheetSkeleton } from '../../../components/FinancialSheet'; + +import withCurrentOrganization from '../../Organization/withCurrentOrganization'; + +import { FinancialReportBody } from '../FinancialReportPage'; +import { useGeneralLedgerContext } from './GeneralLedgerProvider'; + +/** + * General ledger body JSX. + */ +function GeneralLedgerBodyJSX({ + // #withCurrentOrganization + organizationName, +}) { + const { isLoading } = useGeneralLedgerContext(); + + return ( + + {isLoading ? ( + + ) : ( + + )} + + ); +} + +export const GeneralLedgerBody = R.compose( + withCurrentOrganization(({ organization }) => ({ + organizationName: organization.name, + })), +)(GeneralLedgerBodyJSX); diff --git a/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js b/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js index d07c3b78a..dc6c4b413 100644 --- a/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js +++ b/src/containers/FinancialStatements/GeneralLedger/GeneralLedgerTable.js @@ -11,6 +11,8 @@ import TableFastCell from 'components/Datatable/TableFastCell'; import { useGeneralLedgerContext } from './GeneralLedgerProvider'; import { useGeneralLedgerTableColumns } from './components'; +import { TableStyle } from 'common'; + /** * General ledger table. */ @@ -41,7 +43,6 @@ export default function GeneralLedgerTable({ companyName }) { fullWidth={true} > ); diff --git a/src/containers/FinancialStatements/GeneralLedger/common.js b/src/containers/FinancialStatements/GeneralLedger/common.js index 08a77ba26..211d588be 100644 --- a/src/containers/FinancialStatements/GeneralLedger/common.js +++ b/src/containers/FinancialStatements/GeneralLedger/common.js @@ -1,4 +1,5 @@ import intl from 'react-intl-universal'; +import moment from 'moment'; export const filterAccountsOptions = [ { @@ -9,6 +10,20 @@ export const filterAccountsOptions = [ { key: 'with-transactions', name: intl.get('accounts_with_transactions'), - hint: intl.get('include_accounts_once_has_transactions_on_given_date_period'), + hint: intl.get( + 'include_accounts_once_has_transactions_on_given_date_period', + ), }, ]; + +/** + * Retrieves the default general ledger query. + */ +export const getDefaultGeneralLedgerQuery = () => { + return { + fromDate: moment().startOf('year').format('YYYY-MM-DD'), + toDate: moment().endOf('year').format('YYYY-MM-DD'), + basis: 'accural', + filterByOption: 'with-transactions', + }; +}; diff --git a/src/containers/FinancialStatements/Journal/Journal.js b/src/containers/FinancialStatements/Journal/Journal.js index f951e79c6..e1e043c31 100644 --- a/src/containers/FinancialStatements/Journal/Journal.js +++ b/src/containers/FinancialStatements/Journal/Journal.js @@ -1,36 +1,29 @@ import React, { useState, useCallback, useEffect } from 'react'; import moment from 'moment'; -import 'style/pages/FinancialStatements/Journal.scss'; +import { FinancialStatement, DashboardPageContent } from 'components'; -import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; - -import JournalTable from './JournalTable'; import JournalHeader from './JournalHeader'; import JournalActionsBar from './JournalActionsBar'; import { JournalSheetProvider } from './JournalProvider'; import { JournalSheetLoadingBar, JournalSheetAlerts } from './components'; +import { JournalBody } from './JournalBody'; -import withCurrentOrganization from '../../Organization/withCurrentOrganization'; import withDashboardActions from 'containers/Dashboard/withDashboardActions'; import withJournalActions from './withJournalActions'; +import { getDefaultJournalQuery } from './utils'; import { compose } from 'utils'; /** * Journal sheet. */ function Journal({ - // #withPreferences - organizationName, - // #withJournalActions - toggleJournalSheetFilter + toggleJournalSheetFilter, }) { const [filter, setFilter] = useState({ - fromDate: moment().startOf('year').format('YYYY-MM-DD'), - toDate: moment().endOf('year').format('YYYY-MM-DD'), - basis: 'accural', + ...getDefaultJournalQuery(), }); // Handle financial statement filter change. @@ -47,39 +40,30 @@ function Journal({ ); // Hide the journal sheet filter drawer once the page unmount. - useEffect(() => () => { - toggleJournalSheetFilter(false); - }, [toggleJournalSheetFilter]); + useEffect( + () => () => { + toggleJournalSheetFilter(false); + }, + [toggleJournalSheetFilter], + ); return ( -
+ - -
- -
-
+ +
); } -export default compose( - withDashboardActions, - withJournalActions, - withCurrentOrganization(({ organization }) => ({ - organizationName: organization.name, - })), -)(Journal); +export default compose(withDashboardActions, withJournalActions)(Journal); diff --git a/src/containers/FinancialStatements/Journal/JournalActionsBar.js b/src/containers/FinancialStatements/Journal/JournalActionsBar.js index b0a4179df..b91a32ea4 100644 --- a/src/containers/FinancialStatements/Journal/JournalActionsBar.js +++ b/src/containers/FinancialStatements/Journal/JournalActionsBar.js @@ -8,10 +8,11 @@ import { PopoverInteractionKind, Position, } from '@blueprintjs/core'; +import classNames from 'classnames'; + import { FormattedMessage as T } from 'components'; import Icon from 'components/Icon'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; -import classNames from 'classnames'; import withJournalActions from './withJournalActions'; import withJournal from './withJournal'; @@ -56,7 +57,7 @@ function JournalActionsBar({ className={classNames(Classes.MINIMAL, 'button--table-views')} icon={} text={ - (isFilterDrawerOpen) ? ( + isFilterDrawerOpen ? ( ) : ( @@ -97,7 +98,7 @@ function JournalActionsBar({ export default compose( withJournal(({ journalSheetDrawerFilter }) => ({ - isFilterDrawerOpen: journalSheetDrawerFilter + isFilterDrawerOpen: journalSheetDrawerFilter, })), withJournalActions, )(JournalActionsBar); diff --git a/src/containers/FinancialStatements/Journal/JournalBody.js b/src/containers/FinancialStatements/Journal/JournalBody.js new file mode 100644 index 000000000..306f194dd --- /dev/null +++ b/src/containers/FinancialStatements/Journal/JournalBody.js @@ -0,0 +1,37 @@ +import React from 'react'; +import * as R from 'ramda'; + +import { FinancialReportBody } from '../FinancialReportPage'; +import { FinancialSheetSkeleton } from '../../../components/FinancialSheet'; +import { JournalTable } from './JournalTable'; + +import withCurrentOrganization from 'containers/Organization/withCurrentOrganization'; + +import { useJournalSheetContext } from './JournalProvider'; + +/** + * Journal report body. + * @returns {JSX.Element} + */ +function JournalBodyJSX({ + // #withCurrentOrganization + organizationName, +}) { + const { isLoading } = useJournalSheetContext(); + + return ( + + {isLoading ? ( + + ) : ( + + )} + + ); +} + +export const JournalBody = R.compose( + withCurrentOrganization(({ organization }) => ({ + organizationName: organization.name, + })), +)(JournalBodyJSX); diff --git a/src/containers/FinancialStatements/Journal/JournalTable.js b/src/containers/FinancialStatements/Journal/JournalTable.js index 992aba2ad..faa3bffaf 100644 --- a/src/containers/FinancialStatements/Journal/JournalTable.js +++ b/src/containers/FinancialStatements/Journal/JournalTable.js @@ -10,11 +10,13 @@ import { useJournalSheetContext } from './JournalProvider'; import { defaultExpanderReducer } from 'utils'; -export default function JournalSheetTable({ - // #ownProps - onFetchData, - companyName, -}) { +import { TableStyle } from 'common'; + +/** + * Journal sheet table. + * @returns {JSX.Element} + */ +export function JournalTable({ companyName }) { // Journal sheet context. const { journalSheet: { tableRows, query }, @@ -49,11 +51,9 @@ export default function JournalSheetTable({ toDate={query.to_date} name="journal" loading={isLoading} - // minimal={true} fullWidth={true} > ); diff --git a/src/containers/FinancialStatements/Journal/utils.js b/src/containers/FinancialStatements/Journal/utils.js new file mode 100644 index 000000000..f083ee2a0 --- /dev/null +++ b/src/containers/FinancialStatements/Journal/utils.js @@ -0,0 +1,12 @@ +import moment from 'moment'; + +/** + * Retrieves the default journal report query. + */ +export const getDefaultJournalQuery = () => { + return { + fromDate: moment().startOf('year').format('YYYY-MM-DD'), + toDate: moment().endOf('year').format('YYYY-MM-DD'), + basis: 'accural', + } +} \ No newline at end of file