odoo-addon-account-financial-report 15.0.3.2.2__py3-none-any.whl → 15.0.3.3.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 (43) 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/models/__init__.py +1 -0
  6. odoo/addons/account_financial_report/models/account_financial_report_column.py +17 -0
  7. odoo/addons/account_financial_report/readme/CONTRIBUTORS.rst +1 -0
  8. odoo/addons/account_financial_report/readme/DESCRIPTION.rst +3 -0
  9. odoo/addons/account_financial_report/readme/HISTORY.rst +5 -0
  10. odoo/addons/account_financial_report/readme/ROADMAP.rst +3 -0
  11. odoo/addons/account_financial_report/report/abstract_report.py +15 -0
  12. odoo/addons/account_financial_report/report/aged_partner_balance.py +16 -12
  13. odoo/addons/account_financial_report/report/general_ledger.py +28 -24
  14. odoo/addons/account_financial_report/report/journal_ledger.py +27 -22
  15. odoo/addons/account_financial_report/report/open_items.py +24 -19
  16. odoo/addons/account_financial_report/report/templates/general_ledger.xml +116 -52
  17. odoo/addons/account_financial_report/report/templates/journal_ledger.xml +79 -31
  18. odoo/addons/account_financial_report/report/templates/open_items.xml +65 -24
  19. odoo/addons/account_financial_report/report/trial_balance.py +29 -25
  20. odoo/addons/account_financial_report/report/vat_report.py +17 -12
  21. odoo/addons/account_financial_report/security/ir.model.access.csv +1 -0
  22. odoo/addons/account_financial_report/static/description/index.html +33 -19
  23. odoo/addons/account_financial_report/tests/test_aged_partner_balance.py +4 -4
  24. odoo/addons/account_financial_report/tests/test_general_ledger.py +1 -1
  25. odoo/addons/account_financial_report/tests/test_journal_ledger.py +5 -5
  26. odoo/addons/account_financial_report/tests/test_open_items.py +1 -1
  27. odoo/addons/account_financial_report/tests/test_trial_balance.py +4 -4
  28. odoo/addons/account_financial_report/tests/test_vat_report.py +1 -1
  29. odoo/addons/account_financial_report/view/account_financial_report_column_view.xml +46 -0
  30. odoo/addons/account_financial_report/wizard/abstract_wizard.py +24 -1
  31. odoo/addons/account_financial_report/wizard/aged_partner_balance_wizard.py +19 -17
  32. odoo/addons/account_financial_report/wizard/general_ledger_wizard.py +1 -5
  33. odoo/addons/account_financial_report/wizard/general_ledger_wizard_view.xml +7 -0
  34. odoo/addons/account_financial_report/wizard/journal_ledger_wizard.py +19 -17
  35. odoo/addons/account_financial_report/wizard/journal_ledger_wizard_view.xml +48 -32
  36. odoo/addons/account_financial_report/wizard/open_items_wizard.py +22 -20
  37. odoo/addons/account_financial_report/wizard/open_items_wizard_view.xml +79 -66
  38. odoo/addons/account_financial_report/wizard/trial_balance_wizard.py +26 -24
  39. odoo/addons/account_financial_report/wizard/vat_report_wizard.py +15 -13
  40. {odoo_addon_account_financial_report-15.0.3.2.2.dist-info → odoo_addon_account_financial_report-15.0.3.3.0.dist-info}/METADATA +16 -3
  41. {odoo_addon_account_financial_report-15.0.3.2.2.dist-info → odoo_addon_account_financial_report-15.0.3.3.0.dist-info}/RECORD +43 -40
  42. {odoo_addon_account_financial_report-15.0.3.2.2.dist-info → odoo_addon_account_financial_report-15.0.3.3.0.dist-info}/WHEEL +0 -0
  43. {odoo_addon_account_financial_report-15.0.3.2.2.dist-info → odoo_addon_account_financial_report-15.0.3.3.0.dist-info}/top_level.txt +0 -0
@@ -367,7 +367,7 @@ ul.auto-toc {
367
367
  !! This file is generated by oca-gen-addon-readme !!
368
368
  !! changes will be overwritten. !!
369
369
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
370
- !! source digest: sha256:4a2f118cba763f2c8bb858ccba9ade51e887b9c3dc43db9bf1b6b06aa6bca6b8
370
+ !! source digest: sha256:19c6a50b17dc525e27768d61a9be0e54bfde38f6cfcb359f3e72d5f7a69fbfc0
371
371
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372
372
  <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-financial-reporting/tree/15.0/account_financial_report"><img alt="OCA/account-financial-reporting" src="https://img.shields.io/badge/github-OCA%2Faccount--financial--reporting-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-financial-reporting-15-0/account-financial-reporting-15-0-account_financial_report"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-financial-reporting&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
373
373
  <p>This module adds a set of financial reports. They are accessible under
@@ -380,6 +380,8 @@ Invoicing / Reporting / OCA accounting reports.</p>
380
380
  <li>VAT Report</li>
381
381
  <li>Journal Ledger</li>
382
382
  </ul>
383
+ <p>It is possible to select the columns to show and limit the size of some of them from the
384
+ columns page.</p>
383
385
  <p>Currently General ledger, Trial Balance and Open Items are fully compatible with a foreign
384
386
  currency set up in account in order to display balances. Moreover, any foreign
385
387
  currency used in account move lines is properly shown.</p>
@@ -394,16 +396,17 @@ For further information, check CONFIGURE.rst</p>
394
396
  <li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li>
395
397
  <li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-2">Known issues / Roadmap</a></li>
396
398
  <li><a class="reference internal" href="#changelog" id="toc-entry-3">Changelog</a><ul>
397
- <li><a class="reference internal" href="#section-1" id="toc-entry-4">11.0.2.5.0 (2019-04-26)</a></li>
398
- <li><a class="reference internal" href="#section-2" id="toc-entry-5">11.0.2.4.1 (2019-01-08)</a></li>
399
- <li><a class="reference internal" href="#section-3" id="toc-entry-6">11.0.2.3.1 (2018-11-29)</a></li>
399
+ <li><a class="reference internal" href="#section-1" id="toc-entry-4">15.0.3.2.3 (2025-02-17)</a></li>
400
+ <li><a class="reference internal" href="#section-2" id="toc-entry-5">11.0.2.5.0 (2019-04-26)</a></li>
401
+ <li><a class="reference internal" href="#section-3" id="toc-entry-6">11.0.2.4.1 (2019-01-08)</a></li>
402
+ <li><a class="reference internal" href="#section-4" id="toc-entry-7">11.0.2.3.1 (2018-11-29)</a></li>
400
403
  </ul>
401
404
  </li>
402
- <li><a class="reference internal" href="#bug-tracker" id="toc-entry-7">Bug Tracker</a></li>
403
- <li><a class="reference internal" href="#credits" id="toc-entry-8">Credits</a><ul>
404
- <li><a class="reference internal" href="#authors" id="toc-entry-9">Authors</a></li>
405
- <li><a class="reference internal" href="#contributors" id="toc-entry-10">Contributors</a></li>
406
- <li><a class="reference internal" href="#maintainers" id="toc-entry-11">Maintainers</a></li>
405
+ <li><a class="reference internal" href="#bug-tracker" id="toc-entry-8">Bug Tracker</a></li>
406
+ <li><a class="reference internal" href="#credits" id="toc-entry-9">Credits</a><ul>
407
+ <li><a class="reference internal" href="#authors" id="toc-entry-10">Authors</a></li>
408
+ <li><a class="reference internal" href="#contributors" id="toc-entry-11">Contributors</a></li>
409
+ <li><a class="reference internal" href="#maintainers" id="toc-entry-12">Maintainers</a></li>
407
410
  </ul>
408
411
  </li>
409
412
  </ul>
@@ -437,26 +440,35 @@ are different.</li>
437
440
  <li>It would be nice to have in reports a column indicating the
438
441
  state of the entries when the option “All Entries” is selected
439
442
  in “Target Moves” field in a wizard</li>
443
+ <li>Adapt reports so that the order of the columns displayed is dynamic</li>
444
+ <li>Remove duplicated options to show columns (it has not been made in a stable version so
445
+ as not to generate confusion in users)</li>
440
446
  </ul>
441
447
  </div>
442
448
  <div class="section" id="changelog">
443
449
  <h1><a class="toc-backref" href="#toc-entry-3">Changelog</a></h1>
444
450
  <div class="section" id="section-1">
445
- <h2><a class="toc-backref" href="#toc-entry-4">11.0.2.5.0 (2019-04-26)</a></h2>
451
+ <h2><a class="toc-backref" href="#toc-entry-4">15.0.3.2.3 (2025-02-17)</a></h2>
446
452
  <ul class="simple">
447
- <li>In the Trial Balance you have an option to hide parent hierarchy levels</li>
453
+ <li>Added the option to select columns to display and the ability to limit the width of the text</li>
448
454
  </ul>
449
455
  </div>
450
456
  <div class="section" id="section-2">
451
- <h2><a class="toc-backref" href="#toc-entry-5">11.0.2.4.1 (2019-01-08)</a></h2>
457
+ <h2><a class="toc-backref" href="#toc-entry-5">11.0.2.5.0 (2019-04-26)</a></h2>
458
+ <ul class="simple">
459
+ <li>In the Trial Balance you have an option to hide parent hierarchy levels</li>
460
+ </ul>
461
+ </div>
462
+ <div class="section" id="section-3">
463
+ <h2><a class="toc-backref" href="#toc-entry-6">11.0.2.4.1 (2019-01-08)</a></h2>
452
464
  <ul class="simple">
453
465
  <li>Handle better multicompany behaviour</li>
454
466
  <li>Improve how title appears in the reports</li>
455
467
  <li>Improve performance in General Ledger</li>
456
468
  </ul>
457
469
  </div>
458
- <div class="section" id="section-3">
459
- <h2><a class="toc-backref" href="#toc-entry-6">11.0.2.3.1 (2018-11-29)</a></h2>
470
+ <div class="section" id="section-4">
471
+ <h2><a class="toc-backref" href="#toc-entry-7">11.0.2.3.1 (2018-11-29)</a></h2>
460
472
  <ul class="simple">
461
473
  <li>In the Trial Balance you can apply a filter by hierarchy levels</li>
462
474
  <li>In the General Ledger you can apply a filter by Analytic Tag</li>
@@ -465,7 +477,7 @@ in “Target Moves” field in a wizard</li>
465
477
  </div>
466
478
  </div>
467
479
  <div class="section" id="bug-tracker">
468
- <h1><a class="toc-backref" href="#toc-entry-7">Bug Tracker</a></h1>
480
+ <h1><a class="toc-backref" href="#toc-entry-8">Bug Tracker</a></h1>
469
481
  <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-financial-reporting/issues">GitHub Issues</a>.
470
482
  In case of trouble, please check there if your issue has already been reported.
471
483
  If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -473,18 +485,19 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
473
485
  <p>Do not contact contributors directly about support or help with technical issues.</p>
474
486
  </div>
475
487
  <div class="section" id="credits">
476
- <h1><a class="toc-backref" href="#toc-entry-8">Credits</a></h1>
488
+ <h1><a class="toc-backref" href="#toc-entry-9">Credits</a></h1>
477
489
  <div class="section" id="authors">
478
- <h2><a class="toc-backref" href="#toc-entry-9">Authors</a></h2>
490
+ <h2><a class="toc-backref" href="#toc-entry-10">Authors</a></h2>
479
491
  <ul class="simple">
480
492
  <li>Camptocamp</li>
481
493
  <li>initOS GmbH</li>
482
494
  <li>redCOR AG</li>
483
495
  <li>ForgeFlow</li>
496
+ <li>Tecnativa</li>
484
497
  </ul>
485
498
  </div>
486
499
  <div class="section" id="contributors">
487
- <h2><a class="toc-backref" href="#toc-entry-10">Contributors</a></h2>
500
+ <h2><a class="toc-backref" href="#toc-entry-11">Contributors</a></h2>
488
501
  <ul class="simple">
489
502
  <li>Jordi Ballester &lt;<a class="reference external" href="mailto:jordi.ballester&#64;forgeflow.com">jordi.ballester&#64;forgeflow.com</a>&gt;</li>
490
503
  <li>Yannick Vaucher &lt;<a class="reference external" href="mailto:yannick.vaucher&#64;camptocamp.com">yannick.vaucher&#64;camptocamp.com</a>&gt;</li>
@@ -512,6 +525,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
512
525
  <li>Alexandre D. Díaz</li>
513
526
  <li>Víctor Martínez</li>
514
527
  <li>Carolina Fernandez</li>
528
+ <li>Carlos Dauden</li>
515
529
  </ul>
516
530
  </li>
517
531
  <li><a class="reference external" href="https://www.sygel.es">Sygel</a>:<ul>
@@ -527,7 +541,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
527
541
  April 2016.</p>
528
542
  </div>
529
543
  <div class="section" id="maintainers">
530
- <h2><a class="toc-backref" href="#toc-entry-11">Maintainers</a></h2>
544
+ <h2><a class="toc-backref" href="#toc-entry-12">Maintainers</a></h2>
531
545
  <p>This module is maintained by the OCA.</p>
532
546
  <a class="reference external image-reference" href="https://odoo-community.org">
533
547
  <img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
@@ -67,7 +67,7 @@ class TestAgedPartnerBalance(TransactionCase):
67
67
  wizard = self.wizard_with_line_details
68
68
 
69
69
  wizard.onchange_type_accounts_only()
70
- data = wizard._prepare_report_aged_partner_balance()
70
+ data = wizard._prepare_report_data()
71
71
 
72
72
  # Simulate web client behavior:
73
73
  # default value is a datetime.date but web client sends back strings
@@ -83,7 +83,7 @@ class TestAgedPartnerBalance(TransactionCase):
83
83
 
84
84
  second_wizard = self.wizard_without_line_details
85
85
  second_wizard.onchange_type_accounts_only()
86
- data = second_wizard._prepare_report_aged_partner_balance()
86
+ data = second_wizard._prepare_report_data()
87
87
 
88
88
  # Simulate web client behavior:
89
89
  # default value is a datetime.date but web client sends back strings
@@ -129,7 +129,7 @@ class TestAgedPartnerBalance(TransactionCase):
129
129
  wizard.age_partner_config_id = self.account_age_report_config.id
130
130
 
131
131
  wizard.onchange_type_accounts_only()
132
- data = wizard._prepare_report_aged_partner_balance()
132
+ data = wizard._prepare_report_data()
133
133
 
134
134
  # Simulate web client behavior:
135
135
  # default value is a datetime.date but web client sends back strings
@@ -147,7 +147,7 @@ class TestAgedPartnerBalance(TransactionCase):
147
147
  second_wizard.age_partner_config_id = self.account_age_report_config.id
148
148
 
149
149
  second_wizard.onchange_type_accounts_only()
150
- data = second_wizard._prepare_report_aged_partner_balance()
150
+ data = second_wizard._prepare_report_data()
151
151
 
152
152
  # Simulate web client behavior:
153
153
  # default value is a datetime.date but web client sends back strings
@@ -128,7 +128,7 @@ class TestGeneralLedgerReport(AccountTestInvoicingCommon):
128
128
  "centralize": centralize,
129
129
  }
130
130
  )
131
- data = general_ledger._prepare_report_general_ledger()
131
+ data = general_ledger._prepare_report_data()
132
132
  res_data = self.env[
133
133
  "report.account_financial_report.general_ledger"
134
134
  ]._get_report_values(general_ledger, data)
@@ -177,7 +177,7 @@ class TestJournalReport(AccountTestInvoicingCommon):
177
177
  "move_target": "all",
178
178
  }
179
179
  )
180
- data = wiz._prepare_report_journal_ledger()
180
+ data = wiz._prepare_report_data()
181
181
  res_data = self.JournalLedgerReport._get_report_values(wiz, data)
182
182
  self.check_report_journal_debit_credit(res_data, 100, 100)
183
183
 
@@ -186,7 +186,7 @@ class TestJournalReport(AccountTestInvoicingCommon):
186
186
  res_data = self.JournalLedgerReport._get_report_values(wiz, data)
187
187
  self.check_report_journal_debit_credit(res_data, 200, 200)
188
188
  wiz.move_target = "posted"
189
- data = wiz._prepare_report_journal_ledger()
189
+ data = wiz._prepare_report_data()
190
190
  res_data = self.JournalLedgerReport._get_report_values(wiz, data)
191
191
  self.check_report_journal_debit_credit(res_data, 0, 0)
192
192
 
@@ -203,7 +203,7 @@ class TestJournalReport(AccountTestInvoicingCommon):
203
203
  self.check_report_journal_debit_credit(res_data, 200, 200)
204
204
 
205
205
  wiz.date_from = self.previous_fy_date_start
206
- data = wiz._prepare_report_journal_ledger()
206
+ data = wiz._prepare_report_data()
207
207
  res_data = self.JournalLedgerReport._get_report_values(wiz, data)
208
208
  self.check_report_journal_debit_credit(res_data, 300, 300)
209
209
 
@@ -238,7 +238,7 @@ class TestJournalReport(AccountTestInvoicingCommon):
238
238
  "move_target": "all",
239
239
  }
240
240
  )
241
- data = wiz._prepare_report_journal_ledger()
241
+ data = wiz._prepare_report_data()
242
242
  res_data = self.JournalLedgerReport._get_report_values(wiz, data)
243
243
  self.check_report_journal_debit_credit(res_data, 250, 250)
244
244
  self.check_report_journal_debit_credit_taxes(res_data, 0, 300, 0, 50)
@@ -276,7 +276,7 @@ class TestJournalReport(AccountTestInvoicingCommon):
276
276
  "move_target": "all",
277
277
  }
278
278
  )
279
- data = wiz._prepare_report_journal_ledger()
279
+ data = wiz._prepare_report_data()
280
280
  res_data = self.JournalLedgerReport._get_report_values(wiz, data)
281
281
 
282
282
  self.check_report_journal_debit_credit(res_data, 250, 250)
@@ -91,5 +91,5 @@ class TestOpenItems(AccountTestInvoicingCommon):
91
91
  }
92
92
  )
93
93
  wizard.on_change_account_range()
94
- res = wizard._prepare_report_open_items()
94
+ res = wizard._prepare_report_data()
95
95
  self.assertEqual(res["grouped_by"], wizard.grouped_by)
@@ -199,7 +199,7 @@ class TestTrialBalanceReport(AccountTestInvoicingCommon):
199
199
  "show_partner_details": with_partners,
200
200
  }
201
201
  )
202
- data = trial_balance._prepare_report_trial_balance()
202
+ data = trial_balance._prepare_report_data()
203
203
  res_data = self.env[
204
204
  "report.account_financial_report.trial_balance"
205
205
  ]._get_report_values(trial_balance, data)
@@ -554,7 +554,7 @@ class TestTrialBalanceReport(AccountTestInvoicingCommon):
554
554
  "fy_start_date": self.fy_date_start,
555
555
  }
556
556
  )
557
- data = trial_balance._prepare_report_trial_balance()
557
+ data = trial_balance._prepare_report_data()
558
558
  res_data = self.env[
559
559
  "report.account_financial_report.trial_balance"
560
560
  ]._get_report_values(trial_balance, data)
@@ -607,7 +607,7 @@ class TestTrialBalanceReport(AccountTestInvoicingCommon):
607
607
  "fy_start_date": self.fy_date_start,
608
608
  }
609
609
  )
610
- data = trial_balance._prepare_report_trial_balance()
610
+ data = trial_balance._prepare_report_data()
611
611
  res_data = self.env[
612
612
  "report.account_financial_report.trial_balance"
613
613
  ]._get_report_values(trial_balance, data)
@@ -661,7 +661,7 @@ class TestTrialBalanceReport(AccountTestInvoicingCommon):
661
661
  "fy_start_date": self.fy_date_start,
662
662
  }
663
663
  )
664
- data = trial_balance._prepare_report_trial_balance()
664
+ data = trial_balance._prepare_report_data()
665
665
  res_data = self.env[
666
666
  "report.account_financial_report.trial_balance"
667
667
  ]._get_report_values(trial_balance, data)
@@ -219,7 +219,7 @@ class TestVATReport(AccountTestInvoicingCommon):
219
219
  "tax_detail": True,
220
220
  }
221
221
  )
222
- data = vat_report._prepare_vat_report()
222
+ data = vat_report._prepare_report_data()
223
223
  res_data = self.env[
224
224
  "report.account_financial_report.vat_report"
225
225
  ]._get_report_values(vat_report, data)
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <odoo>
3
+ <record model="ir.ui.view" id="view_account_financial_report_column_form">
4
+ <field name="name">account.financial.report.column.form.inherit</field>
5
+ <field name="model">account.financial.report.column</field>
6
+ <field name="type">form</field>
7
+ <field name="arch" type="xml">
8
+ <form>
9
+ <sheet>
10
+ <group>
11
+ <field name="name" />
12
+ <field
13
+ name="limit"
14
+ attrs="{'invisible': [('field_type', '!=', 'string')]}"
15
+ />
16
+ <field name="is_visible" widget="boolean_toggle" />
17
+ </group>
18
+ <group>
19
+ <field name="expression_label" />
20
+ <field name="sequence" />
21
+ <field name="field_type" />
22
+ </group>
23
+ </sheet>
24
+ </form>
25
+ </field>
26
+ </record>
27
+ <record model="ir.ui.view" id="view_account_financial_report_column_tree">
28
+ <field name="name">account.financial.report.column.tree</field>
29
+ <field name="model">account.financial.report.column</field>
30
+ <field name="type">tree</field>
31
+ <field name="arch" type="xml">
32
+ <tree editable="bottom" create="false" delete="false">
33
+ <field name="sequence" widget="handle" />
34
+ <field name="name" readonly="1" />
35
+ <field name="expression_label" readonly="1" optional="hide" />
36
+ <field name="is_visible" widget="boolean_toggle" />
37
+ <field name="field_type" optional="hide" />
38
+ <field
39
+ name="limit"
40
+ attrs="{'invisible': [('field_type', '!=', 'string')]}"
41
+ optional="show"
42
+ />
43
+ </tree>
44
+ </field>
45
+ </record>
46
+ </odoo>
@@ -1,7 +1,8 @@
1
1
  # Copyright 2019 Lorenzo Battistini @ TAKOBI
2
+ # Copyright 2025 Tecnativa - Carlos Dauden
2
3
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
4
 
4
- from odoo import fields, models
5
+ from odoo import api, fields, models
5
6
 
6
7
 
7
8
  class AbstractWizard(models.AbstractModel):
@@ -34,6 +35,19 @@ class AbstractWizard(models.AbstractModel):
34
35
  required=False,
35
36
  string="Company",
36
37
  )
38
+ # Hack inverse to force save columns options
39
+ column_ids = fields.Many2many(
40
+ comodel_name="account.financial.report.column",
41
+ compute="_compute_column_ids",
42
+ inverse=lambda self: self,
43
+ )
44
+
45
+ @api.depends("company_id")
46
+ def _compute_column_ids(self):
47
+ for wiz in self:
48
+ wiz.column_ids = self.env["account.financial.report.column"].search(
49
+ [("res_model", "=", wiz._name)]
50
+ )
37
51
 
38
52
  def button_export_html(self):
39
53
  self.ensure_one()
@@ -49,3 +63,12 @@ class AbstractWizard(models.AbstractModel):
49
63
  self.ensure_one()
50
64
  report_type = "xlsx"
51
65
  return self._export(report_type)
66
+
67
+ def _limit_text(self, value, limit=0):
68
+ if value and limit and len(value) > limit:
69
+ value = value[:limit] + "..."
70
+ return value
71
+
72
+ def _prepare_report_data(self):
73
+ self.ensure_one()
74
+ return {"wizard_name": self._name, "wizard_id": self.id}
@@ -139,7 +139,7 @@ class AgedPartnerBalanceWizard(models.TransientModel):
139
139
 
140
140
  def _print_report(self, report_type):
141
141
  self.ensure_one()
142
- data = self._prepare_report_aged_partner_balance()
142
+ data = self._prepare_report_data()
143
143
  if report_type == "xlsx":
144
144
  report_name = "a_f_r.report_aged_partner_balance_xlsx"
145
145
  else:
@@ -153,22 +153,24 @@ class AgedPartnerBalanceWizard(models.TransientModel):
153
153
  .report_action(self, data=data)
154
154
  )
155
155
 
156
- def _prepare_report_aged_partner_balance(self):
157
- self.ensure_one()
158
- return {
159
- "wizard_id": self.id,
160
- "date_at": self.date_at,
161
- "date_from": self.date_from or False,
162
- "only_posted_moves": self.target_move == "posted",
163
- "company_id": self.company_id.id,
164
- "account_ids": self.account_ids.ids,
165
- "partner_ids": self.partner_ids.ids,
166
- "show_move_line_details": self.show_move_line_details,
167
- "account_financial_report_lang": self.env.lang,
168
- "age_partner_config_id": self.age_partner_config_id.id,
169
- "analytic_account_ids": self.analytic_account_ids.ids or [],
170
- "no_analytic": self.no_analytic,
171
- }
156
+ def _prepare_report_data(self):
157
+ res = super()._prepare_report_data()
158
+ res.update(
159
+ {
160
+ "date_at": self.date_at,
161
+ "date_from": self.date_from or False,
162
+ "only_posted_moves": self.target_move == "posted",
163
+ "company_id": self.company_id.id,
164
+ "account_ids": self.account_ids.ids,
165
+ "partner_ids": self.partner_ids.ids,
166
+ "show_move_line_details": self.show_move_line_details,
167
+ "account_financial_report_lang": self.env.lang,
168
+ "age_partner_config_id": self.age_partner_config_id.id,
169
+ "analytic_account_ids": self.analytic_account_ids.ids or [],
170
+ "no_analytic": self.no_analytic,
171
+ }
172
+ )
173
+ return res
172
174
 
173
175
  def _export(self, report_type):
174
176
  """Default export is PDF."""
@@ -272,7 +272,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
272
272
 
273
273
  def _print_report(self, report_type):
274
274
  self.ensure_one()
275
- data = self._prepare_report_general_ledger()
275
+ data = self._prepare_report_data()
276
276
  if report_type == "xlsx":
277
277
  report_name = "a_f_r.report_general_ledger_xlsx"
278
278
  else:
@@ -286,10 +286,6 @@ class GeneralLedgerReportWizard(models.TransientModel):
286
286
  .report_action(self, data=data)
287
287
  )
288
288
 
289
- def _prepare_report_general_ledger(self):
290
- self.ensure_one()
291
- return {"wizard_id": self.id}
292
-
293
289
  def _export(self, report_type):
294
290
  """Default export is PDF."""
295
291
  return self._print_report(report_type)
@@ -102,6 +102,13 @@
102
102
  context="{'skip_search_count': 1}"
103
103
  />
104
104
  </page>
105
+ <page name="columns" string="Columns">
106
+ <field
107
+ name="column_ids"
108
+ context="{'default_res_name': 'general.ledger.report.wizard'}"
109
+ widget="one2many"
110
+ />
111
+ </page>
105
112
  </notebook>
106
113
  </div>
107
114
  <div
@@ -75,7 +75,7 @@ class JournalLedgerReportWizard(models.TransientModel):
75
75
 
76
76
  def _print_report(self, report_type):
77
77
  self.ensure_one()
78
- data = self._prepare_report_journal_ledger()
78
+ data = self._prepare_report_data()
79
79
  if report_type == "xlsx":
80
80
  report_name = "a_f_r.report_journal_ledger_xlsx"
81
81
  else:
@@ -89,28 +89,30 @@ class JournalLedgerReportWizard(models.TransientModel):
89
89
  .report_action(self, data=data)
90
90
  )
91
91
 
92
- def _prepare_report_journal_ledger(self):
93
- self.ensure_one()
92
+ def _prepare_report_data(self):
93
+ res = super()._prepare_report_data()
94
94
  journals = self.journal_ids
95
95
  if not journals:
96
96
  # Not selecting a journal means that we'll display all journals
97
97
  journals = self.env["account.journal"].search(
98
98
  [("company_id", "=", self.company_id.id)]
99
99
  )
100
- return {
101
- "wizard_id": self.id,
102
- "date_from": self.date_from,
103
- "date_to": self.date_to,
104
- "move_target": self.move_target,
105
- "foreign_currency": self.foreign_currency,
106
- "company_id": self.company_id.id,
107
- "journal_ids": journals.ids,
108
- "sort_option": self.sort_option,
109
- "group_option": self.group_option,
110
- "with_account_name": self.with_account_name,
111
- "account_financial_report_lang": self.env.lang,
112
- "with_auto_sequence": self.with_auto_sequence,
113
- }
100
+ res.update(
101
+ {
102
+ "date_from": self.date_from,
103
+ "date_to": self.date_to,
104
+ "move_target": self.move_target,
105
+ "foreign_currency": self.foreign_currency,
106
+ "company_id": self.company_id.id,
107
+ "journal_ids": journals.ids,
108
+ "sort_option": self.sort_option,
109
+ "group_option": self.group_option,
110
+ "with_account_name": self.with_account_name,
111
+ "account_financial_report_lang": self.env.lang,
112
+ "with_auto_sequence": self.with_auto_sequence,
113
+ }
114
+ )
115
+ return res
114
116
 
115
117
  def _export(self, report_type):
116
118
  """Default export is PDF."""
@@ -7,38 +7,54 @@
7
7
  <field name="model">journal.ledger.report.wizard</field>
8
8
  <field name="arch" type="xml">
9
9
  <form>
10
- <group>
11
- <field name="company_id" groups="base.group_multi_company" />
12
- </group>
13
- <separator string="Periods" />
14
- <group>
15
- <group>
16
- <field name="date_range_id" />
17
- <field name="date_from" />
18
- <field name="date_to" />
19
- </group>
20
- <group />
21
- </group>
22
- <separator string="Options" />
23
- <group name="options">
24
- <group>
25
- <field
26
- name="move_target"
27
- widget="radio"
28
- options="{'horizontal': true}"
29
- />
30
- <field name="sort_option" />
31
- <field name="group_option" />
32
- <field name="foreign_currency" />
33
- <field name="with_account_name" />
34
- <field name="with_auto_sequence" />
35
- </group>
36
- <group />
37
- </group>
38
- <separator string="Journals" />
39
- <group>
40
- <field name="journal_ids" widget="many2many_tags" />
41
- </group>
10
+ <sheet>
11
+ <notebook>
12
+ <page string="Filters">
13
+ <group>
14
+ <field
15
+ name="company_id"
16
+ groups="base.group_multi_company"
17
+ />
18
+ </group>
19
+ <separator string="Periods" />
20
+ <group>
21
+ <group>
22
+ <field name="date_range_id" />
23
+ <field name="date_from" />
24
+ <field name="date_to" />
25
+ </group>
26
+ <group />
27
+ </group>
28
+ <separator string="Options" />
29
+ <group name="options">
30
+ <group>
31
+ <field
32
+ name="move_target"
33
+ widget="radio"
34
+ options="{'horizontal': true}"
35
+ />
36
+ <field name="sort_option" />
37
+ <field name="group_option" />
38
+ <field name="foreign_currency" />
39
+ <field name="with_account_name" />
40
+ <field name="with_auto_sequence" />
41
+ </group>
42
+ <group />
43
+ </group>
44
+ <separator string="Journals" />
45
+ <group>
46
+ <field name="journal_ids" widget="many2many_tags" />
47
+ </group>
48
+ </page>
49
+ <page string="Columns">
50
+ <field
51
+ name="column_ids"
52
+ context="{'default_res_name': 'journal.ledger.report.wizard'}"
53
+ widget="one2many"
54
+ />
55
+ </page>
56
+ </notebook>
57
+ </sheet>
42
58
  <footer>
43
59
  <button
44
60
  name="button_export_html"