feat: add inventory adjustment entries.

This commit is contained in:
elforjani13
2021-12-23 17:58:26 +02:00
parent d719ac60bd
commit af9f4c45fc
4 changed files with 95 additions and 10 deletions

View File

@@ -1,26 +1,48 @@
import React from 'react';
import { Tab } from '@blueprintjs/core';
import intl from 'react-intl-universal';
import styled from 'styled-components';
import { Card } from 'components';
import { DrawerMainTabs } from 'components';
import InventoryAdjustmentDetailTab from './InventoryAdjustmentDetailTab';
import InventoryAdjustmentDetailActionsBar from './InventoryAdjustmentDetailActionsBar';
import InventoryAdjustmentDetailHeader from './InventoryAdjustmentDetailHeader';
import InventoryAdjustmentDetailTable from './InventoryAdjustmentDetailTable';
import InventoryAdjustmentDetailGLEntriesPanel from './InventoryAdjustmentDetailGLEntriesPanel';
/**
* Inventory adjustment detail
* @returns {React.JSX}
*/
export default function InventoryAdjustmentDetail() {
return (
<InventoryAdjustmentDetailsRoot>
<InventoryAdjustmentDetailActionsBar />
<Card>
<InventoryAdjustmentDetailHeader />
<InventoryAdjustmentDetailTable />
</Card>
<InventoryAdjustmentDetailTabs />
</InventoryAdjustmentDetailsRoot>
);
}
/**
* Invenoty adjusment details tabs.
* @returns {React.JSX}
*/
function InventoryAdjustmentDetailTabs() {
return (
<DrawerMainTabs
renderActiveTabPanelOnly={true}
defaultSelectedTabId="details"
>
<Tab
title={intl.get('details')}
id={'details'}
panel={<InventoryAdjustmentDetailTab />}
/>
<Tab
title={intl.get('journal_entries')}
id={'journal_entries'}
panel={<InventoryAdjustmentDetailGLEntriesPanel />}
/>
</DrawerMainTabs>
);
}
const InventoryAdjustmentDetailsRoot = styled.div``;

View File

@@ -0,0 +1,42 @@
import React from 'react';
import styled from 'styled-components';
import { Card } from 'components';
import { useTransactionsByReference } from 'hooks/query';
import { useInventoryAdjustmentDrawerContext } from './InventoryAdjustmentDrawerProvider';
import JournalEntriesTable, {
AmountDisplayedBaseCurrencyMessage,
} from '../../JournalEntriesTable/JournalEntriesTable';
/**
* Inentory adjustmet detail GL entries panel.
* @returns {React.JSX}
*/
export default function InventoryAdjustmentDetailGLEntriesPanel() {
const { inventoryId } = useInventoryAdjustmentDrawerContext();
// Handle fetch transaction by reference.
const {
data: { transactions },
isLoading: isTransactionLoading,
} = useTransactionsByReference(
{
reference_id: inventoryId,
reference_type: 'inventoryAdjustment',
},
{ enabled: !!inventoryId },
);
return (
<InventoryAdjustmentGLEntriesRoot>
<AmountDisplayedBaseCurrencyMessage />
<JournalEntriesTable
loading={isTransactionLoading}
transactions={transactions}
/>
</InventoryAdjustmentGLEntriesRoot>
);
}
const InventoryAdjustmentGLEntriesRoot = styled(Card)``;

View File

@@ -0,0 +1,16 @@
import React from 'react';
import styled from 'styled-components';
import { CommercialDocBox } from 'components';
import InventoryAdjustmentDetailHeader from './InventoryAdjustmentDetailHeader';
import InventoryAdjustmentDetailTable from './InventoryAdjustmentDetailTable';
export default function InventoryAdjustmentDetailTab() {
return (
<CommercialDocBox>
<InventoryAdjustmentDetailHeader />
<InventoryAdjustmentDetailTable />
</CommercialDocBox>
);
}

View File

@@ -19,7 +19,12 @@ function InventoryAdjustmentDetailDrawer({
payload: { inventoryId },
}) {
return (
<Drawer isOpen={isOpen} name={name} size={'750px'}>
<Drawer
isOpen={isOpen}
name={name}
style={{ minWidth: '700px', maxWidth: '900px' }}
size={'65%'}
>
<DrawerSuspense>
<InventoryAdjustmentDrawerContent inventoryId={inventoryId} />
</DrawerSuspense>