2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-02-02 03:14:56 +00:00

split assign batch code and assign serial numbers in po receive (#11213)

This commit is contained in:
Jacob Felknor
2026-01-28 16:19:34 -07:00
committed by GitHub
parent ec10c1ef1b
commit 0d80d495cc

View File

@@ -361,7 +361,7 @@ function LineItemFormRow({
// Serial number generator // Serial number generator
const serialNumberGenerator = useSerialNumberGenerator({ const serialNumberGenerator = useSerialNumberGenerator({
isEnabled: () => batchOpen && trackable isEnabled: () => trackable
}); });
const [packagingOpen, packagingHandlers] = useDisclosure(false, { const [packagingOpen, packagingHandlers] = useDisclosure(false, {
@@ -379,7 +379,6 @@ function LineItemFormRow({
const [batchOpen, batchHandlers] = useDisclosure(false, { const [batchOpen, batchHandlers] = useDisclosure(false, {
onClose: () => { onClose: () => {
props.changeFn(props.idx, 'batch_code', undefined); props.changeFn(props.idx, 'batch_code', undefined);
props.changeFn(props.idx, 'serial_numbers', undefined);
}, },
onOpen: () => { onOpen: () => {
// Generate a new batch code // Generate a new batch code
@@ -387,6 +386,14 @@ function LineItemFormRow({
part: record?.supplier_part_detail?.part, part: record?.supplier_part_detail?.part,
order: record?.order order: record?.order
}); });
}
});
const [serialOpen, serialHandlers] = useDisclosure(false, {
onClose: () => {
props.changeFn(props.idx, 'serial_numbers', undefined);
},
onOpen: () => {
// Generate new serial numbers // Generate new serial numbers
if (trackable) { if (trackable) {
serialNumberGenerator.update({ serialNumberGenerator.update({
@@ -430,14 +437,6 @@ function LineItemFormRow({
props.changeFn(props.idx, 'barcode', barcode); props.changeFn(props.idx, 'barcode', barcode);
}, [barcode]); }, [barcode]);
const batchToolTip: string = useMemo(() => {
if (trackable) {
return t`Assign Batch Code and Serial Numbers`;
} else {
return t`Assign Batch Code`;
}
}, [trackable]);
// Update location field description on state change // Update location field description on state change
useEffect(() => { useEffect(() => {
if (!opened) { if (!opened) {
@@ -559,10 +558,21 @@ function LineItemFormRow({
size='sm' size='sm'
onClick={() => batchHandlers.toggle()} onClick={() => batchHandlers.toggle()}
icon={<InvenTreeIcon icon='batch_code' />} icon={<InvenTreeIcon icon='batch_code' />}
tooltip={batchToolTip} tooltip={t`Assign Batch Code`}
tooltipAlignment='top' tooltipAlignment='top'
variant={batchOpen ? 'outline' : 'transparent'} variant={batchOpen ? 'outline' : 'transparent'}
/> />
{trackable && (
<ActionButton
size='sm'
onClick={() => serialHandlers.toggle()}
icon={<InvenTreeIcon icon='serial' />}
tooltip={t`Assign Serial Numbers`}
tooltipAlignment='top'
variant={serialOpen ? 'outline' : 'transparent'}
/>
)}
{settings.isSet('STOCK_ENABLE_EXPIRY') && ( {settings.isSet('STOCK_ENABLE_EXPIRY') && (
<ActionButton <ActionButton
size='sm' size='sm'
@@ -712,7 +722,7 @@ function LineItemFormRow({
error={props.rowErrors?.batch_code?.message} error={props.rowErrors?.batch_code?.message}
/> />
<TableFieldExtraRow <TableFieldExtraRow
visible={batchOpen && trackable} visible={serialOpen}
onValueChange={(value) => onValueChange={(value) =>
props.changeFn(props.idx, 'serial_numbers', value) props.changeFn(props.idx, 'serial_numbers', value)
} }