odoo-addon-account-financial-report 16.0.1.15.2__py3-none-any.whl → 16.0.1.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of odoo-addon-account-financial-report might be problematic. Click here for more details.

Files changed (63) hide show
  1. odoo/addons/account_financial_report/README.rst +14 -1
  2. odoo/addons/account_financial_report/__manifest__.py +5 -1
  3. odoo/addons/account_financial_report/data/report_column_data.xml +358 -0
  4. odoo/addons/account_financial_report/i18n/account_financial_report.pot +125 -0
  5. odoo/addons/account_financial_report/i18n/ar.po +1 -1
  6. odoo/addons/account_financial_report/i18n/ca.po +1 -1
  7. odoo/addons/account_financial_report/i18n/de.po +1 -1
  8. odoo/addons/account_financial_report/i18n/es.po +11 -6
  9. odoo/addons/account_financial_report/i18n/es_AR.po +1 -1
  10. odoo/addons/account_financial_report/i18n/es_MX.po +1 -1
  11. odoo/addons/account_financial_report/i18n/fr.po +1 -1
  12. odoo/addons/account_financial_report/i18n/fr_CH.po +1 -1
  13. odoo/addons/account_financial_report/i18n/fr_FR.po +1 -1
  14. odoo/addons/account_financial_report/i18n/hr.po +1 -1
  15. odoo/addons/account_financial_report/i18n/hr_HR.po +1 -1
  16. odoo/addons/account_financial_report/i18n/it.po +1 -1
  17. odoo/addons/account_financial_report/i18n/ja.po +1 -1
  18. odoo/addons/account_financial_report/i18n/nl.po +1 -1
  19. odoo/addons/account_financial_report/i18n/nl_NL.po +1 -1
  20. odoo/addons/account_financial_report/i18n/pt.po +1 -1
  21. odoo/addons/account_financial_report/i18n/pt_BR.po +1 -1
  22. odoo/addons/account_financial_report/i18n/ro.po +1 -1
  23. odoo/addons/account_financial_report/i18n/sv.po +1 -1
  24. odoo/addons/account_financial_report/i18n/tr.po +1 -1
  25. odoo/addons/account_financial_report/models/__init__.py +1 -0
  26. odoo/addons/account_financial_report/models/account_financial_report_column.py +17 -0
  27. odoo/addons/account_financial_report/readme/CONTRIBUTORS.rst +1 -0
  28. odoo/addons/account_financial_report/readme/DESCRIPTION.rst +3 -0
  29. odoo/addons/account_financial_report/readme/HISTORY.rst +5 -0
  30. odoo/addons/account_financial_report/readme/ROADMAP.rst +3 -0
  31. odoo/addons/account_financial_report/report/abstract_report.py +15 -0
  32. odoo/addons/account_financial_report/report/aged_partner_balance.py +18 -12
  33. odoo/addons/account_financial_report/report/general_ledger.py +27 -24
  34. odoo/addons/account_financial_report/report/journal_ledger.py +27 -22
  35. odoo/addons/account_financial_report/report/open_items.py +24 -19
  36. odoo/addons/account_financial_report/report/templates/general_ledger.xml +116 -52
  37. odoo/addons/account_financial_report/report/templates/journal_ledger.xml +79 -31
  38. odoo/addons/account_financial_report/report/templates/open_items.xml +51 -22
  39. odoo/addons/account_financial_report/report/trial_balance.py +30 -26
  40. odoo/addons/account_financial_report/report/vat_report.py +21 -16
  41. odoo/addons/account_financial_report/security/ir.model.access.csv +1 -0
  42. odoo/addons/account_financial_report/static/description/index.html +33 -19
  43. odoo/addons/account_financial_report/tests/test_aged_partner_balance.py +4 -4
  44. odoo/addons/account_financial_report/tests/test_general_ledger.py +1 -1
  45. odoo/addons/account_financial_report/tests/test_journal_ledger.py +5 -5
  46. odoo/addons/account_financial_report/tests/test_open_items.py +1 -1
  47. odoo/addons/account_financial_report/tests/test_trial_balance.py +4 -4
  48. odoo/addons/account_financial_report/tests/test_vat_report.py +1 -1
  49. odoo/addons/account_financial_report/view/account_financial_report_column_view.xml +46 -0
  50. odoo/addons/account_financial_report/wizard/abstract_wizard.py +25 -1
  51. odoo/addons/account_financial_report/wizard/aged_partner_balance_wizard.py +17 -15
  52. odoo/addons/account_financial_report/wizard/general_ledger_wizard.py +26 -23
  53. odoo/addons/account_financial_report/wizard/general_ledger_wizard_view.xml +7 -0
  54. odoo/addons/account_financial_report/wizard/journal_ledger_wizard.py +19 -17
  55. odoo/addons/account_financial_report/wizard/journal_ledger_wizard_view.xml +48 -32
  56. odoo/addons/account_financial_report/wizard/open_items_wizard.py +20 -18
  57. odoo/addons/account_financial_report/wizard/open_items_wizard_view.xml +67 -54
  58. odoo/addons/account_financial_report/wizard/trial_balance_wizard.py +26 -24
  59. odoo/addons/account_financial_report/wizard/vat_report_wizard.py +15 -13
  60. {odoo_addon_account_financial_report-16.0.1.15.2.dist-info → odoo_addon_account_financial_report-16.0.1.16.0.dist-info}/METADATA +16 -3
  61. {odoo_addon_account_financial_report-16.0.1.15.2.dist-info → odoo_addon_account_financial_report-16.0.1.16.0.dist-info}/RECORD +63 -60
  62. {odoo_addon_account_financial_report-16.0.1.15.2.dist-info → odoo_addon_account_financial_report-16.0.1.16.0.dist-info}/WHEEL +0 -0
  63. {odoo_addon_account_financial_report-16.0.1.15.2.dist-info → odoo_addon_account_financial_report-16.0.1.16.0.dist-info}/top_level.txt +0 -0
@@ -5,3 +5,6 @@
5
5
  * It would be nice to have in reports a column indicating the
6
6
  state of the entries when the option "All Entries" is selected
7
7
  in "Target Moves" field in a wizard
8
+ * Adapt reports so that the order of the columns displayed is dynamic
9
+ * Remove duplicated options to show columns (it has not been made in a stable version so
10
+ as not to generate confusion in users)
@@ -1,4 +1,5 @@
1
1
  # Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
2
+ # Copyright 2025 Tecnativa - Carlos Dauden
2
3
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
4
 
4
5
  from odoo import api, models
@@ -160,3 +161,17 @@ class AgedPartnerBalanceReport(models.AbstractModel):
160
161
  "debit",
161
162
  "amount_currency",
162
163
  ]
164
+
165
+ def _get_report_values(self, docids, data):
166
+ wizard = self.env[data["wizard_name"]].browse(data["wizard_id"])
167
+ res = {f"{c.expression_label}_visible": c.is_visible for c in wizard.column_ids}
168
+ res.update(
169
+ {
170
+ f"{c.expression_label}_limit": c.limit
171
+ for c in wizard.column_ids
172
+ if c.field_type == "string"
173
+ }
174
+ )
175
+ # Pass function to be called in report
176
+ res["limit_text"] = wizard._limit_text
177
+ return res
@@ -403,6 +403,7 @@ class AgedPartnerBalanceReport(models.AbstractModel):
403
403
  return aged_partner_data
404
404
 
405
405
  def _get_report_values(self, docids, data):
406
+ res = super()._get_report_values(docids, data)
406
407
  wizard_id = data["wizard_id"]
407
408
  company = self.env["res.company"].browse(data["company_id"])
408
409
  company_id = data["company_id"]
@@ -440,18 +441,23 @@ class AgedPartnerBalanceReport(models.AbstractModel):
440
441
  aged_partner_data = self.with_context(
441
442
  age_partner_config=aged_partner_configuration
442
443
  )._calculate_percent(aged_partner_data)
443
- return {
444
- "doc_ids": [wizard_id],
445
- "doc_model": "aged.partner.balance.report.wizard",
446
- "docs": self.env["aged.partner.balance.report.wizard"].browse(wizard_id),
447
- "company_name": company.display_name,
448
- "currency_name": company.currency_id.name,
449
- "date_at": date_at,
450
- "only_posted_moves": only_posted_moves,
451
- "aged_partner_balance": aged_partner_data,
452
- "show_move_lines_details": show_move_line_details,
453
- "age_partner_config": aged_partner_configuration,
454
- }
444
+ res.update(
445
+ {
446
+ "doc_ids": [wizard_id],
447
+ "doc_model": "aged.partner.balance.report.wizard",
448
+ "docs": self.env["aged.partner.balance.report.wizard"].browse(
449
+ wizard_id
450
+ ),
451
+ "company_name": company.display_name,
452
+ "currency_name": company.currency_id.name,
453
+ "date_at": date_at,
454
+ "only_posted_moves": only_posted_moves,
455
+ "aged_partner_balance": aged_partner_data,
456
+ "show_move_lines_details": show_move_line_details,
457
+ "age_partner_config": aged_partner_configuration,
458
+ }
459
+ )
460
+ return res
455
461
 
456
462
  def _get_ml_fields(self):
457
463
  return self.COMMON_ML_FIELDS + [
@@ -376,7 +376,6 @@ class GeneralLedgerReport(models.AbstractModel):
376
376
  domain += [("move_id.state", "=", "posted")]
377
377
  else:
378
378
  domain += [("move_id.state", "in", ["posted", "draft"])]
379
-
380
379
  if cost_center_ids:
381
380
  domain += [("analytic_account_ids", "in", cost_center_ids)]
382
381
  return domain
@@ -749,6 +748,7 @@ class GeneralLedgerReport(models.AbstractModel):
749
748
 
750
749
  # flake8: noqa: C901
751
750
  def _get_report_values(self, docids, data):
751
+ res = super()._get_report_values(docids, data)
752
752
  wizard_id = data["wizard_id"]
753
753
  company = self.env["res.company"].browse(data["company_id"])
754
754
  company_id = data["company_id"]
@@ -877,29 +877,32 @@ class GeneralLedgerReport(models.AbstractModel):
877
877
  if not gl_item["currency_id"] and len(fin_bal_currency_ids) == 1:
878
878
  fin_bal_currency_id = fin_bal_currency_ids[0]
879
879
  gl_item["fin_bal_currency_id"] = fin_bal_currency_id
880
- return {
881
- "doc_ids": [wizard_id],
882
- "doc_model": "general.ledger.report.wizard",
883
- "docs": self.env["general.ledger.report.wizard"].browse(wizard_id),
884
- "foreign_currency": data["foreign_currency"],
885
- "company_name": company.display_name,
886
- "company_currency": company.currency_id,
887
- "currency_name": company.currency_id.name,
888
- "date_from": data["date_from"],
889
- "date_to": data["date_to"],
890
- "only_posted_moves": data["only_posted_moves"],
891
- "hide_account_at_0": data["hide_account_at_0"],
892
- "show_cost_center": data["show_cost_center"],
893
- "general_ledger": general_ledger,
894
- "accounts_data": accounts_data,
895
- "journals_data": journals_data,
896
- "full_reconcile_data": full_reconcile_data,
897
- "taxes_data": taxes_data,
898
- "centralize": centralize,
899
- "analytic_data": analytic_data,
900
- "filter_partner_ids": True if partner_ids else False,
901
- "currency_model": self.env["res.currency"],
902
- }
880
+ res.update(
881
+ {
882
+ "doc_ids": [wizard_id],
883
+ "doc_model": "general.ledger.report.wizard",
884
+ "docs": self.env["general.ledger.report.wizard"].browse(wizard_id),
885
+ "foreign_currency": data["foreign_currency"],
886
+ "company_name": company.display_name,
887
+ "company_currency": company.currency_id,
888
+ "currency_name": company.currency_id.name,
889
+ "date_from": data["date_from"],
890
+ "date_to": data["date_to"],
891
+ "only_posted_moves": data["only_posted_moves"],
892
+ "hide_account_at_0": data["hide_account_at_0"],
893
+ "show_cost_center": data["show_cost_center"],
894
+ "general_ledger": general_ledger,
895
+ "accounts_data": accounts_data,
896
+ "journals_data": journals_data,
897
+ "full_reconcile_data": full_reconcile_data,
898
+ "taxes_data": taxes_data,
899
+ "centralize": centralize,
900
+ "analytic_data": analytic_data,
901
+ "filter_partner_ids": True if partner_ids else False,
902
+ "currency_model": self.env["res.currency"],
903
+ }
904
+ )
905
+ return res
903
906
 
904
907
  def _get_ml_fields(self):
905
908
  return self.COMMON_ML_FIELDS + [
@@ -9,6 +9,7 @@ from odoo import models
9
9
 
10
10
 
11
11
  class JournalLedgerReport(models.AbstractModel):
12
+ _inherit = "report.account_financial_report.abstract_report"
12
13
  _name = "report.account_financial_report.journal_ledger"
13
14
  _description = "Journal Ledger Report"
14
15
 
@@ -298,6 +299,7 @@ class JournalLedgerReport(models.AbstractModel):
298
299
  return journals_taxes_data_2
299
300
 
300
301
  def _get_report_values(self, docids, data):
302
+ res = super()._get_report_values(docids, data)
301
303
  wizard_id = data["wizard_id"]
302
304
  wizard = self.env["journal.ledger.report.wizard"].browse(wizard_id)
303
305
  company = self.env["res.company"].browse(data["company_id"])
@@ -351,25 +353,28 @@ class JournalLedgerReport(models.AbstractModel):
351
353
  if journal_id in journal_totals.keys():
352
354
  for item in ["debit", "credit"]:
353
355
  journal_ledger_data[item] += journal_totals[journal_id][item]
354
- return {
355
- "doc_ids": [wizard_id],
356
- "doc_model": "journal.ledger.report.wizard",
357
- "docs": self.env["journal.ledger.report.wizard"].browse(wizard_id),
358
- "group_option": data["group_option"],
359
- "foreign_currency": data["foreign_currency"],
360
- "with_account_name": data["with_account_name"],
361
- "company_name": company.display_name,
362
- "currency_name": company.currency_id.name,
363
- "date_from": data["date_from"],
364
- "date_to": data["date_to"],
365
- "move_target": data["move_target"],
366
- "with_auto_sequence": data["with_auto_sequence"],
367
- "account_ids_data": account_ids_data,
368
- "partner_ids_data": partner_ids_data,
369
- "currency_ids_data": currency_ids_data,
370
- "move_ids_data": move_ids_data,
371
- "tax_line_data": tax_line_ids_data,
372
- "move_line_ids_taxes_data": move_line_ids_taxes_data,
373
- "Journal_Ledgers": journal_ledgers_data,
374
- "Moves": moves_data,
375
- }
356
+ res.update(
357
+ {
358
+ "doc_ids": [wizard_id],
359
+ "doc_model": "journal.ledger.report.wizard",
360
+ "docs": self.env["journal.ledger.report.wizard"].browse(wizard_id),
361
+ "group_option": data["group_option"],
362
+ "foreign_currency": data["foreign_currency"],
363
+ "with_account_name": data["with_account_name"],
364
+ "company_name": company.display_name,
365
+ "currency_name": company.currency_id.name,
366
+ "date_from": data["date_from"],
367
+ "date_to": data["date_to"],
368
+ "move_target": data["move_target"],
369
+ "with_auto_sequence": data["with_auto_sequence"],
370
+ "account_ids_data": account_ids_data,
371
+ "partner_ids_data": partner_ids_data,
372
+ "currency_ids_data": currency_ids_data,
373
+ "move_ids_data": move_ids_data,
374
+ "tax_line_data": tax_line_ids_data,
375
+ "move_line_ids_taxes_data": move_line_ids_taxes_data,
376
+ "Journal_Ledgers": journal_ledgers_data,
377
+ "Moves": moves_data,
378
+ }
379
+ )
380
+ return res
@@ -159,7 +159,7 @@ class OpenItemsReport(models.AbstractModel):
159
159
  "partner_name": partner.name or "",
160
160
  "ref_label": ref_label,
161
161
  "journal_id": move_line["journal_id"][0],
162
- "move_name": move_line["move_id"][1],
162
+ "move_name": move_line["move_name"],
163
163
  "entry_id": move_line["move_id"][0],
164
164
  "currency_id": move_line["currency_id"][0]
165
165
  if move_line["currency_id"]
@@ -243,6 +243,7 @@ class OpenItemsReport(models.AbstractModel):
243
243
  return new_open_items
244
244
 
245
245
  def _get_report_values(self, docids, data):
246
+ res = super()._get_report_values(docids, data)
246
247
  wizard_id = data["wizard_id"]
247
248
  company = self.env["res.company"].browse(data["company_id"])
248
249
  company_id = data["company_id"]
@@ -277,24 +278,27 @@ class OpenItemsReport(models.AbstractModel):
277
278
  partners_data,
278
279
  accounts_data,
279
280
  )
280
- return {
281
- "doc_ids": [wizard_id],
282
- "doc_model": "open.items.report.wizard",
283
- "docs": self.env["open.items.report.wizard"].browse(wizard_id),
284
- "foreign_currency": data["foreign_currency"],
285
- "show_partner_details": data["show_partner_details"],
286
- "company_name": company.display_name,
287
- "currency_name": company.currency_id.name,
288
- "date_at": date_at_object.strftime("%d/%m/%Y"),
289
- "hide_account_at_0": data["hide_account_at_0"],
290
- "target_move": data["target_move"],
291
- "journals_data": journals_data,
292
- "partners_data": partners_data,
293
- "accounts_data": accounts_data,
294
- "total_amount": total_amount,
295
- "Open_Items": open_items_move_lines_data,
296
- "grouped_by": grouped_by,
297
- }
281
+ res.update(
282
+ {
283
+ "doc_ids": [wizard_id],
284
+ "doc_model": "open.items.report.wizard",
285
+ "docs": self.env["open.items.report.wizard"].browse(wizard_id),
286
+ "foreign_currency": data["foreign_currency"],
287
+ "show_partner_details": data["show_partner_details"],
288
+ "company_name": company.display_name,
289
+ "currency_name": company.currency_id.name,
290
+ "date_at": date_at_object.strftime("%d/%m/%Y"),
291
+ "hide_account_at_0": data["hide_account_at_0"],
292
+ "target_move": data["target_move"],
293
+ "journals_data": journals_data,
294
+ "partners_data": partners_data,
295
+ "accounts_data": accounts_data,
296
+ "total_amount": total_amount,
297
+ "Open_Items": open_items_move_lines_data,
298
+ "grouped_by": grouped_by,
299
+ }
300
+ )
301
+ return res
298
302
 
299
303
  def _get_ml_fields(self):
300
304
  return self.COMMON_ML_FIELDS + [
@@ -306,4 +310,5 @@ class OpenItemsReport(models.AbstractModel):
306
310
  "amount_residual_currency",
307
311
  "debit",
308
312
  "amount_currency",
313
+ "move_name",
309
314
  ]