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(() => {