Files
odoo_source/addons/account/data/account_reports_data.xml
T
John Laterre (jol) 5f66c57389 [IMP] account_reports,l10n_*: create abstract model for custom reports
In Reportalypse, custom reports use fields to refer to functions
allowing customizing different behaviors of the engine.

With this, all account.report models contain all the functions
of all the custom reports, leading to possible name clashes
if the functions aren't properly prefixed.

We can improve that a little: instead of having multiple fields,
we use but one, referring to an AbstractModel inheriting
from a new AbstractModel called account.report.custom.handler.

This AbstractModel simply contains the different functions
that can be overridden, and its subclasses are responsible to do so.

In the code, instead of calling _get_custom_report_function,
we check whether there is a custom handler for the report,
and call the right function on it.

task-2954761

closes odoo/odoo#98973

Related: odoo/documentation#2673
Related: odoo/enterprise#30777
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
2022-09-09 12:16:58 +02:00

56 lines
2.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- GENERIC TAX REPORT -->
<record id="generic_tax_report" model="account.report">
<field name="name">Generic Tax report</field>
<field name="filter_multi_company">tax_units</field>
<field name="filter_fiscal_position" eval="1"/>
<field name="default_opening_date_filter">last_month</field>
<field name="only_tax_exigible" eval="True"/>
<field name="column_ids">
<record id="generic_tax_report_column_net" model="account.report.column">
<field name="name">NET</field>
<field name="expression_label">net</field>
</record>
<record id="generic_tax_report_column_tax" model="account.report.column">
<field name="name">TAX</field>
<field name="expression_label">tax</field>
</record>
</field>
</record>
<record id="generic_tax_report_account_tax" model="account.report">
<field name="name">Group by: Account &gt; Tax </field>
<field name="root_report_id" ref="generic_tax_report"/>
<field name="column_ids">
<record id="generic_tax_report_account_tax_column_net" model="account.report.column">
<field name="name">NET</field>
<field name="expression_label">net</field>
</record>
<record id="generic_tax_report_account_tax_column_tax" model="account.report.column">
<field name="name">TAX</field>
<field name="expression_label">tax</field>
</record>
</field>
</record>
<record id="generic_tax_report_tax_account" model="account.report">
<field name="name">Group by: Tax &gt; Account </field>
<field name="root_report_id" ref="generic_tax_report"/>
<field name="column_ids">
<record id="generic_tax_report_tax_account_column_net" model="account.report.column">
<field name="name">NET</field>
<field name="expression_label">net</field>
</record>
<record id="generic_tax_report_tax_account_column_tax" model="account.report.column">
<field name="name">TAX</field>
<field name="expression_label">tax</field>
</record>
</field>
</record>
</data>
</odoo>