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}
);