Skip to content

Commit de9e424

Browse files
committed
[IMP]l10n_ar_account_reports: Mejoras del reporte Balance General
1 parent c76cade commit de9e424

File tree

7 files changed

+168
-17
lines changed

7 files changed

+168
-17
lines changed

l10n_ar_account_reports/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
##############################################################################
2020
{
2121
"name": "Accounting Reports Customized for Argentina",
22-
"version": "18.0.1.4.0",
22+
"version": "18.0.1.5.0",
2323
"category": "Accounting",
2424
"sequence": 14,
2525
"summary": "",

l10n_ar_account_reports/data/balance_sheet.xml

Lines changed: 95 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -589,12 +589,6 @@
589589
<field name="code">equity</field>
590590
<field name="hierarchy_level">0</field>
591591
<field name="expression_ids">
592-
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_patrimonio" model="account.report.expression">
593-
<field name="label">patrimonio</field>
594-
<field name="engine">domain</field>
595-
<field name="formula" eval="[('account_id.tag_ids','=', ref('l10n_ar_account_reports.ar_esp_patrimonio_neto'))]"/>
596-
<field name="subformula">-sum</field>
597-
</record>
598592
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_ingresos_no_asignados" model="account.report.expression">
599593
<field name="label">ingresos_no_asignados</field>
600594
<field name="engine">aggregation</field>
@@ -604,8 +598,101 @@
604598
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_balance" model="account.report.expression">
605599
<field name="label">balance</field>
606600
<field name="engine">aggregation</field>
607-
<field name="formula">equity.patrimonio + equity.ingresos_no_asignados</field>
608-
<field name="subformula"></field>
601+
<field name="formula">equity_capital.balance + equity_reserves.balance + equity_results.balance</field>
602+
</record>
603+
</field>
604+
<field name="children_ids">
605+
<!-- Capital -->
606+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_capital" model="account.report.line">
607+
<field name="name">Capital</field>
608+
<field name="code">equity_capital</field>
609+
<field name="hierarchy_level">3</field>
610+
<field name="user_groupby">account_id</field>
611+
<field name="foldable">True</field>
612+
<field name="expression_ids">
613+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_capital_balance" model="account.report.expression">
614+
<field name="label">balance</field>
615+
<field name="engine">domain</field>
616+
<field name="formula" eval="[('account_id.tag_ids', '=', ref('l10n_ar_account_reports.ar_esp_capital'))]"/>
617+
<field name="subformula">-sum</field>
618+
</record>
619+
</field>
620+
</record>
621+
<!-- Reservas -->
622+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_reserves" model="account.report.line">
623+
<field name="name">Reservas</field>
624+
<field name="code">equity_reserves</field>
625+
<field name="hierarchy_level">3</field>
626+
<field name="user_groupby">account_id</field>
627+
<field name="foldable">True</field>
628+
<field name="expression_ids">
629+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_reserves_balance" model="account.report.expression">
630+
<field name="label">balance</field>
631+
<field name="engine">domain</field>
632+
<field name="formula" eval="[('account_id.tag_ids', '=', ref('l10n_ar_account_reports.ar_esp_reservas'))]"/>
633+
<field name="subformula">-sum</field>
634+
</record>
635+
</field>
636+
</record>
637+
<!-- Resultados -->
638+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results" model="account.report.line">
639+
<field name="name">Resultados</field>
640+
<field name="code">equity_results</field>
641+
<field name="hierarchy_level">2</field>
642+
<field name="expression_ids">
643+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results_balance" model="account.report.expression">
644+
<field name="label">balance</field>
645+
<field name="engine">aggregation</field>
646+
<field name="formula">ar_curr_year_earnings.balance + equity_results_detail.balance</field>
647+
</record>
648+
</field>
649+
<field name="children_ids">
650+
<!-- Resultado del Ejercicio -->
651+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings" model="account.report.line">
652+
<field name="name">Resultado del Ejercicio</field>
653+
<field name="code">ar_curr_year_earnings</field>
654+
<field name="hierarchy_level">3</field>
655+
<field name="action_id" ref="action_account_report_l10n_ar_estado_resultados"/>
656+
<field name="expression_ids">
657+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings_pnl" model="account.report.expression">
658+
<field name="label">pnl</field>
659+
<field name="engine">aggregation</field>
660+
<field name="formula">net_inc.balance</field>
661+
<field name="date_scope">from_fiscalyear</field>
662+
<field name="subformula">cross_report</field>
663+
</record>
664+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings_alloc" model="account.report.expression">
665+
<field name="label">alloc</field>
666+
<field name="engine">domain</field>
667+
<field name="formula" eval="[('account_id.account_type', '=', 'equity_unaffected')]"/>
668+
<field name="date_scope">from_fiscalyear</field>
669+
<field name="subformula">-sum</field>
670+
</record>
671+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_ar_curr_year_earnings_balance" model="account.report.expression">
672+
<field name="label">balance</field>
673+
<field name="engine">aggregation</field>
674+
<field name="formula">ar_curr_year_earnings.pnl + ar_curr_year_earnings.alloc</field>
675+
</record>
676+
</field>
677+
</record>
678+
<!-- Resultados Acumulados -->
679+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results_detail" model="account.report.line">
680+
<field name="name">Resultados Acumulados</field>
681+
<field name="code">equity_results_detail</field>
682+
<field name="hierarchy_level">3</field>
683+
<field name="user_groupby">account_id</field>
684+
<field name="foldable">True</field>
685+
<field name="expression_ids">
686+
<record id="account_financial_report_l10n_ar_estado_patrimonial_line_equity_results_detail_balance" model="account.report.expression">
687+
<field name="label">balance</field>
688+
<field name="engine">domain</field>
689+
<field name="formula" eval="[('account_id.tag_ids', '=', ref('l10n_ar_account_reports.ar_esp_resultados'))]"/>
690+
<field name="date_scope">to_beginning_of_fiscalyear</field>
691+
<field name="subformula">-sum</field>
692+
</record>
693+
</field>
694+
</record>
695+
</field>
609696
</record>
610697
</field>
611698
</record>

l10n_ar_account_reports/data/estado_resultados.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,4 +194,11 @@
194194
</record>
195195
</field>
196196
</record>
197+
198+
<!-- Action para abrir el Estado de Resultados -->
199+
<record id="action_account_report_l10n_ar_estado_resultados" model="ir.actions.client">
200+
<field name="name">Estado de Resultados</field>
201+
<field name="tag">account_report</field>
202+
<field name="context" eval="{'report_id': ref('account_financial_report_l10n_ar_estado_resultados')}"/>
203+
</record>
197204
</odoo>

l10n_ar_account_reports/data/tags_data.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,16 @@
139139
<field name="name">AR ESP: Part. Terceros en Soc.</field>
140140
<field name="applicability">accounts</field>
141141
</record>
142-
<record id="ar_esp_patrimonio_neto" model="account.account.tag">
143-
<field name="name">AR ESP: Patrimonio Neto</field>
142+
<record id="ar_esp_capital" model="account.account.tag">
143+
<field name="name">AR ESP: Capital</field>
144+
<field name="applicability">accounts</field>
145+
</record>
146+
<record id="ar_esp_reservas" model="account.account.tag">
147+
<field name="name">AR ESP: Reservas</field>
148+
<field name="applicability">accounts</field>
149+
</record>
150+
<record id="ar_esp_resultados" model="account.account.tag">
151+
<field name="name">AR ESP: Resultados</field>
144152
<field name="applicability">accounts</field>
145153
</record>
146154
</odoo>

l10n_ar_account_reports/migrations/18.0.1.3.0/post-migration.py renamed to l10n_ar_account_reports/migrations/18.0.1.5.0/post-migration.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33

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

10-
# Execute chart template function for these companies
119
if companies:
1210
chart_template = env["account.chart.template"]
1311
chart_template._l10n_ar_account_reports_setup_account_tags(companies)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
from openupgradelib import openupgrade
2+
3+
4+
def migrate(cr, version):
5+
"""Migrate accounts from old 'ar_esp_patrimonio_neto' tag to new specific tags.
6+
7+
The old tag 'ar_esp_patrimonio_neto' is being removed and split into three
8+
more specific tags: 'ar_esp_capital', 'ar_esp_reservas', and 'ar_esp_resultados'.
9+
10+
This migration removes the old tag assignment from all accounts that have it.
11+
The new tags will be assigned automatically by the post-migration hook based
12+
on the account type.
13+
"""
14+
# Remove all account assignments for the old patrimonio_neto tag
15+
openupgrade.logged_query(
16+
cr,
17+
"""
18+
DELETE FROM account_account_account_tag
19+
WHERE account_account_tag_id IN (
20+
SELECT res_id
21+
FROM ir_model_data
22+
WHERE module = 'l10n_ar_account_reports'
23+
AND model = 'account.account.tag'
24+
AND name = 'ar_esp_patrimonio_neto'
25+
)
26+
""",
27+
)
28+
29+
# Delete old equity line structure to avoid conflicts with new structure
30+
# The new structure uses children_ids instead of direct domain expressions
31+
openupgrade.logged_query(
32+
cr,
33+
"""
34+
DELETE FROM account_report_line
35+
WHERE id IN (
36+
SELECT res_id
37+
FROM ir_model_data
38+
WHERE module = 'l10n_ar_account_reports'
39+
AND name IN (
40+
'account_financial_report_l10n_ar_estado_patrimonial_line_equity',
41+
'account_financial_report_l10n_ar_estado_patrimonial_line_total_liabilities_equity'
42+
)
43+
)
44+
""",
45+
)

l10n_ar_account_reports/models/account_chart_template.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ def _get_ar_account_tags(self):
7373
"previsiones": self.env.ref("l10n_ar_account_reports.ar_esp_previsiones"),
7474
"deudas_nc": self.env.ref("l10n_ar_account_reports.ar_esp_deudas_no_corrientes"),
7575
"previsiones_nc": self.env.ref("l10n_ar_account_reports.ar_esp_previsiones_no_corrientes"),
76-
"patrimonio_neto": self.env.ref("l10n_ar_account_reports.ar_esp_patrimonio_neto"),
76+
"capital": self.env.ref("l10n_ar_account_reports.ar_esp_capital"),
77+
"reservas": self.env.ref("l10n_ar_account_reports.ar_esp_reservas"),
78+
"resultados": self.env.ref("l10n_ar_account_reports.ar_esp_resultados"),
7779
}
7880
return tags
7981

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

202-
if code and code.startswith("3."):
203-
return tags["patrimonio_neto"].id
204+
if code and code.startswith("3.1"):
205+
return tags["capital"].id
206+
elif code and code.startswith("3.2"):
207+
return tags["reservas"].id
208+
elif code and code.startswith("3.3"):
209+
return tags["resultados"].id
204210
# Pasivos no circulantes
205211
if account.account_type in ["liability_current", "liability_payable"]:
206212
if code and code.startswith("1.1.1"):

0 commit comments

Comments
 (0)