Add Stock Audit and Stock Event Sections to Inventory Components
- Introduced new sections for Filament Stocks, Part Stocks, Product Stocks, and Stock Audits in the StockLocationInfo component, enhancing inventory visibility. - Added Stock Events section to the StockTransferInfo component, improving data representation for stock transfers. - Updated StockAuditLevelInfo component to include Stock Audits, ensuring comprehensive audit management. - Enhanced state management and UI elements for better user experience across all components.
This commit is contained in:
parent
6800702881
commit
9b309aa61c
@ -12,6 +12,10 @@ import ViewButton from '../../common/ViewButton.jsx'
|
||||
import InfoCircleIcon from '../../../Icons/InfoCircleIcon.jsx'
|
||||
import NoteIcon from '../../../Icons/NoteIcon.jsx'
|
||||
import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx'
|
||||
import StockAuditIcon from '../../../Icons/StockAuditIcon.jsx'
|
||||
import FilamentStockIcon from '../../../Icons/FilamentStockIcon.jsx'
|
||||
import PartStockIcon from '../../../Icons/PartStockIcon.jsx'
|
||||
import ProductStockIcon from '../../../Icons/ProductStockIcon.jsx'
|
||||
import ObjectForm from '../../common/ObjectForm.jsx'
|
||||
import EditButtons from '../../common/EditButtons.jsx'
|
||||
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
||||
@ -40,6 +44,10 @@ const StockLocationInfo = () => {
|
||||
'StockLocationInfo',
|
||||
{
|
||||
info: true,
|
||||
filamentStocks: true,
|
||||
partStocks: true,
|
||||
productStocks: true,
|
||||
stockAudits: true,
|
||||
notes: true,
|
||||
auditLogs: false
|
||||
}
|
||||
@ -107,6 +115,10 @@ const StockLocationInfo = () => {
|
||||
disabled={objectFormState.loading}
|
||||
items={[
|
||||
{ key: 'info', label: 'Stock Location' },
|
||||
{ key: 'filamentStocks', label: 'Filament Stocks' },
|
||||
{ key: 'partStocks', label: 'Part Stocks' },
|
||||
{ key: 'productStocks', label: 'Product Stocks' },
|
||||
{ key: 'stockAudits', label: 'Stock Audits' },
|
||||
{ key: 'notes', label: 'Notes' },
|
||||
{ key: 'auditLogs', label: 'Audit Logs' }
|
||||
]}
|
||||
@ -193,6 +205,118 @@ const StockLocationInfo = () => {
|
||||
</InfoCollapse>
|
||||
</ActionHandler>
|
||||
|
||||
<InfoCollapse
|
||||
title='Filament Stocks'
|
||||
icon={<FilamentStockIcon />}
|
||||
active={collapseState.filamentStocks}
|
||||
onToggle={(expanded) =>
|
||||
updateCollapseState('filamentStocks', expanded)
|
||||
}
|
||||
collapseKey='filamentStocks'
|
||||
>
|
||||
{objectFormState.loading ? (
|
||||
<InfoCollapsePlaceholder />
|
||||
) : (
|
||||
<ObjectTable
|
||||
type='filamentStock'
|
||||
masterFilter={{
|
||||
stockLocation:
|
||||
getModelByName('stockLocation').prefix +
|
||||
':' +
|
||||
stockLocationId
|
||||
}}
|
||||
visibleColumns={{
|
||||
stockLocation: false,
|
||||
'stockLocation._id': false
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</InfoCollapse>
|
||||
|
||||
<InfoCollapse
|
||||
title='Part Stocks'
|
||||
icon={<PartStockIcon />}
|
||||
active={collapseState.partStocks}
|
||||
onToggle={(expanded) =>
|
||||
updateCollapseState('partStocks', expanded)
|
||||
}
|
||||
collapseKey='partStocks'
|
||||
>
|
||||
{objectFormState.loading ? (
|
||||
<InfoCollapsePlaceholder />
|
||||
) : (
|
||||
<ObjectTable
|
||||
type='partStock'
|
||||
masterFilter={{
|
||||
stockLocation:
|
||||
getModelByName('stockLocation').prefix +
|
||||
':' +
|
||||
stockLocationId
|
||||
}}
|
||||
visibleColumns={{
|
||||
stockLocation: false,
|
||||
'stockLocation._id': false
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</InfoCollapse>
|
||||
|
||||
<InfoCollapse
|
||||
title='Product Stocks'
|
||||
icon={<ProductStockIcon />}
|
||||
active={collapseState.productStocks}
|
||||
onToggle={(expanded) =>
|
||||
updateCollapseState('productStocks', expanded)
|
||||
}
|
||||
collapseKey='productStocks'
|
||||
>
|
||||
{objectFormState.loading ? (
|
||||
<InfoCollapsePlaceholder />
|
||||
) : (
|
||||
<ObjectTable
|
||||
type='productStock'
|
||||
masterFilter={{
|
||||
stockLocation:
|
||||
getModelByName('stockLocation').prefix +
|
||||
':' +
|
||||
stockLocationId
|
||||
}}
|
||||
visibleColumns={{
|
||||
stockLocation: false,
|
||||
'stockLocation._id': false
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</InfoCollapse>
|
||||
|
||||
<InfoCollapse
|
||||
title='Stock Audits'
|
||||
icon={<StockAuditIcon />}
|
||||
active={collapseState.stockAudits}
|
||||
onToggle={(expanded) =>
|
||||
updateCollapseState('stockAudits', expanded)
|
||||
}
|
||||
collapseKey='stockAudits'
|
||||
>
|
||||
{objectFormState.loading ? (
|
||||
<InfoCollapsePlaceholder />
|
||||
) : (
|
||||
<ObjectTable
|
||||
type='stockAudit'
|
||||
masterFilter={{
|
||||
stockLocation:
|
||||
getModelByName('stockLocation').prefix +
|
||||
':' +
|
||||
stockLocationId
|
||||
}}
|
||||
visibleColumns={{
|
||||
stockLocation: false,
|
||||
'stockLocation._id': false
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</InfoCollapse>
|
||||
|
||||
<InfoCollapse
|
||||
title='Notes'
|
||||
icon={<NoteIcon />}
|
||||
|
||||
@ -13,6 +13,7 @@ import InfoCircleIcon from '../../../Icons/InfoCircleIcon.jsx'
|
||||
import NoteIcon from '../../../Icons/NoteIcon.jsx'
|
||||
import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx'
|
||||
import StockTransferIcon from '../../../Icons/StockTransferIcon.jsx'
|
||||
import StockEventIcon from '../../../Icons/StockEventIcon.jsx'
|
||||
import ObjectForm from '../../common/ObjectForm.jsx'
|
||||
import EditButtons from '../../common/EditButtons.jsx'
|
||||
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
||||
@ -47,6 +48,7 @@ const StockTransferInfo = () => {
|
||||
{
|
||||
info: true,
|
||||
lines: true,
|
||||
stockEvents: true,
|
||||
notes: true,
|
||||
auditLogs: false
|
||||
}
|
||||
@ -114,6 +116,7 @@ const StockTransferInfo = () => {
|
||||
items={[
|
||||
{ key: 'info', label: 'Transfer' },
|
||||
{ key: 'lines', label: 'Lines' },
|
||||
{ key: 'stockEvents', label: 'Stock Events' },
|
||||
{ key: 'notes', label: 'Notes' },
|
||||
{ key: 'auditLogs', label: 'Audit Logs' }
|
||||
]}
|
||||
@ -220,6 +223,34 @@ const StockTransferInfo = () => {
|
||||
</ObjectForm>
|
||||
</ActionHandler>
|
||||
|
||||
<InfoCollapse
|
||||
title='Stock Events'
|
||||
icon={<StockEventIcon />}
|
||||
active={collapseState.stockEvents}
|
||||
onToggle={(expanded) =>
|
||||
updateCollapseState('stockEvents', expanded)
|
||||
}
|
||||
collapseKey='stockEvents'
|
||||
>
|
||||
{objectFormState.loading ? (
|
||||
<InfoCollapsePlaceholder />
|
||||
) : (
|
||||
<ObjectTable
|
||||
type='stockEvent'
|
||||
masterFilter={{
|
||||
owner:
|
||||
getModelByName('stockTransfer').prefix +
|
||||
':' +
|
||||
stockTransferId
|
||||
}}
|
||||
visibleColumns={{
|
||||
owner: false,
|
||||
'owner.type': false
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</InfoCollapse>
|
||||
|
||||
<InfoCollapse
|
||||
title='Notes'
|
||||
icon={<NoteIcon />}
|
||||
|
||||
@ -10,6 +10,7 @@ import ViewButton from '../../common/ViewButton'
|
||||
import InfoCircleIcon from '../../../Icons/InfoCircleIcon.jsx'
|
||||
import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx'
|
||||
import StockAuditLevelIcon from '../../../Icons/StockAuditLevelIcon.jsx'
|
||||
import StockAuditIcon from '../../../Icons/StockAuditIcon.jsx'
|
||||
import ObjectForm from '../../common/ObjectForm'
|
||||
import EditButtons from '../../common/EditButtons'
|
||||
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
||||
@ -36,6 +37,7 @@ const StockAuditLevelInfo = () => {
|
||||
{
|
||||
info: true,
|
||||
auditLines: true,
|
||||
stockAudits: true,
|
||||
auditLogs: false
|
||||
}
|
||||
)
|
||||
@ -97,6 +99,7 @@ const StockAuditLevelInfo = () => {
|
||||
items={[
|
||||
{ key: 'info', label: 'Stock Audit Level Information' },
|
||||
{ key: 'auditLines', label: 'Audit Lines' },
|
||||
{ key: 'stockAudits', label: 'Stock Audits' },
|
||||
{ key: 'auditLogs', label: 'Audit Logs' }
|
||||
]}
|
||||
visibleState={collapseState}
|
||||
@ -198,6 +201,33 @@ const StockAuditLevelInfo = () => {
|
||||
)}
|
||||
</ObjectForm>
|
||||
</ActionHandler>
|
||||
<InfoCollapse
|
||||
title='Stock Audits'
|
||||
icon={<StockAuditIcon />}
|
||||
active={collapseState.stockAudits}
|
||||
onToggle={(expanded) =>
|
||||
updateCollapseState('stockAudits', expanded)
|
||||
}
|
||||
collapseKey='stockAudits'
|
||||
>
|
||||
{objectFormState.loading ? (
|
||||
<InfoCollapsePlaceholder />
|
||||
) : (
|
||||
<ObjectTable
|
||||
type='stockAudit'
|
||||
masterFilter={{
|
||||
auditLevel:
|
||||
getModelByName('stockAuditLevel').prefix +
|
||||
':' +
|
||||
stockAuditLevelId
|
||||
}}
|
||||
visibleColumns={{
|
||||
auditLevel: false,
|
||||
'auditLevel._id': false
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</InfoCollapse>
|
||||
<InfoCollapse
|
||||
title='Audit Logs'
|
||||
icon={<AuditLogIcon />}
|
||||
|
||||
@ -35,7 +35,7 @@ export const StockAudit = {
|
||||
name: 'new',
|
||||
type: 'modal',
|
||||
pageName: 'list',
|
||||
modalWidth: 800,
|
||||
modalWidth: 700,
|
||||
label: 'New Stock Audit',
|
||||
icon: PlusIcon,
|
||||
content: (objectData, { onOk } = {}) => {
|
||||
|
||||
@ -32,7 +32,7 @@ export const StockAuditLevel = {
|
||||
name: 'new',
|
||||
type: 'modal',
|
||||
pageName: 'list',
|
||||
modalWidth: 900,
|
||||
modalWidth: 700,
|
||||
label: 'New Stock Audit Level',
|
||||
icon: PlusIcon,
|
||||
content: (objectData, { onOk } = {}) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user