跳至主要内容
产品详细信息以英文显示。翻译即将推出。
Account Counterparts — A build-to-order Odoo module that computes and stores the counterpart account(s) for every journal ite — 1/1示意预览

A build-to-order Odoo module that computes and stores the counterpart account(s) for every journal item,

so each debit or credit line shows what it was posted against — filterable, groupable, and reportable.

ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 database.

什么是 Account Counterparts?

A build-to-order Odoo module that computes and stores the counterpart account(s) for every journal item, so each debit or credit line shows what it was posted against — filterable, groupable, and reportable. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

核心功能

Stored, indexed `counterpart_account_id` field on `account.move.line`, computed via `@api.depends` over sibling lines of the same `account.move`
Opposite-sign counterpart derivation — debit lines resolve against the credit side and credit lines against the debit side
Deterministic multi-line policy chosen on scoping (dominant-amount account, concatenated account list, or per-analytic split) so ambiguous entries behave predictably
Human-readable `counterpart_label` char field for at-a-glance reading in list and report views
Search filter and group-by dimension on counterpart account across journal-item and pivot views
QWeb counterpart report (PDF/HTML) printable and filterable by counterpart account, journal, and period
General Ledger and journal-items list view inheritance (XML/OWL) that adds the counterpart column without replacing native views
One-time historical backfill via SQL migration or `queue_job`-batched recompute to avoid locking large databases
Recompute on post/edit through the depends graph so counterparts stay correct as entries change
Counterpart field exposed over XML-RPC/JSON-RPC for BI tools, data warehouses, and external reporting
`ir.model.access.csv` and record rules that keep the new field inside your existing accounting access and multi-company rules
Optional multi-currency and analytic-aware handling so counterparts respect currency and cost-center dimensions
Community and Enterprise compatible — no Enterprise dependency, inherits Enterprise ledger views where present
Built and regression-tested against Odoo 17.0, 18.0 and 19.0 with Python unit tests for the compute logic

按需定制,全程代劳

无需自行搭建——由 ECOSIRE 构建、安装并提供支持的可用应用。

  1. 1

    您下单

    以一次性构建价格开始。我们在启动时与您共同确定范围。

  2. 2

    我们构建与安装

    ECOSIRE 在您的 Odoo 上构建、配置并安装。

  3. 3

    上线 + 支持

    约一个工作周内上线,并包含两周上线支持。我们交付的代码中的缺陷免费修复。

技术规格

Odoo 兼容性
Odoo 17, Odoo 18, Odoo 19
版本
企业版和社区版
许可证
许可证需要确认
Python 要求
Python 3.10+
数据库
PostgreSQL 12+

关于此产品

When an accountant looks at a bank line, a receivable, or a tax line in Odoo, the immediate question is always "posted against what?" Odoo core stores each account.move.line with its own account, but there is no persisted field that answers the counterpart question — the offsetting account(s) on the other side of the same account.move. In practice teams reconstruct this by hand: opening each journal entry, eyeballing the balancing lines, or exporting to a spreadsheet and pivoting. On multi-line entries (a vendor bill with several expense accounts, a payroll entry, a bank statement with mixed allocations) the counterpart is genuinely ambiguous, and the native General Ledger and journal-item list simply do not carry the answer. That missing dimension slows reconciliation, VAT review, audit prep, and any analysis where you want to slice postings by the account they faced.

Account Counterparts is the module ECOSIRE builds for you to close that gap. We add a stored, indexed counterpart field (plus a human-readable label) to account.move.line, computed with a proper @api.depends method that runs over the sibling lines of the same move and derives the counterpart account using the opposite-sign convention — a debit line's counterpart is the credit side, and vice versa. For clean two-line entries the counterpart resolves to a single account; for multi-line entries we apply an agreed policy (dominant-amount account, concatenated account list, or per-analytic split — decided with you on the scoping call) so the behaviour is deterministic and defensible under audit. The field is exposed in the journal-items list and pivot views, added as a search/group-by dimension, and surfaced in the General Ledger and a dedicated counterpart QWeb report so you can read, filter, and print postings by what they were actually against.

Technically the work is a self-contained Odoo module: a __manifest__.py declaring the dependency on account, an ORM extension of account.move.line with the compute and its store/index settings, ir.model.access.csv plus any record rules to keep the new field inside your existing accounting access model, XML/OWL view inheritance for list, search and pivot, and a QWeb report definition. We recompute counterparts on post/edit through the depends graph (and, where a heavy historical backfill is needed, a one-time migration or queue_job-batched recompute so a large database is not locked). The field is readable over the XML-RPC/JSON-RPC API, so external BI tools and your data warehouse can consume the counterpart dimension directly. It respects Community vs Enterprise differences — nothing here requires Enterprise, and where your Enterprise General Ledger or consolidation views exist we inherit rather than replace them. Built and tested against Odoo 17.0, 18.0 and 19.0.

Delivery is build-to-order: we start with a short scoping call to lock the counterpart policy for your multi-line cases, confirm your version and Community/Enterprise edition, then build on a staging copy of your database, run UAT with your accountants, and cut over with a rollback plan. Typical delivery is one working week from confirmed scope. This is not an instant apps.odoo.com download — you receive a version we build, install, document, and support for your database, with the git repository handed over to you. Pricing starts from $999 (indicative, single-company base scope); multi-company counterpart policies, historical backfill volume across many years of postings, localization-specific ledger reports, and BI/warehouse integration increase the quoted scope.

你得到什么

  • Installable source code for your built version of the module, pinned to your Odoo 17.0/18.0/19.0 and edition
  • Installation and configuration on your staging then production database, including counterpart-policy setup
  • Technical documentation — data model, compute logic, multi-line policy, backfill procedure, and API field reference
  • User guide plus a live training session for your accounting team on filtering, grouping, and printing by counterpart
  • Post-go-live support window for defect fixes and questions (duration set in the quote)
  • UAT on a staging copy of your database with a documented rollback plan before cutover
  • Git repository handover with full commit history and tagged release
  • Historical backfill run (scoped by volume) so existing postings carry counterparts, not just new entries

这是给谁的

Financial Controller / Chief Accountant

Owns the ledger and month-end close. Needs every journal item to answer 'against what account?' without opening each entry — to speed reconciliation, VAT review, and variance analysis, and to defend numbers in audit.

External Auditor / Audit-Prep Lead

Reviews thousands of postings and repeatedly asks what each line offsets. Wants a deterministic, documented counterpart on every line plus a printable report, instead of manually tracing balancing lines in multi-line entries.

Odoo Functional Consultant / ERP Manager

Runs the company's Odoo and fields accountant requests. Needs a clean, upgrade-safe module that inherits native ledger views, respects access rules and multi-company, and does not fork Odoo core.

BI / Data Analyst

Builds dashboards off Odoo data over XML-RPC/JSON-RPC or a warehouse. Wants the counterpart account as a first-class, stored dimension so postings can be sliced by what they faced without rebuilding the logic downstream.

Account Counterparts 如何比较

标准伊科西尔定制建造竞争对手Odoo 原生
AvailabilityBuilt to order for your database, then installed and supported by usBuilt from scratch in-house or by a contractorInstant download, generic behaviourNot available — no persisted counterpart field exists
Counterpart on journal itemsStored, indexed field plus readable label on every `account.move.line`Whatever you build; correctness is on youUsually a computed/display field, often not stored or indexedAbsent — you trace balancing lines by hand
Multi-line entry policyDeterministic rule agreed on scoping and documented for auditMust design and defend the rule yourselfFixed vendor assumption, rarely configurableNone
Historical backfillScoped one-time migration or queue-job recompute over existing postingsYou script and test the backfillTypically new entries only, no safe bulk backfillN/A
Fit to your access & multi-companyAccess CSV and record rules aligned to your existing modelDepends on your team's rigorGeneric defaults you must retrofitN/A
Reporting & BIQWeb report, group-by, pivot, and API-readable dimensionBuild each surface yourselfList column, limited reportingManual export and spreadsheet pivots
Odoo version & editionBuilt and tested for your 17/18/19, Community or EnterpriseWhatever you target and maintainPer-version listing; edition support variesCore behaviour, unchanged
Support & upgradesPost-go-live window plus quotable version-migration passesYour team owns all maintenanceVendor forum/tickets, upgrade timing not guaranteedCovered by Odoo, but feature still absent

关于Account Counterparts的常见问题

Is this an existing app I can download and install today?

No. Account Counterparts is build-to-order. ECOSIRE scopes it with you, builds the version for your Odoo edition and version, then installs, documents, and supports it. You receive installable source and the git repository — not an instant apps.odoo.com download.

How long does delivery take?

Typically one working week from confirmed scope. The timeline depends mainly on your multi-line counterpart policy, historical backfill volume, and whether multi-company or BI integration is in scope. We agree the exact schedule in the fixed quote after the scoping call.

How does it handle multi-line journal entries where the counterpart is ambiguous?

We lock a deterministic policy on the scoping call — dominant-amount account, a concatenated list of the opposite-side accounts, or a per-analytic split — so ambiguous entries always resolve the same, defensible way. The chosen rule is documented for audit.

Will it work on my Odoo version and Community edition?

Yes. We build and regression-test against Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Nothing requires Enterprise; where you run Enterprise ledger views, we inherit them rather than replace them.

How does pricing and scoping work?

Pricing starts from $999 as an indicative single-company base-scope figure. After a short scoping call we give you a fixed quote. Drivers such as multi-company, large historical backfill, localization-specific reports, and BI/warehouse integration increase the quoted scope — the from-price is not a fixed final price.

What about support and future Odoo upgrades?

Every build includes a post-go-live support window for defects and questions. Because the module inherits native views and avoids core forks, it is upgrade-friendly; we can quote a version-migration pass when you move to a newer Odoo release.

Can external tools read the counterpart field?

Yes. The counterpart account is a stored field on `account.move.line`, so it is queryable over the XML-RPC/JSON-RPC API and available to BI tools, Power BI, or your data warehouse as a first-class dimension without re-deriving the logic downstream.

申请报价

Account Counterparts

A build-to-order Odoo module that computes and stores the counterpart account(s) for every journal item, so each debit or credit line shows what it was posted against — filterable, groupable, and reportable. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 database.

  • Stored, indexed `counterpart_account_id` field on `account.move.line`, computed via `@api.depends` over sibling lines of the same `account.move`
  • Opposite-sign counterpart derivation — debit lines resolve against the credit side and credit lines against the debit side
  • Deterministic multi-line policy chosen on scoping (dominant-amount account, concatenated account list, or per-analytic split) so ambiguous entries behave predictably
  • Human-readable `counterpart_label` char field for at-a-glance reading in list and report views

申请报价

告诉我们您对 Account Counterparts 的需求,我们将发送价格、许可选项和量身定制的方案,通常在一个工作日内。

现在无需付款。此操作会向我们的团队发送报价请求——我们会通过邮件跟进价格和后续步骤。