Sale Order Line Automatic Sequencer
Sale Order Line Automatic Sequencer
Flawless Line Numbering & Professional Document Layouts
Eliminate Odoo's native row sorting bugs.
Automatically assign clean, real-time running numbers (1, 2, 3...) to your sales order lines instantly as you build quotations.
Odoo 19.0
Perfect Sequencing
Clean PDF Reports
Frustrated by Corrupted Sales Line Order and Tie-Breaks?
In standard Odoo, newly added or unsaved sales order lines lack a persistent ID (represented as a temporary
NewId
). When sales teams drag-and-drop rows, delete items, or mix products with sections and notes, Odoo's native sequence tie-breaker fails. This leads to scrambled row positions upon saving and messy, unnumbered PDF quotations that confuse your customers.
Beautiful & Bulletproof Line Management
A dedicated "No." column that behaves flawlessly across both backend screen views and printed paperwork.
Live Dynamic Backend Numbering
Adds a crisp "No." column to your Sales Order line grid. Numbers recalculate live on your screen as you add new items, remove products, or drag items into new slotsâeven before clicking Save.
Polished PDF Quotation Output
Injects matching sequential numbers onto the printed Quotation and Sales Order PDF reports. Aligns perfectly with standard templates to deliver clean, modern financial proposals.
Smart Section & Note Skipping
Maintains accurate professional logic. Section headers (
line_section
) and inline text notes (
line_note
) are skipped entirely from numbering, keeping data boundaries pristine.
Retroactive Legacy Migration
Comes armed with an automatic
post_init_hook
. Installing the module instantly and safely loops through your existing database records to number older, historic quotations cleanly.
The Hybrid 3-Layer Safety Architecture
Why this sequencer succeeds where standard compute fields and traditional loops fail.
Layer 1: Persistent DB Truth
Overrides model
create/write/unlink
actions. Normalizes line sequences to multiples of 10 upon saving to remove collisions. Operating solely on real IDs, it ensures database integrity.
Layer 2: Onchange In-Session Engine
Utilizes a native Python
@api.onchange
listener. While actively editing an order, it maps sequence strings based on real visible layout array indexes, bypassing
NewId
ambiguity.
Layer 3: Instant OWL UI Safety Net
Powered by a custom OWL framework JS widget. Derives values instantly from on-screen row DOM render objects during drag actions, falling back safely to Python values if client structural shifts occur.
Visual Alignment & Workflow Validation
Perfect backend and PDF matching that upgrades the core sales user experience.
Developed with
by SyncSoft Team
Need help tailoring report layouts or adapting sequencing modules to highly customized apps?
We are here to support you!
Contact Us
SyncSoft