Skip to content

Commit

Permalink
Support for searching sales order shipments (#8992)
Browse files Browse the repository at this point in the history
Co-authored-by: Oliver <[email protected]>
  • Loading branch information
fuzeman and SchrodingersGat authored Feb 3, 2025
1 parent d363c40 commit 138aa01
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/docs/settings/user.md
Original file line number Diff line number Diff line change
Expand Up @@ -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") }}

Expand Down
1 change: 1 addition & 0 deletions src/backend/InvenTree/InvenTree/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,7 @@ def get_result_types(self):
'purchaseorder': order.api.PurchaseOrderList,
'returnorder': order.api.ReturnOrderList,
'salesorder': order.api.SalesOrderList,
'salesordershipment': order.api.SalesOrderShipmentList,
'stockitem': stock.api.StockList,
'stocklocation': stock.api.StockLocationList,
}
Expand Down
6 changes: 6 additions & 0 deletions src/backend/InvenTree/common/setting/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,12 @@ def label_printer_options():
'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'),
Expand Down
7 changes: 7 additions & 0 deletions src/backend/InvenTree/order/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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."""
Expand Down
7 changes: 7 additions & 0 deletions src/frontend/src/components/nav/SearchDrawer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand Down
1 change: 1 addition & 0 deletions src/frontend/src/pages/Index/Settings/UserSettings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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'
]}
Expand Down
28 changes: 28 additions & 0 deletions src/frontend/tests/pages/pui_sales_order.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Check failure on line 196 in src/frontend/tests/pages/pui_sales_order.spec.ts

View workflow job for this annotation

GitHub Actions / Tests - Platform UI

[chromium] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments

1) [chromium] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments ─────────────────── Error: locator.click: Test timeout of 90000ms exceeded. Call log: - waiting for getByText(/SO0009/).first() 194 | .getByText(/SO0009/) 195 | .first() > 196 | .click(); | ^ 197 | 198 | // Search for shipment by invoice number 199 | await page.getByLabel('open-search').click(); at /home/runner/work/InvenTree/InvenTree/src/frontend/tests/pages/pui_sales_order.spec.ts:196:6

Check failure on line 196 in src/frontend/tests/pages/pui_sales_order.spec.ts

View workflow job for this annotation

GitHub Actions / Tests - Platform UI

[chromium] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments

1) [chromium] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments ─────────────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Test timeout of 90000ms exceeded. Call log: - waiting for getByText(/SO0009/).first() 194 | .getByText(/SO0009/) 195 | .first() > 196 | .click(); | ^ 197 | 198 | // Search for shipment by invoice number 199 | await page.getByLabel('open-search').click(); at /home/runner/work/InvenTree/InvenTree/src/frontend/tests/pages/pui_sales_order.spec.ts:196:6

Check failure on line 196 in src/frontend/tests/pages/pui_sales_order.spec.ts

View workflow job for this annotation

GitHub Actions / Tests - Platform UI

[chromium] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments

1) [chromium] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments ─────────────────── Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Test timeout of 90000ms exceeded. Call log: - waiting for getByText(/SO0009/).first() 194 | .getByText(/SO0009/) 195 | .first() > 196 | .click(); | ^ 197 | 198 | // Search for shipment by invoice number 199 | await page.getByLabel('open-search').click(); at /home/runner/work/InvenTree/InvenTree/src/frontend/tests/pages/pui_sales_order.spec.ts:196:6

Check failure on line 196 in src/frontend/tests/pages/pui_sales_order.spec.ts

View workflow job for this annotation

GitHub Actions / Tests - Platform UI

[firefox] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments

2) [firefox] › pages/pui_sales_order.spec.ts:102:1 › Sales Orders - Shipments ──────────────────── Error: locator.click: Test timeout of 90000ms exceeded. Call log: - waiting for getByText(/SO0009/).first() 194 | .getByText(/SO0009/) 195 | .first() > 196 | .click(); | ^ 197 | 198 | // Search for shipment by invoice number 199 | await page.getByLabel('open-search').click(); at /home/runner/work/InvenTree/InvenTree/src/frontend/tests/pages/pui_sales_order.spec.ts:196:6

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

0 comments on commit 138aa01

Please sign in to comment.