mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-28 03:26:45 +00:00
Support for searching sales order shipments (#8992)
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
This commit is contained in:
parent
d363c408f8
commit
138aa01d7e
@ -53,6 +53,7 @@ Customize settings for search results:
|
||||
{{ usersetting("SEARCH_PREVIEW_EXCLUDE_INACTIVE_PURCHASE_ORDERS") }}
|
||||
{{ usersetting("SEARCH_PREVIEW_SHOW_SALES_ORDERS") }}
|
||||
{{ usersetting("SEARCH_PREVIEW_EXCLUDE_INACTIVE_SALES_ORDERS") }}
|
||||
{{ usersetting("SEARCH_PREVIEW_SHOW_SALES_ORDER_SHIPMENTS") }}
|
||||
{{ usersetting("SEARCH_PREVIEW_SHOW_RETURN_ORDERS") }}
|
||||
{{ usersetting("SEARCH_PREVIEW_EXCLUDE_INACTIVE_RETURN_ORDERS") }}
|
||||
|
||||
|
@ -511,6 +511,7 @@ class APISearchView(GenericAPIView):
|
||||
'purchaseorder': order.api.PurchaseOrderList,
|
||||
'returnorder': order.api.ReturnOrderList,
|
||||
'salesorder': order.api.SalesOrderList,
|
||||
'salesordershipment': order.api.SalesOrderShipmentList,
|
||||
'stockitem': stock.api.StockList,
|
||||
'stocklocation': stock.api.StockLocationList,
|
||||
}
|
||||
|
@ -127,6 +127,12 @@ USER_SETTINGS: dict[str, InvenTreeSettingsKeyType] = {
|
||||
'validator': bool,
|
||||
'default': True,
|
||||
},
|
||||
'SEARCH_PREVIEW_SHOW_SALES_ORDER_SHIPMENTS': {
|
||||
'name': _('Search Sales Order Shipments'),
|
||||
'description': _('Display sales order shipments in search preview window'),
|
||||
'default': True,
|
||||
'validator': bool,
|
||||
},
|
||||
'SEARCH_PREVIEW_SHOW_RETURN_ORDERS': {
|
||||
'name': _('Search Return Orders'),
|
||||
'description': _('Display return orders in search preview window'),
|
||||
|
@ -1270,6 +1270,13 @@ class SalesOrderShipmentList(SalesOrderShipmentMixin, ListCreateAPI):
|
||||
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
||||
ordering_fields = ['reference', 'delivery_date', 'shipment_date', 'allocated_items']
|
||||
|
||||
search_fields = [
|
||||
'order__reference',
|
||||
'reference',
|
||||
'tracking_number',
|
||||
'invoice_number',
|
||||
]
|
||||
|
||||
|
||||
class SalesOrderShipmentDetail(SalesOrderShipmentMixin, RetrieveUpdateDestroyAPI):
|
||||
"""API detail endpooint for SalesOrderShipment model."""
|
||||
|
@ -247,6 +247,13 @@ export function SearchDrawer({
|
||||
user.hasViewRole(UserRoles.sales_order) &&
|
||||
userSettings.isSet('SEARCH_PREVIEW_SHOW_SALES_ORDERS')
|
||||
},
|
||||
{
|
||||
model: ModelType.salesordershipment,
|
||||
parameters: {},
|
||||
enabled:
|
||||
user.hasViewRole(UserRoles.sales_order) &&
|
||||
userSettings.isSet('SEARCH_PREVIEW_SHOW_SALES_ORDER_SHIPMENTS')
|
||||
},
|
||||
{
|
||||
model: ModelType.returnorder,
|
||||
parameters: {
|
||||
|
@ -84,6 +84,7 @@ export default function UserSettings() {
|
||||
'SEARCH_PREVIEW_EXCLUDE_INACTIVE_PURCHASE_ORDERS',
|
||||
'SEARCH_PREVIEW_SHOW_SALES_ORDERS',
|
||||
'SEARCH_PREVIEW_EXCLUDE_INACTIVE_SALES_ORDERS',
|
||||
'SEARCH_PREVIEW_SHOW_SALES_ORDER_SHIPMENTS',
|
||||
'SEARCH_PREVIEW_SHOW_RETURN_ORDERS',
|
||||
'SEARCH_PREVIEW_EXCLUDE_INACTIVE_RETURN_ORDERS'
|
||||
]}
|
||||
|
@ -180,4 +180,32 @@ test('Sales Orders - Shipments', async ({ page }) => {
|
||||
await page.getByLabel('related-field-stock_item').click();
|
||||
await page.getByText('Quantity: 42').click();
|
||||
await page.getByRole('button', { name: 'Cancel' }).click();
|
||||
|
||||
// Search for shipment by tracking number
|
||||
await page.getByLabel('open-search').click();
|
||||
|
||||
await page.getByLabel('global-search-input').clear();
|
||||
|
||||
await page.waitForTimeout(250);
|
||||
await page.getByLabel('global-search-input').fill('TRK-002');
|
||||
await page.waitForTimeout(250);
|
||||
|
||||
await page
|
||||
.getByText(/SO0009/)
|
||||
.first()
|
||||
.click();
|
||||
|
||||
// Search for shipment by invoice number
|
||||
await page.getByLabel('open-search').click();
|
||||
|
||||
await page.getByLabel('global-search-input').clear();
|
||||
|
||||
await page.waitForTimeout(250);
|
||||
await page.getByLabel('global-search-input').fill('INV-123');
|
||||
await page.waitForTimeout(250);
|
||||
|
||||
await page
|
||||
.getByText(/SO0025/)
|
||||
.first()
|
||||
.click();
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user