mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 22:30:31 +00:00
feat(lang): drawer lang.
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
|||||||
useAsyncDebounce,
|
useAsyncDebounce,
|
||||||
} from 'react-table';
|
} from 'react-table';
|
||||||
import { useSticky } from 'react-table-sticky';
|
import { useSticky } from 'react-table-sticky';
|
||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
import { useUpdateEffect } from 'hooks';
|
import { useUpdateEffect } from 'hooks';
|
||||||
import { saveInvoke } from 'utils';
|
import { saveInvoke } from 'utils';
|
||||||
@@ -52,7 +53,7 @@ export default function DataTable(props) {
|
|||||||
payload,
|
payload,
|
||||||
expandable = false,
|
expandable = false,
|
||||||
noInitialFetch = false,
|
noInitialFetch = false,
|
||||||
|
|
||||||
pagesCount: controlledPageCount,
|
pagesCount: controlledPageCount,
|
||||||
|
|
||||||
// Pagination props.
|
// Pagination props.
|
||||||
@@ -122,7 +123,7 @@ export default function DataTable(props) {
|
|||||||
autoResetFilters,
|
autoResetFilters,
|
||||||
autoResetRowState,
|
autoResetRowState,
|
||||||
|
|
||||||
...restProps
|
...restProps,
|
||||||
},
|
},
|
||||||
useSortBy,
|
useSortBy,
|
||||||
useExpanded,
|
useExpanded,
|
||||||
@@ -181,7 +182,6 @@ export default function DataTable(props) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DataTable.defaultProps = {
|
DataTable.defaultProps = {
|
||||||
pagination: false,
|
pagination: false,
|
||||||
spinnerProps: { size: 30 },
|
spinnerProps: { size: 30 },
|
||||||
@@ -209,6 +209,6 @@ DataTable.defaultProps = {
|
|||||||
TablePaginationRenderer: TablePagination,
|
TablePaginationRenderer: TablePagination,
|
||||||
TableNoResultsRowRenderer: TableNoResultsRow,
|
TableNoResultsRowRenderer: TableNoResultsRow,
|
||||||
|
|
||||||
noResults: 'There is no results in the table.',
|
noResults: formatMessage({ id: 'there_is_no_results_in_the_table' }),
|
||||||
payload: {},
|
payload: {},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,9 +42,7 @@ function ManualJournalActionsBar({
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Handle delete button click.
|
// Handle delete button click.
|
||||||
const handleBulkDelete = () => {
|
const handleBulkDelete = () => {};
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// Handle tab change.
|
// Handle tab change.
|
||||||
const handleTabChange = (customView) => {
|
const handleTabChange = (customView) => {
|
||||||
@@ -77,7 +75,7 @@ function ManualJournalActionsBar({
|
|||||||
className={classNames(Classes.MINIMAL, 'button--filter', {
|
className={classNames(Classes.MINIMAL, 'button--filter', {
|
||||||
'has-active-filters': false,
|
'has-active-filters': false,
|
||||||
})}
|
})}
|
||||||
text="Filter"
|
text={<T id={'filter'} />}
|
||||||
icon={<Icon icon="filter-16" iconSize={16} />}
|
icon={<Icon icon="filter-16" iconSize={16} />}
|
||||||
/>
|
/>
|
||||||
</Popover>
|
</Popover>
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ import React from 'react';
|
|||||||
import { Button, Intent } from '@blueprintjs/core';
|
import { Button, Intent } from '@blueprintjs/core';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import { EmptyStatus } from 'components';
|
import { EmptyStatus } from 'components';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
export default function ManualJournalsEmptyStatus() {
|
export default function ManualJournalsEmptyStatus() {
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<EmptyStatus
|
<EmptyStatus
|
||||||
title={'Create your first journal entries on accounts chart.'}
|
title={<T id={'create_your_first_journal_entries_on_accounts_chart'} />}
|
||||||
description={
|
description={
|
||||||
<p>
|
<p>
|
||||||
It is a long established fact that a reader will be distracted by the
|
<T id={'it_is_a_long_established_fact_that_a_reader'} />
|
||||||
readable content of a page when looking at its layout.
|
|
||||||
</p>
|
</p>
|
||||||
}
|
}
|
||||||
action={
|
action={
|
||||||
@@ -24,11 +24,11 @@ export default function ManualJournalsEmptyStatus() {
|
|||||||
history.push('/make-journal-entry');
|
history.push('/make-journal-entry');
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Make journal
|
<T id={'make_journal'} />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button intent={Intent.NONE} large={true}>
|
<Button intent={Intent.NONE} large={true}>
|
||||||
Learn more
|
<T id={'learn_more'} />
|
||||||
</Button>
|
</Button>
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import React from 'react';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { useFormikContext } from 'formik';
|
import { useFormikContext } from 'formik';
|
||||||
import { CLASSES } from 'common/classes';
|
import { CLASSES } from 'common/classes';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
import MakeJournalEntriesHeaderFields from './MakeJournalEntriesHeaderFields';
|
import MakeJournalEntriesHeaderFields from './MakeJournalEntriesHeaderFields';
|
||||||
import { PageFormBigNumber } from 'components';
|
import { PageFormBigNumber } from 'components';
|
||||||
import { safeSumBy } from 'utils';
|
import { safeSumBy } from 'utils';
|
||||||
@@ -20,7 +21,7 @@ export default function MakeJournalEntriesHeader() {
|
|||||||
<MakeJournalEntriesHeaderFields />
|
<MakeJournalEntriesHeaderFields />
|
||||||
|
|
||||||
<PageFormBigNumber
|
<PageFormBigNumber
|
||||||
label={'Due Amount'}
|
label={<T id={'due_amount'} />}
|
||||||
amount={total}
|
amount={total}
|
||||||
currencyCode={currency_code}
|
currencyCode={currency_code}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { inputIntent } from 'utils';
|
|||||||
export default function MakeJournalFormFooter() {
|
export default function MakeJournalFormFooter() {
|
||||||
return (
|
return (
|
||||||
<div className={classNames(CLASSES.PAGE_FORM_FOOTER)}>
|
<div className={classNames(CLASSES.PAGE_FORM_FOOTER)}>
|
||||||
<Postbox title={'Journal details'} defaultOpen={false}>
|
<Postbox title={<T id={'journal_details'} />} defaultOpen={false}>
|
||||||
<Row>
|
<Row>
|
||||||
<Col md={8}>
|
<Col md={8}>
|
||||||
<FastField name={'description'}>
|
<FastField name={'description'}>
|
||||||
@@ -34,7 +34,7 @@ export default function MakeJournalFormFooter() {
|
|||||||
initialFiles={[]}
|
initialFiles={[]}
|
||||||
// onDrop={handleDropFiles}
|
// onDrop={handleDropFiles}
|
||||||
// onDeleteFile={handleDeleteFile}
|
// onDeleteFile={handleDeleteFile}
|
||||||
hint={'Attachments: Maxiumum size: 20MB'}
|
hint={<T id={'attachments_maximum'} />}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|||||||
@@ -44,7 +44,11 @@ export function DebitHeaderCell({ payload: { currencyCode } }) {
|
|||||||
* Account footer cell.
|
* Account footer cell.
|
||||||
*/
|
*/
|
||||||
function AccountFooterCell({ payload: { currencyCode } }) {
|
function AccountFooterCell({ payload: { currencyCode } }) {
|
||||||
return <span>{`Total ${currencyCode} `}</span>;
|
return (
|
||||||
|
<span>
|
||||||
|
{formatMessage({ id: 'total_currency' }, { currency: currencyCode })}
|
||||||
|
</span>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,7 +18,9 @@ export default function AccountDrawerHeader({
|
|||||||
return (
|
return (
|
||||||
<div className={'account-drawer__content'}>
|
<div className={'account-drawer__content'}>
|
||||||
<div>
|
<div>
|
||||||
<span>Closing Balance</span>
|
<span>
|
||||||
|
<T id={'closing_balance'} />
|
||||||
|
</span>
|
||||||
<p className={'balance'}>
|
<p className={'balance'}>
|
||||||
{<Money amount={amount} currency={currency_code} />}
|
{<Money amount={amount} currency={currency_code} />}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -11,13 +11,11 @@ import withDrawerActions from 'containers/Drawer/withDrawerActions';
|
|||||||
/**
|
/**
|
||||||
* account drawer table.
|
* account drawer table.
|
||||||
*/
|
*/
|
||||||
function AccountDrawerTable({
|
function AccountDrawerTable({ closeDrawer }) {
|
||||||
closeDrawer
|
|
||||||
}) {
|
|
||||||
const {
|
const {
|
||||||
account: { currency_code },
|
account: { currency_code },
|
||||||
accounts,
|
accounts,
|
||||||
drawerName
|
drawerName,
|
||||||
} = useAccountDrawerContext();
|
} = useAccountDrawerContext();
|
||||||
|
|
||||||
const columns = React.useMemo(
|
const columns = React.useMemo(
|
||||||
@@ -69,14 +67,15 @@ function AccountDrawerTable({
|
|||||||
<DataTable columns={columns} data={accounts} />
|
<DataTable columns={columns} data={accounts} />
|
||||||
|
|
||||||
<div class="account-drawer__table-footer">
|
<div class="account-drawer__table-footer">
|
||||||
<Link to={`/financial-reports/general-ledger`} onClick={handleLinkClick}>
|
<Link
|
||||||
← View more transactions.
|
to={`/financial-reports/general-ledger`}
|
||||||
|
onClick={handleLinkClick}
|
||||||
|
>
|
||||||
|
←{formatMessage({ id: 'view_more_transactions' })}
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default compose(
|
export default compose(withDrawerActions)(AccountDrawerTable);
|
||||||
withDrawerActions
|
|
||||||
)(AccountDrawerTable);
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { If, Money } from 'components';
|
import { If, Money } from 'components';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
export default function ExpenseDrawerFooter({
|
export default function ExpenseDrawerFooter({
|
||||||
expense: { total_amount, currency_code },
|
expense: { total_amount, currency_code },
|
||||||
@@ -8,11 +9,11 @@ export default function ExpenseDrawerFooter({
|
|||||||
<div className="expense-drawer__content--footer">
|
<div className="expense-drawer__content--footer">
|
||||||
<div className="wrapper">
|
<div className="wrapper">
|
||||||
<div>
|
<div>
|
||||||
<span>Sub Total</span>
|
<span><T id={'sub_total'}/></span>
|
||||||
<p>{<Money amount={total_amount} currency={currency_code} />}</p>
|
<p>{<Money amount={total_amount} currency={currency_code} />}</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>Total</span>
|
<span><T id={'total'}/></span>
|
||||||
<p>{<Money amount={total_amount} currency={currency_code} />}</p>
|
<p>{<Money amount={total_amount} currency={currency_code} />}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ export default function ExpenseDrawerTable({
|
|||||||
const columns = React.useMemo(
|
const columns = React.useMemo(
|
||||||
() => [
|
() => [
|
||||||
{
|
{
|
||||||
Header: formatMessage({ id: 'Expense account' }),
|
Header: formatMessage({ id: 'expense_account' }),
|
||||||
accessor: 'expense_account.name',
|
accessor: 'expense_account.name',
|
||||||
width: 110,
|
width: 110,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Header: formatMessage({ id: 'Amount' }),
|
Header: formatMessage({ id: 'amount' }),
|
||||||
accessor: ({ amount }) => (
|
accessor: ({ amount }) => (
|
||||||
<Money amount={amount} currency={currency_code} />
|
<Money amount={amount} currency={currency_code} />
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
export default function ManualJournalDrawerFooter({
|
export default function ManualJournalDrawerFooter({
|
||||||
manualJournal: { amount_formatted },
|
manualJournal: { amount_formatted },
|
||||||
@@ -7,11 +8,15 @@ export default function ManualJournalDrawerFooter({
|
|||||||
<div className="journal-drawer__content--footer">
|
<div className="journal-drawer__content--footer">
|
||||||
<div className="wrapper">
|
<div className="wrapper">
|
||||||
<div>
|
<div>
|
||||||
<span>Sub Total</span>
|
<span>
|
||||||
|
<T id={'sub_total'} />
|
||||||
|
</span>
|
||||||
<p>{amount_formatted}</p>
|
<p>{amount_formatted}</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>Total</span>
|
<span>
|
||||||
|
<T id={'total'} />
|
||||||
|
</span>
|
||||||
<p>{amount_formatted}</p>
|
<p>{amount_formatted}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,18 +3,19 @@ import PaperTemplateHeader from './PaperTemplateHeader';
|
|||||||
import PaperTemplateTable from './PaperTemplateTable';
|
import PaperTemplateTable from './PaperTemplateTable';
|
||||||
import PaperTemplateFooter from './PaperTemplateFooter';
|
import PaperTemplateFooter from './PaperTemplateFooter';
|
||||||
import { updateItemsEntriesTotal } from 'containers/Entries/utils';
|
import { updateItemsEntriesTotal } from 'containers/Entries/utils';
|
||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
import 'style/components/Drawer/DrawerTemplate.scss';
|
import 'style/components/Drawer/DrawerTemplate.scss';
|
||||||
|
|
||||||
function PaperTemplate({ labels: propLabels, paperData, entries }) {
|
function PaperTemplate({ labels: propLabels, paperData, entries }) {
|
||||||
const labels = {
|
const labels = {
|
||||||
name: 'Estimate',
|
name: formatMessage({ id: 'estimate_' }),
|
||||||
billedTo: 'Billed to',
|
billedTo: formatMessage({ id: 'billed_to' }),
|
||||||
date: 'Estimate date',
|
date: formatMessage({ id: 'estimate_date' }),
|
||||||
refNo: 'Estimate No.',
|
refNo: formatMessage({ id: 'estimate_no' }),
|
||||||
billedFrom: 'Billed from',
|
billedFrom: formatMessage({ id: 'billed_from' }),
|
||||||
amount: 'Estimate amount',
|
amount: formatMessage({ id: 'estimate_amount' }),
|
||||||
dueDate: 'Due date',
|
dueDate: formatMessage({ id: 'due_date_' }),
|
||||||
...propLabels,
|
...propLabels,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export default function DrawerTemplateTable({ tableData, currencyCode }) {
|
|||||||
width: 80,
|
width: 80,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Header: formatMessage({ id: 'Qty' }),
|
Header: formatMessage({ id: 'qty' }),
|
||||||
accessor: 'quantity',
|
accessor: 'quantity',
|
||||||
disableSortBy: true,
|
disableSortBy: true,
|
||||||
width: 50,
|
width: 50,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PaymentPaperTemplateHeader from './PaymentPaperTemplateHeader';
|
import PaymentPaperTemplateHeader from './PaymentPaperTemplateHeader';
|
||||||
import PaymentPaperTemplateTable from './PaymentPaperTemplateTable';
|
import PaymentPaperTemplateTable from './PaymentPaperTemplateTable';
|
||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
import 'style/components/Drawer/DrawerTemplate.scss';
|
import 'style/components/Drawer/DrawerTemplate.scss';
|
||||||
|
|
||||||
@@ -9,14 +10,14 @@ export default function PaymentPaperTemplate({
|
|||||||
paperData,
|
paperData,
|
||||||
}) {
|
}) {
|
||||||
const labels = {
|
const labels = {
|
||||||
name: 'Payment receive',
|
name: formatMessage({ id: 'payment_receive' }),
|
||||||
billedTo: 'Billed to',
|
billedTo: formatMessage({ id: 'billed_to' }),
|
||||||
date: 'Payment date',
|
date: formatMessage({ id: 'payment_date_' }),
|
||||||
refNo: 'Payment No.',
|
refNo: formatMessage({ id: 'payment_no' }),
|
||||||
billedFrom: 'Billed from',
|
billedFrom: formatMessage({ id: 'billed_from' }),
|
||||||
referenceNo: 'Reference No',
|
referenceNo: formatMessage({ id: 'reference_no' }),
|
||||||
amount: 'Amount received',
|
amount: formatMessage({ id: 'amount_received' }),
|
||||||
dueDate: 'Due date',
|
dueDate: formatMessage({ id: 'due_date_' }),
|
||||||
...propLabels,
|
...propLabels,
|
||||||
};
|
};
|
||||||
const defaultValues = {
|
const defaultValues = {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { CLASSES } from 'common/classes';
|
|||||||
export default function ExpenseFormFooter() {
|
export default function ExpenseFormFooter() {
|
||||||
return (
|
return (
|
||||||
<div className={classNames(CLASSES.PAGE_FORM_FOOTER)}>
|
<div className={classNames(CLASSES.PAGE_FORM_FOOTER)}>
|
||||||
<Postbox title={'Expense details'} defaultOpen={false}>
|
<Postbox title={<T id={'expense_details'} />} defaultOpen={false}>
|
||||||
<Row>
|
<Row>
|
||||||
<Col md={8}>
|
<Col md={8}>
|
||||||
<FastField name={'description'}>
|
<FastField name={'description'}>
|
||||||
@@ -31,7 +31,7 @@ export default function ExpenseFormFooter() {
|
|||||||
initialFiles={[]}
|
initialFiles={[]}
|
||||||
// onDrop={handleDropFiles}
|
// onDrop={handleDropFiles}
|
||||||
// onDeleteFile={handleDeleteFile}
|
// onDeleteFile={handleDeleteFile}
|
||||||
hint={'Attachments: Maxiumum size: 20MB'}
|
hint={<T id={'attachments_maximum'} />}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import React, { useMemo } from 'react';
|
|||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { sumBy } from 'lodash';
|
import { sumBy } from 'lodash';
|
||||||
import { useFormikContext } from 'formik';
|
import { useFormikContext } from 'formik';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
import { CLASSES } from 'common/classes';
|
import { CLASSES } from 'common/classes';
|
||||||
|
|
||||||
@@ -21,7 +22,7 @@ export default function ExpenseFormHeader() {
|
|||||||
<div className={classNames(CLASSES.PAGE_FORM_HEADER)}>
|
<div className={classNames(CLASSES.PAGE_FORM_HEADER)}>
|
||||||
<ExpenseFormHeaderFields />
|
<ExpenseFormHeaderFields />
|
||||||
<PageFormBigNumber
|
<PageFormBigNumber
|
||||||
label={'Expense Amount'}
|
label={<T id={'expense_amount'}/>}
|
||||||
amount={totalExpenseAmount}
|
amount={totalExpenseAmount}
|
||||||
currencyCode={values?.currency_code}
|
currencyCode={values?.currency_code}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ function AmountFooterCell({ payload: { currencyCode }, rows }) {
|
|||||||
/**
|
/**
|
||||||
* Expense amount header cell.
|
* Expense amount header cell.
|
||||||
*/
|
*/
|
||||||
export function ExpenseAmountHeaderCell({ payload: { currencyCode } }) {
|
export function ExpenseAmountHeaderCell({ payload: { currencyCode } }) {
|
||||||
return formatMessage({ id: 'amount_currency' }, { currency: currencyCode });
|
return formatMessage({ id: 'amount_currency' }, { currency: currencyCode });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,14 +68,13 @@ function AmountFooterCell({ payload: { currencyCode }, rows }) {
|
|||||||
* Expense account footer cell.
|
* Expense account footer cell.
|
||||||
*/
|
*/
|
||||||
function ExpenseAccountFooterCell() {
|
function ExpenseAccountFooterCell() {
|
||||||
return 'Total';
|
return <T id={'total'} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve expense form table entries columns.
|
* Retrieve expense form table entries columns.
|
||||||
*/
|
*/
|
||||||
export function useExpenseFormTableColumns() {
|
export function useExpenseFormTableColumns() {
|
||||||
|
|
||||||
return React.useMemo(
|
return React.useMemo(
|
||||||
() => [
|
() => [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ function ExpensesActionsBar({
|
|||||||
className={classNames(Classes.MINIMAL, 'button--filter', {
|
className={classNames(Classes.MINIMAL, 'button--filter', {
|
||||||
'has-active-filters': filterCount > 0,
|
'has-active-filters': filterCount > 0,
|
||||||
})}
|
})}
|
||||||
text="Filter"
|
text={<T id={'filter'}/>}
|
||||||
icon={<Icon icon="filter-16" iconSize={16} />}
|
icon={<Icon icon="filter-16" iconSize={16} />}
|
||||||
/>
|
/>
|
||||||
</Popover>
|
</Popover>
|
||||||
|
|||||||
@@ -2,17 +2,17 @@ import React from 'react';
|
|||||||
import { Button, Intent } from '@blueprintjs/core';
|
import { Button, Intent } from '@blueprintjs/core';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import { EmptyStatus } from 'components';
|
import { EmptyStatus } from 'components';
|
||||||
|
import { FormattedMessage as T } from 'react-intl';
|
||||||
|
|
||||||
export default function InvoicesEmptyStatus() {
|
export default function InvoicesEmptyStatus() {
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<EmptyStatus
|
<EmptyStatus
|
||||||
title={"Create and manage your organization's expenses"}
|
title={<T id={'create_and_manage_your_organization_s_expenses'} />}
|
||||||
description={
|
description={
|
||||||
<p>
|
<p>
|
||||||
It is a long established fact that a reader will be distracted by the
|
<T id={'it_is_a_long_established_fact_that_a_reader'} />
|
||||||
readable content of a page when looking at its layout.
|
|
||||||
</p>
|
</p>
|
||||||
}
|
}
|
||||||
action={
|
action={
|
||||||
@@ -24,11 +24,11 @@ export default function InvoicesEmptyStatus() {
|
|||||||
history.push('/expenses/new');
|
history.push('/expenses/new');
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
New expense
|
<T id={'new_expense'} />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button intent={Intent.NONE} large={true}>
|
<Button intent={Intent.NONE} large={true}>
|
||||||
Learn more
|
<T id={'learn_more'} />
|
||||||
</Button>
|
</Button>
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,20 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useInvoiceDrawerContext } from './InvoiceDrawerProvider';
|
import { useInvoiceDrawerContext } from './InvoiceDrawerProvider';
|
||||||
import PaperTemplate from 'containers/Drawers/PaperTemplate/PaperTemplate';
|
import PaperTemplate from 'containers/Drawers/PaperTemplate/PaperTemplate';
|
||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
export default function InvoicePaper() {
|
export default function InvoicePaper() {
|
||||||
const { invoice, entries } = useInvoiceDrawerContext();
|
const { invoice, entries } = useInvoiceDrawerContext();
|
||||||
|
|
||||||
const propLabels = {
|
const propLabels = {
|
||||||
labels: {
|
labels: {
|
||||||
name: 'Invoice',
|
name: formatMessage({ id: 'invoice' }),
|
||||||
billedTo: 'Billed to',
|
billedTo: formatMessage({ id: 'billed_to' }),
|
||||||
date: 'Invoice date',
|
date: formatMessage({ id: 'invoice_date_' }),
|
||||||
refNo: 'Invoice No.',
|
refNo: formatMessage({ id: 'invoice_no__' }),
|
||||||
billedFrom: 'Billed from',
|
billedFrom: formatMessage({ id: 'billed_from' }),
|
||||||
amount: 'Invoice amount',
|
amount: formatMessage({ id: 'invoice_amount' }),
|
||||||
dueDate: 'Due date',
|
dueDate: formatMessage({ id: 'due_date_' }),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,20 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useReceiptDrawerContext } from './ReceiptDrawerProvider';
|
import { useReceiptDrawerContext } from './ReceiptDrawerProvider';
|
||||||
import PaperTemplate from 'containers/Drawers/PaperTemplate/PaperTemplate';
|
import PaperTemplate from 'containers/Drawers/PaperTemplate/PaperTemplate';
|
||||||
|
import { formatMessage } from 'services/intl';
|
||||||
|
|
||||||
export default function ReceiptPaper() {
|
export default function ReceiptPaper() {
|
||||||
const { receipt, entries } = useReceiptDrawerContext();
|
const { receipt, entries } = useReceiptDrawerContext();
|
||||||
|
|
||||||
const propLabels = {
|
const propLabels = {
|
||||||
labels: {
|
labels: {
|
||||||
name: 'Receipt',
|
name: formatMessage({ id: 'receipt_' }),
|
||||||
billedTo: 'Billed to',
|
billedTo: formatMessage({ id: 'billed_to' }),
|
||||||
date: 'Receipt date',
|
date: formatMessage({ id: 'receipt_date_' }),
|
||||||
refNo: 'Receipt No.',
|
refNo: formatMessage({ id: 'receipt_no' }),
|
||||||
billedFrom: 'Billed from',
|
billedFrom: formatMessage({ id: 'billed_from' }),
|
||||||
amount: 'Receipt amount',
|
amount: formatMessage({ id: 'receipt_amount' }),
|
||||||
dueDate: 'Due date',
|
dueDate: formatMessage({ id: 'due_date_' }),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -939,48 +939,65 @@
|
|||||||
"there_is_no_payable_bills_for_this_vendor_that_can_be_applied_for_this_payment": "There is no payable bills for this vendor that can be applied for this payment",
|
"there_is_no_payable_bills_for_this_vendor_that_can_be_applied_for_this_payment": "There is no payable bills for this vendor that can be applied for this payment",
|
||||||
"please_select_a_vendor_to_display_all_open_bills_for_it": "Please select a vendor to display all open bills for it.",
|
"please_select_a_vendor_to_display_all_open_bills_for_it": "Please select a vendor to display all open bills for it.",
|
||||||
"payment_made_details": "Payment made details",
|
"payment_made_details": "Payment made details",
|
||||||
"there_is_no_inventory_adjustments_transactions_yet":"There is no inventory adjustments transactions yet.",
|
"there_is_no_inventory_adjustments_transactions_yet": "There is no inventory adjustments transactions yet.",
|
||||||
"create_and_manage_your_organization_s_customers":"Create and manage your organization's customers.",
|
"create_and_manage_your_organization_s_customers": "Create and manage your organization's customers.",
|
||||||
"salutation":"Salutation",
|
"salutation": "Salutation",
|
||||||
"work":"work",
|
"work": "work",
|
||||||
"mobile":"Mobile",
|
"mobile": "Mobile",
|
||||||
"phone":"Phone",
|
"phone": "Phone",
|
||||||
"create_and_manage_your_organization_s_vendors":"Create and manage your organization's vendors.",
|
"create_and_manage_your_organization_s_vendors": "Create and manage your organization's vendors.",
|
||||||
"balance_sheet_report":"Balance Sheet Report",
|
"balance_sheet_report": "Balance Sheet Report",
|
||||||
"reports_a_company_s_assets_liabilities_and_shareholders":"Reports a company's assets, liabilities and shareholders' equity at a specific point in time with comparison period(s).",
|
"reports_a_company_s_assets_liabilities_and_shareholders": "Reports a company's assets, liabilities and shareholders' equity at a specific point in time with comparison period(s).",
|
||||||
"summarizes_the_credit_and_debit_balance_of_each_account":"Summarizes the credit and debit balance of each account in your chart of accounts at a specific point in time.",
|
"summarizes_the_credit_and_debit_balance_of_each_account": "Summarizes the credit and debit balance of each account in your chart of accounts at a specific point in time.",
|
||||||
"profit_loss_report":"Profit/Loss Report",
|
"profit_loss_report": "Profit/Loss Report",
|
||||||
"reports_the_revenues_costs_and_expenses":"Reports the revenues, costs and expenses incurred during a specific point in time with comparison period(s).",
|
"reports_the_revenues_costs_and_expenses": "Reports the revenues, costs and expenses incurred during a specific point in time with comparison period(s).",
|
||||||
"reports_inflow_and_outflow_of_cash_and_cash_equivalents":"Reports inflow and outflow of cash and cash equivalents between a specific two points of time.",
|
"reports_inflow_and_outflow_of_cash_and_cash_equivalents": "Reports inflow and outflow of cash and cash equivalents between a specific two points of time.",
|
||||||
"journal_report":"Journal Report",
|
"journal_report": "Journal Report",
|
||||||
"the_debit_and_credit_entries_of_system_transactions":"The debit and credit entries of system transactions, sorted by date.",
|
"the_debit_and_credit_entries_of_system_transactions": "The debit and credit entries of system transactions, sorted by date.",
|
||||||
"general_ledger_report":"General Ledger Report",
|
"general_ledger_report": "General Ledger Report",
|
||||||
"reports_every_transaction_going_in_and_out_of_your":"Reports every transaction going in and out of your accounts and organized by accounts and date to monitoring activity of accounts.",
|
"reports_every_transaction_going_in_and_out_of_your": "Reports every transaction going in and out of your accounts and organized by accounts and date to monitoring activity of accounts.",
|
||||||
"summarize_total_unpaid_balances_of_customers_invoices":"Summarize total unpaid balances of customers invoices with number of days the unpaid invoice is overdue.",
|
"summarize_total_unpaid_balances_of_customers_invoices": "Summarize total unpaid balances of customers invoices with number of days the unpaid invoice is overdue.",
|
||||||
"summarize_total_unpaid_balances_of_vendors_purchase":"Summarize total unpaid balances of vendors purchase invoices with the number of days the unpaid invoice is overdue.",
|
"summarize_total_unpaid_balances_of_vendors_purchase": "Summarize total unpaid balances of vendors purchase invoices with the number of days the unpaid invoice is overdue.",
|
||||||
"sales_purchases_reports":"Sales/Purchases Reports",
|
"sales_purchases_reports": "Sales/Purchases Reports",
|
||||||
"reports_every_transaction_going_in_and_out_of_your_items":"Reports every transaction going in and out of your items to monitoring activity of items.",
|
"reports_every_transaction_going_in_and_out_of_your_items": "Reports every transaction going in and out of your items to monitoring activity of items.",
|
||||||
"reports_every_transaction_going_in_and_out_of_each_vendor_supplier":"Reports every transaction going in and out of each vendor/supplier.",
|
"reports_every_transaction_going_in_and_out_of_each_vendor_supplier": "Reports every transaction going in and out of each vendor/supplier.",
|
||||||
"reports_every_transaction_going_in_and_out_of_each_customer":"Reports every transaction going in and out of each customer.",
|
"reports_every_transaction_going_in_and_out_of_each_customer": "Reports every transaction going in and out of each customer.",
|
||||||
"summerize_the_total_amount_your_business_owes_each_vendor":"Summarize the total amount your business owes each vendor.",
|
"summerize_the_total_amount_your_business_owes_each_vendor": "Summarize the total amount your business owes each vendor.",
|
||||||
"summerize_the_total_amount_of_each_customer_owes_your_business":"Summarize the total amount of each customer owes your business.",
|
"summerize_the_total_amount_of_each_customer_owes_your_business": "Summarize the total amount of each customer owes your business.",
|
||||||
"summarize_the_business_s_purchase_items_quantity_cost_and_average":"Summarize the business’s purchase items quantity, cost and average cost rate of each item during a specific point in time.",
|
"summarize_the_business_s_purchase_items_quantity_cost_and_average": "Summarize the business’s purchase items quantity, cost and average cost rate of each item during a specific point in time.",
|
||||||
"summarize_the_business_s_sold_items_quantity_income_and_average_income_rate":"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": "Summarize the business’s sold items quantity, income and average income rate of each item during a specific point in time.",
|
||||||
"shows_the_average_age_of_unresolved_issues_for_a_project_or_filter":"Shows the average age of unresolved issues for a project or filter. This helps you see whether your backlog is being kept up to date",
|
"shows_the_average_age_of_unresolved_issues_for_a_project_or_filter": "Shows the average age of unresolved issues for a project or filter. This helps you see whether your backlog is being kept up to date",
|
||||||
"categories":"Categories",
|
"categories": "Categories",
|
||||||
"duplicate_item":"Duplicate item",
|
"duplicate_item": "Duplicate item",
|
||||||
"summerize_your_transactions_for_each_inventory_item":"Summarize your transactions for each inventory item and how they affect quantity, valuation and weighted average.",
|
"summerize_your_transactions_for_each_inventory_item": "Summarize your transactions for each inventory item and how they affect quantity, valuation and weighted average.",
|
||||||
"summerize_how_much_each_customer_owes_your_business":"Summarize how much each customer owes your business.",
|
"summerize_how_much_each_customer_owes_your_business": "Summarize how much each customer owes your business.",
|
||||||
"duplicate_customer":"Duplicate customer",
|
"duplicate_customer": "Duplicate customer",
|
||||||
"duplicate_vendor":"Duplicate vendor",
|
"duplicate_vendor": "Duplicate vendor",
|
||||||
"new_billing":"New Billing",
|
"new_billing": "New Billing",
|
||||||
"shown_on_sales_forms_and_purchase_orders":"Shown on sales forms and purchase orders.",
|
"shown_on_sales_forms_and_purchase_orders": "Shown on sales forms and purchase orders.",
|
||||||
"for_reporting_you_can_specify_any_month":"For reporting, you can specify any month as the start of your financial year (also called your financial reporting year or accounting year).",
|
"for_reporting_you_can_specify_any_month": "For reporting, you can specify any month as the start of your financial year (also called your financial reporting year or accounting year).",
|
||||||
"you_can_t_change_the_base_currency_as_there_are_transactions":"You can't change the base currency as there are transactions recorded in your organization.",
|
"you_can_t_change_the_base_currency_as_there_are_transactions": "You can't change the base currency as there are transactions recorded in your organization.",
|
||||||
"make_account_code_required_when_create_a_new_accounts":"Make account code required when create a new accounts.",
|
"make_account_code_required_when_create_a_new_accounts": "Make account code required when create a new accounts.",
|
||||||
"should_account_code_be_unique_when_create_a_new_account":"Should account code be unique when create a new account.",
|
"should_account_code_be_unique_when_create_a_new_account": "Should account code be unique when create a new account.",
|
||||||
"select_a_preferred_account_to_deposit_into_it_after_customer_make_payment":"Select a preferred account to deposit into it after customer make payment.",
|
"select_a_preferred_account_to_deposit_into_it_after_customer_make_payment": "Select a preferred account to deposit into it after customer make payment.",
|
||||||
"select_a_preferred_account_to_deposit_into_it_vendor_advanced_deposits":"Select a preferred account to deposit into it vendor advanced deposits.",
|
"select_a_preferred_account_to_deposit_into_it_vendor_advanced_deposits": "Select a preferred account to deposit into it vendor advanced deposits.",
|
||||||
"roles":"Roles"
|
"roles": "Roles",
|
||||||
}
|
"closing_balance": "Closing Balance",
|
||||||
|
"view_more_transactions": "View more transactions.",
|
||||||
|
"there_is_no_results_in_the_table": "There is no results in the table.",
|
||||||
|
"create_your_first_journal_entries_on_accounts_chart": "Create your first journal entries on accounts chart.",
|
||||||
|
"journal_details": "Journal details",
|
||||||
|
"create_and_manage_your_organization_s_expenses": "Create and manage your organization's expenses",
|
||||||
|
"expense_amount": "Expense Amount",
|
||||||
|
"expense_details": "Expense details",
|
||||||
|
"sub_total": "Sub Total",
|
||||||
|
"estimate_": "Estimate",
|
||||||
|
"billed_to": "Billed to",
|
||||||
|
"estimate_no": "Estimate No.",
|
||||||
|
"billed_from": "Billed from",
|
||||||
|
"estimate_amount": "Estimate amount",
|
||||||
|
"invoice": "Invoice",
|
||||||
|
"receipt_": "Receipt",
|
||||||
|
"receipt_no": "Receipt No.",
|
||||||
|
"receipt_amount": "Receipt amount"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user