diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx index 20c08f43f0..49d100322f 100644 --- a/src/frontend/src/enums/ApiEndpoints.tsx +++ b/src/frontend/src/enums/ApiEndpoints.tsx @@ -136,6 +136,7 @@ export enum ApiEndpoints { stock_install = 'stock/:id/install/', stock_uninstall = 'stock/:id/uninstall/', stock_serialize = 'stock/:id/serialize/', + stock_return = 'stock/:id/return/', build_test_statistics = 'test-statistics/by-build/:id/', part_test_statistics = 'test-statistics/by-part/:id/', diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index cdcc3671e5..ba07fbe587 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -1,5 +1,5 @@ import { t } from '@lingui/macro'; -import { Accordion, Grid, Skeleton, Stack } from '@mantine/core'; +import { Accordion, Alert, Grid, Skeleton, Stack } from '@mantine/core'; import { IconBookmark, IconBoxPadding, @@ -42,7 +42,6 @@ import { formatCurrency } from '../../defaults/formatters'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; -import { partCategoryFields } from '../../forms/PartForms'; import { StockOperationProps, useAddStockItem, @@ -608,6 +607,28 @@ export default function StockDetail() { successMessage: t`Stock item serialized` }); + const returnStockItem = useCreateApiFormModal({ + url: ApiEndpoints.stock_return, + pk: stockitem.pk, + title: t`Return Stock Item`, + preFormContent: ( + + {t`Return this item into stock. This will remove the customer assignment.`} + + ), + fields: { + location: {}, + notes: {} + }, + initialData: { + location: stockitem.location ?? stockitem.part_detail?.default_location + }, + successMessage: t`Item returned to stock`, + onFormSuccess: () => { + refreshInstance(); + } + }); + const stockActions = useMemo(() => { const serial = stockitem.serial; const serialized = @@ -681,6 +702,20 @@ export default function StockDetail() { onClick: () => { stockitem.pk && transferStockItem.open(); } + }, + { + name: t`Return`, + tooltip: t`Return from customer`, + hidden: !stockitem.customer, + icon: ( + + ), + onClick: () => { + stockitem.pk && returnStockItem.open(); + } } ]} />, @@ -788,6 +823,7 @@ export default function StockDetail() { {removeStockItem.modal} {transferStockItem.modal} {serializeStockItem.modal} + {returnStockItem.modal} );