2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 04:25:42 +00:00

Build order cancel (#7153)

* Fix BuildCancelSerializer

* Change name of serializer field

* Perform bulk_delete operation

* Implement BuildCancel in PUI

* Handle null build

* Bump API version

* Improve query efficiency for build endpoints

* Offload allocation cleanup in cancel task

* Handle exception if offloading fails

* Offload auto-allocation of build order stock

* Add unit test for cancelling build order *and* consuming stock
This commit is contained in:
Oliver
2024-05-04 14:36:13 +10:00
committed by GitHub
parent 7f12d55609
commit 5b0889d4c1
10 changed files with 142 additions and 36 deletions

View File

@ -52,8 +52,10 @@ export enum ApiEndpoints {
// Build API endpoints
build_order_list = 'build/',
build_order_cancel = 'build/:id/cancel/',
build_order_attachment_list = 'build/attachment/',
build_line_list = 'build/line/',
bom_list = 'bom/',
// Part API endpoints

View File

@ -301,6 +301,18 @@ export default function BuildDetail() {
}
});
const cancelBuild = useCreateApiFormModal({
url: apiUrl(ApiEndpoints.build_order_cancel, build.pk),
title: t`Cancel Build Order`,
fields: {
remove_allocated_stock: {},
remove_incomplete_outputs: {}
},
onFormSuccess: () => {
refreshInstance();
}
});
const duplicateBuild = useCreateApiFormModal({
url: ApiEndpoints.build_order_list,
title: t`Add Build Order`,
@ -352,7 +364,9 @@ export default function BuildDetail() {
hidden: !user.hasChangeRole(UserRoles.build)
}),
CancelItemAction({
tooltip: t`Cancel order`
tooltip: t`Cancel order`,
onClick: () => cancelBuild.open()
// TODO: Hide if build cannot be cancelled
}),
DuplicateItemAction({
onClick: () => duplicateBuild.open(),
@ -379,6 +393,7 @@ export default function BuildDetail() {
<>
{editBuild.modal}
{duplicateBuild.modal}
{cancelBuild.modal}
<Stack spacing="xs">
<LoadingOverlay visible={instanceQuery.isFetching} />
<PageDetail