- Shipped
- September 2, 2026 at 3:47 PM UTC
- Author
- Kamo
- Commit
- 8de52e5
Quote money columns are written, not computed on read, so the two corrections that landed on 2026-09-02 — a unit price is a per-month rate the term multiplies, and a committed term is worth what it commits to — leave every existing row carrying the old arithmetic until something saves it. On the quote that exposed this, a three-year option stored one month of itself. Calls QuoteService.reprice, the same code that prices a quote on save, rather than reimplementing the money rules in SQL. A backfill with its own copy of them is a second source of truth and the two drift the moment either is touched. Terminal quotes are reported, never rewritten. An ACCEPTED quote's total records what a customer agreed to at the figure they were shown; that figure may be wrong, but correcting it here would silently restate a signed document. Each is logged with its stored and recomputed value for a person to decide. Idempotent, and ordered late because it loads entities.