diff --git a/src/containers/FinancialStatements/PurchasesByItems/components.js b/src/containers/FinancialStatements/PurchasesByItems/components.js index 080ad6fcf..e18f01a14 100644 --- a/src/containers/FinancialStatements/PurchasesByItems/components.js +++ b/src/containers/FinancialStatements/PurchasesByItems/components.js @@ -7,6 +7,7 @@ import { usePurchaseByItemsContext } from './PurchasesByItemsProvider'; import FinancialLoadingBar from '../FinancialLoadingBar'; import { getColumnWidth } from 'utils'; +import { Align } from 'common'; /** * Retrieve purchases by items table columns. @@ -35,6 +36,7 @@ export const usePurchasesByItemsTableColumns = () => { minWidth: 150, }), textOverview: true, + align: Align.Right, }, { Header: intl.get('purchase_amount'), @@ -45,6 +47,7 @@ export const usePurchasesByItemsTableColumns = () => { minWidth: 150, }), textOverview: true, + align: Align.Right, }, { Header: intl.get('average_price'), @@ -55,6 +58,7 @@ export const usePurchasesByItemsTableColumns = () => { minWidth: 180, }), textOverview: true, + align: Align.Right, }, ], [tableRows], diff --git a/src/containers/FinancialStatements/SalesByItems/SalesByItemProvider.js b/src/containers/FinancialStatements/SalesByItems/SalesByItemProvider.js index f9d430738..86ce8b8a1 100644 --- a/src/containers/FinancialStatements/SalesByItems/SalesByItemProvider.js +++ b/src/containers/FinancialStatements/SalesByItems/SalesByItemProvider.js @@ -1,6 +1,6 @@ import React, { createContext, useContext } from 'react'; import FinancialReportPage from '../FinancialReportPage'; -import { useSalesByItems, useItems } from 'hooks/query'; +import { useSalesByItems } from 'hooks/query'; import { transformFilterFormToQuery } from '../common'; const SalesByItemsContext = createContext(); diff --git a/src/containers/FinancialStatements/SalesByItems/SalesByItems.js b/src/containers/FinancialStatements/SalesByItems/SalesByItems.js index 81b0d8dc0..57c3c5e9e 100644 --- a/src/containers/FinancialStatements/SalesByItems/SalesByItems.js +++ b/src/containers/FinancialStatements/SalesByItems/SalesByItems.js @@ -1,35 +1,29 @@ import React, { useEffect, useState, useCallback } from 'react'; import moment from 'moment'; -import 'style/pages/FinancialStatements/SalesAndPurchasesSheet.scss'; - import { SalesByItemProvider } from './SalesByItemProvider'; import SalesByItemsActionsBar from './SalesByItemsActionsBar'; import SalesByItemsHeader from './SalesByItemsHeader'; -import SalesByItemsTable from './SalesByItemsTable'; +import { SalesByItemsBody } from './SalesByItemsBody'; import DashboardPageContent from 'components/Dashboard/DashboardPageContent'; import { SalesByItemsLoadingBar } from './components'; +import { FinancialStatement } from 'components'; import withSalesByItemsActions from './withSalesByItemsActions'; -import withCurrentOrganization from '../../../containers/Organization/withCurrentOrganization'; +import { getDefaultSalesByItemsQuery } from './utils'; import { compose } from 'utils'; /** * Sales by items. */ function SalesByItems({ - // #withPreferences - organizationName, - // #withSellsByItemsActions toggleSalesByItemsFilterDrawer, }) { const [filter, setFilter] = useState({ - fromDate: moment().startOf('year').format('YYYY-MM-DD'), - toDate: moment().endOf('year').format('YYYY-MM-DD'), - filterByOption: 'with-transactions', + ...getDefaultSalesByItemsQuery(), }); // Handle filter form submit. @@ -69,23 +63,16 @@ function SalesByItems({ -
+ -
- -
-
+ +
); } -export default compose( - withSalesByItemsActions, - withCurrentOrganization(({ organization }) => ({ - organizationName: organization.name, - })), -)(SalesByItems); +export default compose(withSalesByItemsActions)(SalesByItems); diff --git a/src/containers/FinancialStatements/SalesByItems/SalesByItemsBody.js b/src/containers/FinancialStatements/SalesByItems/SalesByItemsBody.js new file mode 100644 index 000000000..69213c646 --- /dev/null +++ b/src/containers/FinancialStatements/SalesByItems/SalesByItemsBody.js @@ -0,0 +1,37 @@ +import React from 'react'; +import * as R from 'ramda'; + +import { FinancialReportBody } from '../FinancialReportPage'; +import { FinancialSheetSkeleton } from '../../../components/FinancialSheet'; + +import SalesByItemsTable from './SalesByItemsTable'; + +import { useSalesByItemsContext } from './SalesByItemProvider'; +import withCurrentOrganization from 'containers/Organization/withCurrentOrganization'; + +/** + * + * @returns {JSX.Element} + */ +function SalesByItemsBodyJSX({ + // #withCurrentOrganization + organizationName, +}) { + const { isLoading } = useSalesByItemsContext(); + + return ( + + {isLoading ? ( + + ) : ( + + )} + + ); +} + +export const SalesByItemsBody = R.compose( + withCurrentOrganization(({ organization }) => ({ + organizationName: organization.name, + })), +)(SalesByItemsBodyJSX); diff --git a/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js b/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js index c8569498c..2ded60fa3 100644 --- a/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js +++ b/src/containers/FinancialStatements/SalesByItems/SalesByItemsTable.js @@ -6,6 +6,9 @@ import { DataTable, FinancialSheet } from 'components'; import { useSalesByItemsContext } from './SalesByItemProvider'; import { useSalesByItemsTableColumns } from './components'; +import { tableRowTypesToClassnames } from 'utils'; +import { TableStyle } from 'common'; + /** * Sales by items data table. */ @@ -19,20 +22,6 @@ export default function SalesByItemsTable({ companyName }) { // Sales by items table columns. const columns = useSalesByItemsTableColumns(); - const rowClassNames = (row) => { - const { original } = row; - const rowTypes = Array.isArray(original.rowType) - ? original.rowType - : [original.rowType]; - - return { - ...rowTypes.reduce((acc, rowType) => { - acc[`row_type--${rowType}`] = rowType; - return acc; - }, {}), - }; - }; - return ( ); diff --git a/src/containers/FinancialStatements/SalesByItems/components.js b/src/containers/FinancialStatements/SalesByItems/components.js index 1ca756ad9..33717374e 100644 --- a/src/containers/FinancialStatements/SalesByItems/components.js +++ b/src/containers/FinancialStatements/SalesByItems/components.js @@ -1,18 +1,18 @@ import React, { useMemo } from 'react'; import intl from 'react-intl-universal'; -import { Button } from '@blueprintjs/core'; + import { getColumnWidth } from 'utils'; -import { If, Icon } from 'components'; +import { If } from 'components'; import { CellTextSpan } from 'components/Datatable/Cells'; import { useSalesByItemsContext } from './SalesByItemProvider'; import FinancialLoadingBar from '../FinancialLoadingBar'; +import { Align } from 'common'; + /** * Retrieve sales by items table columns. */ export const useSalesByItemsTableColumns = () => { - - //sales by items context. const { salesByItems: { tableRows }, @@ -36,6 +36,7 @@ export const useSalesByItemsTableColumns = () => { minWidth: 150, }), textOverview: true, + align: Align.Right, }, { Header: intl.get('sold_amount'), @@ -46,6 +47,7 @@ export const useSalesByItemsTableColumns = () => { minWidth: 150, }), textOverview: true, + align: Align.Right, }, { Header: intl.get('average_price'), @@ -56,6 +58,7 @@ export const useSalesByItemsTableColumns = () => { minWidth: 150, }), textOverview: true, + align: Align.Right, }, ], [tableRows], diff --git a/src/containers/FinancialStatements/SalesByItems/utils.js b/src/containers/FinancialStatements/SalesByItems/utils.js new file mode 100644 index 000000000..3ae064b96 --- /dev/null +++ b/src/containers/FinancialStatements/SalesByItems/utils.js @@ -0,0 +1,9 @@ +import moment from 'moment'; + +export const getDefaultSalesByItemsQuery = () => { + return { + fromDate: moment().startOf('year').format('YYYY-MM-DD'), + toDate: moment().endOf('year').format('YYYY-MM-DD'), + filterByOption: 'with-transactions', + }; +};