diff --git a/src/frontend/src/pages/stock/LocationDetail.tsx b/src/frontend/src/pages/stock/LocationDetail.tsx index dd741a28e4..ad928e36a5 100644 --- a/src/frontend/src/pages/stock/LocationDetail.tsx +++ b/src/frontend/src/pages/stock/LocationDetail.tsx @@ -38,7 +38,6 @@ import { useTransferStockItem } from '../../forms/StockForms'; import { InvenTreeIcon } from '../../functions/icons'; -import { notYetImplemented } from '../../functions/notifications'; import { useDeleteApiFormModal, useEditApiFormModal @@ -275,7 +274,7 @@ export default function Stock() { const transferStockItems = useTransferStockItem(stockItemActionProps); const countStockItems = useCountStockItem(stockItemActionProps); - const scanInStockItems = useBarcodeScanDialog({ + const scanInStockItem = useBarcodeScanDialog({ title: t`Scan Stock Item`, modelType: ModelType.stockitem, callback: async (barcode, response) => { @@ -306,6 +305,31 @@ export default function Stock() { } }); + const scanInStockLocation = useBarcodeScanDialog({ + title: t`Scan Stock Location`, + modelType: ModelType.stocklocation, + callback: async (barcode, response) => { + const pk = response.stocklocation.pk; + + // Set the parent location + return api + .patch(apiUrl(ApiEndpoints.stock_location_list, pk), { + parent: location.pk + }) + .then(() => { + return { + success: t`Scanned stock location into location` + }; + }) + .catch((error) => { + console.error('Error scanning stock location:', error); + return { + error: t`Error scanning stock location` + }; + }); + } + }); + const locationActions = useMemo( () => [ , @@ -321,13 +345,13 @@ export default function Stock() { name: 'Scan in stock items', icon: , tooltip: 'Scan items', - onClick: scanInStockItems.open + onClick: scanInStockItem.open }, { name: 'Scan in container', icon: , tooltip: 'Scan container', - onClick: notYetImplemented + onClick: scanInStockLocation.open } ]} /> @@ -396,7 +420,8 @@ export default function Stock() { <> {editLocation.modal} {deleteLocation.modal} - {scanInStockItems.dialog} + {scanInStockItem.dialog} + {scanInStockLocation.dialog}