mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 14:20:31 +00:00
feat: view details.
This commit is contained in:
@@ -7,6 +7,10 @@ import AccountDrawer from 'containers/Drawers/AccountDrawer';
|
|||||||
import ManualJournalDrawer from 'containers/Drawers/ManualJournalDrawer';
|
import ManualJournalDrawer from 'containers/Drawers/ManualJournalDrawer';
|
||||||
import ExpenseDrawer from 'containers/Drawers/ExpenseDrawer';
|
import ExpenseDrawer from 'containers/Drawers/ExpenseDrawer';
|
||||||
import BillDrawer from 'containers/Drawers/BillDrawer';
|
import BillDrawer from 'containers/Drawers/BillDrawer';
|
||||||
|
import InvoiceDetailDrawer from 'containers/Drawers/InvoiceDetailDrawer';
|
||||||
|
import ReceiptDetailDrawer from 'containers/Drawers/ReceiptDetailDrawer';
|
||||||
|
import PaymentReceiveDetailDrawer from 'containers/Drawers/PaymentReceiveDetailDrawer';
|
||||||
|
import PaymentMadeDetailDrawer from 'containers/Drawers/PaymentMadeDetailDrawer';
|
||||||
|
|
||||||
export default function DrawersContainer() {
|
export default function DrawersContainer() {
|
||||||
return (
|
return (
|
||||||
@@ -19,6 +23,10 @@ export default function DrawersContainer() {
|
|||||||
<ManualJournalDrawer name={'journal-drawer'} />
|
<ManualJournalDrawer name={'journal-drawer'} />
|
||||||
<ExpenseDrawer name={'expense-drawer'} />
|
<ExpenseDrawer name={'expense-drawer'} />
|
||||||
<BillDrawer name={'bill-drawer'} />
|
<BillDrawer name={'bill-drawer'} />
|
||||||
|
<InvoiceDetailDrawer name={'invoice-detail-drawer'} />
|
||||||
|
<ReceiptDetailDrawer name={'receipt-detail-drawer'} />
|
||||||
|
<PaymentReceiveDetailDrawer name={'payment-receive-detail-drawer'} />
|
||||||
|
<PaymentMadeDetailDrawer name={'payment-made-detail-drawer'} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { transformToForm } from 'utils';
|
|||||||
import {
|
import {
|
||||||
CreateItemCategoryFormSchema,
|
CreateItemCategoryFormSchema,
|
||||||
EditItemCategoryFormSchema,
|
EditItemCategoryFormSchema,
|
||||||
} from './ItemCategoryForm.schema';
|
} from './itemCategoryForm.schema';
|
||||||
|
|
||||||
import withDialogActions from 'containers/Dialog/withDialogActions';
|
import withDialogActions from 'containers/Dialog/withDialogActions';
|
||||||
import ItemCategoryFormContent from './ItemCategoryFormContent'
|
import ItemCategoryFormContent from './ItemCategoryFormContent'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import 'style/components/Drawers/BillDrawer.scss';
|
import 'style/components/Drawers/ViewDetail/ViewDetail.scss';
|
||||||
|
|
||||||
import { BillDrawerProvider } from './BillDrawerProvider';
|
import { BillDrawerProvider } from './BillDrawerProvider';
|
||||||
import BillDrawerDetails from './BillDrawerDetails';
|
import BillDrawerDetails from './BillDrawerDetails';
|
||||||
|
|||||||
@@ -3,15 +3,21 @@ import { Tabs, Tab } from '@blueprintjs/core';
|
|||||||
import intl from 'react-intl-universal';
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
import LocatedLandedCostTable from './LocatedLandedCostTable';
|
import LocatedLandedCostTable from './LocatedLandedCostTable';
|
||||||
|
import JournalEntriesTable from '../../JournalEntriesTable/JournalEntriesTable';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bill view details.
|
* Bill view details.
|
||||||
*/
|
*/
|
||||||
export default function BillDrawerDetails() {
|
export default function BillDrawerDetails() {
|
||||||
return (
|
return (
|
||||||
<div className="bill-drawer">
|
<div className="view-detail-drawer">
|
||||||
<Tabs animate={true} large={true} selectedTabId="landed_cost">
|
<Tabs animate={true} large={true} defaultSelectedTabId="landed_cost">
|
||||||
<Tab title={intl.get('details')} id={'details'} disabled={true} />
|
<Tab title={intl.get('details')} id={'details'} disabled={true} />
|
||||||
|
<Tab
|
||||||
|
title={intl.get('journal_entries')}
|
||||||
|
id={'journal_entries'}
|
||||||
|
panel={<JournalEntriesTable />}
|
||||||
|
/>
|
||||||
<Tab
|
<Tab
|
||||||
title={intl.get('located_landed_cost')}
|
title={intl.get('located_landed_cost')}
|
||||||
id={'landed_cost'}
|
id={'landed_cost'}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Tabs, Tab } from '@blueprintjs/core';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
|
import JournalEntriesTable from '../../JournalEntriesTable/JournalEntriesTable';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice view detail.
|
||||||
|
*/
|
||||||
|
export default function InvoiceDetail() {
|
||||||
|
return (
|
||||||
|
<div className="view-detail-drawer">
|
||||||
|
<Tabs
|
||||||
|
animate={true}
|
||||||
|
large={true}
|
||||||
|
defaultSelectedTabId="journal_entries"
|
||||||
|
renderActiveTabPanelOnly={false}
|
||||||
|
>
|
||||||
|
<Tab title={intl.get('details')} disabled={true} />
|
||||||
|
<Tab
|
||||||
|
title={intl.get('journal_entries')}
|
||||||
|
id={'journal_entries'}
|
||||||
|
panel={<JournalEntriesTable journal={[]} />}
|
||||||
|
/>
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
import 'style/components/Drawers/ViewDetail/ViewDetail.scss';
|
||||||
|
|
||||||
|
import InvoiceDetail from './InvoiceDetail';
|
||||||
|
import { InvoiceDetailDrawerProvider } from './InvoiceDetailDrawerProvider';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice detail drawer content.
|
||||||
|
*/
|
||||||
|
export default function InvoiceDetailDrawerContent({
|
||||||
|
// #ownProp
|
||||||
|
invoice,
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<InvoiceDetailDrawerProvider invoiceId={invoice}>
|
||||||
|
<InvoiceDetail />
|
||||||
|
</InvoiceDetailDrawerProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
import { DrawerHeaderContent, DashboardInsider } from 'components';
|
||||||
|
|
||||||
|
const InvoiceDetailDrawerContext = React.createContext();
|
||||||
|
/**
|
||||||
|
* Invoice detail provider.
|
||||||
|
*/
|
||||||
|
function InvoiceDetailDrawerProvider({ invoiceId, ...props }) {
|
||||||
|
//provider.
|
||||||
|
const provider = {};
|
||||||
|
return (
|
||||||
|
<DashboardInsider>
|
||||||
|
<DrawerHeaderContent
|
||||||
|
name="invoice-detail-drawer"
|
||||||
|
title={intl.get('invoice_details')}
|
||||||
|
/>
|
||||||
|
<InvoiceDetailDrawerContext.Provider value={provider} {...props} />
|
||||||
|
</DashboardInsider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const useInvoiceDetailDrawerContext = () =>
|
||||||
|
React.useContext(InvoiceDetailDrawerContext);
|
||||||
|
|
||||||
|
export { InvoiceDetailDrawerProvider, useInvoiceDetailDrawerContext };
|
||||||
28
client/src/containers/Drawers/InvoiceDetailDrawer/index.js
Normal file
28
client/src/containers/Drawers/InvoiceDetailDrawer/index.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Drawer, DrawerSuspense } from 'components';
|
||||||
|
import withDrawers from 'containers/Drawer/withDrawers';
|
||||||
|
|
||||||
|
import { compose } from 'utils';
|
||||||
|
|
||||||
|
const InvoiceDetailDrawerContent = React.lazy(() =>
|
||||||
|
import('./InvoiceDetailDrawerContent'),
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invoice Detail drawer.
|
||||||
|
*/
|
||||||
|
function InvoiceDetailDrawer({
|
||||||
|
name,
|
||||||
|
// #withDrawer
|
||||||
|
isOpen,
|
||||||
|
payload: { invoiceId },
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<Drawer isOpen={isOpen} name={name} size={'750px'}>
|
||||||
|
<DrawerSuspense>
|
||||||
|
<InvoiceDetailDrawerContent invoice={invoiceId} />
|
||||||
|
</DrawerSuspense>
|
||||||
|
</Drawer>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
export default compose(withDrawers())(InvoiceDetailDrawer);
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
import 'style/components/Drawers/ViewDetail/ViewDetail.scss';
|
||||||
|
|
||||||
|
import PaymentMadeDetails from './PaymentMadeDetails';
|
||||||
|
import { PaymentMadeDetailProvider } from './PaymentMadeDetailProvider';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Payment made detail content.
|
||||||
|
*/
|
||||||
|
export default function PaymentMadeDetailContent({
|
||||||
|
// #ownProp
|
||||||
|
paymentMade,
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<PaymentMadeDetailProvider paymentMadeId={paymentMade}>
|
||||||
|
<PaymentMadeDetails />
|
||||||
|
</PaymentMadeDetailProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
import { DrawerHeaderContent, DashboardInsider } from 'components';
|
||||||
|
|
||||||
|
const PaymentMadeDetailContext = React.createContext();
|
||||||
|
|
||||||
|
function PaymentMadeDetailProvider({ paymentMadeId, ...props }) {
|
||||||
|
//provider.
|
||||||
|
const provider = {};
|
||||||
|
return (
|
||||||
|
<DashboardInsider>
|
||||||
|
<DrawerHeaderContent
|
||||||
|
name="payment-made-detail-drawer"
|
||||||
|
title={intl.get('payment_made_details')}
|
||||||
|
/>
|
||||||
|
<PaymentMadeDetailContext.Provider value={provider} {...props} />
|
||||||
|
</DashboardInsider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const usePaymentMadeDetailContext = () =>
|
||||||
|
React.useContext(PaymentMadeDetailContext);
|
||||||
|
export { PaymentMadeDetailProvider, usePaymentMadeDetailContext };
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Tabs, Tab } from '@blueprintjs/core';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
|
import JournalEntriesTable from '../../JournalEntriesTable/JournalEntriesTable';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* payment made view detail.
|
||||||
|
*/
|
||||||
|
export default function PaymentMadeDetails() {
|
||||||
|
return (
|
||||||
|
<div className="view-detail-drawer">
|
||||||
|
<Tabs animate={true} large={true} defaultSelectedTabId="journal_entries">
|
||||||
|
<Tab title={intl.get('details')} id={'details'} disabled={true} />
|
||||||
|
<Tab
|
||||||
|
title={intl.get('journal_entries')}
|
||||||
|
id={'journal_entries'}
|
||||||
|
panel={<JournalEntriesTable journal={[]} />}
|
||||||
|
/>
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Drawer, DrawerSuspense } from 'components';
|
||||||
|
import withDrawers from 'containers/Drawer/withDrawers';
|
||||||
|
|
||||||
|
import { compose } from 'utils';
|
||||||
|
|
||||||
|
const PaymentMadeDetailContent = React.lazy(() =>
|
||||||
|
import('./PaymentMadeDetailContent'),
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Payment made detail drawer.
|
||||||
|
*/
|
||||||
|
function PaymentMadeDetailDrawer({
|
||||||
|
name,
|
||||||
|
// #withDrawer
|
||||||
|
isOpen,
|
||||||
|
payload: { paymentMadeId },
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<Drawer isOpen={isOpen} name={name} size={'750px'}>
|
||||||
|
<DrawerSuspense>
|
||||||
|
<PaymentMadeDetailContent paymentMade={paymentMadeId} />
|
||||||
|
</DrawerSuspense>
|
||||||
|
</Drawer>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default compose(withDrawers())(PaymentMadeDetailDrawer);
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Tabs, Tab } from '@blueprintjs/core';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
|
import JournalEntriesTable from '../../JournalEntriesTable/JournalEntriesTable';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* payment receive view detail.
|
||||||
|
*/
|
||||||
|
export default function PaymentReceiveDetail() {
|
||||||
|
return (
|
||||||
|
<div className="view-detail-drawer">
|
||||||
|
<Tabs animate={true} large={true} defaultSelectedTabId="journal_entries">
|
||||||
|
<Tab title={intl.get('details')} id={'details'} disabled={true} />
|
||||||
|
<Tab
|
||||||
|
title={intl.get('journal_entries')}
|
||||||
|
id={'journal_entries'}
|
||||||
|
panel={<JournalEntriesTable journal={[]} />}
|
||||||
|
/>
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
|
||||||
|
import 'style/components/Drawers/ViewDetail/ViewDetail.scss';
|
||||||
|
|
||||||
|
import PaymentReceiveDetail from './PaymentReceiveDetail';
|
||||||
|
import { PaymentReceiveDetailProvider } from './PaymentReceiveDetailProvider';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Payment receive detail content.
|
||||||
|
*/
|
||||||
|
export default function PaymentReceiveDetailContent({
|
||||||
|
// #ownProp
|
||||||
|
paymentReceive,
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<PaymentReceiveDetailProvider paymentReceiveId={paymentReceive}>
|
||||||
|
<PaymentReceiveDetail />
|
||||||
|
</PaymentReceiveDetailProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
import { DrawerHeaderContent, DashboardInsider } from 'components';
|
||||||
|
|
||||||
|
const PaymentReceiveDetailContext = React.createContext();
|
||||||
|
/**
|
||||||
|
* Payment receive detail provider.
|
||||||
|
*/
|
||||||
|
function PaymentReceiveDetailProvider({ paymentReceiveId, ...props }) {
|
||||||
|
//provider.
|
||||||
|
const provider = {};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<DashboardInsider>
|
||||||
|
<DrawerHeaderContent
|
||||||
|
name="payment-receive-detail-drawer"
|
||||||
|
title={intl.get('payment_receive_details')}
|
||||||
|
/>
|
||||||
|
<PaymentReceiveDetailContext.Provider value={provider} {...props} />
|
||||||
|
</DashboardInsider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const usePaymentReceiveDetailContext = () =>
|
||||||
|
React.useContext(PaymentReceiveDetailContext);
|
||||||
|
|
||||||
|
export { PaymentReceiveDetailProvider, usePaymentReceiveDetailContext };
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Drawer, DrawerSuspense } from 'components';
|
||||||
|
import withDrawers from 'containers/Drawer/withDrawers';
|
||||||
|
|
||||||
|
import { compose } from 'utils';
|
||||||
|
|
||||||
|
const PaymentReceiveDetailContent = React.lazy(() =>
|
||||||
|
import('./PaymentReceiveDetailContent'),
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Payment receive detail drawer
|
||||||
|
*/
|
||||||
|
function PaymentReceiveDetailDrawer({
|
||||||
|
name,
|
||||||
|
// #withDrawer
|
||||||
|
isOpen,
|
||||||
|
payload: { paymentReceiveId },
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<Drawer isOpen={isOpen} name={name} size={'750px'}>
|
||||||
|
<DrawerSuspense>
|
||||||
|
<PaymentReceiveDetailContent paymentReceive={paymentReceiveId} />
|
||||||
|
</DrawerSuspense>
|
||||||
|
</Drawer>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default compose(withDrawers())(PaymentReceiveDetailDrawer);
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Tabs, Tab } from '@blueprintjs/core';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
|
import JournalEntriesTable from '../../JournalEntriesTable/JournalEntriesTable';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Receipt view detail.
|
||||||
|
*/
|
||||||
|
export default function ReceiptDetail() {
|
||||||
|
return (
|
||||||
|
<div className="view-detail-drawer">
|
||||||
|
<Tabs animate={true} large={true} defaultSelectedTabId="journal_entries">
|
||||||
|
<Tab title={intl.get('details')} id={'details'} disabled={true} />
|
||||||
|
<Tab
|
||||||
|
title={intl.get('journal_entries')}
|
||||||
|
id={'journal_entries'}
|
||||||
|
panel={<JournalEntriesTable journal={[]} />}
|
||||||
|
/>
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
import 'style/components/Drawers/ViewDetail/ViewDetail.scss';
|
||||||
|
|
||||||
|
import ReceiptDetail from './ReceiptDetail';
|
||||||
|
import { ReceiptDetailDrawerProvider } from './ReceiptDetailDrawerProvider';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Receipt detail drawer content.
|
||||||
|
*/
|
||||||
|
export default function ReceiptDetailDrawerContent({
|
||||||
|
// #ownProp
|
||||||
|
receipt,
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<ReceiptDetailDrawerProvider receiptId={receipt}>
|
||||||
|
<ReceiptDetail />
|
||||||
|
</ReceiptDetailDrawerProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
import { DrawerHeaderContent, DashboardInsider } from 'components';
|
||||||
|
|
||||||
|
const ReceiptDetailDrawerContext = React.createContext();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Receipt detail provider.
|
||||||
|
*/
|
||||||
|
function ReceiptDetailDrawerProvider({ receiptId, ...props }) {
|
||||||
|
//provider.
|
||||||
|
const provider = {};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<DashboardInsider>
|
||||||
|
<DrawerHeaderContent
|
||||||
|
name="receipt-detail-drawer"
|
||||||
|
title={intl.get('receipt_details')}
|
||||||
|
/>
|
||||||
|
<ReceiptDetailDrawerContext.Provider value={provider} {...props} />
|
||||||
|
</DashboardInsider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const useReceiptDetailDrawerContext = () =>
|
||||||
|
React.useContext(ReceiptDetailDrawerContext);
|
||||||
|
|
||||||
|
export { ReceiptDetailDrawerProvider, useReceiptDetailDrawerContext };
|
||||||
29
client/src/containers/Drawers/ReceiptDetailDrawer/index.js
Normal file
29
client/src/containers/Drawers/ReceiptDetailDrawer/index.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Drawer, DrawerSuspense } from 'components';
|
||||||
|
import withDrawers from 'containers/Drawer/withDrawers';
|
||||||
|
|
||||||
|
import { compose } from 'utils';
|
||||||
|
|
||||||
|
const ReceiptDetailDrawerContent = React.lazy(() =>
|
||||||
|
import('./ReceiptDetailDrawerContent'),
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Receipt Detail drawer.
|
||||||
|
*/
|
||||||
|
function ReceiptDetailDrawer({
|
||||||
|
name,
|
||||||
|
// #withDrawer
|
||||||
|
isOpen,
|
||||||
|
payload: { receiptId },
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<Drawer isOpen={isOpen} name={name} size={'750px'}>
|
||||||
|
<DrawerSuspense>
|
||||||
|
<ReceiptDetailDrawerContent receipt={receiptId} />
|
||||||
|
</DrawerSuspense>
|
||||||
|
</Drawer>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default compose(withDrawers())(ReceiptDetailDrawer);
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { DataTable, Card } from 'components';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
import moment from 'moment';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Journal entries table.
|
||||||
|
*/
|
||||||
|
export default function JournalEntriesTable({ journal }) {
|
||||||
|
const columns = React.useMemo(
|
||||||
|
() => [
|
||||||
|
{
|
||||||
|
Header: intl.get('date'),
|
||||||
|
accessor: 'date',
|
||||||
|
// accessor: (r) => moment(new Date()).format('YYYY MMM DD'),
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: intl.get('account_name'),
|
||||||
|
accessor: 'account_name',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: intl.get('contact'),
|
||||||
|
accessor: 'contact',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: intl.get('credit'),
|
||||||
|
accessor: 'credit',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Header: intl.get('debit'),
|
||||||
|
accessor: 'debit',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Card>
|
||||||
|
<DataTable
|
||||||
|
columns={columns}
|
||||||
|
data={journal}
|
||||||
|
className={'datatable--journal-entries'}
|
||||||
|
/>
|
||||||
|
</Card>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@ import withPaymentMadeActions from './withPaymentMadeActions';
|
|||||||
import withPaymentMade from './withPaymentMade';
|
import withPaymentMade from './withPaymentMade';
|
||||||
import withSettings from 'containers/Settings/withSettings';
|
import withSettings from 'containers/Settings/withSettings';
|
||||||
import withAlertsActions from 'containers/Alert/withAlertActions';
|
import withAlertsActions from 'containers/Alert/withAlertActions';
|
||||||
|
import withDrawerActions from 'containers/Drawer/withDrawerActions';
|
||||||
import { usePaymentMadesTableColumns, ActionsMenu } from './components';
|
import { usePaymentMadesTableColumns, ActionsMenu } from './components';
|
||||||
import { usePaymentMadesListContext } from './PaymentMadesListProvider';
|
import { usePaymentMadesListContext } from './PaymentMadesListProvider';
|
||||||
|
|
||||||
@@ -27,6 +28,9 @@ function PaymentMadesTable({
|
|||||||
|
|
||||||
// #withAlerts
|
// #withAlerts
|
||||||
openAlert,
|
openAlert,
|
||||||
|
|
||||||
|
// #withDrawerActions
|
||||||
|
openDrawer,
|
||||||
}) {
|
}) {
|
||||||
// Payment mades table columns.
|
// Payment mades table columns.
|
||||||
const columns = usePaymentMadesTableColumns();
|
const columns = usePaymentMadesTableColumns();
|
||||||
@@ -53,6 +57,11 @@ function PaymentMadesTable({
|
|||||||
openAlert('payment-made-delete', { paymentMadeId: paymentMade.id });
|
openAlert('payment-made-delete', { paymentMadeId: paymentMade.id });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Handle view detail payment made.
|
||||||
|
const handleViewDetailPaymentMade = ({ id }) => {
|
||||||
|
openDrawer('payment-receive-detail-drawer', { paymentMadeId: id });
|
||||||
|
};
|
||||||
|
|
||||||
// Handle datatable fetch data once the table state change.
|
// Handle datatable fetch data once the table state change.
|
||||||
const handleDataTableFetchData = useCallback(
|
const handleDataTableFetchData = useCallback(
|
||||||
({ pageIndex, pageSize, sortBy }) => {
|
({ pageIndex, pageSize, sortBy }) => {
|
||||||
@@ -89,6 +98,7 @@ function PaymentMadesTable({
|
|||||||
payload={{
|
payload={{
|
||||||
onEdit: handleEditPaymentMade,
|
onEdit: handleEditPaymentMade,
|
||||||
onDelete: handleDeletePaymentMade,
|
onDelete: handleDeletePaymentMade,
|
||||||
|
onViewDetails: handleViewDetailPaymentMade,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -98,6 +108,7 @@ export default compose(
|
|||||||
withPaymentMadeActions,
|
withPaymentMadeActions,
|
||||||
withPaymentMade(({ paymentMadesTableState }) => ({ paymentMadesTableState })),
|
withPaymentMade(({ paymentMadesTableState }) => ({ paymentMadesTableState })),
|
||||||
withAlertsActions,
|
withAlertsActions,
|
||||||
|
withDrawerActions,
|
||||||
withSettings(({ organizationSettings }) => ({
|
withSettings(({ organizationSettings }) => ({
|
||||||
baseCurrency: organizationSettings?.baseCurrency,
|
baseCurrency: organizationSettings?.baseCurrency,
|
||||||
})),
|
})),
|
||||||
|
|||||||
@@ -26,15 +26,14 @@ export function AmountAccessor(row) {
|
|||||||
*/
|
*/
|
||||||
export function ActionsMenu({
|
export function ActionsMenu({
|
||||||
row: { original },
|
row: { original },
|
||||||
payload: { onEdit, onDelete },
|
payload: { onEdit, onDelete, onViewDetails },
|
||||||
}) {
|
}) {
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Menu>
|
<Menu>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
icon={<Icon icon="reader-18" />}
|
icon={<Icon icon="reader-18" />}
|
||||||
text={intl.get('view_details')}
|
text={intl.get('view_details')}
|
||||||
|
onClick={safeCallback(onViewDetails, original)}
|
||||||
/>
|
/>
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
@@ -70,8 +69,6 @@ export function ActionsCell(props) {
|
|||||||
* Retrieve payment mades table columns.
|
* Retrieve payment mades table columns.
|
||||||
*/
|
*/
|
||||||
export function usePaymentMadesTableColumns() {
|
export function usePaymentMadesTableColumns() {
|
||||||
|
|
||||||
|
|
||||||
return React.useMemo(
|
return React.useMemo(
|
||||||
() => [
|
() => [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -79,6 +79,12 @@ function InvoicesDataTable({
|
|||||||
const handleQuickPaymentReceive = ({ id }) => {
|
const handleQuickPaymentReceive = ({ id }) => {
|
||||||
openDialog('quick-payment-receive', { invoiceId: id });
|
openDialog('quick-payment-receive', { invoiceId: id });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Handle view detail invoice.
|
||||||
|
const handleViewDetailInvoice = ({ id }) => {
|
||||||
|
openDrawer('invoice-detail-drawer', { invoiceId: id });
|
||||||
|
};
|
||||||
|
|
||||||
// Handles fetch data once the table state change.
|
// Handles fetch data once the table state change.
|
||||||
const handleDataTableFetchData = useCallback(
|
const handleDataTableFetchData = useCallback(
|
||||||
({ pageSize, pageIndex, sortBy }) => {
|
({ pageSize, pageIndex, sortBy }) => {
|
||||||
@@ -123,6 +129,7 @@ function InvoicesDataTable({
|
|||||||
onEdit: handleEditInvoice,
|
onEdit: handleEditInvoice,
|
||||||
onDrawer: handleDrawerInvoice,
|
onDrawer: handleDrawerInvoice,
|
||||||
onQuick: handleQuickPaymentReceive,
|
onQuick: handleQuickPaymentReceive,
|
||||||
|
onViewDetails: handleViewDetailInvoice,
|
||||||
baseCurrency,
|
baseCurrency,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export const handleDeleteErrors = (errors) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function ActionsMenu({
|
export function ActionsMenu({
|
||||||
payload: { onEdit, onDeliver, onDelete, onDrawer, onQuick },
|
payload: { onEdit, onDeliver, onDelete, onDrawer, onQuick, onViewDetails },
|
||||||
row: { original },
|
row: { original },
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
@@ -103,6 +103,7 @@ export function ActionsMenu({
|
|||||||
<MenuItem
|
<MenuItem
|
||||||
icon={<Icon icon="reader-18" />}
|
icon={<Icon icon="reader-18" />}
|
||||||
text={intl.get('view_details')}
|
text={intl.get('view_details')}
|
||||||
|
onClick={safeCallback(onViewDetails, original)}
|
||||||
/>
|
/>
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
|
|||||||
@@ -62,6 +62,11 @@ function PaymentReceivesDataTable({
|
|||||||
openDrawer('payment-receive-drawer', { paymentReceiveId: id });
|
openDrawer('payment-receive-drawer', { paymentReceiveId: id });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Handle view detail payment receive..
|
||||||
|
const handleViewDetailPaymentReceive = ({ id }) => {
|
||||||
|
openDrawer('payment-receive-detail-drawer', { paymentReceiveId: id });
|
||||||
|
};
|
||||||
|
|
||||||
// Handle datatable fetch once the table's state changing.
|
// Handle datatable fetch once the table's state changing.
|
||||||
const handleDataTableFetchData = useCallback(
|
const handleDataTableFetchData = useCallback(
|
||||||
({ pageIndex, pageSize, sortBy }) => {
|
({ pageIndex, pageSize, sortBy }) => {
|
||||||
@@ -103,6 +108,7 @@ function PaymentReceivesDataTable({
|
|||||||
onDelete: handleDeletePaymentReceive,
|
onDelete: handleDeletePaymentReceive,
|
||||||
onEdit: handleEditPaymentReceive,
|
onEdit: handleEditPaymentReceive,
|
||||||
onDrawer: handleDrawerPaymentReceive,
|
onDrawer: handleDrawerPaymentReceive,
|
||||||
|
onViewDetails: handleViewDetailPaymentReceive,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -19,15 +19,14 @@ import { safeCallback } from 'utils';
|
|||||||
*/
|
*/
|
||||||
export function ActionsMenu({
|
export function ActionsMenu({
|
||||||
row: { original: paymentReceive },
|
row: { original: paymentReceive },
|
||||||
payload: { onEdit, onDelete, onDrawer },
|
payload: { onEdit, onDelete, onDrawer, onViewDetails },
|
||||||
}) {
|
}) {
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Menu>
|
<Menu>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
icon={<Icon icon="reader-18" />}
|
icon={<Icon icon="reader-18" />}
|
||||||
text={intl.get('view_details')}
|
text={intl.get('view_details')}
|
||||||
|
onClick={safeCallback(onViewDetails, paymentReceive)}
|
||||||
/>
|
/>
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
@@ -82,8 +81,6 @@ export function ActionsCell(props) {
|
|||||||
* Retrieve payment receives columns.
|
* Retrieve payment receives columns.
|
||||||
*/
|
*/
|
||||||
export function usePaymentReceivesColumns() {
|
export function usePaymentReceivesColumns() {
|
||||||
|
|
||||||
|
|
||||||
return React.useMemo(
|
return React.useMemo(
|
||||||
() => [
|
() => [
|
||||||
{
|
{
|
||||||
@@ -128,7 +125,7 @@ export function usePaymentReceivesColumns() {
|
|||||||
accessor: 'reference_no',
|
accessor: 'reference_no',
|
||||||
width: 140,
|
width: 140,
|
||||||
className: 'reference_no',
|
className: 'reference_no',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -60,14 +60,19 @@ function ReceiptsDataTable({
|
|||||||
openAlert('receipt-delete', { receiptId: receipt.id });
|
openAlert('receipt-delete', { receiptId: receipt.id });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Handle drawer receipts.
|
||||||
|
const handleDrawerReceipt = ({ id }) => {
|
||||||
|
openDrawer('receipt-drawer', { receiptId: id });
|
||||||
|
};
|
||||||
|
|
||||||
// Handles receipt close action.
|
// Handles receipt close action.
|
||||||
const handleCloseReceipt = (receipt) => {
|
const handleCloseReceipt = (receipt) => {
|
||||||
openAlert('receipt-close', { receiptId: receipt.id });
|
openAlert('receipt-close', { receiptId: receipt.id });
|
||||||
};
|
};
|
||||||
|
|
||||||
// Handle drawer receipts.
|
// Handle view detail receipt.
|
||||||
const handleDrawerReceipt = ({ id }) => {
|
const handleViewDetailReceipt = ({ id }) => {
|
||||||
openDrawer('receipt-drawer', { receiptId: id });
|
openDrawer('receipt-detail-drawer', { receiptId: id });
|
||||||
};
|
};
|
||||||
|
|
||||||
// Handles the datable fetch data once the state changing.
|
// Handles the datable fetch data once the state changing.
|
||||||
@@ -112,6 +117,7 @@ function ReceiptsDataTable({
|
|||||||
onDelete: handleDeleteReceipt,
|
onDelete: handleDeleteReceipt,
|
||||||
onClose: handleCloseReceipt,
|
onClose: handleCloseReceipt,
|
||||||
onDrawer: handleDrawerReceipt,
|
onDrawer: handleDrawerReceipt,
|
||||||
|
onViewDetails: handleViewDetailReceipt,
|
||||||
baseCurrency,
|
baseCurrency,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -16,16 +16,15 @@ import { Choose, Money, Icon, If } from 'components';
|
|||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
export function ActionsMenu({
|
export function ActionsMenu({
|
||||||
payload: { onEdit, onDelete, onClose, onDrawer },
|
payload: { onEdit, onDelete, onClose, onDrawer, onViewDetails },
|
||||||
row: { original: receipt },
|
row: { original: receipt },
|
||||||
}) {
|
}) {
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Menu>
|
<Menu>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
icon={<Icon icon="reader-18" />}
|
icon={<Icon icon="reader-18" />}
|
||||||
text={intl.get('view_details')}
|
text={intl.get('view_details')}
|
||||||
|
onClick={safeCallback(onViewDetails, receipt)}
|
||||||
/>
|
/>
|
||||||
<MenuDivider />
|
<MenuDivider />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
@@ -94,8 +93,6 @@ export function StatusAccessor(receipt) {
|
|||||||
* Retrieve receipts table columns.
|
* Retrieve receipts table columns.
|
||||||
*/
|
*/
|
||||||
export function useReceiptsTableColumns() {
|
export function useReceiptsTableColumns() {
|
||||||
|
|
||||||
|
|
||||||
return React.useMemo(
|
return React.useMemo(
|
||||||
() => [
|
() => [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1166,5 +1166,11 @@
|
|||||||
"From transaction": "From transaction",
|
"From transaction": "From transaction",
|
||||||
"Landed": "Landed",
|
"Landed": "Landed",
|
||||||
"This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.": "This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.",
|
"This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.": "This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.",
|
||||||
"Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?": "Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?"
|
"Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?": "Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?",
|
||||||
|
"journal_entries":"Journal entries",
|
||||||
|
"contact":"Contact",
|
||||||
|
"invoice_details":"Invoice details",
|
||||||
|
"receipt_details":"Receipt details",
|
||||||
|
"payment_receive_details":"Payment receive details",
|
||||||
|
"payment_made_details":"Payment made details"
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
@import '../../Base.scss';
|
@import '../../../Base.scss';
|
||||||
|
|
||||||
.bill-drawer {
|
.view-detail-drawer {
|
||||||
.bp3-tabs {
|
.bp3-tabs {
|
||||||
.bp3-tab-list {
|
.bp3-tab-list {
|
||||||
position: relative;
|
position: relative;
|
||||||
background-color: #FFF;
|
background-color: #fff;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
content: '';
|
content: '';
|
||||||
@@ -31,10 +31,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.bp3-tab-panel{
|
.bp3-tab-panel {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
|
|
||||||
.card{
|
.card {
|
||||||
margin: 15px;
|
margin: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,6 @@
|
|||||||
|
|
||||||
.datatable--landed-cost-transactions {
|
.datatable--landed-cost-transactions {
|
||||||
.table {
|
.table {
|
||||||
|
|
||||||
.tbody,
|
.tbody,
|
||||||
.tbody-inner {
|
.tbody-inner {
|
||||||
height: auto;
|
height: auto;
|
||||||
@@ -55,7 +54,7 @@
|
|||||||
.tr .td {
|
.tr .td {
|
||||||
padding: 0.6rem;
|
padding: 0.6rem;
|
||||||
|
|
||||||
&.amount{
|
&.amount {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user