Editing top-level lines no longer deletes every option's lines

Fixkamo-shared-library
Shipped
August 26, 2026 at 7:25 PM UTC
Author
Kamo
Commit
00e601b

Quote.lineItems is orphanRemoval=true and option rows set both quote and option — which is why QuoteMapper filters on getOption() == null twice. A bare clear() in replaceLineItems therefore orphan-removed every option's rows whenever a PATCH supplied lineItems without options. The QuoteOption shells survived, recalculate repriced them to zero, and a three-option quote silently became three zero-priced options at HTTP 200.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing