- Ya
- 26 Agosti 2026, 07:42 UTC
- Mwandishi
- Kamo
- Ahadi ya
- d46fb10
updateWorkOrder parsed the requested status inside catch (Exception ignored), saved the entity unchanged, and returned 200 with a DTO showing the old value. The work-order screen offers seven statuses, FulfillmentStatus has four, so five of seven transitions were silent no-ops the UI reported as successes. POSController already had the IllegalArgumentException -> 400 handler that catch was defeating; the throw now names the accepted values, because that message is what a dispatcher actually reads. ServiceJobStatusMachine puts the transition table in one place, under test. The UI carries the same table twice in .tsx and its bulk-edit bar bypasses both. SW6 wires it to the endpoint.