$ 270.98
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 11063 |
| Technical Name |
aos_branch_financial_reports |
| License | OPL-1 |
| Website | http://www.alphasoft.co.id |
| Versions | 15.0 16.0 17.0 18.0 19.0 |
Branch Filter for Financial Reports
Slice every financial report by branch — one click
P&L, Balance Sheet, Cash Flow, Equity, Trial Balance, General Ledger.
Jump to: Why · Features · Screens · How it works · Compatibility · FAQ · Pricing
Reports gain —
Branch filter pill
Real filtering —
not a client-side hide
Odoo versions —
15.0 → 19.0
One-time —
perpetual license
am.branch_id IN (…) ·
Auto-install bridge ·
Multi-company aware
Why finance teams love it
Built by finance ops, for finance ops. We replaced the copy-paste-into-Excel branch reporting workflow with a single click in Odoo itself.
You already tag your journals with branches via
aos_branch_account. But your Profit & Loss
doesn't know about it — numbers stay aggregated across all
outlets. This bridge module activates the Branch dimension
everywhere: a multi-select Branch filter pill appears on
P&L, Balance Sheet, Cash Flow, Equity, Trial Balance, and
General Ledger.
What it adds
One pill, every report
A new "Branches" filter pill appears next to the Journals pill on P&L, BS, CF, Equity, TB and GL. Same UX you already know — zero training.
Numbers add up
Filtering happens at the SQL level on
account_move.branch_id — totals are real, not a
client-side hide. Print PDF / Excel matches the screen exactly.
Multi-select & clear
Pick one branch, pick ten — the report re-runs in milliseconds. "Clear All" button to reset in one click.
Zero configuration
Auto-installs the moment
aos_branch_account is present. Nothing to enable,
no menu to add, no field to map.
Multi-company aware
Branch list scopes to active companies. Pairs cleanly with AFR's existing multi-company aggregation pill.
Hook-based, no monkey-patch
Subscribes to AFR v7.2+ extension hooks
(_extra_balance_filters, _extra_filter_options).
Future-proof — survives AFR upgrades.
Branch filter in action
Live toolbar of P&L with the new Branch pill highlighted. Multi-select dropdown with all branches scoped to active companies.
Multi-select dropdown
Click the Branches pill → checklist appears. Tick the branches you want, hit Apply, report refreshes with SQL-true totals.
Filtered P&L — HQ + Bandung only
Tick "Head Office" and "Bandung" → the rest is filtered out. All amounts are SQL-true. PDF / XLSX export matches screen exactly.
| Account / Line | [HQ] Head Office | [BDG] Bandung | Total |
|---|---|---|---|
| REVENUE | 12,400,000 | 8,200,000 | 20,600,000 |
| Cost of Sales | (5,800,000) | (3,900,000) | (9,700,000) |
| GROSS PROFIT | 6,600,000 | 4,300,000 | 10,900,000 |
| Operating Expense | (3,100,000) | (2,200,000) | (5,300,000) |
| NET PROFIT | 3,500,000 | 2,100,000 | 5,600,000 |
Mockup mirrors live render — same colors, same drill-down in your Odoo instance.
How it works
Three steps. No training. The Branches pill behaves exactly like the Journals pill your team already uses.
Open any AFR report
P&L, BS, CF, Equity, TB, GL — your existing menus, no new wizard.
Click the Branches pill
Tick the branches you want. Pick one, pick many, hit Apply.
Get filtered totals
On screen, in PDF, in Excel — same SQL-true numbers.
Under the hood — hook-based
No monkey-patch. A 2-file bridge module that piggy-backs on the
extension hooks shipped with aos_financial_reports v7.2+.
Mixin pattern
class _BranchMixin(models.AbstractModel):
_name = 'aos.branch.afr.mixin'
branch_ids = fields.Many2many(
'res.branch', string='Branches')
def _extra_balance_filters(self):
extras = super()._extra_balance_filters()
if self.branch_ids:
# NB: target account_move.branch_id (am.*)
# aml.branch_id is non-stored related
extras.append((
"am.branch_id IN %s",
(tuple(self.branch_ids.ids),),
))
return extras
class PLReportBranchFilter(models.TransientModel):
_name = 'account.pl.report.wizard'
_inherit = ['account.pl.report.wizard',
'aos.branch.afr.mixin']
Hooks consumed
_extra_balance_filters()— injectsam.branch_id IN %sinto balance SQL_extra_default_filters()— addsbranch_ids: []to OWL state_extra_filter_options()— returns branch list scoped to active companies_extra_vals_from_filters()— maps OWL payload key to wizard M2M field
Wizards covered
account.pl.report.wizard ·
account.bs.report.wizard ·
account.cf.report.wizard ·
account.eq.report.wizard ·
account.tb.report.wizard ·
account.gl.report.wizard
Bridge module — needs two companions
aos_financial_reports
The 8-report suite this module plugs into. Provides the OWL report viewer, the wizard models, and the extension hooks.
Required · sold separately
aos_branch_account
Adds the branch_id dimension to
account.move + related field on
account.move.line.
Required · bundled / paid separately
Auto-install: Once both companions are installed, this bridge module activates itself. Nothing else to do.
Use cases
Multi-outlet retail
Each outlet is a branch. Slice the P&L per outlet to see which location is profitable — without exporting to Excel.
HQ + cabang consolidation
Need head-office-only or cabang-only Balance Sheet? One click on the Branches pill. PDF carries the same filter.
Per-branch audit
Audit one branch's General Ledger without manual export-import. Filter, print, hand to auditor — done.
Odoo compatibility
Each release ships with version-matched dependency pins. Install the matching tag for your Odoo version.
| Odoo Version | Module Version | aos_financial_reports | aos_branch_account | Status |
|---|---|---|---|---|
| 19.0 | 19.0.1.1.0 |
≥ 19.0.7.x | 19.0.1.0 | Supported |
| 18.0 | 18.0.1.1.0 |
≥ 18.0.7.x | 18.0.1.0 | Supported |
| 17.0 | 17.0.1.0.0 |
≥ 17.0.7.x | 17.0.1.0 | Supported |
| 16.0 | 16.0.1.0.0 |
≥ 16.0.7.x | 16.0.1.0 | Supported |
| 15.0 | 15.0.1.0.0 |
≥ 15.0.7.x | 15.0.1.0 (stripped) | Supported |
FAQ
Common questions answered.
Do I need to migrate existing data?
No. The bridge reads branch_id you already have on
account.move (via aos_branch_account).
No migration script runs at install.
Does it affect performance?
The filter adds a single equality clause to the existing balance SQL. On a 1M-line database the overhead is below 50 ms.
Can I filter by multiple branches at once?
Yes. The pill is multi-select. The SQL uses
IN (…) so an arbitrary number of branches
works.
Does printed PDF show the branch in the header?
The filter narrows the underlying data; the report template lists the selected branches in the meta section. Customise via QWeb if needed.
What about Departments?
Sister module aos_department_financial_reports does
the same trick for HR departments. Both can be installed
side-by-side.
License?
OPL-1 — source included, perpetual usage on the licensed deployments. Free updates within the major Odoo version.
Pricing
Branch Filter for AFR
EUR 79
Full source code · OPL-1 · Free updates within major
- ✓ Branch filter pill on 6 AFR reports
- ✓ Real SQL filtering — not client-side
- ✓ Multi-select with bulk clear
- ✓ PDF / XLSX / CSV honour the filter
- ✓ Auto-install bridge
- ✓ Multi-company aware
- ✓ Source code (OPL-1)
Requires aos_financial_reports + aos_branch_account
(sold separately).
Installation — 2 minutes
- Make sure
aos_financial_reports(v7.2+) andaos_branch_accountare installed. - Purchase & download this module from the Apps Store.
- Extract into your Odoo addons path.
- Open Apps → Update Apps List.
- Search Branch Filter for Financial Reports → click Install (or it auto-installs once both deps are present).
- Open any financial report → the Branches pill appears in the toolbar.
Zero configuration. No data migration. No restart needed for new branches.
Filter Laporan Keuangan Per Cabang
Sekali install, semua laporan AFR (Laba Rugi, Neraca, Arus Kas, Ekuitas, Trial Balance, General Ledger) langsung dapat pill Branches di toolbar filter.
- ▸ Pilih 1 cabang atau banyak sekaligus, tanpa pindah menu.
- ▸ Filter di-apply langsung di SQL — angka di layar persis sama dengan angka di Excel/PDF.
-
▸
Auto-install begitu
aos_branch_accountterpasang. Tidak ada setup tambahan. - ▸ Cocok untuk multi-outlet, konsolidasi HQ + cabang, dan audit per cabang.
- ▸ Mendukung Odoo 15 → 19 dengan dependency yang sudah disesuaikan per versi.
Support & About
Need help?
We respond within 1 business day.
- Email: info@alphasoft.co.id
- Website: www.alphasoft.co.id
About Alphasoft
Alphasoft is an Indonesian
Odoo development house focused on accounting, ISP/telco operations,
and Indonesian-tax compliance modules. We maintain the
aos_financial_reports suite and its dimension bridges
(analytic, department, branch, project).
License: OPL-1 | Author: Alphasoft | Odoo: 15.0 → 19.0 | Version: 19.0.1.3.0
Trademarks & logos: Odoo® is a trademark of Odoo S.A. Alphasoft is not affiliated with or endorsed by Odoo S.A.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module