mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 13:15:43 +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:
		| @@ -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'); | ||||
|   | ||||
| @@ -33,6 +33,7 @@ test('Tables - Filters', async ({ page }) => { | ||||
|   await setTableChoiceFilter(page, 'Responsible', 'readers'); | ||||
|   await setTableChoiceFilter(page, 'Assigned to me', 'No'); | ||||
|   await setTableChoiceFilter(page, 'Project Code', 'PRO-ZEN'); | ||||
|   await setTableChoiceFilter(page, 'Has Start Date', 'Yes'); | ||||
|  | ||||
|   await clearTableFilters(page); | ||||
| }); | ||||
| @@ -49,4 +50,17 @@ test('Tables - Columns', async ({ page }) => { | ||||
|   // De-select some items | ||||
|   await page.getByRole('menuitem', { name: 'Description' }).click(); | ||||
|   await page.getByRole('menuitem', { name: 'Stocktake' }).click(); | ||||
|   await page.keyboard.press('Escape'); | ||||
|  | ||||
|   await page.goto(`${baseUrl}/sales/index/salesorders`); | ||||
|  | ||||
|   // Open column selector | ||||
|   await page.getByLabel('table-select-columns').click(); | ||||
|  | ||||
|   await page.getByRole('menuitem', { name: 'Start Date' }).click(); | ||||
|   await page.getByRole('menuitem', { name: 'Target Date' }).click(); | ||||
|   await page.getByRole('menuitem', { name: 'Reference', exact: true }).click(); | ||||
|   await page.getByRole('menuitem', { name: 'Project Code' }).click(); | ||||
|  | ||||
|   await page.waitForTimeout(1000); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user