[PUI] Order Parts Wizard (#8602)

* Add generic <WizardDrawer />

* Add a wizard hook

- Similar to existing modal form hook

* Slight refactor

* Simple placeholder table

* Only purchaseable parts

* Add callback to remove selected part

* Add step enum

* Improve wizard

* Render supplier image

* Add validation checks for wizard

* Further wizard improvements

* add error support

* Improvements

* Refactoring

* Add error checking

* Order from part detail page

* Implement from SalesOrder view

* Implement from build line table

* Implement from StockItem table

* Add to StockDetail page

* Cleanup PartTable

* Refactor to use DataTable interface

* Simplify wizard into single step

* Refactoring

* Allow creation of new supplier part

* Cleanup

* Refactor <PartDetail>

* Fix static hook issue

* Fix infinite useEffect

* Playwright tests
This commit is contained in:
Oliver
2024-12-16 23:07:33 +11:00
committed by GitHub
parent 34b70d0a39
commit 169f4f8350
16 changed files with 1025 additions and 151 deletions
@@ -139,8 +139,10 @@ export function usePurchaseOrderLineItemFields({
* Construct a set of fields for creating / editing a PurchaseOrder instance
*/
export function usePurchaseOrderFields({
supplierId,
duplicateOrderId
}: {
supplierId?: number;
duplicateOrderId?: number;
}): ApiFormFieldSet {
return useMemo(() => {
@@ -150,7 +152,8 @@ export function usePurchaseOrderFields({
},
description: {},
supplier: {
disabled: duplicateOrderId !== undefined,
value: supplierId,
disabled: !!duplicateOrderId || !!supplierId,
filters: {
is_supplier: true,
active: true
@@ -213,7 +216,7 @@ export function usePurchaseOrderFields({
}
return fields;
}, [duplicateOrderId]);
}, [duplicateOrderId, supplierId]);
}
/**