Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion l10n_ar_account_reports/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
##############################################################################
{
"name": "Accounting Reports Customized for Argentina",
"version": "18.0.1.4.0",
"version": "18.0.1.5.0",
"category": "Accounting",
"sequence": 14,
"summary": "",
Expand Down
103 changes: 95 additions & 8 deletions l10n_ar_account_reports/data/balance_sheet.xml
Original file line number Diff line number Diff line change
Expand Up @@ -589,12 +589,6 @@
<field name="code">equity</field>
<field name="hierarchy_level">0</field>
<field name="expression_ids">
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_patrimonio" model="account.report.expression">
<field name="label">patrimonio</field>
<field name="engine">domain</field>
<field name="formula" eval="[('account_id.tag_ids','=', ref('l10n_ar_account_reports.ar_esp_patrimonio_neto'))]"/>
<field name="subformula">-sum</field>
</record>
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_ingresos_no_asignados" model="account.report.expression">
<field name="label">ingresos_no_asignados</field>
<field name="engine">aggregation</field>
Expand All @@ -604,8 +598,101 @@
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_balance" model="account.report.expression">
<field name="label">balance</field>
<field name="engine">aggregation</field>
<field name="formula">equity.patrimonio + equity.ingresos_no_asignados</field>
<field name="subformula"></field>
<field name="formula">equity_capital.balance + equity_reserves.balance + equity_results.balance</field>
</record>
</field>
<field name="children_ids">
<!-- Capital -->
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_capital" model="account.report.line">
<field name="name">Capital</field>
<field name="code">equity_capital</field>
<field name="hierarchy_level">3</field>
<field name="user_groupby">account_id</field>
<field name="foldable">True</field>
<field name="expression_ids">
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_capital_balance" model="account.report.expression">
<field name="label">balance</field>
<field name="engine">domain</field>
<field name="formula" eval="[('account_id.tag_ids', '=', ref('l10n_ar_account_reports.ar_esp_capital'))]"/>
<field name="subformula">-sum</field>
</record>
</field>
</record>
<!-- Reservas -->
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_reserves" model="account.report.line">
<field name="name">Reservas</field>
<field name="code">equity_reserves</field>
<field name="hierarchy_level">3</field>
<field name="user_groupby">account_id</field>
<field name="foldable">True</field>
<field name="expression_ids">
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_reserves_balance" model="account.report.expression">
<field name="label">balance</field>
<field name="engine">domain</field>
<field name="formula" eval="[('account_id.tag_ids', '=', ref('l10n_ar_account_reports.ar_esp_reservas'))]"/>
<field name="subformula">-sum</field>
</record>
</field>
</record>
<!-- Resultados -->
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results" model="account.report.line">
<field name="name">Resultados</field>
<field name="code">equity_results</field>
<field name="hierarchy_level">2</field>
<field name="expression_ids">
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results_balance" model="account.report.expression">
<field name="label">balance</field>
<field name="engine">aggregation</field>
<field name="formula">ar_curr_year_earnings.balance + equity_results_detail.balance</field>
</record>
</field>
<field name="children_ids">
<!-- Resultado del Ejercicio -->
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings" model="account.report.line">
<field name="name">Resultado del Ejercicio</field>
<field name="code">ar_curr_year_earnings</field>
<field name="hierarchy_level">3</field>
<field name="action_id" ref="action_account_report_l10n_ar_estado_resultados"/>
<field name="expression_ids">
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings_pnl" model="account.report.expression">
<field name="label">pnl</field>
<field name="engine">aggregation</field>
<field name="formula">net_inc.balance</field>
<field name="date_scope">from_fiscalyear</field>
<field name="subformula">cross_report</field>
</record>
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings_alloc" model="account.report.expression">
<field name="label">alloc</field>
<field name="engine">domain</field>
<field name="formula" eval="[('account_id.account_type', '=', 'equity_unaffected')]"/>
<field name="date_scope">from_fiscalyear</field>
<field name="subformula">-sum</field>
</record>
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings_balance" model="account.report.expression">
<field name="label">balance</field>
<field name="engine">aggregation</field>
<field name="formula">ar_curr_year_earnings.pnl + ar_curr_year_earnings.alloc</field>
</record>
</field>
</record>
<!-- Resultados Acumulados -->
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results_detail" model="account.report.line">
<field name="name">Resultados Acumulados</field>
<field name="code">equity_results_detail</field>
<field name="hierarchy_level">3</field>
<field name="user_groupby">account_id</field>
<field name="foldable">True</field>
<field name="expression_ids">
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results_detail_balance" model="account.report.expression">
<field name="label">balance</field>
<field name="engine">domain</field>
<field name="formula" eval="[('account_id.tag_ids', '=', ref('l10n_ar_account_reports.ar_esp_resultados'))]"/>
<field name="date_scope">to_beginning_of_fiscalyear</field>
<field name="subformula">-sum</field>
</record>
</field>
</record>
</field>
</record>
</field>
</record>
Expand Down
7 changes: 7 additions & 0 deletions l10n_ar_account_reports/data/estado_resultados.xml
Original file line number Diff line number Diff line change
Expand Up @@ -194,4 +194,11 @@
</record>
</field>
</record>

<!-- Action para abrir el Estado de Resultados -->
<record id="action_account_report_l10n_ar_estado_resultados" model="ir.actions.client">
<field name="name">Estado de Resultados</field>
<field name="tag">account_report</field>
<field name="context" eval="{'report_id': ref('account_financial_report_l10n_ar_estado_resultados')}"/>
</record>
</odoo>
12 changes: 10 additions & 2 deletions l10n_ar_account_reports/data/tags_data.xml
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,16 @@
<field name="name">AR ESP: Part. Terceros en Soc.</field>
<field name="applicability">accounts</field>
</record>
<record id="ar_esp_patrimonio_neto" model="account.account.tag">
<field name="name">AR ESP: Patrimonio Neto</field>
<record id="ar_esp_capital" model="account.account.tag">
<field name="name">AR ESP: Capital</field>
<field name="applicability">accounts</field>
</record>
<record id="ar_esp_reservas" model="account.account.tag">
<field name="name">AR ESP: Reservas</field>
<field name="applicability">accounts</field>
</record>
<record id="ar_esp_resultados" model="account.account.tag">
<field name="name">AR ESP: Resultados</field>
<field name="applicability">accounts</field>
</record>
</odoo>
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@


def migrate(cr, version):
"""Apply report tags to AR companies."""
"""Apply report tags to AR companies after removing old patrimonio_neto tag."""
env = api.Environment(cr, SUPERUSER_ID, {})
# Get all companies with responsibility type code '1'
companies = env["res.company"].search([("account_fiscal_country_id.code", "=", "AR")])

# Execute chart template function for these companies
if companies:
chart_template = env["account.chart.template"]
chart_template._l10n_ar_account_reports_setup_account_tags(companies)
45 changes: 45 additions & 0 deletions l10n_ar_account_reports/migrations/18.0.1.5.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from openupgradelib import openupgrade


def migrate(cr, version):
"""Migrate accounts from old 'ar_esp_patrimonio_neto' tag to new specific tags.
The old tag 'ar_esp_patrimonio_neto' is being removed and split into three
more specific tags: 'ar_esp_capital', 'ar_esp_reservas', and 'ar_esp_resultados'.
This migration removes the old tag assignment from all accounts that have it.
The new tags will be assigned automatically by the post-migration hook based
on the account type.
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

El docstring indica que los nuevos tags se asignan “based on the account type”, pero el split Capital/Reservas/Resultados depende del prefijo del código (3.1/3.2/3.3) además del tipo. Conviene ajustar la descripción para que refleje el criterio real (por código de cuenta), así evita confusión al mantener la migración.

Suggested change
on the account type.
primarily on the account code prefixes (3.1/3.2/3.3), taking into account
the account type when needed.

Copilot uses AI. Check for mistakes.
"""
# Remove all account assignments for the old patrimonio_neto tag
openupgrade.logged_query(
cr,
"""
DELETE FROM account_account_account_tag
WHERE account_account_tag_id IN (
SELECT res_id
FROM ir_model_data
WHERE module = 'l10n_ar_account_reports'
AND model = 'account.account.tag'
AND name = 'ar_esp_patrimonio_neto'
)
""",
)

Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En la pre-migración se eliminan las asignaciones del tag viejo, pero no se elimina el propio tag ar_esp_patrimonio_neto (ni su ir_model_data). Como el record fue removido del XML, va a quedar un tag “huérfano” en la BD y podría seguir usándose manualmente. Sugerencia: borrar también el registro de account.account.tag y su entrada de ir_model_data (idealmente con helpers de openupgrade) una vez removidas las relaciones.

Suggested change
# Delete the old patrimonio_neto tag record itself
openupgrade.logged_query(
cr,
"""
DELETE FROM account_account_tag
WHERE id IN (
SELECT res_id
FROM ir_model_data
WHERE module = 'l10n_ar_account_reports'
AND model = 'account.account.tag'
AND name = 'ar_esp_patrimonio_neto'
)
""",
)
# Delete the ir_model_data entry for the old patrimonio_neto tag
openupgrade.logged_query(
cr,
"""
DELETE FROM ir_model_data
WHERE module = 'l10n_ar_account_reports'
AND model = 'account.account.tag'
AND name = 'ar_esp_patrimonio_neto'
""",
)

Copilot uses AI. Check for mistakes.
# Delete old equity line structure to avoid conflicts with new structure
# The new structure uses children_ids instead of direct domain expressions
openupgrade.logged_query(
cr,
"""
DELETE FROM account_report_line
WHERE id IN (
SELECT res_id
FROM ir_model_data
WHERE module = 'l10n_ar_account_reports'
AND name IN (
'account_financial_report_l10n_ar_estado_patrimonial_line_equity',
'account_financial_report_l10n_ar_estado_patrimonial_line_total_liabilities_equity'
)
)
""",
)
12 changes: 9 additions & 3 deletions l10n_ar_account_reports/models/account_chart_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,9 @@ def _get_ar_account_tags(self):
"previsiones": self.env.ref("l10n_ar_account_reports.ar_esp_previsiones"),
"deudas_nc": self.env.ref("l10n_ar_account_reports.ar_esp_deudas_no_corrientes"),
"previsiones_nc": self.env.ref("l10n_ar_account_reports.ar_esp_previsiones_no_corrientes"),
"patrimonio_neto": self.env.ref("l10n_ar_account_reports.ar_esp_patrimonio_neto"),
"capital": self.env.ref("l10n_ar_account_reports.ar_esp_capital"),
"reservas": self.env.ref("l10n_ar_account_reports.ar_esp_reservas"),
"resultados": self.env.ref("l10n_ar_account_reports.ar_esp_resultados"),
}
return tags

Expand Down Expand Up @@ -199,8 +201,12 @@ def _get_tag_for_liability_equity_account(self, account, tags, company):
if any(keyword in name for keyword in ["loan", "prestamo"]):
return tags["prestamos"].id

if code and code.startswith("3."):
return tags["patrimonio_neto"].id
if code and code.startswith("3.1"):
return tags["capital"].id
elif code and code.startswith("3.2"):
return tags["reservas"].id
elif code and code.startswith("3.3"):
return tags["resultados"].id
# Pasivos no circulantes
if account.account_type in ["liability_current", "liability_payable"]:
if code and code.startswith("1.1.1"):
Expand Down
3 changes: 2 additions & 1 deletion l10n_ar_account_tax_settlement/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
##############################################################################
{
"name": "Tax Settlements For Argentina",
"version": "18.0.1.10.0",
"version": "18.0.1.11.0",
"category": "Accounting",
"author": "ADHOC SA",
"website": "www.adhoc.com.ar",
Expand All @@ -37,6 +37,7 @@
"data": [
"data/inflation_adjustment_index.xml",
"data/ir_actions_server.xml",
"data/account_report_data.xml",
"views/inflation_adjustmen_index_view.xml",
"views/account_tax_view.xml",
"wizards/inflation_adjustment_view.xml",
Expand Down
11 changes: 11 additions & 0 deletions l10n_ar_account_tax_settlement/data/account_report_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<odoo noupdate="True">
<record id="l10n_ar_account_reports.account_financial_report_l10n_ar_estado_resultados" model="account.report">
<field name="allow_settlement" eval="True"/>
<field name="settlement_title">Asiento de refundición</field>
<field name="settlement_allow_unbalanced" eval="True"/>
</record>
<record id="l10n_ar_account_reports.account_financial_report_l10n_ar_estado_patrimonial" model="account.report">
<field name="allow_settlement" eval="True"/>
<field name="settlement_title">Generar asiento de cierre</field>
</record>
</odoo>