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 InfoCircleIcon from '../../../Icons/InfoCircleIcon.jsx'
|
||||||
import NoteIcon from '../../../Icons/NoteIcon.jsx'
|
import NoteIcon from '../../../Icons/NoteIcon.jsx'
|
||||||
import AuditLogIcon from '../../../Icons/AuditLogIcon.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 ObjectForm from '../../common/ObjectForm.jsx'
|
||||||
import EditButtons from '../../common/EditButtons.jsx'
|
import EditButtons from '../../common/EditButtons.jsx'
|
||||||
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
||||||
@ -40,6 +44,10 @@ const StockLocationInfo = () => {
|
|||||||
'StockLocationInfo',
|
'StockLocationInfo',
|
||||||
{
|
{
|
||||||
info: true,
|
info: true,
|
||||||
|
filamentStocks: true,
|
||||||
|
partStocks: true,
|
||||||
|
productStocks: true,
|
||||||
|
stockAudits: true,
|
||||||
notes: true,
|
notes: true,
|
||||||
auditLogs: false
|
auditLogs: false
|
||||||
}
|
}
|
||||||
@ -107,6 +115,10 @@ const StockLocationInfo = () => {
|
|||||||
disabled={objectFormState.loading}
|
disabled={objectFormState.loading}
|
||||||
items={[
|
items={[
|
||||||
{ key: 'info', label: 'Stock Location' },
|
{ 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: 'notes', label: 'Notes' },
|
||||||
{ key: 'auditLogs', label: 'Audit Logs' }
|
{ key: 'auditLogs', label: 'Audit Logs' }
|
||||||
]}
|
]}
|
||||||
@ -193,6 +205,118 @@ const StockLocationInfo = () => {
|
|||||||
</InfoCollapse>
|
</InfoCollapse>
|
||||||
</ActionHandler>
|
</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
|
<InfoCollapse
|
||||||
title='Notes'
|
title='Notes'
|
||||||
icon={<NoteIcon />}
|
icon={<NoteIcon />}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import InfoCircleIcon from '../../../Icons/InfoCircleIcon.jsx'
|
|||||||
import NoteIcon from '../../../Icons/NoteIcon.jsx'
|
import NoteIcon from '../../../Icons/NoteIcon.jsx'
|
||||||
import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx'
|
import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx'
|
||||||
import StockTransferIcon from '../../../Icons/StockTransferIcon.jsx'
|
import StockTransferIcon from '../../../Icons/StockTransferIcon.jsx'
|
||||||
|
import StockEventIcon from '../../../Icons/StockEventIcon.jsx'
|
||||||
import ObjectForm from '../../common/ObjectForm.jsx'
|
import ObjectForm from '../../common/ObjectForm.jsx'
|
||||||
import EditButtons from '../../common/EditButtons.jsx'
|
import EditButtons from '../../common/EditButtons.jsx'
|
||||||
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
||||||
@ -47,6 +48,7 @@ const StockTransferInfo = () => {
|
|||||||
{
|
{
|
||||||
info: true,
|
info: true,
|
||||||
lines: true,
|
lines: true,
|
||||||
|
stockEvents: true,
|
||||||
notes: true,
|
notes: true,
|
||||||
auditLogs: false
|
auditLogs: false
|
||||||
}
|
}
|
||||||
@ -114,6 +116,7 @@ const StockTransferInfo = () => {
|
|||||||
items={[
|
items={[
|
||||||
{ key: 'info', label: 'Transfer' },
|
{ key: 'info', label: 'Transfer' },
|
||||||
{ key: 'lines', label: 'Lines' },
|
{ key: 'lines', label: 'Lines' },
|
||||||
|
{ key: 'stockEvents', label: 'Stock Events' },
|
||||||
{ key: 'notes', label: 'Notes' },
|
{ key: 'notes', label: 'Notes' },
|
||||||
{ key: 'auditLogs', label: 'Audit Logs' }
|
{ key: 'auditLogs', label: 'Audit Logs' }
|
||||||
]}
|
]}
|
||||||
@ -220,6 +223,34 @@ const StockTransferInfo = () => {
|
|||||||
</ObjectForm>
|
</ObjectForm>
|
||||||
</ActionHandler>
|
</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
|
<InfoCollapse
|
||||||
title='Notes'
|
title='Notes'
|
||||||
icon={<NoteIcon />}
|
icon={<NoteIcon />}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import ViewButton from '../../common/ViewButton'
|
|||||||
import InfoCircleIcon from '../../../Icons/InfoCircleIcon.jsx'
|
import InfoCircleIcon from '../../../Icons/InfoCircleIcon.jsx'
|
||||||
import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx'
|
import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx'
|
||||||
import StockAuditLevelIcon from '../../../Icons/StockAuditLevelIcon.jsx'
|
import StockAuditLevelIcon from '../../../Icons/StockAuditLevelIcon.jsx'
|
||||||
|
import StockAuditIcon from '../../../Icons/StockAuditIcon.jsx'
|
||||||
import ObjectForm from '../../common/ObjectForm'
|
import ObjectForm from '../../common/ObjectForm'
|
||||||
import EditButtons from '../../common/EditButtons'
|
import EditButtons from '../../common/EditButtons'
|
||||||
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx'
|
||||||
@ -36,6 +37,7 @@ const StockAuditLevelInfo = () => {
|
|||||||
{
|
{
|
||||||
info: true,
|
info: true,
|
||||||
auditLines: true,
|
auditLines: true,
|
||||||
|
stockAudits: true,
|
||||||
auditLogs: false
|
auditLogs: false
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -97,6 +99,7 @@ const StockAuditLevelInfo = () => {
|
|||||||
items={[
|
items={[
|
||||||
{ key: 'info', label: 'Stock Audit Level Information' },
|
{ key: 'info', label: 'Stock Audit Level Information' },
|
||||||
{ key: 'auditLines', label: 'Audit Lines' },
|
{ key: 'auditLines', label: 'Audit Lines' },
|
||||||
|
{ key: 'stockAudits', label: 'Stock Audits' },
|
||||||
{ key: 'auditLogs', label: 'Audit Logs' }
|
{ key: 'auditLogs', label: 'Audit Logs' }
|
||||||
]}
|
]}
|
||||||
visibleState={collapseState}
|
visibleState={collapseState}
|
||||||
@ -198,6 +201,33 @@ const StockAuditLevelInfo = () => {
|
|||||||
)}
|
)}
|
||||||
</ObjectForm>
|
</ObjectForm>
|
||||||
</ActionHandler>
|
</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
|
<InfoCollapse
|
||||||
title='Audit Logs'
|
title='Audit Logs'
|
||||||
icon={<AuditLogIcon />}
|
icon={<AuditLogIcon />}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ export const StockAudit = {
|
|||||||
name: 'new',
|
name: 'new',
|
||||||
type: 'modal',
|
type: 'modal',
|
||||||
pageName: 'list',
|
pageName: 'list',
|
||||||
modalWidth: 800,
|
modalWidth: 700,
|
||||||
label: 'New Stock Audit',
|
label: 'New Stock Audit',
|
||||||
icon: PlusIcon,
|
icon: PlusIcon,
|
||||||
content: (objectData, { onOk } = {}) => {
|
content: (objectData, { onOk } = {}) => {
|
||||||
|
|||||||
@ -32,7 +32,7 @@ export const StockAuditLevel = {
|
|||||||
name: 'new',
|
name: 'new',
|
||||||
type: 'modal',
|
type: 'modal',
|
||||||
pageName: 'list',
|
pageName: 'list',
|
||||||
modalWidth: 900,
|
modalWidth: 700,
|
||||||
label: 'New Stock Audit Level',
|
label: 'New Stock Audit Level',
|
||||||
icon: PlusIcon,
|
icon: PlusIcon,
|
||||||
content: (objectData, { onOk } = {}) => {
|
content: (objectData, { onOk } = {}) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user