diff --git a/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetail.js b/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetail.js index af4ad93aa..07395fb61 100644 --- a/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetail.js +++ b/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetail.js @@ -6,6 +6,7 @@ import { DrawerMainTabs } from 'components'; import CreditNoteDetailPanel from './CreditNoteDetailPanel'; import RefundCreditNoteTransactionsTable from './RefundCreditNoteTransactions/RefundCreditNoteTransactionsTable'; import ReconcileCreditNoteTransactionsTable from './ReconcileCreditNoteTransactions/ReconcileCreditNoteTransactionsTable'; +import JournalEntriesTransactionsTable from './JournalEntriesTransactions/JournalEntriesTransactionsTable'; import clsx from 'classnames'; import CreditNoteDetailCls from '../../../style/components/Drawers/CreditNoteDetails.module.scss'; @@ -16,12 +17,17 @@ import CreditNoteDetailCls from '../../../style/components/Drawers/CreditNoteDet export default function CreditNoteDetail() { return (
- + } /> + } + /> + + + ); +} diff --git a/src/containers/Drawers/CreditNoteDetailDrawer/JournalEntriesTransactions/components.js b/src/containers/Drawers/CreditNoteDetailDrawer/JournalEntriesTransactions/components.js new file mode 100644 index 000000000..4a796704a --- /dev/null +++ b/src/containers/Drawers/CreditNoteDetailDrawer/JournalEntriesTransactions/components.js @@ -0,0 +1,49 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import { FormatDateCell, Icon } from '../../../../components'; + +import 'style/pages/JournalEntries/List.scss'; + +/** + * Retrieve journal entries transactions table columns. + */ +export const useJournalEntriesTransactionsColumns = () => { + return React.useMemo( + () => [ + { + Header: intl.get('date'), + accessor: 'date', + accessor: 'formatted_date', + Cell: FormatDateCell, + width: 140, + className: 'date', + textOverview: true, + }, + { + Header: intl.get('account_name'), + accessor: 'account_name', + width: 140, + className: 'account_name', + textOverview: true, + }, + { + Header: intl.get('contact'), + accessor: 'contactTypeFormatted', + width: 140, + }, + { + Header: intl.get('credit'), + accessor: ({ credit }) => credit.formatted_amount, + width: 100, + className: 'credit', + }, + { + Header: intl.get('debit'), + accessor: ({ debit }) => debit.formatted_amount, + width: 100, + className: 'debit', + }, + ], + [], + ); +}; diff --git a/src/containers/Drawers/VendorCreditDetailDrawer/JournalEntriesTransactions/JournalEntriesTransactionsTable.js b/src/containers/Drawers/VendorCreditDetailDrawer/JournalEntriesTransactions/JournalEntriesTransactionsTable.js new file mode 100644 index 000000000..ab3b485c3 --- /dev/null +++ b/src/containers/Drawers/VendorCreditDetailDrawer/JournalEntriesTransactions/JournalEntriesTransactionsTable.js @@ -0,0 +1,38 @@ +import React from 'react'; +import { DataTable, Card } from 'components'; + +import { useVendorCreditDetailDrawerContext } from '../VendorCreditDetailDrawerProvider'; +import { useTransactionsByReference } from 'hooks/query'; +import { useJournalEntriesTransactionsColumns } from './components'; + +/** + * Journal entries vendor credit transactions table. + */ +export default function JournalEntriesTransactionsTable() { + const { vendorCreditId } = useVendorCreditDetailDrawerContext(); + + const columns = useJournalEntriesTransactionsColumns(); + + // Handle fetch transaction by reference. + const { + data: { transactions }, + isLoading: isTransactionLoading, + } = useTransactionsByReference( + { + reference_id: vendorCreditId, + reference_type: 'vendorCredit', + }, + { enabled: !!vendorCreditId }, + ); + + return ( + + + + ); +} diff --git a/src/containers/Drawers/VendorCreditDetailDrawer/JournalEntriesTransactions/components.js b/src/containers/Drawers/VendorCreditDetailDrawer/JournalEntriesTransactions/components.js new file mode 100644 index 000000000..eb1135002 --- /dev/null +++ b/src/containers/Drawers/VendorCreditDetailDrawer/JournalEntriesTransactions/components.js @@ -0,0 +1,49 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import { FormatDateCell } from '../../../../components'; + +import 'style/pages/JournalEntries/List.scss'; + +/** + * Retrieve journal entries transactions table columns. + */ +export const useJournalEntriesTransactionsColumns = () => { + return React.useMemo( + () => [ + { + Header: intl.get('date'), + accessor: 'date', + accessor: 'formatted_date', + Cell: FormatDateCell, + width: 140, + className: 'date', + textOverview: true, + }, + { + Header: intl.get('account_name'), + accessor: 'account_name', + width: 140, + className: 'account_name', + textOverview: true, + }, + { + Header: intl.get('contact'), + accessor: 'contactTypeFormatted', + width: 140, + }, + { + Header: intl.get('credit'), + accessor: ({ credit }) => credit.formatted_amount, + width: 100, + className: 'credit', + }, + { + Header: intl.get('debit'), + accessor: ({ debit }) => debit.formatted_amount, + width: 100, + className: 'debit', + }, + ], + [], + ); +}; diff --git a/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetail.js b/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetail.js index eb0eafb42..4d96ac77c 100644 --- a/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetail.js +++ b/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetail.js @@ -6,6 +6,7 @@ import { DrawerMainTabs } from 'components'; import VendorCreditDetailPanel from './VendorCreditDetailPanel'; import RefundVendorCreditTransactionsTable from './RefundVendorCreditTransactions/RefundVendorCreditTransactionsTable'; import ReconcileVendorCreditTransactionsTable from './ReconcileVendorCreditTransactions/ReconcileVendorCreditTransactionsTable'; +import JournalEntriesTransactionsTable from './JournalEntriesTransactions/JournalEntriesTransactionsTable'; import clsx from 'classnames'; import VendorCreditDetailCls from '../../../style/components/Drawers/VendorCreditDetail.module.scss'; @@ -16,12 +17,17 @@ import VendorCreditDetailCls from '../../../style/components/Drawers/VendorCredi export default function VendorCreditDetail() { return (
- + } /> + } + />