- Shipped
- September 2, 2026 at 5:58 AM UTC
- Author
- Kamo
- Commit
- fa31f62
An org that charges up front saw the monthly rate on a three-year deal. The setting deciding that already existed — **************** — but it reached only QuoteConversionService, at the moment of conversion. The document itself was always priced as though the customer paid per period. applyOptionHeadlineTotals now branches on the basis: FULL_CONTRACT takes contractTotal (which already carries the setup fee, so it must not be added twice), FIRST_PERIOD_PLUS_SETUP keeps the first invoice. periodTotal and monthlyEquivalent are untouched under both — the savings badges compare against monthlyEquivalent, and moving it would change every yardstick on the page. The basis is STAMPED onto the quote when it is raised rather than resolved live. A quote states terms, and an administrator flipping the org switch next week must not restate them on a document a customer already holds. Reading the org setting at conversion time did exactly that: it re-priced quotes that were already accepted. Conversion now reads the quote's own stamp, and revise carries it across so a revision cannot silently re-base a live negotiation. The column is nullable because every existing row predates it; null resolves to FIRST_PERIOD_PLUS_SETUP, which is what those quotes were sent under, so nothing already in a customer's hands changes value.