Integration field groups¶
The generated model pages assign every runtime field to an Accountify field group. The group is a navigation and review aid; the exact Odoo field definition remains authoritative.
Cross-cutting groups¶
| Group | Typical fields | Integration purpose |
|---|---|---|
| Identity & sync | id (implicit), display_name, name, active, create_date, write_date, create_uid, write_uid |
Stable references, incremental sync, optimistic concurrency, audit |
| Tenant & company | company_id, company_ids, company_currency_id |
Tenant isolation, same-company validation, company-dependent defaults |
| Lifecycle & workflow | state, stage_id, payment_state, invoice_status, active |
Guard mutations and map Odoo state to Accountify task state |
| Money & currency | amount, balance, debit, credit, totals, residuals, currency_id, amount_currency |
Amount matching, display, balancing, FX handling |
| Dates & deadlines | accounting date, document date, due/maturity date, scheduled/completion date | Lock periods, aging, SLA, date proximity, tax periods |
| Parties & ownership | partner_id, vendor/customer, owner/user/team fields |
Counterparty matching, assignment, permissions |
| Source & documents | ref, payment_reference, origin, source IDs, attachment/document fields |
Traceability, duplicate detection, source-file linkage |
| Tax & localization | tax_ids, VAT, fiscal position, country, localization fields |
Correct tax treatment and country-specific behavior |
| Analytics & projects | analytic_distribution, project/task, tags/campaign |
Management reporting and client-specific coding |
| Products & quantities | product, UoM, quantity, lot, location, warehouse | Purchase and inventory coherence |
| Relations & lines | many2one/one2many/many2many links | Traverse native business objects without duplicating their state |
| Technical metadata | compute, related, dependency, domain, access-group, inverse, deletion policy | Decide whether and how a field may be selected, written, copied, or synchronized |
Reconciliation field set¶
account.bank.statement.line¶
| Concern | Fields |
|---|---|
| Identity and concurrency | implicit id, write_date, unique_import_id, internal_index |
| Transaction | date, payment_ref, partner_id, amount, journal_id |
| Currency | currency_id, foreign_currency_id, amount_currency |
| Accounting links | move_id, statement_id |
| Reconciliation state | is_reconciled |
| Source payload | transaction_details |
account.move.line¶
| Concern | Fields |
|---|---|
| Posting and account | move_id, parent_state, account_id, company_id |
| Counterparty and references | partner_id, name, ref, payment_reference |
| Amounts | debit, credit, balance, amount_currency, currency_id |
| Open amount | amount_residual, amount_residual_currency |
| Reconciliation | reconciled, matching_number, full_reconcile_id, matched debit/credit links |
| Dates and concurrency | date, date_maturity, write_date |
Supplier invoice field set¶
account.move¶
| Concern | Fields |
|---|---|
| Document identity | move_type, name, ref, implicit id, write_date |
| Vendor and company | partner_id, company_id, journal_id |
| Dates and currency | invoice_date, invoice_date_due, date, currency_id |
| Coding | invoice_line_ids, line_ids |
| Totals and payment | untaxed/tax/total/residual fields, payment_state |
| Review and duplicates | checked, duplicated_ref_ids where available |
| Source | attachment_ids, extraction fields where available |
| Lifecycle | state, reversed_entry_id |
account.move.line invoice coding¶
| Concern | Fields |
|---|---|
| Description and quantity | name, product_id, product_uom_id, quantity, price_unit |
| Accounting and tax | account_id, tax_ids |
| Reporting | analytic_distribution |
| Deferral/assets | deferred start/end and asset links where installed |
| Purchase matching | purchase_line_id, purchase_order_id |
Purchase and inventory field set¶
| Model | Header / identity | Workflow quantities and links |
|---|---|---|
purchase.order |
name, partner_id, company_id, currency_id, date_order, state |
order_line, invoice_ids, invoice_status, picking_ids, picking_type_id, amount_total |
purchase.order.line |
order_id, product_id, name, product_uom_id, ordered quantity, price, taxes |
qty_received, qty_invoiced, qty_to_invoice, invoice_lines, analytic_distribution |
stock.picking |
name, company_id, partner_id, picking_type_id, origin, state |
source/destination, move links, scheduled/completion dates |
stock.move |
product, company, source/destination, state | demanded/done quantities, purchase/sale links, move lines |
stock.move.line |
product, lot/serial, package, owner, locations | reserved/done quantity and UoM |
Metadata interpretation¶
- Selection values show static definitions exported from
ir.model.fields; dynamic Python selections may not be represented completely. - Required is a field declaration, not a complete create contract. Defaults, onchange behavior, Python constraints, and state rules add requirements.
- Readonly describes field metadata, not every state-dependent form rule.
- Domain and context guide valid relation choices but do not replace server validation.
- Field access groups can hide a field even when the model ACL allows the operation.
- Computed/related/company-dependent fields require readback under the same company and context used by production.
- Tracked fields may create chatter/audit side effects when changed.