2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 20:45:44 +00:00

Set status when returning from customer (#8571)

* Set status when returning from customer

* Fix default customer for return order table

* Set status when receiving items against a ReturnOrder

* Bump max query time for currency endpoint

* Bump API version
This commit is contained in:
Oliver
2024-11-28 00:09:18 +11:00
committed by GitHub
parent 81e87a65e2
commit a48d23b161
9 changed files with 130 additions and 32 deletions

View File

@ -4,6 +4,7 @@ import { IconAddressBook, IconUser, IconUsers } from '@tabler/icons-react';
import { useMemo } from 'react';
import RemoveRowButton from '../components/buttons/RemoveRowButton';
import { StandaloneField } from '../components/forms/StandaloneField';
import type {
ApiFormAdjustFilterType,
ApiFormFieldSet
@ -11,8 +12,10 @@ import type {
import type { TableFieldRowProps } from '../components/forms/fields/TableField';
import { Thumbnail } from '../components/images/Thumbnail';
import { ApiEndpoints } from '../enums/ApiEndpoints';
import { ModelType } from '../enums/ModelType';
import { useCreateApiFormModal } from '../hooks/UseForm';
import { apiUrl } from '../states/ApiState';
import { StatusFilterOptions } from '../tables/Filter';
export function useReturnOrderFields({
duplicateOrderId
@ -133,6 +136,17 @@ function ReturnOrderLineItemFormRow({
props: TableFieldRowProps;
record: any;
}>) {
const statusOptions = useMemo(() => {
return (
StatusFilterOptions(ModelType.stockitem)()?.map((choice) => {
return {
value: choice.value,
display_name: choice.label
};
}) ?? []
);
}, []);
return (
<>
<Table.Tr>
@ -146,7 +160,21 @@ function ReturnOrderLineItemFormRow({
<div>{record.part_detail.name}</div>
</Flex>
</Table.Td>
<Table.Td>{record.item_detail.serial}</Table.Td>
<Table.Td># {record.item_detail.serial}</Table.Td>
<Table.Td>
<StandaloneField
fieldDefinition={{
field_type: 'choice',
label: t`Status`,
choices: statusOptions,
onValueChange: (value) => {
props.changeFn(props.idx, 'status', value);
}
}}
defaultValue={record.item_detail?.status}
error={props.rowErrors?.status?.message}
/>
</Table.Td>
<Table.Td>
<RemoveRowButton onClick={() => props.removeFn(props.idx)} />
</Table.Td>
@ -181,7 +209,7 @@ export function useReceiveReturnOrderLineItems(
/>
);
},
headers: [t`Part`, t`Serial Number`]
headers: [t`Part`, t`Stock Item`, t`Status`]
},
location: {
filters: {

View File

@ -639,10 +639,12 @@ export default function StockDetail() {
),
fields: {
location: {},
status: {},
notes: {}
},
initialData: {
location: stockitem.location ?? stockitem.part_detail?.default_location
location: stockitem.location ?? stockitem.part_detail?.default_location,
status: stockitem.status_custom_key ?? stockitem.status
},
successMessage: t`Item returned to stock`,
onFormSuccess: () => {

View File

@ -152,6 +152,9 @@ export function ReturnOrderTable({
url: ApiEndpoints.return_order_list,
title: t`Add Return Order`,
fields: returnOrderFields,
initialData: {
customer: customerId
},
follow: true,
modelType: ModelType.returnorder
});