From 41825a23e50ad889ff548432688bb1174ea719db Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Tue, 1 Sep 2026 17:13:38 +0100 Subject: [PATCH] Enhance FilamentStock, PartStock, and ProductStock Models with Disabled State Logic - Added disabled state logic to FilamentStock, PartStock, and ProductStock models to prevent actions when the respective object data is not present. - Improved return values in FilamentStock model to handle undefined cases for starting and current weights, ensuring robust data handling. --- src/database/models/FilamentStock.js | 16 ++++++++++++---- src/database/models/PartStock.js | 3 +++ src/database/models/ProductStock.js | 3 +++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/database/models/FilamentStock.js b/src/database/models/FilamentStock.js index ac10149e..bb42bb5f 100644 --- a/src/database/models/FilamentStock.js +++ b/src/database/models/FilamentStock.js @@ -5,7 +5,8 @@ const FilamentStockInfo = lazy( import('../../components/Dashboard/Inventory/FilamentStocks/FilamentStockInfo') ) const NewFilamentStock = lazy( - () => import('../../components/Dashboard/Inventory/FilamentStocks/NewFilamentStock') + () => + import('../../components/Dashboard/Inventory/FilamentStocks/NewFilamentStock') ) import FilamentStockIcon from '../../components/Icons/FilamentStockIcon' import PlusIcon from '../../components/Icons/PlusIcon' @@ -29,7 +30,11 @@ export const FilamentStock = { label: 'New Filament Stock', icon: PlusIcon, content: (objectData, { onOk } = {}) => { - return createElement(NewFilamentStock, { defaultValues: objectData, onOk, reset: true }) + return createElement(NewFilamentStock, { + defaultValues: objectData, + onOk, + reset: true + }) } }, { @@ -142,6 +147,9 @@ export const FilamentStock = { required: true, showHyperlink: true, columnWidth: 200, + disabled: (objectData) => { + return !objectData?.filament + }, masterFilter: (objectData) => { return { filament: objectData?.filament?._id @@ -167,9 +175,9 @@ export const FilamentStock = { columnWidth: 300, value: (objectData) => { if (objectData?.state?.type === 'unconsumed') { - return objectData?.startingWeight + return objectData?.startingWeight || { net: 0, gross: 0 } } else { - return objectData.currentWeight + return objectData?.currentWeight || { net: 0, gross: 0 } } } }, diff --git a/src/database/models/PartStock.js b/src/database/models/PartStock.js index ebe13488..af9c8fc3 100644 --- a/src/database/models/PartStock.js +++ b/src/database/models/PartStock.js @@ -232,6 +232,9 @@ export const PartStock = { required: true, showHyperlink: true, columnWidth: 200, + disabled: (objectData) => { + return !objectData?.part + }, masterFilter: (objectData) => { return { part: objectData?.part?._id } } diff --git a/src/database/models/ProductStock.js b/src/database/models/ProductStock.js index 0c6f2669..bcae4d4d 100644 --- a/src/database/models/ProductStock.js +++ b/src/database/models/ProductStock.js @@ -238,6 +238,9 @@ export const ProductStock = { required: true, showHyperlink: true, columnWidth: 200, + disabled: (objectData) => { + return !objectData?.product + }, masterFilter: (objectData) => { return { product: objectData?.product?._id } }