mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 14:50:32 +00:00
feat(lang): financial statement.
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{ name: 'US Dollar', code: 'USD' },
|
{ name: formatMessage({ id: 'us_dollar' }), code: 'USD' },
|
||||||
{ name: 'Euro', code: 'EUR' },
|
{ name: formatMessage({ id: 'euro' }), code: 'EUR' },
|
||||||
{ name: 'Libyan Dinar ', code: 'LYD' },
|
{ name: formatMessage({ id: 'libyan_diner' }), code: 'LYD' },
|
||||||
]
|
];
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{ name: 'English', value: 'en' },
|
{ name: formatMessage({ id: 'english' }), value: 'en' },
|
||||||
{ name: 'Arabic', value: 'ar' },
|
{ name: formatMessage({ id: 'arabic' }), value: 'ar' },
|
||||||
];
|
];
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
export const moneyFormat = [
|
export const moneyFormat = [
|
||||||
{ key: 'total', text: 'Total rows' },
|
{ key: 'total', text: formatMessage({ id: 'total_rows' }) },
|
||||||
{ key: 'always', text: 'Always' },
|
{ key: 'always', text: formatMessage({ id: 'always' }) },
|
||||||
{ key: 'none', text: 'None' },
|
{ key: 'none', text: formatMessage({ id: 'none' }) },
|
||||||
];
|
];
|
||||||
|
|
||||||
export const negativeFormat = [
|
export const negativeFormat = [
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import React, { useMemo } from 'react';
|
|||||||
import { useAPAgingSummaryContext } from './APAgingSummaryProvider';
|
import { useAPAgingSummaryContext } from './APAgingSummaryProvider';
|
||||||
import { getColumnWidth } from 'utils';
|
import { getColumnWidth } from 'utils';
|
||||||
import { FormattedMessage as T } from 'react-intl';
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
import { If } from 'components';
|
import { If } from 'components';
|
||||||
import FinancialLoadingBar from '../FinancialLoadingBar';
|
import FinancialLoadingBar from '../FinancialLoadingBar';
|
||||||
|
|
||||||
@@ -16,7 +18,9 @@ export const useAPAgingSummaryColumns = () => {
|
|||||||
const agingColumns = React.useMemo(() => {
|
const agingColumns = React.useMemo(() => {
|
||||||
return columns.map(
|
return columns.map(
|
||||||
(agingColumn) =>
|
(agingColumn) =>
|
||||||
`${agingColumn.before_days} - ${agingColumn.to_days || 'And Over'}`,
|
`${agingColumn.before_days} - ${
|
||||||
|
agingColumn.to_days || formatMessage({ id: 'and_over' })
|
||||||
|
}`,
|
||||||
);
|
);
|
||||||
}, [columns]);
|
}, [columns]);
|
||||||
|
|
||||||
@@ -60,14 +64,12 @@ export const useAPAgingSummaryColumns = () => {
|
|||||||
/**
|
/**
|
||||||
* A/P aging summary sheet loading bar.
|
* A/P aging summary sheet loading bar.
|
||||||
*/
|
*/
|
||||||
export function APAgingSummarySheetLoadingBar() {
|
export function APAgingSummarySheetLoadingBar() {
|
||||||
const {
|
const { isAPAgingFetching } = useAPAgingSummaryContext();
|
||||||
isAPAgingFetching
|
|
||||||
} = useAPAgingSummaryContext();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={isAPAgingFetching}>
|
<If condition={isAPAgingFetching}>
|
||||||
<FinancialLoadingBar />
|
<FinancialLoadingBar />
|
||||||
</If>
|
</If>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ import React from 'react';
|
|||||||
import { useARAgingSummaryContext } from './ARAgingSummaryProvider';
|
import { useARAgingSummaryContext } from './ARAgingSummaryProvider';
|
||||||
import { getColumnWidth } from 'utils';
|
import { getColumnWidth } from 'utils';
|
||||||
import { FormattedMessage as T } from 'react-intl';
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
import { formatMessage } from 'services/intl';
|
||||||
import { If } from 'components';
|
import { If } from 'components';
|
||||||
import FinancialLoadingBar from '../FinancialLoadingBar';
|
import FinancialLoadingBar from '../FinancialLoadingBar';
|
||||||
|
|
||||||
@@ -16,7 +17,9 @@ export const useARAgingSummaryColumns = () => {
|
|||||||
const agingColumns = React.useMemo(() => {
|
const agingColumns = React.useMemo(() => {
|
||||||
return columns.map(
|
return columns.map(
|
||||||
(agingColumn) =>
|
(agingColumn) =>
|
||||||
`${agingColumn.before_days} - ${agingColumn.to_days || 'And Over'}`,
|
`${agingColumn.before_days} - ${
|
||||||
|
agingColumn.to_days || formatMessage({ id: 'and_over' })
|
||||||
|
}`,
|
||||||
);
|
);
|
||||||
}, [columns]);
|
}, [columns]);
|
||||||
|
|
||||||
@@ -62,14 +65,12 @@ export const useARAgingSummaryColumns = () => {
|
|||||||
/**
|
/**
|
||||||
* A/R aging summary sheet loading bar.
|
* A/R aging summary sheet loading bar.
|
||||||
*/
|
*/
|
||||||
export function ARAgingSummarySheetLoadingBar() {
|
export function ARAgingSummarySheetLoadingBar() {
|
||||||
const {
|
const { isARAgingFetching } = useARAgingSummaryContext();
|
||||||
isARAgingFetching,
|
|
||||||
} = useARAgingSummaryContext();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={isARAgingFetching}>
|
<If condition={isARAgingFetching}>
|
||||||
<FinancialLoadingBar />
|
<FinancialLoadingBar />
|
||||||
</If>
|
</If>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
@@ -2,34 +2,32 @@ import React from 'react';
|
|||||||
import { Button } from '@blueprintjs/core';
|
import { Button } from '@blueprintjs/core';
|
||||||
import { Icon, If } from 'components';
|
import { Icon, If } from 'components';
|
||||||
import { useBalanceSheetContext } from './BalanceSheetProvider';
|
import { useBalanceSheetContext } from './BalanceSheetProvider';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
import FinancialLoadingBar from '../FinancialLoadingBar';
|
import FinancialLoadingBar from '../FinancialLoadingBar';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Balance sheet alerts.
|
* Balance sheet alerts.
|
||||||
*/
|
*/
|
||||||
export function BalanceSheetAlerts() {
|
export function BalanceSheetAlerts() {
|
||||||
const {
|
const { isLoading, refetchBalanceSheet, balanceSheet } =
|
||||||
isLoading,
|
useBalanceSheetContext();
|
||||||
refetchBalanceSheet,
|
|
||||||
balanceSheet,
|
|
||||||
} = useBalanceSheetContext();
|
|
||||||
|
|
||||||
// Handle refetch the report sheet.
|
// Handle refetch the report sheet.
|
||||||
const handleRecalcReport = () => {
|
const handleRecalcReport = () => {
|
||||||
refetchBalanceSheet();
|
refetchBalanceSheet();
|
||||||
};
|
};
|
||||||
// Can't display any error if the report is loading.
|
// Can't display any error if the report is loading.
|
||||||
if (isLoading) { return null; }
|
if (isLoading) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={balanceSheet.meta.is_cost_compute_running}>
|
<If condition={balanceSheet.meta.is_cost_compute_running}>
|
||||||
<div class="alert-compute-running">
|
<div class="alert-compute-running">
|
||||||
<Icon icon="info-block" iconSize={12} /> Just a moment! We're
|
<Icon icon="info-block" iconSize={12} />{' '}
|
||||||
calculating your cost transactions and this doesn't take much time.
|
<T id={'just_a_moment_we_re_calculating_your_cost_transactions'} />
|
||||||
Please check after sometime.{' '}
|
|
||||||
|
|
||||||
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
||||||
Refresh
|
<T id={'refresh'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
@@ -40,13 +38,11 @@ export function BalanceSheetAlerts() {
|
|||||||
* Balance sheet loading bar.
|
* Balance sheet loading bar.
|
||||||
*/
|
*/
|
||||||
export function BalanceSheetLoadingBar() {
|
export function BalanceSheetLoadingBar() {
|
||||||
const {
|
const { isFetching } = useBalanceSheetContext();
|
||||||
isFetching
|
|
||||||
} = useBalanceSheetContext();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={isFetching}>
|
<If condition={isFetching}>
|
||||||
<FinancialLoadingBar />
|
<FinancialLoadingBar />
|
||||||
</If>
|
</If>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Button } from '@blueprintjs/core';
|
import { Button } from '@blueprintjs/core';
|
||||||
import { Icon, If } from 'components';
|
import { Icon, If } from 'components';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
import { dynamicColumns } from './utils';
|
import { dynamicColumns } from './utils';
|
||||||
import { useCashFlowStatementContext } from './CashFlowStatementProvider';
|
import { useCashFlowStatementContext } from './CashFlowStatementProvider';
|
||||||
@@ -52,11 +53,10 @@ export function CashFlowStatementAlerts() {
|
|||||||
return (
|
return (
|
||||||
<If condition={cashFlowStatement.meta.is_cost_compute_running}>
|
<If condition={cashFlowStatement.meta.is_cost_compute_running}>
|
||||||
<div className="alert-compute-running">
|
<div className="alert-compute-running">
|
||||||
<Icon icon="info-block" iconSize={12} /> Just a moment! We're
|
<Icon icon="info-block" iconSize={12} />
|
||||||
calculating your cost transactions and this doesn't take much time.
|
<T id={'just_a_moment_we_re_calculating_your_cost_transactions'} />
|
||||||
Please check after sometime.
|
|
||||||
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
||||||
Refresh
|
<T id={'refresh'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import React from 'react';
|
|||||||
import { useIntl } from 'react-intl';
|
import { useIntl } from 'react-intl';
|
||||||
import { Button } from '@blueprintjs/core';
|
import { Button } from '@blueprintjs/core';
|
||||||
import { Icon, If } from 'components';
|
import { Icon, If } from 'components';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
import { getForceWidth, getColumnWidth } from 'utils';
|
import { getForceWidth, getColumnWidth } from 'utils';
|
||||||
import { useGeneralLedgerContext } from './GeneralLedgerProvider';
|
import { useGeneralLedgerContext } from './GeneralLedgerProvider';
|
||||||
import FinancialLoadingBar from '../FinancialLoadingBar';
|
import FinancialLoadingBar from '../FinancialLoadingBar';
|
||||||
@@ -68,7 +70,6 @@ export function useGeneralLedgerTableColumns() {
|
|||||||
accessor: 'formatted_credit',
|
accessor: 'formatted_credit',
|
||||||
className: 'credit',
|
className: 'credit',
|
||||||
width: getColumnWidth(tableRows, 'formatted_credit', {
|
width: getColumnWidth(tableRows, 'formatted_credit', {
|
||||||
|
|
||||||
minWidth: 100,
|
minWidth: 100,
|
||||||
magicSpacing: 10,
|
magicSpacing: 10,
|
||||||
}),
|
}),
|
||||||
@@ -105,33 +106,28 @@ export function useGeneralLedgerTableColumns() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* General ledger sheet alerts.
|
* General ledger sheet alerts.
|
||||||
*/
|
*/
|
||||||
export function GeneralLedgerSheetAlerts() {
|
export function GeneralLedgerSheetAlerts() {
|
||||||
const {
|
const { generalLedger, isLoading, sheetRefresh } = useGeneralLedgerContext();
|
||||||
generalLedger,
|
|
||||||
isLoading,
|
|
||||||
sheetRefresh
|
|
||||||
} = useGeneralLedgerContext();
|
|
||||||
|
|
||||||
// Handle refetch the report sheet.
|
// Handle refetch the report sheet.
|
||||||
const handleRecalcReport = () => {
|
const handleRecalcReport = () => {
|
||||||
sheetRefresh();
|
sheetRefresh();
|
||||||
};
|
};
|
||||||
// Can't display any error if the report is loading.
|
// Can't display any error if the report is loading.
|
||||||
if (isLoading) { return null; }
|
if (isLoading) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={generalLedger.meta.is_cost_compute_running}>
|
<If condition={generalLedger.meta.is_cost_compute_running}>
|
||||||
<div class="alert-compute-running">
|
<div class="alert-compute-running">
|
||||||
<Icon icon="info-block" iconSize={12} /> Just a moment! We're
|
<Icon icon="info-block" iconSize={12} />
|
||||||
calculating your cost transactions and this doesn't take much time.
|
<T id={'just_a_moment_we_re_calculating_your_cost_transactions'} />
|
||||||
Please check after sometime.{' '}
|
|
||||||
|
|
||||||
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
||||||
Refresh
|
<T id={'refresh'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
@@ -142,13 +138,11 @@ export function useGeneralLedgerTableColumns() {
|
|||||||
* General ledger sheet loading bar.
|
* General ledger sheet loading bar.
|
||||||
*/
|
*/
|
||||||
export function GeneralLedgerSheetLoadingBar() {
|
export function GeneralLedgerSheetLoadingBar() {
|
||||||
const {
|
const { isFetching } = useGeneralLedgerContext();
|
||||||
isFetching,
|
|
||||||
} = useGeneralLedgerContext();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={isFetching}>
|
<If condition={isFetching}>
|
||||||
<FinancialLoadingBar />
|
<FinancialLoadingBar />
|
||||||
</If>
|
</If>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Button } from '@blueprintjs/core';
|
import { Button } from '@blueprintjs/core';
|
||||||
import { Icon, If } from 'components';
|
import { Icon, If } from 'components';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
import { dynamicColumns } from './utils';
|
import { dynamicColumns } from './utils';
|
||||||
import FinancialLoadingBar from '../FinancialLoadingBar';
|
import FinancialLoadingBar from '../FinancialLoadingBar';
|
||||||
@@ -55,11 +56,11 @@ export function InventoryItemDetailsAlerts() {
|
|||||||
return (
|
return (
|
||||||
<If condition={inventoryItemDetails.meta.is_cost_compute_running}>
|
<If condition={inventoryItemDetails.meta.is_cost_compute_running}>
|
||||||
<div className="alert-compute-running">
|
<div className="alert-compute-running">
|
||||||
<Icon icon="info-block" iconSize={12} /> Just a moment! We're
|
<Icon icon="info-block" iconSize={12} />
|
||||||
calculating your cost transactions and this doesn't take much time.
|
<T id={'just_a_moment_we_re_calculating_your_cost_transactions'} />
|
||||||
Please check after sometime.
|
|
||||||
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
||||||
Refresh
|
<T id={'refresh'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useIntl } from 'react-intl';
|
import { FormattedMessage as T, useIntl } from 'react-intl';
|
||||||
|
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import { Button } from '@blueprintjs/core';
|
import { Button } from '@blueprintjs/core';
|
||||||
import { Icon, If } from 'components';
|
import { Icon, If } from 'components';
|
||||||
@@ -69,43 +70,38 @@ export const useJournalTableColumns = () => {
|
|||||||
* Journal sheet loading bar.
|
* Journal sheet loading bar.
|
||||||
*/
|
*/
|
||||||
export function JournalSheetLoadingBar() {
|
export function JournalSheetLoadingBar() {
|
||||||
const {
|
const { isFetching } = useJournalSheetContext();
|
||||||
isFetching
|
|
||||||
} = useJournalSheetContext();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={isFetching}>
|
<If condition={isFetching}>
|
||||||
<FinancialLoadingBar />
|
<FinancialLoadingBar />
|
||||||
</If>
|
</If>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Journal sheet alerts.
|
* Journal sheet alerts.
|
||||||
*/
|
*/
|
||||||
export function JournalSheetAlerts() {
|
export function JournalSheetAlerts() {
|
||||||
const {
|
const { isLoading, refetchSheet, journalSheet } = useJournalSheetContext();
|
||||||
isLoading,
|
|
||||||
refetchSheet,
|
|
||||||
journalSheet,
|
|
||||||
} = useJournalSheetContext();
|
|
||||||
|
|
||||||
// Handle refetch the report sheet.
|
// Handle refetch the report sheet.
|
||||||
const handleRecalcReport = () => {
|
const handleRecalcReport = () => {
|
||||||
refetchSheet();
|
refetchSheet();
|
||||||
};
|
};
|
||||||
// Can't display any error if the report is loading.
|
// Can't display any error if the report is loading.
|
||||||
if (isLoading) { return null; }
|
if (isLoading) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={journalSheet.meta.is_cost_compute_running}>
|
<If condition={journalSheet.meta.is_cost_compute_running}>
|
||||||
<div class="alert-compute-running">
|
<div class="alert-compute-running">
|
||||||
<Icon icon="info-block" iconSize={12} /> Just a moment! We're
|
<Icon icon="info-block" iconSize={12} />
|
||||||
calculating your cost transactions and this doesn't take much time.
|
<T id={'just_a_moment_we_re_calculating_your_cost_transactions'} />
|
||||||
Please check after sometime.{' '}
|
|
||||||
|
|
||||||
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
||||||
Refresh
|
<T id={'refresh'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Button } from '@blueprintjs/core';
|
import { Button } from '@blueprintjs/core';
|
||||||
import { Icon, If } from 'components';
|
import { Icon, If } from 'components';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
import { useProfitLossSheetContext } from './ProfitLossProvider';
|
import { useProfitLossSheetContext } from './ProfitLossProvider';
|
||||||
import FinancialLoadingBar from '../FinancialLoadingBar';
|
import FinancialLoadingBar from '../FinancialLoadingBar';
|
||||||
|
|
||||||
@@ -21,11 +23,8 @@ export function ProfitLossSheetLoadingBar() {
|
|||||||
* Balance sheet alerts.
|
* Balance sheet alerts.
|
||||||
*/
|
*/
|
||||||
export function ProfitLossSheetAlerts() {
|
export function ProfitLossSheetAlerts() {
|
||||||
const {
|
const { isLoading, sheetRefetch, profitLossSheet } =
|
||||||
isLoading,
|
useProfitLossSheetContext();
|
||||||
sheetRefetch,
|
|
||||||
profitLossSheet,
|
|
||||||
} = useProfitLossSheetContext();
|
|
||||||
|
|
||||||
// Handle refetch the report sheet.
|
// Handle refetch the report sheet.
|
||||||
const handleRecalcReport = () => {
|
const handleRecalcReport = () => {
|
||||||
@@ -39,11 +38,11 @@ export function ProfitLossSheetAlerts() {
|
|||||||
return (
|
return (
|
||||||
<If condition={profitLossSheet.meta.is_cost_compute_running}>
|
<If condition={profitLossSheet.meta.is_cost_compute_running}>
|
||||||
<div class="alert-compute-running">
|
<div class="alert-compute-running">
|
||||||
<Icon icon="info-block" iconSize={12} /> Just a moment! We're
|
<Icon icon="info-block" iconSize={12} />
|
||||||
calculating your cost transactions and this doesn't take much time.
|
<T id={'just_a_moment_we_re_calculating_your_cost_transactions'} />
|
||||||
Please check after sometime.{' '}
|
|
||||||
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
||||||
Refresh
|
<T id={'refresh'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useIntl } from 'react-intl';
|
import { FormattedMessage as T, useIntl } from 'react-intl';
|
||||||
|
|
||||||
import { Button } from '@blueprintjs/core';
|
import { Button } from '@blueprintjs/core';
|
||||||
import { getColumnWidth } from 'utils';
|
import { getColumnWidth } from 'utils';
|
||||||
import { If, Icon } from 'components';
|
import { If, Icon } from 'components';
|
||||||
@@ -60,15 +61,13 @@ export const useTrialBalanceTableColumns = () => {
|
|||||||
* Trial balance sheet progress loading bar.
|
* Trial balance sheet progress loading bar.
|
||||||
*/
|
*/
|
||||||
export function TrialBalanceSheetLoadingBar() {
|
export function TrialBalanceSheetLoadingBar() {
|
||||||
const {
|
const { isFetching } = useTrialBalanceSheetContext();
|
||||||
isFetching
|
|
||||||
} = useTrialBalanceSheetContext();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={isFetching}>
|
<If condition={isFetching}>
|
||||||
<FinancialLoadingBar />
|
<FinancialLoadingBar />
|
||||||
</If>
|
</If>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -78,7 +77,7 @@ export function TrialBalanceSheetAlerts() {
|
|||||||
const {
|
const {
|
||||||
trialBalanceSheet: { meta },
|
trialBalanceSheet: { meta },
|
||||||
isLoading,
|
isLoading,
|
||||||
refetchSheet
|
refetchSheet,
|
||||||
} = useTrialBalanceSheetContext();
|
} = useTrialBalanceSheetContext();
|
||||||
|
|
||||||
// Handle refetch the sheet.
|
// Handle refetch the sheet.
|
||||||
@@ -86,19 +85,20 @@ export function TrialBalanceSheetAlerts() {
|
|||||||
refetchSheet();
|
refetchSheet();
|
||||||
};
|
};
|
||||||
// Can't display any error if the report is loading.
|
// Can't display any error if the report is loading.
|
||||||
if (isLoading) { return null; }
|
if (isLoading) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<If condition={meta.is_cost_compute_running}>
|
<If condition={meta.is_cost_compute_running}>
|
||||||
<div class="alert-compute-running">
|
<div class="alert-compute-running">
|
||||||
<Icon icon="info-block" iconSize={12} /> Just a moment! We're
|
<Icon icon="info-block" iconSize={12} />
|
||||||
calculating your cost transactions and this doesn't take much time.
|
<T id={'just_a_moment_we_re_calculating_your_cost_transactions'} />
|
||||||
Please check after sometime.{' '}
|
|
||||||
|
|
||||||
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
<Button onClick={handleRecalcReport} minimal={true} small={true}>
|
||||||
Refresh
|
<T id={'refresh'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</If>
|
</If>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
@@ -3,21 +3,46 @@ import { transfromToSnakeCase, flatObject } from 'utils';
|
|||||||
import { formatMessage } from 'services/intl';
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
export const displayColumnsByOptions = [
|
export const displayColumnsByOptions = [
|
||||||
{ key: 'total', name: 'Total', type: 'total', by: '' },
|
{ key: 'total', name: formatMessage({ id: 'total' }), type: 'total', by: '' },
|
||||||
{ key: 'year', name: 'Date/Year', type: 'date_periods', by: 'year' },
|
{
|
||||||
{ key: 'month', name: 'Date/Month', type: 'date_periods', by: 'month' },
|
key: 'year',
|
||||||
{ key: 'week', name: 'Date/Week', type: 'date_periods', by: 'month' },
|
name: formatMessage({ id: 'date_year' }),
|
||||||
{ key: 'day', name: 'Date/Day', type: 'date_periods', by: 'day' },
|
type: 'date_periods',
|
||||||
{ key: 'quarter', name: 'Date/Quarter', type: 'date_periods', by: 'quarter' },
|
by: 'year',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'month',
|
||||||
|
name: formatMessage({ id: 'date_month' }),
|
||||||
|
type: 'date_periods',
|
||||||
|
by: 'month',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'week',
|
||||||
|
name: formatMessage({ id: 'date_week' }),
|
||||||
|
type: 'date_periods',
|
||||||
|
by: 'month',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'day',
|
||||||
|
name: formatMessage({ id: 'date_day' }),
|
||||||
|
type: 'date_periods',
|
||||||
|
by: 'day',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'quarter',
|
||||||
|
name: formatMessage({ id: 'date_quarter' }),
|
||||||
|
type: 'date_periods',
|
||||||
|
by: 'quarter',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const dateRangeOptions = [
|
export const dateRangeOptions = [
|
||||||
{ value: 'today', label: 'Today' },
|
{ value: 'today', label: formatMessage({ id: 'today' }) },
|
||||||
{ value: 'this_week', label: 'This Week' },
|
{ value: 'this_week', label: formatMessage({ id: 'this_week' }) },
|
||||||
{ value: 'this_month', label: 'This Month' },
|
{ value: 'this_month', label: formatMessage({ id: 'this_month' }) },
|
||||||
{ value: 'this_quarter', label: 'This Quarter' },
|
{ value: 'this_quarter', label: formatMessage({ id: 'this_quarter' }) },
|
||||||
{ value: 'this_year', label: 'This Year' },
|
{ value: 'this_year', label: formatMessage({ id: 'this_year' }) },
|
||||||
{ value: 'custom', label: 'Custom Range' },
|
{ value: 'custom', label: formatMessage({ id: 'custom_range' }) },
|
||||||
];
|
];
|
||||||
|
|
||||||
export const filterAccountsOptions = [
|
export const filterAccountsOptions = [
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
import { chain } from 'lodash';
|
import { chain } from 'lodash';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
export const balanceSheetRowsReducer = (accounts) => {
|
export const balanceSheetRowsReducer = (accounts) => {
|
||||||
return accounts.map((account) => {
|
return accounts.map((account) => {
|
||||||
@@ -10,7 +12,7 @@ export const balanceSheetRowsReducer = (accounts) => {
|
|||||||
...(account.total && account.children && account.children.length > 0
|
...(account.total && account.children && account.children.length > 0
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
name: `Total ${account.name}`,
|
name: <T id={'total_name'} values={{ name: account.name }} />,
|
||||||
row_types: ['total-row', account.section_type],
|
row_types: ['total-row', account.section_type],
|
||||||
total: { ...account.total },
|
total: { ...account.total },
|
||||||
...(account.total_periods && {
|
...(account.total_periods && {
|
||||||
@@ -46,12 +48,12 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
|
|
||||||
if (profitLoss.income) {
|
if (profitLoss.income) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Income',
|
name: <T id={'income'} />,
|
||||||
total: profitLoss.income.total,
|
total: profitLoss.income.total,
|
||||||
children: [
|
children: [
|
||||||
...profitLoss.income.accounts,
|
...profitLoss.income.accounts,
|
||||||
{
|
{
|
||||||
name: 'Total Income',
|
name: <T id={'total_income'} />,
|
||||||
total: profitLoss.income.total,
|
total: profitLoss.income.total,
|
||||||
total_periods: profitLoss.income.total_periods,
|
total_periods: profitLoss.income.total_periods,
|
||||||
rowTypes: ['income_total', 'section_total', 'total'],
|
rowTypes: ['income_total', 'section_total', 'total'],
|
||||||
@@ -62,12 +64,12 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.cost_of_sales) {
|
if (profitLoss.cost_of_sales) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Cost of sales',
|
name: <T id={'cost_of_sales'} />,
|
||||||
total: profitLoss.cost_of_sales.total,
|
total: profitLoss.cost_of_sales.total,
|
||||||
children: [
|
children: [
|
||||||
...profitLoss.cost_of_sales.accounts,
|
...profitLoss.cost_of_sales.accounts,
|
||||||
{
|
{
|
||||||
name: 'Total cost of sales',
|
name: <T id={'total_cost_of_sales'} />,
|
||||||
total: profitLoss.cost_of_sales.total,
|
total: profitLoss.cost_of_sales.total,
|
||||||
total_periods: profitLoss.cost_of_sales.total_periods,
|
total_periods: profitLoss.cost_of_sales.total_periods,
|
||||||
rowTypes: ['cogs_total', 'section_total', 'total'],
|
rowTypes: ['cogs_total', 'section_total', 'total'],
|
||||||
@@ -78,7 +80,7 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.gross_profit) {
|
if (profitLoss.gross_profit) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Gross profit',
|
name: <T id={'gross_profit'} />,
|
||||||
total: profitLoss.gross_profit.total,
|
total: profitLoss.gross_profit.total,
|
||||||
total_periods: profitLoss.gross_profit.total_periods,
|
total_periods: profitLoss.gross_profit.total_periods,
|
||||||
rowTypes: ['gross_total', 'section_total', 'total'],
|
rowTypes: ['gross_total', 'section_total', 'total'],
|
||||||
@@ -86,12 +88,12 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.expenses) {
|
if (profitLoss.expenses) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Expenses',
|
name: <T id={'expenses'} />,
|
||||||
total: profitLoss.expenses.total,
|
total: profitLoss.expenses.total,
|
||||||
children: [
|
children: [
|
||||||
...profitLoss.expenses.accounts,
|
...profitLoss.expenses.accounts,
|
||||||
{
|
{
|
||||||
name: 'Total Expenses',
|
name: <T id={'total_expenses'} />,
|
||||||
total: profitLoss.expenses.total,
|
total: profitLoss.expenses.total,
|
||||||
total_periods: profitLoss.expenses.total_periods,
|
total_periods: profitLoss.expenses.total_periods,
|
||||||
rowTypes: ['expenses_total', 'section_total', 'total'],
|
rowTypes: ['expenses_total', 'section_total', 'total'],
|
||||||
@@ -102,7 +104,7 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.operating_profit) {
|
if (profitLoss.operating_profit) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Net Operating income',
|
name: <T id={'net_operating_income'} />,
|
||||||
total: profitLoss.operating_profit.total,
|
total: profitLoss.operating_profit.total,
|
||||||
total_periods: profitLoss.income.total_periods,
|
total_periods: profitLoss.income.total_periods,
|
||||||
rowTypes: ['net_operating_total', 'section_total', 'total'],
|
rowTypes: ['net_operating_total', 'section_total', 'total'],
|
||||||
@@ -110,13 +112,13 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.other_income) {
|
if (profitLoss.other_income) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Other Income',
|
name: 'other_income',
|
||||||
total: profitLoss.other_income.total,
|
total: profitLoss.other_income.total,
|
||||||
total_periods: profitLoss.other_income.total_periods,
|
total_periods: profitLoss.other_income.total_periods,
|
||||||
children: [
|
children: [
|
||||||
...profitLoss.other_income.accounts,
|
...profitLoss.other_income.accounts,
|
||||||
{
|
{
|
||||||
name: 'Total other income',
|
name: <T id={'total_other_income'} />,
|
||||||
total: profitLoss.other_income.total,
|
total: profitLoss.other_income.total,
|
||||||
total_periods: profitLoss.other_income.total_periods,
|
total_periods: profitLoss.other_income.total_periods,
|
||||||
rowTypes: ['expenses_total', 'section_total', 'total'],
|
rowTypes: ['expenses_total', 'section_total', 'total'],
|
||||||
@@ -126,13 +128,13 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.other_expenses) {
|
if (profitLoss.other_expenses) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Other expenses',
|
name: <T id={'other_expenses'} />,
|
||||||
total: profitLoss.other_expenses.total,
|
total: profitLoss.other_expenses.total,
|
||||||
total_periods: profitLoss.other_expenses.total_periods,
|
total_periods: profitLoss.other_expenses.total_periods,
|
||||||
children: [
|
children: [
|
||||||
...profitLoss.other_expenses.accounts,
|
...profitLoss.other_expenses.accounts,
|
||||||
{
|
{
|
||||||
name: 'Total other expenses',
|
name: <T id={'total_other_expenses'} />,
|
||||||
total: profitLoss.other_expenses.total,
|
total: profitLoss.other_expenses.total,
|
||||||
total_periods: profitLoss.other_expenses.total_periods,
|
total_periods: profitLoss.other_expenses.total_periods,
|
||||||
rowTypes: ['expenses_total', 'section_total', 'total'],
|
rowTypes: ['expenses_total', 'section_total', 'total'],
|
||||||
@@ -142,7 +144,7 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.net_other_income) {
|
if (profitLoss.net_other_income) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Net other income',
|
name: <T id={'net_other_income'} />,
|
||||||
total: profitLoss.net_other_income.total,
|
total: profitLoss.net_other_income.total,
|
||||||
total_periods: profitLoss.net_other_income.total_periods,
|
total_periods: profitLoss.net_other_income.total_periods,
|
||||||
rowTypes: ['net_other_income', 'section_total', 'total'],
|
rowTypes: ['net_other_income', 'section_total', 'total'],
|
||||||
@@ -150,7 +152,7 @@ export const profitLossSheetReducer = (profitLoss) => {
|
|||||||
}
|
}
|
||||||
if (profitLoss.net_income) {
|
if (profitLoss.net_income) {
|
||||||
results.push({
|
results.push({
|
||||||
name: 'Net Income',
|
name: <T id={'net_income'} />,
|
||||||
total: profitLoss.net_income.total,
|
total: profitLoss.net_income.total,
|
||||||
total_periods: profitLoss.net_income.total_periods,
|
total_periods: profitLoss.net_income.total_periods,
|
||||||
rowTypes: ['net_income_total', 'section_total', 'total'],
|
rowTypes: ['net_income_total', 'section_total', 'total'],
|
||||||
@@ -215,7 +217,7 @@ export const generalLedgerTableRowsReducer = (accounts) => {
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
...account.opening_balance,
|
...account.opening_balance,
|
||||||
name: 'Opening balance',
|
name: <T id={'opening_balance'} />,
|
||||||
rowType: 'OPENING_BALANCE',
|
rowType: 'OPENING_BALANCE',
|
||||||
date: moment(account.opening_balance.date).format('DD MMM YYYY'),
|
date: moment(account.opening_balance.date).format('DD MMM YYYY'),
|
||||||
},
|
},
|
||||||
@@ -227,7 +229,7 @@ export const generalLedgerTableRowsReducer = (accounts) => {
|
|||||||
})),
|
})),
|
||||||
{
|
{
|
||||||
...account.closing_balance,
|
...account.closing_balance,
|
||||||
name: 'Closing balance',
|
name: <T id={'closing_balance'} />,
|
||||||
rowType: 'CLOSING_BALANCE',
|
rowType: 'CLOSING_BALANCE',
|
||||||
date: moment(account.closing_balance.date).format('DD MMM YYYY'),
|
date: moment(account.closing_balance.date).format('DD MMM YYYY'),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1030,5 +1030,41 @@
|
|||||||
"create_a_new_bill": "Create a new bill.",
|
"create_a_new_bill": "Create a new bill.",
|
||||||
"create_a_new_make_journal": "Create a new Make Journal.",
|
"create_a_new_make_journal": "Create a new Make Journal.",
|
||||||
"create_a_new_item": "Create a new item.",
|
"create_a_new_item": "Create a new item.",
|
||||||
"close_and_open_sidebar": "Close and open sidebar."
|
"close_and_open_sidebar": "Close and open sidebar.",
|
||||||
|
"and_over": "And Over",
|
||||||
|
"date_year": "Date/Year",
|
||||||
|
"date_month": "Date/Month",
|
||||||
|
"date_week": "Date/Week",
|
||||||
|
"date_day": "Date/Day",
|
||||||
|
"date_quarter": "Date/Quarter",
|
||||||
|
"today": "Today",
|
||||||
|
"this_week": "This Week",
|
||||||
|
"this_month": "This Month",
|
||||||
|
"this_quarter": "This Quarter",
|
||||||
|
"this_year": "This Year",
|
||||||
|
"custom_range": "Custom Range",
|
||||||
|
"total_rows": "Total rows",
|
||||||
|
"always": "Always",
|
||||||
|
"none": "None",
|
||||||
|
"us_dollar": "US Dollar",
|
||||||
|
"euro": "Euro",
|
||||||
|
"libyan_diner": "Libyan Diner",
|
||||||
|
"english": "English",
|
||||||
|
"arabic": "Arabic",
|
||||||
|
"just_a_moment_we_re_calculating_your_cost_transactions": "Just a moment! We're calculating your cost transactions and this doesn't take much time.Please check after sometime.",
|
||||||
|
"refresh": "Refresh",
|
||||||
|
"total_name": "Total {name}",
|
||||||
|
"income": "Income",
|
||||||
|
"total_income": "Total Income",
|
||||||
|
"cost_of_sales": "Cost of sales",
|
||||||
|
"total_cost_of_sales": "Total cost of sales",
|
||||||
|
"gross_profit": "Gross profit",
|
||||||
|
"total_expenses": "Total Expenses",
|
||||||
|
"net_operating_income": "Net Operating income",
|
||||||
|
"other_income": "Other Income",
|
||||||
|
"total_other_income": "Total other income",
|
||||||
|
"other_expenses": "Other expenses",
|
||||||
|
"total_other_expenses": "Total other expenses",
|
||||||
|
"net_other_income": "Net other income",
|
||||||
|
"net_income": "Net Income"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user