diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index 0400fff24b..f0542f3f9b 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -161,6 +161,24 @@ export default function BuildDetail() { defaultValue: {} }); + // Fetch the number of assembled BOM items associated with the build order + // i.e. how many items are subassemblies? + const { instance: subassemblyLineData } = useInstance({ + endpoint: ApiEndpoints.build_line_list, + params: { + build: id, + allocations: false, + part_detail: false, + build_detail: false, + bom_item_detail: false, + assembly: true, + limit: 1 + }, + disabled: !id, + hasPrimaryKey: false, + defaultValue: {} + }); + const buildStatus = useStatusCodes({ modelType: ModelType.build }); const { @@ -503,6 +521,7 @@ export default function BuildDetail() { name: 'child-orders', label: t`Child Build Orders`, icon: , + hidden: (subassemblyLineData?.count ?? 0) <= 0, // Hide if no sub-assembly items content: build.pk ? ( ) : ( @@ -540,6 +559,7 @@ export default function BuildDetail() { user, buildStatus, globalSettings, + subassemblyLineData, buildLineQuery.isFetching, buildLineQuery.isLoading, buildLineData diff --git a/src/frontend/src/tables/build/BuildLineTable.tsx b/src/frontend/src/tables/build/BuildLineTable.tsx index d4e85508a4..1e67872340 100644 --- a/src/frontend/src/tables/build/BuildLineTable.tsx +++ b/src/frontend/src/tables/build/BuildLineTable.tsx @@ -777,7 +777,7 @@ export default function BuildLineTable({ { icon: , title: t`Build Stock`, - hidden: !canBuild, + hidden: !canBuild || !isActive, color: 'blue', onClick: () => { setInitialData({ @@ -796,7 +796,7 @@ export default function BuildLineTable({ }) ]; }, - [user, navigate, output, build, buildStatus] + [user, navigate, output, build, buildStatus, isActive] ); const tableActions = useMemo(() => {