diff --git a/src/frontend/src/components/render/Stock.tsx b/src/frontend/src/components/render/Stock.tsx index 196eed5de1..ec9dda1839 100644 --- a/src/frontend/src/components/render/Stock.tsx +++ b/src/frontend/src/components/render/Stock.tsx @@ -13,6 +13,7 @@ import { type InstanceRenderInterface, RenderInlineModel } from './Instance'; +import { StatusRenderer, getStatusCodes } from './StatusRenderer'; /** * Inline rendering of a single StockLocation instance @@ -102,6 +103,17 @@ export function RenderStockItem( const showLocation: boolean = props.extra?.show_location !== false; const location: any = props.instance?.location_detail; + const statusKey = instance?.status_custom_key ?? instance?.status; + const flaggedStatusNames = ['ATTENTION', 'DAMAGED']; + const statusCodes = getStatusCodes(ModelType.stockitem); + const showStatus = + props.extra?.show_status === true && + !!statusCodes && + Object.values(statusCodes.values).some( + (entry) => + entry.key == statusKey && flaggedStatusNames.includes(entry.name) + ); + // Form the "secondary" text to display const secondary: ReactNode = ( @@ -111,6 +123,9 @@ export function RenderStockItem( {instance.batch && ( )} + {showStatus && ( + + )} ); diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx index 39fa22579e..08bf70481f 100644 --- a/src/frontend/src/forms/BuildForms.tsx +++ b/src/frontend/src/forms/BuildForms.tsx @@ -587,6 +587,9 @@ function BuildAllocateLineRow({ field_type: 'related field', api_url: apiUrl(ApiEndpoints.stock_item_list), model: ModelType.stockitem, + modelRenderer: ({ instance }: { instance: any }) => ( + + ), autoFill: !output || !!output?.serial, autoFillFilters: { serial: output?.serial diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx index 90ec80c034..2989cf80a6 100644 --- a/src/frontend/src/forms/SalesOrderForms.tsx +++ b/src/frontend/src/forms/SalesOrderForms.tsx @@ -15,6 +15,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import RemoveRowButton from '../components/buttons/RemoveRowButton'; import { StandaloneField } from '../components/forms/StandaloneField'; +import { RenderStockItem } from '../components/render/Stock'; import { ProgressBar } from '@lib/components/ProgressBar'; import { apiUrl } from '@lib/functions/Api'; @@ -319,6 +320,9 @@ function SalesOrderAllocateLineRow({ field_type: 'related field', api_url: apiUrl(ApiEndpoints.stock_item_list), model: ModelType.stockitem, + modelRenderer: ({ instance }: { instance: any }) => ( + + ), autoFill: true, filters: { available: true,