mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 14:50:32 +00:00
Merge branch 'develop' of https://github.com/bigcapitalhq/client into develop
This commit is contained in:
@@ -19,11 +19,12 @@ import BillDrawerCls from 'style/components/Drawers/BillDrawer.module.scss';
|
|||||||
export default function BillDrawerDetails() {
|
export default function BillDrawerDetails() {
|
||||||
const {
|
const {
|
||||||
data: { transactions },
|
data: { transactions },
|
||||||
|
billId,
|
||||||
} = useBillDrawerContext();
|
} = useBillDrawerContext();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={clsx(BillDrawerCls.root)}>
|
<div className={clsx(BillDrawerCls.root)}>
|
||||||
<DrawerMainTabs defaultSelectedTabId="details">
|
<DrawerMainTabs renderActiveTabPanelOnly={true} defaultSelectedTabId="details">
|
||||||
<Tab
|
<Tab
|
||||||
title={intl.get('details')}
|
title={intl.get('details')}
|
||||||
id={'details'}
|
id={'details'}
|
||||||
@@ -37,7 +38,7 @@ export default function BillDrawerDetails() {
|
|||||||
<Tab
|
<Tab
|
||||||
title={intl.get('payment_transactions')}
|
title={intl.get('payment_transactions')}
|
||||||
id={'payment_transactions'}
|
id={'payment_transactions'}
|
||||||
panel={<BillPaymentTransactionTable />}
|
panel={<BillPaymentTransactionTable billId={billId} />}
|
||||||
/>
|
/>
|
||||||
<Tab
|
<Tab
|
||||||
title={intl.get('located_landed_cost')}
|
title={intl.get('located_landed_cost')}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import {
|
|||||||
useBill,
|
useBill,
|
||||||
useTransactionsByReference,
|
useTransactionsByReference,
|
||||||
useBillLocatedLandedCost,
|
useBillLocatedLandedCost,
|
||||||
useBillPaymentTransactions,
|
|
||||||
} from 'hooks/query';
|
} from 'hooks/query';
|
||||||
|
|
||||||
const BillDrawerContext = React.createContext();
|
const BillDrawerContext = React.createContext();
|
||||||
@@ -34,31 +33,15 @@ function BillDrawerProvider({ billId, ...props }) {
|
|||||||
enabled: !!billId,
|
enabled: !!billId,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Handle fetch bill payment transaction.
|
|
||||||
const {
|
|
||||||
isLoading: isPaymentTransactionsLoading,
|
|
||||||
isFetching: isPaymentTransactionFetching,
|
|
||||||
data: paymentTransactions,
|
|
||||||
} = useBillPaymentTransactions(billId, {
|
|
||||||
enabled: !!billId,
|
|
||||||
});
|
|
||||||
|
|
||||||
//provider.
|
//provider.
|
||||||
const provider = {
|
const provider = {
|
||||||
transactions,
|
transactions,
|
||||||
billId,
|
billId,
|
||||||
data,
|
data,
|
||||||
bill,
|
bill,
|
||||||
paymentTransactions,
|
|
||||||
isPaymentTransactionsLoading,
|
|
||||||
isPaymentTransactionFetching,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const loading =
|
const loading = isLandedCostLoading || isTransactionLoading || isBillLoading;
|
||||||
isLandedCostLoading ||
|
|
||||||
isTransactionLoading ||
|
|
||||||
isPaymentTransactionsLoading ||
|
|
||||||
isBillLoading;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DrawerLoading loading={loading}>
|
<DrawerLoading loading={loading}>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'style/pages/PaymentTransactions/List.scss';
|
|||||||
|
|
||||||
import { useBillPaymentTransactionsColumns } from './components';
|
import { useBillPaymentTransactionsColumns } from './components';
|
||||||
import { useBillDrawerContext } from '../BillDrawerProvider';
|
import { useBillDrawerContext } from '../BillDrawerProvider';
|
||||||
|
import { useBillPaymentTransactions } from 'hooks/query';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bill payment transactions datatable.
|
* Bill payment transactions datatable.
|
||||||
@@ -12,11 +13,16 @@ import { useBillDrawerContext } from '../BillDrawerProvider';
|
|||||||
export default function BillPaymentTransactionTable() {
|
export default function BillPaymentTransactionTable() {
|
||||||
const columns = useBillPaymentTransactionsColumns();
|
const columns = useBillPaymentTransactionsColumns();
|
||||||
|
|
||||||
|
const { billId } = useBillDrawerContext();
|
||||||
|
|
||||||
|
// Handle fetch bill payment transaction.
|
||||||
const {
|
const {
|
||||||
paymentTransactions,
|
isLoading: isPaymentTransactionsLoading,
|
||||||
isPaymentTransactionsLoading,
|
isFetching: isPaymentTransactionFetching,
|
||||||
isPaymentTransactionFetching,
|
data: paymentTransactions,
|
||||||
} = useBillDrawerContext();
|
} = useBillPaymentTransactions(billId, {
|
||||||
|
enabled: !!billId,
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card>
|
<Card>
|
||||||
|
|||||||
@@ -14,17 +14,23 @@ export const useBillPaymentTransactionsColumns = () => {
|
|||||||
{
|
{
|
||||||
id: 'date',
|
id: 'date',
|
||||||
Header: intl.get('payment_date'),
|
Header: intl.get('payment_date'),
|
||||||
accessor: 'date',
|
accessor: 'formatted_payment_date',
|
||||||
Cell: FormatDateCell,
|
Cell: FormatDateCell,
|
||||||
width: 110,
|
width: 110,
|
||||||
className: 'date',
|
className: 'date',
|
||||||
textOverview: true,
|
textOverview: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'payment_account_name',
|
||||||
|
Header: intl.get('bill_transactions.column.deposit_account'),
|
||||||
|
accessor: 'payment_account_name',
|
||||||
|
width: 120,
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'amount',
|
id: 'amount',
|
||||||
Header: intl.get('amount'),
|
Header: intl.get('amount'),
|
||||||
accessor: 'amount',
|
accessor: 'formatted_payment_amount',
|
||||||
// accessor: 'formatted_amount',
|
|
||||||
align: 'right',
|
align: 'right',
|
||||||
width: 100,
|
width: 100,
|
||||||
className: clsx(CLASSES.FONT_BOLD),
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
@@ -40,9 +46,9 @@ export const useBillPaymentTransactionsColumns = () => {
|
|||||||
{
|
{
|
||||||
id: 'reference',
|
id: 'reference',
|
||||||
Header: intl.get('reference_no'),
|
Header: intl.get('reference_no'),
|
||||||
accessor: 'reference',
|
accessor: 'payment_reference_no',
|
||||||
width: 90,
|
width: 90,
|
||||||
className: 'reference',
|
className: 'payment_reference_no',
|
||||||
clickable: true,
|
clickable: true,
|
||||||
textOverview: true,
|
textOverview: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -20,7 +20,10 @@ export default function InvoiceDetail() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={clsx(InvoiceDrawerCls.invoice_details)}>
|
<div className={clsx(InvoiceDrawerCls.invoice_details)}>
|
||||||
<DrawerMainTabs defaultSelectedTabId="details">
|
<DrawerMainTabs
|
||||||
|
renderActiveTabPanelOnly={true}
|
||||||
|
defaultSelectedTabId="details"
|
||||||
|
>
|
||||||
<Tab
|
<Tab
|
||||||
title={intl.get('details')}
|
title={intl.get('details')}
|
||||||
id={'details'}
|
id={'details'}
|
||||||
|
|||||||
@@ -29,30 +29,14 @@ function InvoiceDetailDrawerProvider({ invoiceId, ...props }) {
|
|||||||
enabled: !!invoiceId,
|
enabled: !!invoiceId,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Fetch invoice payment transactions.
|
|
||||||
const {
|
|
||||||
data: paymentTransactions,
|
|
||||||
isFetching: isPaymentTransactionFetching,
|
|
||||||
isLoading: isPaymentTransactionLoading,
|
|
||||||
} = useInvoicePaymentTransactions(invoiceId, {
|
|
||||||
enabled: !!invoiceId,
|
|
||||||
});
|
|
||||||
|
|
||||||
//provider.
|
//provider.
|
||||||
const provider = {
|
const provider = {
|
||||||
transactions,
|
transactions,
|
||||||
paymentTransactions,
|
|
||||||
isPaymentTransactionLoading,
|
|
||||||
isPaymentTransactionFetching,
|
|
||||||
invoiceId,
|
invoiceId,
|
||||||
invoice,
|
invoice,
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<DrawerLoading
|
<DrawerLoading loading={isTransactionLoading || isInvoiceLoading}>
|
||||||
loading={
|
|
||||||
isTransactionLoading || isInvoiceLoading || isPaymentTransactionLoading
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<DrawerHeaderContent
|
<DrawerHeaderContent
|
||||||
name="invoice-detail-drawer"
|
name="invoice-detail-drawer"
|
||||||
title={intl.get('invoice_details')}
|
title={intl.get('invoice_details')}
|
||||||
|
|||||||
@@ -5,18 +5,24 @@ import 'style/pages/PaymentTransactions/List.scss';
|
|||||||
|
|
||||||
import { useInvoicePaymentTransactionsColumns } from './components';
|
import { useInvoicePaymentTransactionsColumns } from './components';
|
||||||
import { useInvoiceDetailDrawerContext } from '../InvoiceDetailDrawerProvider';
|
import { useInvoiceDetailDrawerContext } from '../InvoiceDetailDrawerProvider';
|
||||||
|
import { useInvoicePaymentTransactions } from 'hooks/query';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoice payment transactions datatable.
|
* Invoice payment transactions datatable.
|
||||||
*/
|
*/
|
||||||
export default function InvoicePaymentTransactionsTable() {
|
export default function InvoicePaymentTransactionsTable() {
|
||||||
const columns = useInvoicePaymentTransactionsColumns();
|
const columns = useInvoicePaymentTransactionsColumns();
|
||||||
const {
|
|
||||||
paymentTransactions,
|
|
||||||
isPaymentTransactionLoading,
|
|
||||||
isPaymentTransactionFetching,
|
|
||||||
} = useInvoiceDetailDrawerContext();
|
|
||||||
|
|
||||||
|
const { invoiceId } = useInvoiceDetailDrawerContext();
|
||||||
|
|
||||||
|
// Fetch invoice payment transactions.
|
||||||
|
const {
|
||||||
|
data: paymentTransactions,
|
||||||
|
isFetching: isPaymentTransactionFetching,
|
||||||
|
isLoading: isPaymentTransactionLoading,
|
||||||
|
} = useInvoicePaymentTransactions(invoiceId, {
|
||||||
|
enabled: !!invoiceId,
|
||||||
|
});
|
||||||
return (
|
return (
|
||||||
<Card>
|
<Card>
|
||||||
<DataTable
|
<DataTable
|
||||||
|
|||||||
@@ -14,35 +14,41 @@ export const useInvoicePaymentTransactionsColumns = () => {
|
|||||||
{
|
{
|
||||||
id: 'date',
|
id: 'date',
|
||||||
Header: intl.get('payment_date'),
|
Header: intl.get('payment_date'),
|
||||||
accessor: 'date',
|
accessor: 'formatted_payment_date',
|
||||||
Cell: FormatDateCell,
|
Cell: FormatDateCell,
|
||||||
width: 110,
|
width: 110,
|
||||||
className: 'date',
|
className: 'date',
|
||||||
textOverview: true,
|
textOverview: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'deposit_account_name',
|
||||||
|
Header: intl.get('invoice_transactions.column.withdrawal_account'),
|
||||||
|
accessor: 'deposit_account_name',
|
||||||
|
width: 120,
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'amount',
|
id: 'amount',
|
||||||
Header: intl.get('amount'),
|
Header: intl.get('amount'),
|
||||||
accessor: 'amount',
|
accessor: 'formatted_payment_amount',
|
||||||
// accessor: 'formatted_amount',
|
|
||||||
align: 'right',
|
align: 'right',
|
||||||
width: 120,
|
width: 120,
|
||||||
className: clsx(CLASSES.FONT_BOLD),
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
textOverview: true,
|
textOverview: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'payment_receive_no.',
|
id: 'payment_number.',
|
||||||
Header: intl.get('payment_no'),
|
Header: intl.get('payment_no'),
|
||||||
accessor: 'payment_receive_no',
|
accessor: 'payment_number',
|
||||||
width: 100,
|
width: 100,
|
||||||
className: 'payment_receive_no',
|
className: 'payment_number',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'reference_no',
|
id: 'payment_reference_no',
|
||||||
Header: intl.get('reference_no'),
|
Header: intl.get('reference_no'),
|
||||||
accessor: 'reference_no',
|
accessor: 'payment_reference_no',
|
||||||
width: 90,
|
width: 90,
|
||||||
className: 'reference_no',
|
className: 'payment_reference_no',
|
||||||
clickable: true,
|
clickable: true,
|
||||||
textOverview: true,
|
textOverview: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import React from 'react';
|
|||||||
import ItemDetailActionsBar from './ItemDetailActionsBar';
|
import ItemDetailActionsBar from './ItemDetailActionsBar';
|
||||||
import ItemDetailHeader from './ItemDetailHeader';
|
import ItemDetailHeader from './ItemDetailHeader';
|
||||||
import { ItemPaymentTransactions } from './ItemPaymentTransactions';
|
import { ItemPaymentTransactions } from './ItemPaymentTransactions';
|
||||||
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
|
|
||||||
|
|
||||||
import { Card } from 'components';
|
import { Card } from 'components';
|
||||||
|
|
||||||
|
|||||||
@@ -1,76 +1,35 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import intl from 'react-intl-universal';
|
import { DataTable, Card } from '../../../../components';
|
||||||
import clsx from 'classnames';
|
import { useItemDetailDrawerContext } from '../ItemDetailDrawerProvider';
|
||||||
import { CLASSES } from '../../../../common/classes';
|
import { useItemAssociatedBillTransactions } from 'hooks/query';
|
||||||
import { DataTable, Card, FormatDateCell } from '../../../../components';
|
import { useBillTransactionsColumns } from './components';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bill payment transactions data table.
|
* Bill payment transactions data table.
|
||||||
*/
|
*/
|
||||||
export default function BillPaymentTransactions() {
|
export default function BillPaymentTransactions() {
|
||||||
const columns = React.useMemo(
|
const columns = useBillTransactionsColumns();
|
||||||
() => [
|
|
||||||
{
|
const { itemId } = useItemDetailDrawerContext();
|
||||||
id: 'bill_date',
|
|
||||||
Header: intl.get('date'),
|
// Handle fetch Estimate associated transactions.
|
||||||
accessor: 'bill_date',
|
const {
|
||||||
Cell: FormatDateCell,
|
isLoading: isBillTransactionsLoading,
|
||||||
width: 110,
|
isFetching: isBillTransactionFetching,
|
||||||
className: 'bill_date',
|
data: paymentTransactions,
|
||||||
},
|
} = useItemAssociatedBillTransactions(itemId, {
|
||||||
{
|
enabled: !!itemId,
|
||||||
id: 'bill_number',
|
});
|
||||||
Header: intl.get('bill_number'),
|
|
||||||
accessor: (row) => (row.bill_number ? `${row.bill_number}` : null),
|
|
||||||
width: 100,
|
|
||||||
className: 'bill_number',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'vendor',
|
|
||||||
Header: intl.get('vendor_name'),
|
|
||||||
accessor: 'vendor.display_name',
|
|
||||||
width: 180,
|
|
||||||
className: 'vendor',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'reference_no',
|
|
||||||
Header: intl.get('reference_no'),
|
|
||||||
accessor: 'reference_no',
|
|
||||||
width: 90,
|
|
||||||
className: 'reference_no',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'qunatity',
|
|
||||||
Header: 'Quantity Purchase',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'rate',
|
|
||||||
Header: 'Rate',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'total',
|
|
||||||
Header: intl.get('total'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'status',
|
|
||||||
Header: intl.get('status'),
|
|
||||||
// accessor: (row) => statusAccessor(row),
|
|
||||||
width: 160,
|
|
||||||
className: 'status',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="item-drawer__table">
|
<div className="item-drawer__table">
|
||||||
<Card>
|
<Card>
|
||||||
<DataTable
|
<DataTable
|
||||||
columns={columns}
|
columns={columns}
|
||||||
data={[]}
|
data={paymentTransactions}
|
||||||
// loading={}
|
loading={isBillTransactionsLoading}
|
||||||
// headerLoading={}
|
headerLoading={isBillTransactionsLoading}
|
||||||
// progressBarLoading={}
|
progressBarLoading={isBillTransactionFetching}
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,71 +1,35 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import intl from 'react-intl-universal';
|
import { DataTable, Card } from '../../../../components';
|
||||||
import clsx from 'classnames';
|
import { useItemDetailDrawerContext } from '../ItemDetailDrawerProvider';
|
||||||
import { CLASSES } from '../../../../common/classes';
|
import { useItemAssociatedEstimateTransactions } from 'hooks/query';
|
||||||
import { DataTable, Card, FormatDateCell } from '../../../../components';
|
import { useEstimateTransactionsColumns } from './components';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Esimtate payment transactions datatable.
|
* Esimtate payment transactions datatable.
|
||||||
*/
|
*/
|
||||||
export default function EstimatePaymentTransactions() {
|
export default function EstimatePaymentTransactions() {
|
||||||
const columns = React.useMemo(
|
const columns = useEstimateTransactionsColumns();
|
||||||
() => [
|
|
||||||
{
|
const { itemId } = useItemDetailDrawerContext();
|
||||||
id: 'estimate_date',
|
|
||||||
Header: intl.get('date'),
|
// Handle fetch Estimate associated transactions.
|
||||||
accessor: 'estimate_date',
|
const {
|
||||||
Cell: FormatDateCell,
|
isLoading: isEstimateTransactionsLoading,
|
||||||
width: 110,
|
isFetching: isEstimateTransactionFetching,
|
||||||
className: 'estimate_date',
|
data: paymentTransactions,
|
||||||
textOverview: true,
|
} = useItemAssociatedEstimateTransactions(itemId, {
|
||||||
},
|
enabled: !!itemId,
|
||||||
{
|
});
|
||||||
id: 'estimate_number',
|
|
||||||
Header: intl.get('estimate_no'),
|
|
||||||
accessor: 'estimate_number',
|
|
||||||
width: 100,
|
|
||||||
className: 'estimate_number',
|
|
||||||
textOverview: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'reference',
|
|
||||||
Header: intl.get('reference_no'),
|
|
||||||
accessor: 'reference',
|
|
||||||
width: 140,
|
|
||||||
className: 'reference',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'customer_id',
|
|
||||||
Header: intl.get('customer_name'),
|
|
||||||
accessor: 'customer.display_name',
|
|
||||||
width: 140,
|
|
||||||
className: 'customer_id',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'qunatity',
|
|
||||||
Header: 'Quantity Sold',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'rate',
|
|
||||||
Header: 'Rate',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'total',
|
|
||||||
Header: intl.get('total'),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="item-drawer__table">
|
<div className="item-drawer__table">
|
||||||
<Card>
|
<Card>
|
||||||
<DataTable
|
<DataTable
|
||||||
columns={columns}
|
columns={columns}
|
||||||
data={[]}
|
data={paymentTransactions}
|
||||||
// loading={}
|
loading={isEstimateTransactionsLoading}
|
||||||
// headerLoading={}
|
headerLoading={isEstimateTransactionsLoading}
|
||||||
// progressBarLoading={}
|
progressBarLoading={isEstimateTransactionFetching}
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,81 +1,35 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import intl from 'react-intl-universal';
|
import { DataTable, Card } from '../../../../components';
|
||||||
import clsx from 'classnames';
|
import { useItemAssociatedInvoiceTransactions } from 'hooks/query';
|
||||||
import { CLASSES } from '../../../../common/classes';
|
import { useItemDetailDrawerContext } from '../ItemDetailDrawerProvider';
|
||||||
import { DataTable, Card, FormatDateCell } from '../../../../components';
|
import { useInvoicePaymentTransactionsColumns } from './components';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoice payment transactions datatable.
|
* Invoice payment transactions datatable.
|
||||||
*/
|
*/
|
||||||
export default function InvoicePaymentTransactionsTable() {
|
export default function InvoicePaymentTransactionsTable() {
|
||||||
const columns = React.useMemo(
|
const columns = useInvoicePaymentTransactionsColumns();
|
||||||
() => [
|
|
||||||
{
|
const { itemId } = useItemDetailDrawerContext();
|
||||||
id: 'invoice_date',
|
|
||||||
Header: intl.get('date'),
|
// Handle fetch invoice associated transactions.
|
||||||
accessor: 'invoice_date',
|
const {
|
||||||
Cell: FormatDateCell,
|
isLoading: isInvoiceTransactionsLoading,
|
||||||
width: 110,
|
isFetching: isInvoiceTransactionFetching,
|
||||||
className: 'invoice_date',
|
data: paymentTransactions,
|
||||||
textOverview: true,
|
} = useItemAssociatedInvoiceTransactions(itemId, {
|
||||||
},
|
enabled: !!itemId,
|
||||||
{
|
});
|
||||||
id: 'invoice_no',
|
|
||||||
Header: intl.get('invoice_no__'),
|
|
||||||
accessor: 'invoice_no',
|
|
||||||
width: 240,
|
|
||||||
className: 'invoice_no',
|
|
||||||
textOverview: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'customer',
|
|
||||||
Header: intl.get('customer_name'),
|
|
||||||
accessor: 'customer.display_name',
|
|
||||||
width: 140,
|
|
||||||
className: 'customer_id',
|
|
||||||
clickable: true,
|
|
||||||
textOverview: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'reference_no',
|
|
||||||
Header: intl.get('reference_no'),
|
|
||||||
accessor: 'reference_no',
|
|
||||||
width: 140,
|
|
||||||
className: 'reference_no',
|
|
||||||
textOverview: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'qunatity',
|
|
||||||
Header: 'Quantity Sold',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'rate',
|
|
||||||
Header: 'Rate',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'total',
|
|
||||||
Header: intl.get('total'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'status',
|
|
||||||
Header: intl.get('status'),
|
|
||||||
// accessor: (row) => statusAccessor(row),
|
|
||||||
width: 160,
|
|
||||||
className: 'status',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="item-drawer__table">
|
<div className="item-drawer__table">
|
||||||
<Card>
|
<Card>
|
||||||
<DataTable
|
<DataTable
|
||||||
columns={columns}
|
columns={columns}
|
||||||
data={[]}
|
data={paymentTransactions}
|
||||||
// loading={}
|
loading={isInvoiceTransactionsLoading}
|
||||||
// headerLoading={}
|
headerLoading={isInvoiceTransactionsLoading}
|
||||||
// progressBarLoading={}
|
progressBarLoading={isInvoiceTransactionFetching}
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,81 +1,35 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import intl from 'react-intl-universal';
|
import { DataTable, Card } from '../../../../components';
|
||||||
import clsx from 'classnames';
|
import { useItemDetailDrawerContext } from '../ItemDetailDrawerProvider';
|
||||||
import { CLASSES } from '../../../../common/classes';
|
import { useItemAssociatedReceiptTransactions } from 'hooks/query';
|
||||||
import { DataTable, Card, FormatDateCell } from '../../../../components';
|
import { useReceiptTransactionsColumns } from './components';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Receipt payment transactions datatable.
|
* Receipt payment transactions datatable.
|
||||||
*/
|
*/
|
||||||
export default function ReceiptPaymentTransactions() {
|
export default function ReceiptPaymentTransactions() {
|
||||||
const columns = React.useMemo(
|
const columns = useReceiptTransactionsColumns();
|
||||||
() => [
|
|
||||||
{
|
const { itemId } = useItemDetailDrawerContext();
|
||||||
id: 'receipt_date',
|
|
||||||
Header: intl.get('date'),
|
// Handle fetch receipts associated transactions.
|
||||||
accessor: 'receipt_date',
|
const {
|
||||||
Cell: FormatDateCell,
|
isLoading: isReceiptTransactionsLoading,
|
||||||
width: 110,
|
isFetching: isReceiptTransactionFetching,
|
||||||
className: 'receipt_date',
|
data: paymentTransactions,
|
||||||
textOverview: true,
|
} = useItemAssociatedReceiptTransactions(itemId, {
|
||||||
},
|
enabled: !!itemId,
|
||||||
{
|
});
|
||||||
id: 'receipt_number',
|
|
||||||
Header: intl.get('receipt_no'),
|
|
||||||
accessor: 'receipt_number',
|
|
||||||
width: 140,
|
|
||||||
className: 'receipt_number',
|
|
||||||
clickable: true,
|
|
||||||
textOverview: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'customer',
|
|
||||||
Header: intl.get('customer_name'),
|
|
||||||
accessor: 'customer.display_name',
|
|
||||||
width: 140,
|
|
||||||
className: 'customer_id',
|
|
||||||
textOverview: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'reference_no',
|
|
||||||
Header: intl.get('reference_no'),
|
|
||||||
accessor: 'reference_no',
|
|
||||||
width: 140,
|
|
||||||
className: 'reference_no',
|
|
||||||
textOverview: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'status',
|
|
||||||
Header: intl.get('status'),
|
|
||||||
// accessor: StatusAccessor,
|
|
||||||
width: 140,
|
|
||||||
className: 'status',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'qunatity',
|
|
||||||
Header: 'Quantity Sold',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'rate',
|
|
||||||
Header: 'Rate',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'total',
|
|
||||||
Header: intl.get('total'),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="item-drawer__table">
|
<div className="item-drawer__table">
|
||||||
<Card>
|
<Card>
|
||||||
<DataTable
|
<DataTable
|
||||||
columns={columns}
|
columns={columns}
|
||||||
data={[]}
|
data={paymentTransactions}
|
||||||
// loading={}
|
loading={isReceiptTransactionsLoading}
|
||||||
// headerLoading={}
|
headerLoading={isReceiptTransactionsLoading}
|
||||||
// progressBarLoading={}
|
progressBarLoading={isReceiptTransactionFetching}
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,237 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
|
import clsx from 'classnames';
|
||||||
|
import { CLASSES } from '../../../../common/classes';
|
||||||
|
import { FormatDateCell } from '../../../../components';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve invoice payment transactions associated with item table columns.
|
||||||
|
*/
|
||||||
|
export const useInvoicePaymentTransactionsColumns = () => {
|
||||||
|
return React.useMemo(
|
||||||
|
() => [
|
||||||
|
{
|
||||||
|
id: 'invoice_date',
|
||||||
|
Header: intl.get('date'),
|
||||||
|
accessor: 'formatted_invoice_date',
|
||||||
|
Cell: FormatDateCell,
|
||||||
|
width: 140,
|
||||||
|
className: 'invoice_date',
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'invoice_no',
|
||||||
|
Header: intl.get('invoice_no__'),
|
||||||
|
accessor: 'invoice_number',
|
||||||
|
width: 120,
|
||||||
|
className: 'invoice_no',
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// id: 'reference_number',
|
||||||
|
// Header: intl.get('reference_no'),
|
||||||
|
// accessor: 'reference_number',
|
||||||
|
// width: 120,
|
||||||
|
// className: 'reference_number',
|
||||||
|
// textOverview: true,
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
id: 'qunatity',
|
||||||
|
Header: 'Quantity Sold',
|
||||||
|
accessor: 'quantity',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rate',
|
||||||
|
Header: 'Rate',
|
||||||
|
accessor: 'formatted_rate',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'amount',
|
||||||
|
Header: intl.get('total'),
|
||||||
|
accessor: 'formatted_amount',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve estimate transactions associated with item table columns.
|
||||||
|
*/
|
||||||
|
export const useEstimateTransactionsColumns = () => {
|
||||||
|
return React.useMemo(
|
||||||
|
() => [
|
||||||
|
{
|
||||||
|
id: 'estimate_date',
|
||||||
|
Header: intl.get('date'),
|
||||||
|
accessor: 'formatted_estimate_date',
|
||||||
|
Cell: FormatDateCell,
|
||||||
|
width: 140,
|
||||||
|
className: 'estimate_date',
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'estimate_number',
|
||||||
|
Header: intl.get('estimate_no'),
|
||||||
|
accessor: 'estimate_number',
|
||||||
|
width: 120,
|
||||||
|
className: 'estimate_number',
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'qunatity',
|
||||||
|
Header: 'Quantity Sold',
|
||||||
|
accessor: 'quantity',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rate',
|
||||||
|
Header: 'Rate',
|
||||||
|
accessor: 'formatted_rate',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'amount',
|
||||||
|
Header: intl.get('total'),
|
||||||
|
accessor: 'formatted_amount',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve receipt transactions associated with item table columns.
|
||||||
|
*/
|
||||||
|
export const useReceiptTransactionsColumns = () => {
|
||||||
|
return React.useMemo(
|
||||||
|
() => [
|
||||||
|
{
|
||||||
|
id: 'receipt_date',
|
||||||
|
Header: intl.get('date'),
|
||||||
|
accessor: 'formatted_receipt_date',
|
||||||
|
Cell: FormatDateCell,
|
||||||
|
width: 110,
|
||||||
|
className: 'receipt_date',
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'receipt_number',
|
||||||
|
Header: intl.get('receipt_no'),
|
||||||
|
accessor: 'receip_number',
|
||||||
|
width: 140,
|
||||||
|
className: 'receipt_number',
|
||||||
|
clickable: true,
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'reference_number',
|
||||||
|
Header: intl.get('reference_no'),
|
||||||
|
accessor: 'reference_number',
|
||||||
|
width: 140,
|
||||||
|
className: 'reference_number',
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'qunatity',
|
||||||
|
Header: 'Quantity Sold',
|
||||||
|
accessor: 'quantity',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rate',
|
||||||
|
Header: 'Rate',
|
||||||
|
accessor: 'formatted_rate',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'amount',
|
||||||
|
Header: intl.get('total'),
|
||||||
|
accessor: 'formatted_amount',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve bill transactions associated with item table columns.
|
||||||
|
*/
|
||||||
|
export const useBillTransactionsColumns = () => {
|
||||||
|
return React.useMemo(
|
||||||
|
() => [
|
||||||
|
{
|
||||||
|
id: 'bill_date',
|
||||||
|
Header: intl.get('date'),
|
||||||
|
accessor: 'formatted_bill_date',
|
||||||
|
Cell: FormatDateCell,
|
||||||
|
width: 110,
|
||||||
|
className: 'bill_date',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bill_number',
|
||||||
|
Header: intl.get('bill_number'),
|
||||||
|
accessor: (row) => (row.bill_number ? `${row.bill_number}` : null),
|
||||||
|
width: 100,
|
||||||
|
className: 'bill_number',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'reference_number',
|
||||||
|
Header: intl.get('reference_no'),
|
||||||
|
accessor: 'reference_number',
|
||||||
|
width: 140,
|
||||||
|
className: 'reference_number',
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'qunatity',
|
||||||
|
Header: 'Quantity Sold',
|
||||||
|
accessor: 'quantity',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rate',
|
||||||
|
Header: 'Rate',
|
||||||
|
accessor: 'formatted_rate',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'amount',
|
||||||
|
Header: intl.get('total'),
|
||||||
|
accessor: 'formatted_amount',
|
||||||
|
align: 'right',
|
||||||
|
width: 100,
|
||||||
|
className: clsx(CLASSES.FONT_BOLD),
|
||||||
|
textOverview: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -6,11 +6,9 @@ import EstimatePaymentTransactionsTable from './EstimatePaymentTransactionsDataT
|
|||||||
import ReceiptPaymentTransactionsTable from './ReceiptPaymentTransactionsDataTable';
|
import ReceiptPaymentTransactionsTable from './ReceiptPaymentTransactionsDataTable';
|
||||||
import BillPaymentTransactionsTable from './BillPaymentTransactionsDataTable';
|
import BillPaymentTransactionsTable from './BillPaymentTransactionsDataTable';
|
||||||
|
|
||||||
import ItemSwitchMenuItem from './utils';
|
|
||||||
|
|
||||||
export const ItemPaymentTransactions = () => {
|
export const ItemPaymentTransactions = () => {
|
||||||
return (
|
return (
|
||||||
<DrawerMainTabs>
|
<DrawerMainTabs renderActiveTabPanelOnly={true}>
|
||||||
<Tab
|
<Tab
|
||||||
id={'invoice'}
|
id={'invoice'}
|
||||||
title={<T id={'invoice'} />}
|
title={<T id={'invoice'} />}
|
||||||
@@ -18,7 +16,6 @@ export const ItemPaymentTransactions = () => {
|
|||||||
/>
|
/>
|
||||||
<Tab
|
<Tab
|
||||||
id={'estiamte'}
|
id={'estiamte'}
|
||||||
title={'Estimate'}
|
|
||||||
title={<T id={'estimate_'} />}
|
title={<T id={'estimate_'} />}
|
||||||
panel={<EstimatePaymentTransactionsTable />}
|
panel={<EstimatePaymentTransactionsTable />}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import intl from 'react-intl-universal';
|
|
||||||
import {
|
|
||||||
Popover,
|
|
||||||
Menu,
|
|
||||||
Position,
|
|
||||||
Button,
|
|
||||||
MenuItem,
|
|
||||||
Classes,
|
|
||||||
NavbarGroup,
|
|
||||||
PopoverInteractionKind,
|
|
||||||
} from '@blueprintjs/core';
|
|
||||||
import { Icon } from '../../../../components';
|
|
||||||
import { curry } from 'lodash/fp';
|
|
||||||
import { Select } from '@blueprintjs/select';
|
|
||||||
|
|
||||||
function ItemSwitchMenuItem({ onChange }) {
|
|
||||||
const Transaction = [
|
|
||||||
{ name: 'Invoice' },
|
|
||||||
{ name: 'Estimate' },
|
|
||||||
{ name: 'Bill' },
|
|
||||||
{ name: 'Receipt' },
|
|
||||||
];
|
|
||||||
|
|
||||||
const handleSwitchMenutItem = (item) => {
|
|
||||||
onChange && onChange(item);
|
|
||||||
};
|
|
||||||
|
|
||||||
const content = (
|
|
||||||
<Menu>
|
|
||||||
{Transaction.map((item) => (
|
|
||||||
<MenuItem
|
|
||||||
onClick={() => handleSwitchMenutItem(item.name)}
|
|
||||||
text={item.name}
|
|
||||||
/>
|
|
||||||
))}
|
|
||||||
</Menu>
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Popover
|
|
||||||
content={content}
|
|
||||||
interactionKind={PopoverInteractionKind.CLICK}
|
|
||||||
position={Position.BOTTOM_LEFT}
|
|
||||||
modifiers={{
|
|
||||||
offset: { offset: '0, 4' },
|
|
||||||
}}
|
|
||||||
minimal={true}
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
minimal={true}
|
|
||||||
text="Select Service"
|
|
||||||
rightIcon={<Icon icon={'arrow-drop-down'} iconSize={24} />}
|
|
||||||
/>
|
|
||||||
</Popover>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default ItemSwitchMenuItem;
|
|
||||||
@@ -172,3 +172,62 @@ export function useItem(id, props) {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function useItemAssociatedInvoiceTransactions(id, props) {
|
||||||
|
return useRequestQuery(
|
||||||
|
[t.ITEM_ASSOCIATED_WITH_INVOICES, id],
|
||||||
|
{
|
||||||
|
method: 'get',
|
||||||
|
url: `items/${id}/transactions/invoices`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
select: (res) => res.data.data,
|
||||||
|
defaultData: [],
|
||||||
|
...props,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function useItemAssociatedEstimateTransactions(id, props) {
|
||||||
|
return useRequestQuery(
|
||||||
|
[t.ITEM_ASSOCIATED_WITH_ESTIMATES, id],
|
||||||
|
{
|
||||||
|
method: 'get',
|
||||||
|
url: `items/${id}/transactions/estimates`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
select: (res) => res.data.data,
|
||||||
|
defaultData: [],
|
||||||
|
...props,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function useItemAssociatedReceiptTransactions(id, props) {
|
||||||
|
return useRequestQuery(
|
||||||
|
[t.ITEM_ASSOCIATED_WITH_RECEIPTS, id],
|
||||||
|
{
|
||||||
|
method: 'get',
|
||||||
|
url: `items/${id}/transactions/receipts`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
select: (res) => res.data.data,
|
||||||
|
defaultData: [],
|
||||||
|
...props,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
export function useItemAssociatedBillTransactions(id, props) {
|
||||||
|
return useRequestQuery(
|
||||||
|
[t.ITEM_ASSOCIATED_WITH_BILLS, id],
|
||||||
|
{
|
||||||
|
method: 'get',
|
||||||
|
url: `items/${id}/transactions/bills`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
select: (res) => res.data.data,
|
||||||
|
defaultData: [],
|
||||||
|
...props,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
@@ -47,6 +47,10 @@ const ITEMS = {
|
|||||||
ITEMS: 'ITEMS',
|
ITEMS: 'ITEMS',
|
||||||
ITEM: 'ITEM',
|
ITEM: 'ITEM',
|
||||||
ITEMS_CATEGORIES: 'ITEMS_CATEGORIES',
|
ITEMS_CATEGORIES: 'ITEMS_CATEGORIES',
|
||||||
|
ITEM_ASSOCIATED_WITH_INVOICES: 'ITEM_ASSOCIATED_WITH_INVOICES',
|
||||||
|
ITEM_ASSOCIATED_WITH_ESTIMATES: 'ITEM_ASSOCIATED_WITH_ESTIMATES',
|
||||||
|
ITEM_ASSOCIATED_WITH_RECEIVES: 'ITEM_ASSOCIATED_WITH_RECEIPTS',
|
||||||
|
ITEM_ASSOCIATED_WITH_BILSS: 'ITEMS_ASSOCIATED_WITH_BILLS',
|
||||||
};
|
};
|
||||||
|
|
||||||
const SALE_ESTIMATES = {
|
const SALE_ESTIMATES = {
|
||||||
|
|||||||
@@ -1624,14 +1624,17 @@
|
|||||||
"transactions_locking.lock_all_transactions_at_once": "Lock All Transactions At Once →",
|
"transactions_locking.lock_all_transactions_at_once": "Lock All Transactions At Once →",
|
||||||
"transactions_locking.lock_modules_individually": "Lock Modules Individually →",
|
"transactions_locking.lock_modules_individually": "Lock Modules Individually →",
|
||||||
"transactions_locking_lock_all_transactions_at_once": "Lock All Transactions At Once.",
|
"transactions_locking_lock_all_transactions_at_once": "Lock All Transactions At Once.",
|
||||||
"transactions_locking.lock": "Lock",
|
"transactions_locking.lock": "Lock",
|
||||||
"transactions_locking.unlock": "Unlock",
|
"transactions_locking.unlock": "Unlock",
|
||||||
"transactions_locking.full_unlock": "Full Unlock",
|
"transactions_locking.full_unlock": "Full Unlock",
|
||||||
"transactions_locking.paetial_unlock": "Partial Unlock",
|
"transactions_locking.paetial_unlock": "Partial Unlock",
|
||||||
"transactions_locking.cancel_partial_unlock": "Cancel Partial Unlock",
|
"transactions_locking.cancel_partial_unlock": "Cancel Partial Unlock",
|
||||||
"transactions_locking.of_the_module_locked_to": "Transactions of the module locked to <strong>{value}</strong>.",
|
"transactions_locking.of_the_module_locked_to": "Transactions of the module locked to <strong>{value}</strong>.",
|
||||||
"transactions_locking.lock_reason": "<strong>Lock Reason</strong>: {value}.",
|
"transactions_locking.lock_reason": "<strong>Lock Reason</strong>: {value}.",
|
||||||
"transactions_locking.partial_unlocked_from": "Partial unlocked from <strong>{fromDate}</strong> to <strong>{toDate}</strong>.",
|
"transactions_locking.partial_unlocked_from": "Partial unlocked from <strong>{fromDate}</strong> to <strong>{toDate}</strong>.",
|
||||||
"transactions_locking.unlock_reason":"<strong>Unlock Reason:</strong> {value}.",
|
"transactions_locking.unlock_reason": "<strong>Unlock Reason:</strong> {value}.",
|
||||||
"payment_transactions":"Payment transactions"
|
"payment_transactions": "Payment transactions",
|
||||||
}
|
"invoice_transactions.column.withdrawal_account": "Deposit account",
|
||||||
|
"bill_transactions.column.deposit_account": "Withdrawal account"
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user