You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 90b2b56
Browse filesBrowse the repository at this point in the historyBrowse files
feat(ogar-vocab): add OdooPort commerce-arm curator + ERP time bridge
OdooPort: PortSpec (NAMESPACE="Odoo", BRIDGE_ID="odoo") + ODOO_ALIASES map
Odoo model names onto the canonical OGAR codebook, making Odoo a first-class
codebook curator -- the commerce-arm sibling of OpenProjectPort / RedminePort
(Northstar §7 T10, "same shape, different domain").
Commerce arm (0x02XX):
account.move, sale.order -> commercial_document (0x0202)
account.move.line, sale.order.line -> commercial_line_item (0x0201)
account.tax -> tax_policy (0x0203)
res.partner -> billing_party (0x0204)
account.payment -> payment_record (0x0205)
res.currency -> currency_policy (0x0206)
Cross-arm bridge (the headline):
account.analytic.line -> billable_work_entry (0x0103)
That last row is the planning<->ERP convergence pin: an Odoo analytic
(timesheet/cost) line resolves to the SAME canonical concept as an
OpenProject TimeEntry and a Redmine TimeEntry. A logged planning hour and
the billed ERP line are one concept, so the planner's hours and the ERP's
billable hours align by construction.
6 tests: namespace/bridge_id, account.move -> commercial_document, every
commerce alias in the Commerce (0x02XX) domain, the planning<->ERP
convergence (op == rm == odoo == 0x0103), alias-count stability, unknown
name -> None.
Beachhead for converging odoo-rs onto the canonical layer: odoo-rs today
lowers its ontology through a bespoke SurrealQL AST + triple pipeline that
never touches ogar-vocab. OdooPort lets it adopt ogar_vocab::Class +
ogar-adapter-surrealql instead of re-deriving the AR-shaped surface.
cargo check --workspace --all-targets + cargo test --workspace clean.
0 commit comments