2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-02-12 01:07:21 +00:00

[UI] Build updates (#11274)

* Hide "child build orders" for builds without any subassemblies

* Hide "build stock" button for inactive build orders
This commit is contained in:
Oliver
2026-02-10 12:00:06 +11:00
committed by GitHub
parent 3c44787dc0
commit 613ed40843
2 changed files with 22 additions and 2 deletions

View File

@@ -161,6 +161,24 @@ export default function BuildDetail() {
defaultValue: {} 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 buildStatus = useStatusCodes({ modelType: ModelType.build });
const { const {
@@ -503,6 +521,7 @@ export default function BuildDetail() {
name: 'child-orders', name: 'child-orders',
label: t`Child Build Orders`, label: t`Child Build Orders`,
icon: <IconSitemap />, icon: <IconSitemap />,
hidden: (subassemblyLineData?.count ?? 0) <= 0, // Hide if no sub-assembly items
content: build.pk ? ( content: build.pk ? (
<BuildOrderTable parentBuildId={build.pk} /> <BuildOrderTable parentBuildId={build.pk} />
) : ( ) : (
@@ -540,6 +559,7 @@ export default function BuildDetail() {
user, user,
buildStatus, buildStatus,
globalSettings, globalSettings,
subassemblyLineData,
buildLineQuery.isFetching, buildLineQuery.isFetching,
buildLineQuery.isLoading, buildLineQuery.isLoading,
buildLineData buildLineData

View File

@@ -777,7 +777,7 @@ export default function BuildLineTable({
{ {
icon: <IconTool />, icon: <IconTool />,
title: t`Build Stock`, title: t`Build Stock`,
hidden: !canBuild, hidden: !canBuild || !isActive,
color: 'blue', color: 'blue',
onClick: () => { onClick: () => {
setInitialData({ setInitialData({
@@ -796,7 +796,7 @@ export default function BuildLineTable({
}) })
]; ];
}, },
[user, navigate, output, build, buildStatus] [user, navigate, output, build, buildStatus, isActive]
); );
const tableActions = useMemo(() => { const tableActions = useMemo(() => {