Skip to content

Commit

Permalink
[IMP] account_financial_report: Add limit option in columns. Improve …
Browse files Browse the repository at this point in the history
…reports
  • Loading branch information
carlosdauden committed Feb 11, 2025
1 parent 656d242 commit f84fc7c
Show file tree
Hide file tree
Showing 14 changed files with 559 additions and 194 deletions.
1 change: 1 addition & 0 deletions account_financial_report/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ Authors
* initOS GmbH
* redCOR AG
* ForgeFlow
* Tecnativa

Contributors
~~~~~~~~~~~~
Expand Down
3 changes: 3 additions & 0 deletions account_financial_report/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
# Copyright 2016 Camptocamp SA
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
# Copyright 2021 Tecnativa - João Marques
# Copyright 2025 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Account Financial Reports",
Expand All @@ -13,6 +14,7 @@
"initOS GmbH,"
"redCOR AG,"
"ForgeFlow,"
"Tecnativa,"
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-financial-reporting",
"depends": ["account", "date_range", "report_xlsx"],
Expand All @@ -37,6 +39,7 @@
"report/templates/trial_balance.xml",
"report/templates/vat_report.xml",
"view/account_view.xml",
"view/account_financial_report_column_view.xml",
"view/report_general_ledger.xml",
"view/report_journal_ledger.xml",
"view/report_trial_balance.xml",
Expand Down
218 changes: 216 additions & 2 deletions account_financial_report/data/report_column_data.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<odoo noupdate="0">
<!-- GENERAL LEDGER columns -->
<record
id="general_ledger_report_wizard_column_date"
model="account.financial.report.column"
Expand Down Expand Up @@ -69,14 +70,16 @@
<field name="name">Ref - Label</field>
<field name="expression_label">ref_label</field>
<field name="is_visible" eval="True" />
<field name="field_type">string</field>
<field name="limit">40</field>
</record>
<record
id="general_ledger_report_wizard_column_cost_center"
model="account.financial.report.column"
>
<field name="res_model">general.ledger.report.wizard</field>
<field name="sequence">80</field>
<field name="name">Cost center</field>
<field name="name">Analytic account</field>
<field name="expression_label">cost_center</field>
<field name="is_visible" eval="True" />
</record>
Expand Down Expand Up @@ -141,4 +144,215 @@
<field name="is_visible" eval="True" />
</record>

<!-- OPEN ITEMS columns -->
<record
id="open_items_report_wizard_column_date"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">10</field>
<field name="name">Date</field>
<field name="expression_label">date</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_entry"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">20</field>
<field name="name">Entry</field>
<field name="expression_label">entry</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_journal"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">30</field>
<field name="name">Journal</field>
<field name="expression_label">journal</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_account_code"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">40</field>
<field name="name">Account code</field>
<field name="expression_label">account_code</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_partner"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">50</field>
<field name="name">Partner</field>
<field name="expression_label">partner</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_ref_label"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">60</field>
<field name="name">Ref - Label</field>
<field name="expression_label">ref_label</field>
<field name="is_visible" eval="True" />
<field name="field_type">string</field>
<field name="limit">40</field>
</record>
<record
id="open_items_report_wizard_column_date_due"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">70</field>
<field name="name">Date due</field>
<field name="expression_label">date_due</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_original"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">80</field>
<field name="name">Original</field>
<field name="expression_label">original</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_residual"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">90</field>
<field name="name">Residual</field>
<field name="expression_label">residual</field>
<field name="is_visible" eval="True" />
</record>
<record
id="open_items_report_wizard_column_foreign_currency"
model="account.financial.report.column"
>
<field name="res_model">open.items.report.wizard</field>
<field name="sequence">100</field>
<field name="name">Foreign currency</field>
<field name="expression_label">foreign_currency</field>
<field name="is_visible" eval="True" />
</record>


<!-- JOURNAL LEDGER columns -->
<record
id="journal_ledger_report_wizard_column_sequence"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">5</field>
<field name="name">Sequence</field>
<field name="expression_label">sequence</field>
<field name="is_visible" eval="True" />
</record>
<record
id="journal_ledger_report_wizard_column_entry"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">10</field>
<field name="name">Entry</field>
<field name="expression_label">entry</field>
<field name="is_visible" eval="True" />
</record>
<record
id="journal_ledger_report_wizard_column_date"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">20</field>
<field name="name">Date</field>
<field name="expression_label">date</field>
<field name="is_visible" eval="True" />
</record>
<record
id="journal_ledger_report_wizard_column_account_code"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">30</field>
<field name="name">Account code</field>
<field name="expression_label">account_code</field>
<field name="is_visible" eval="True" />
</record>
<record
id="journal_ledger_report_wizard_column_account_name"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">40</field>
<field name="name">Account name</field>
<field name="expression_label">account_name</field>
<field name="is_visible" eval="True" />
<field name="field_type">string</field>
<field name="limit">20</field>
</record>
<record
id="journal_ledger_report_wizard_column_partner"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">50</field>
<field name="name">Partner</field>
<field name="expression_label">partner</field>
<field name="is_visible" eval="True" />
</record>
<record
id="journal_ledger_report_wizard_column_ref_label"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">60</field>
<field name="name">Label</field>
<field name="expression_label">label</field>
<field name="is_visible" eval="True" />
<field name="field_type">string</field>
<field name="limit">40</field>
</record>
<record
id="journal_ledger_report_wizard_column_debit"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">70</field>
<field name="name">Debit</field>
<field name="expression_label">debit</field>
<field name="is_visible" eval="True" />
</record>
<record
id="journal_ledger_report_wizard_column_credit"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">80</field>
<field name="name">Credit</field>
<field name="expression_label">credit</field>
<field name="is_visible" eval="True" />
</record>
<record
id="journal_ledger_report_wizard_column_foreign_currency"
model="account.financial.report.column"
>
<field name="res_model">journal.ledger.report.wizard</field>
<field name="sequence">100</field>
<field name="name">Foreign currency</field>
<field name="expression_label">foreign_currency</field>
<field name="is_visible" eval="True" />
</record>

</odoo>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2021 Tecnativa - Carlos Dauden
# Copyright 2025 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models

Expand All @@ -10,7 +10,9 @@ class AccountFinancialReportColumn(models.Model):

res_model = fields.Char()
sequence = fields.Integer()
name = fields.Char(required=True)
name = fields.Char(required=True, translate=True)
expression_label = fields.Char(required=True)
is_visible = fields.Boolean(default=True)
field_type = fields.Char()
limit = fields.Integer()
# user_id = fields.Many2one(comodel_name="res.users")
9 changes: 9 additions & 0 deletions account_financial_report/report/abstract_report.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
# Copyright 2025 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, models
Expand Down Expand Up @@ -164,5 +165,13 @@ def _get_ml_fields(self):
def _get_report_values(self, docids, data):
wizard = self.env[data["wizard_name"]].browse(data["wizard_id"])
res = {f"{c.expression_label}_visible": c.is_visible for c in wizard.column_ids}
res.update(
{
f"{c.expression_label}_limit": c.limit
for c in wizard.column_ids
if c.field_type == "string"
}
)
# Pass function to be called in report
res["limit_text"] = wizard._limit_text
return res
4 changes: 2 additions & 2 deletions account_financial_report/report/templates/general_ledger.xml
Original file line number Diff line number Diff line change
Expand Up @@ -514,14 +514,14 @@
view-type="form"
>
<t
t-out="limit_text(line['ref_label'], 'label_text_limit')"
t-out="limit_text(line['ref_label'], ref_label_limit)"
/>
</span>
</t>
<t t-else="">
<span>
<t
t-out="limit_text(line['ref_label'], 'label_text_limit')"
t-out="limit_text(line['ref_label'], ref_label_limit)"
/>
</span>
</t>
Expand Down
Loading

0 comments on commit f84fc7c

Please sign in to comment.