Extends the R1 SPA with create forms for the four entities operators
interact with most. Each page follows the same pattern proven by
CreateSalesOrderPage: a card-scoped form with dropdowns populated
from the API, inline validation, and a redirect to the detail or
list page on success.
New pages:
- CreateItemPage — code, name, type (GOOD/SERVICE/DIGITAL),
UoM dropdown populated from /api/v1/catalog/uoms
- CreatePartnerPage — code, name, type (CUSTOMER/SUPPLIER/BOTH),
optional email + phone
- CreatePurchaseOrderPage — symmetric to CreateSalesOrderPage;
supplier dropdown filtered to SUPPLIER/BOTH partners,
optional expected date, dynamic line items
- CreateWorkOrderPage — output item + quantity + optional due
date, dynamic BOM inputs (item + qty/unit + source location
dropdown), dynamic routing operations (op code + work center
+ std minutes). The most complex form in the SPA — matches
the EBC-PP-001 work order creation flow
API client additions: catalog.createItem, partners.create,
purchaseOrders.create, production.createWorkOrder — each a
typed wrapper around POST to the corresponding endpoint.
List pages updated: Items, Partners, Purchase Orders, Work Orders
all now show a "+ New" button in the PageHeader that links to
the create form.
Routes wired: /items/new, /partners/new, /purchase-orders/new,
/work-orders/new — all covered by the existing SpaController
wildcard patterns and SecurityConfiguration permitAll rules.