2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-27 01:00:53 +00:00

Order start dates (#8966)

* Add 'start_date' field to orders

- PurchaseOrder
- SalesOrder
- ReturnOrder

* Add serializer field

* Add API filters

* Add table columns

* Add fields to forms

* Table filters

* Add validation check

* Refactor BuildOrderTable

* Update detail page

* Bump API version

* Allow sorting by start_date

* Fix for purchase order field

* Update detail pages

* Update playwright tests

* Updated playwright tests

* Documentation updates

* Updated playwright tests
This commit is contained in:
Oliver
2025-01-29 22:45:39 +11:00
committed by GitHub
parent 0c56a3132b
commit eee4916350
24 changed files with 317 additions and 45 deletions

View File

@ -3,11 +3,12 @@ import { baseUrl } from '../defaults.ts';
import {
clearTableFilters,
clickButtonIfVisible,
openFilterDrawer
openFilterDrawer,
setTableChoiceFilter
} from '../helpers.ts';
import { doQuickLogin } from '../login.ts';
test('Purchase Orders', async ({ page }) => {
test('Purchase Orders - List', async ({ page }) => {
await doQuickLogin(page);
await page.getByRole('tab', { name: 'Purchasing' }).click();
@ -22,10 +23,17 @@ test('Purchase Orders', async ({ page }) => {
await page.getByText('Pending').first().waitFor();
await page.getByText('On Hold').first().waitFor();
// Click through to a particular purchase order
await page.getByRole('cell', { name: 'PO0013' }).click();
// Filter by 'has start date'
await setTableChoiceFilter(page, 'Has Start Date', 'Yes');
await page.getByRole('cell', { name: 'Scheduled purchase order' }).waitFor();
// Click through to a particular purchase order
await page.getByRole('cell', { name: 'PO0015' }).click();
await page.getByRole('button', { name: 'Issue Order' }).waitFor();
// Expected values
await page.getByText('2025-06-12').waitFor(); // Start Date
await page.getByText('2025-07-17').waitFor(); // Target Date
});
test('Purchase Orders - Barcodes', async ({ page }) => {
@ -70,7 +78,7 @@ test('Purchase Orders - Barcodes', async ({ page }) => {
await page.getByRole('button', { name: 'Issue Order' }).waitFor();
// Ensure we can scan back to this page, with the associated barcode
await page.goto(`${baseUrl}/`);
await page.getByRole('tab', { name: 'Sales' }).click();
await page.waitForTimeout(250);
await page.getByRole('button', { name: 'Open Barcode Scanner' }).click();
await page.getByPlaceholder('Enter barcode data').fill('1234567890');