diff --git a/client/src/config/financialReportsMenu.js b/client/src/config/financialReportsMenu.js
index f32beaf2f..fc82eef1b 100644
--- a/client/src/config/financialReportsMenu.js
+++ b/client/src/config/financialReportsMenu.js
@@ -10,7 +10,8 @@ export const financialReportMenus = [
},
{
title: 'Trial Balance Sheet',
- desc: 'Summarizes the credit and debit balance of each account in your chart of accounts at a specific point in time.',
+ desc:
+ 'Summarizes the credit and debit balance of each account in your chart of accounts at a specific point in time.',
link: '/financial-reports/trial-balance-sheet',
},
{
@@ -21,22 +22,26 @@ export const financialReportMenus = [
},
{
title: 'Profit/Loss Report',
- desc: "Reports the revenues, costs and expenses incurred during a specific point in time with comparison period(s).",
+ desc:
+ 'Reports the revenues, costs and expenses incurred during a specific point in time with comparison period(s).',
link: '/financial-reports/profit-loss-sheet',
},
{
title: 'General Ledger Report',
- desc: "Reports every transaction going in and out of your accounts and organized by accounts and date to monitoring activity of accounts.",
+ desc:
+ 'Reports every transaction going in and out of your accounts and organized by accounts and date to monitoring activity of accounts.',
link: '/financial-reports/general-ledger',
},
{
title: 'Receivable Aging Summary',
- desc: "Summarize total unpaid balances of customers invoices with number of days the unpaid invoice is overdue.",
+ desc:
+ 'Summarize total unpaid balances of customers invoices with number of days the unpaid invoice is overdue.',
link: '/financial-reports/receivable-aging-summary',
},
{
title: 'Payable Aging Summary',
- desc: "Summarize total unpaid balances of vendors purchase invoices with the number of days the unpaid invoice is overdue.",
+ desc:
+ 'Summarize total unpaid balances of vendors purchase invoices with the number of days the unpaid invoice is overdue.',
link: '/financial-reports/payable-aging-summary',
},
],
@@ -54,16 +59,37 @@ export const SalesAndPurchasesReportMenus = [
link: '/financial-reports/purchases-by-items',
},
{
- title: 'Sales by Items',
+ title: 'Sales By Items',
desc:
- "Summarize the business’s sold items quantity, income and average income rate of each item during a specific point in time.",
+ 'Summarize the business’s sold items quantity, income and average income rate of each item during a specific point in time.',
link: '/financial-reports/sales-by-items',
},
{
title: 'Inventory valuation',
- desc: 'Summarize the business’s purchase items quantity, cost and average cost rate of each item during a specific point in time.',
+ desc:
+ 'Summarize the business’s purchase items quantity, cost and average cost rate of each item during a specific point in time.',
link: '/financial-reports/inventory-valuation',
},
+ {
+ title: 'Customer Balance summary',
+ desc: '',
+ link: '/financial-reports/customers-balance-summary',
+ },
+ {
+ title: 'Vendors Balance summary',
+ desc: '',
+ link: '/financial-reports/vendors-balance-summary',
+ },
+ {
+ title: 'Customers Transactions',
+ desc: '',
+ link: '/financial-reports/transactions-by-customers',
+ },
+ {
+ title: 'Vendors Transactions',
+ desc: '',
+ link: '/financial-reports/transactions-by-vendors',
+ },
],
},
];
diff --git a/client/src/containers/FinancialStatements/CustomersBalanceSummary/CustomersBalanceSummary.js b/client/src/containers/FinancialStatements/CustomersBalanceSummary/CustomersBalanceSummary.js
new file mode 100644
index 000000000..f45480599
--- /dev/null
+++ b/client/src/containers/FinancialStatements/CustomersBalanceSummary/CustomersBalanceSummary.js
@@ -0,0 +1,87 @@
+import React, { useEffect, useState } from 'react';
+import moment from 'moment';
+
+import 'style/pages/FinancialStatements/ContactsBalanceSummary.scss';
+
+import { FinancialStatement } from 'components';
+import DashboardPageContent from 'components/Dashboard/DashboardPageContent';
+
+import CustomersBalanceSummaryActionsBar from './CustomersBalanceSummaryActionsBar';
+import CustomersBalanceSummaryHeader from './CustomersBalanceSummaryHeader';
+import CustomersBalanceSummaryTable from './CustomersBalanceSummaryTable';
+
+import { CustomersBalanceLoadingBar } from './components';
+import { CustomersBalanceSummaryProvider } from './CustomersBalanceSummaryProvider';
+import withCustomersBalanceSummaryActions from './withCustomersBalanceSummaryActions';
+
+import withSettings from 'containers/Settings/withSettings';
+
+import { compose } from 'redux';
+
+/**
+ * Customers Balance summary.
+ */
+function CustomersBalanceSummary({
+ // #withPreferences
+ organizationName,
+
+ // #withCustomersBalanceSummaryActions
+ toggleCustomerBalanceFilterDrawer,
+}) {
+
+ const [filter, setFilter] = useState({
+ asDate: moment().endOf('day').format('YYYY-MM-DD'),
+ });
+
+ // Handle re-fetch customers balance summary after filter change.
+ const handleFilterSubmit = (filter) => {
+ const _filter = {
+ ...filter,
+ asDate: moment(filter.asDate).format('YYYY-MM-DD'),
+ };
+ setFilter({ ..._filter });
+ };
+
+ // Handle number format.
+ const handleNumberFormat = (values) => {
+ setFilter({
+ ...filter,
+ numberFormat: values,
+ });
+ };
+
+ useEffect(
+ () => () => {
+ toggleCustomerBalanceFilterDrawer(false);
+ },
+ [toggleCustomerBalanceFilterDrawer],
+ );
+
+ return (
+
+
+
+
+
+
+
+