odoo-addon-account-financial-report 17.0.1.5.0__py3-none-any.whl → 17.0.1.6.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.

@@ -7,7 +7,7 @@ Account Financial Reports
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:4d56adc35fff26b88020bebb3cd0fcb302b7c7c7483639925cfc4f9b850d8ac4
10
+ !! source digest: sha256:20ae22a108ec709b3bf88351495514d82435eb77953df3f3164d48b9c58886cc
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -6,7 +6,7 @@
6
6
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
7
7
  {
8
8
  "name": "Account Financial Reports",
9
- "version": "17.0.1.5.0",
9
+ "version": "17.0.1.6.0",
10
10
  "category": "Reporting",
11
11
  "summary": "OCA Financial Reports",
12
12
  "author": "Camptocamp,"
@@ -49,6 +49,13 @@ msgstr ""
49
49
  msgid "<b>Taxes summary</b>"
50
50
  msgstr ""
51
51
 
52
+ #. module: account_financial_report
53
+ #: model_terms:ir.ui.view,arch_db:account_financial_report.trial_balance_wizard
54
+ msgid ""
55
+ "<i class=\"fa fa-exclamation-triangle mr-3\"/>\n"
56
+ " Duplicate amounts may be shown because more than one analytical account may be defined in the journal items."
57
+ msgstr ""
58
+
52
59
  #. module: account_financial_report
53
60
  #: model_terms:ir.ui.view,arch_db:account_financial_report.res_config_settings_view_form
54
61
  msgid "<span class=\"o_form_label\">Intervals configuration</span>"
@@ -336,6 +343,7 @@ msgstr ""
336
343
 
337
344
  #. module: account_financial_report
338
345
  #: model:ir.model.fields,field_description:account_financial_report.field_account_move_line__analytic_account_ids
346
+ #: model:ir.model.fields.selection,name:account_financial_report.selection__trial_balance_report_wizard__grouped_by__analytic_account
339
347
  msgid "Analytic Account"
340
348
  msgstr ""
341
349
 
@@ -945,6 +953,7 @@ msgstr ""
945
953
 
946
954
  #. module: account_financial_report
947
955
  #: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__grouped_by
956
+ #: model:ir.model.fields,field_description:account_financial_report.field_trial_balance_report_wizard__grouped_by
948
957
  msgid "Grouped By"
949
958
  msgstr ""
950
959
 
@@ -1586,6 +1595,14 @@ msgstr ""
1586
1595
  msgid "Starting account in a range"
1587
1596
  msgstr ""
1588
1597
 
1598
+ #. module: account_financial_report
1599
+ #. odoo-python
1600
+ #: code:addons/account_financial_report/report/trial_balance.py:0
1601
+ #: code:addons/account_financial_report/report/trial_balance_xlsx.py:0
1602
+ #, python-format
1603
+ msgid "TOTAL"
1604
+ msgstr ""
1605
+
1589
1606
  #. module: account_financial_report
1590
1607
  #: model_terms:ir.ui.view,arch_db:account_financial_report.report_general_ledger_lines
1591
1608
  msgid "Tags"
@@ -1746,7 +1763,10 @@ msgid "To:"
1746
1763
  msgstr ""
1747
1764
 
1748
1765
  #. module: account_financial_report
1766
+ #. odoo-python
1767
+ #: code:addons/account_financial_report/report/trial_balance_xlsx.py:0
1749
1768
  #: model_terms:ir.ui.view,arch_db:account_financial_report.report_aged_partner_balance_account_ending_cumul
1769
+ #, python-format
1750
1770
  msgid "Total"
1751
1771
  msgstr ""
1752
1772
 
@@ -1880,6 +1900,13 @@ msgstr ""
1880
1900
  msgid "With Account Name"
1881
1901
  msgstr ""
1882
1902
 
1903
+ #. module: account_financial_report
1904
+ #. odoo-python
1905
+ #: code:addons/account_financial_report/report/trial_balance.py:0
1906
+ #, python-format
1907
+ msgid "Without analytic account"
1908
+ msgstr ""
1909
+
1883
1910
  #. module: account_financial_report
1884
1911
  #. odoo-python
1885
1912
  #: code:addons/account_financial_report/report/general_ledger_xlsx.py:0
@@ -28,7 +28,7 @@
28
28
  <div class="row">
29
29
  <h4
30
30
  class="mt0"
31
- t-esc="title or 'Odoo Report'"
31
+ t-out="title or 'Odoo Report'"
32
32
  style="text-align: center;"
33
33
  />
34
34
  </div>
@@ -36,43 +36,94 @@
36
36
  <t t-call="account_financial_report.report_trial_balance_filters" />
37
37
  <div class="act_as_table list_table" style="margin-top: 10px;" />
38
38
  <!-- Display account lines -->
39
+ <t t-set="aml_domain_extra" t-value="[]" />
39
40
  <t t-if="not show_partner_details">
40
- <div class="act_as_table data_table" style="width: 100%;">
41
- <!-- Display account header -->
42
- <t
43
- t-call="account_financial_report.report_trial_balance_lines_header"
44
- />
45
- <!-- Display each lines -->
46
- <t t-foreach="trial_balance" t-as="balance">
47
- <!-- Adapt -->
48
- <t t-set="style" t-value="'font-size:12px;'" />
49
- <!-- Different style for account group -->
50
- <t t-if="show_hierarchy">
51
- <t
52
- t-if="balance['type'] == 'group_type'"
53
- >
41
+ <t t-if="trial_balance_grouped">
42
+ <t t-foreach="trial_balance_grouped" t-as="grouped_item">
43
+ <div class="act_as_table data_table" style="width: 100%;">
44
+ <div class="act_as_thead">
45
+ <div class="act_as_row labels">
46
+ <div class="act_as_cell" style="width: 100%;">
47
+ <t t-esc="grouped_item['name']" />
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <t
53
+ t-set="aml_domain_extra"
54
+ t-if="grouped_item['id'] > 0"
55
+ t-value="[('analytic_account_id', '=', grouped_item['id'])]"
56
+ />
57
+ <t
58
+ t-set="aml_domain_extra"
59
+ t-else=""
60
+ t-value="[('analytic_account_id', '=', False)]"
61
+ />
62
+ <div class="act_as_table data_table" style="width: 100%;">
63
+ <t
64
+ t-call="account_financial_report.report_trial_balance_lines_header"
65
+ />
66
+ <!-- Display each lines -->
67
+ <t t-foreach="grouped_item['account_data']" t-as="balance">
68
+ <!-- Adapt -->
69
+ <t t-set="style" t-value="'font-size:12px;'" />
54
70
  <t
55
- t-set="style"
56
- t-value="style + 'font-weight: bold; color: blue;'"
71
+ t-call="account_financial_report.report_trial_balance_line"
57
72
  />
58
73
  </t>
59
- </t>
60
- <t t-if="show_hierarchy and limit_hierarchy_level">
61
- <t
62
- t-if="show_hierarchy_level > balance['level'] and (not hide_parent_hierarchy_level or (show_hierarchy_level - 1) == balance['level'])"
63
- >
74
+ </div>
75
+ <!-- Display footer with totals !-->
76
+ <t t-set="balance" t-value="grouped_item" />
77
+ <t
78
+ t-call="account_financial_report.report_trial_balance_account_footer"
79
+ />
80
+ </t>
81
+ <!-- TOTAL !-->
82
+ <t t-if="grouped_by">
83
+ <t t-set="balance" t-value="total_amount_grouped" />
84
+ <t
85
+ t-call="account_financial_report.report_trial_balance_account_footer"
86
+ />
87
+ </t>
88
+ </t>
89
+ <t t-else="">
90
+ <div class="act_as_table data_table" style="width: 100%;">
91
+ <!-- Display account header -->
92
+ <t
93
+ t-call="account_financial_report.report_trial_balance_lines_header"
94
+ />
95
+ <!-- Display each lines -->
96
+ <t t-foreach="trial_balance" t-as="balance">
97
+ <!-- Adapt -->
98
+ <t t-set="style" t-value="'font-size:12px;'" />
99
+ <!-- Different style for account group -->
100
+ <t t-if="show_hierarchy">
101
+ <t
102
+ t-if="balance['type'] == 'group_type'"
103
+ >
104
+ <t
105
+ t-set="style"
106
+ t-value="style + 'font-weight: bold; color: blue;'"
107
+ />
108
+ </t>
109
+ </t>
110
+ <t t-if="show_hierarchy and limit_hierarchy_level">
111
+ <t
112
+ t-if="show_hierarchy_level > balance['level'] and (not hide_parent_hierarchy_level or (show_hierarchy_level - 1) == balance['level'])"
113
+ >
114
+ <t
115
+ t-call="account_financial_report.report_trial_balance_line"
116
+ />
117
+ </t>
118
+ </t>
119
+ <t t-else="">
64
120
  <t
65
121
  t-call="account_financial_report.report_trial_balance_line"
66
122
  />
67
123
  </t>
68
124
  </t>
69
- <t t-else="">
70
- <t
71
- t-call="account_financial_report.report_trial_balance_line"
72
- />
73
- </t>
74
- </t>
75
- </div>
125
+ </div>
126
+ </t>
76
127
  </t>
77
128
  <!-- Display partner lines -->
78
129
  <t t-if="show_partner_details">
@@ -139,9 +190,9 @@
139
190
  <div class="act_as_row">
140
191
  <div class="act_as_cell">
141
192
  From:
142
- <span t-esc="date_from" t-options="{'widget': 'date'}" />
193
+ <span t-out="date_from" t-options="{'widget': 'date'}" />
143
194
  To
144
- <span t-esc="date_to" t-options="{'widget': 'date'}" />
195
+ <span t-out="date_to" t-options="{'widget': 'date'}" />
145
196
  </div>
146
197
  <div class="act_as_cell">
147
198
  <t t-if="only_posted_moves">All posted entries</t>
@@ -154,7 +205,7 @@
154
205
  <div class="act_as_cell">
155
206
  <t t-if="limit_hierarchy_level">
156
207
  Level
157
- <span t-esc="show_hierarchy_level" />
208
+ <span t-out="show_hierarchy_level" />
158
209
  </t>
159
210
  <t t-if="not limit_hierarchy_level">No limit</t>
160
211
  </div>
@@ -220,7 +271,7 @@
220
271
  res-model="account.account"
221
272
  view-type="form"
222
273
  >
223
- <t t-esc="balance['code']" />
274
+ <t t-out="balance['code']" />
224
275
  </span>
225
276
  </div>
226
277
  <!-- ## Account/Partner-->
@@ -230,7 +281,7 @@
230
281
  res-model="account.account"
231
282
  view-type="form"
232
283
  >
233
- <t t-esc="balance['name']" />
284
+ <t t-out="balance['name']" />
234
285
  </span>
235
286
  </div>
236
287
  </t>
@@ -252,7 +303,7 @@
252
303
  res-model="account.group"
253
304
  view-type="form"
254
305
  >
255
- <t t-esc="balance['name']" />
306
+ <t t-out="balance['name']" />
256
307
  </span>
257
308
  </div>
258
309
  </t>
@@ -265,7 +316,7 @@
265
316
  res-model="res.partner"
266
317
  view-type="form"
267
318
  >
268
- <t t-esc="partners_data[partner_id]['name']" />
319
+ <t t-out="partners_data[partner_id]['name']" />
269
320
  </span>
270
321
  </div>
271
322
  </t>
@@ -279,11 +330,11 @@
279
330
  ('date', '&lt;', date_from)]"
280
331
  />
281
332
  <span
282
- t-att-domain="domain+aml_domain_common"
333
+ t-att-domain="domain+aml_domain_common+aml_domain_extra"
283
334
  res-model="account.move.line"
284
335
  >
285
336
  <t
286
- t-esc="balance['initial_balance']"
337
+ t-out="balance['initial_balance']"
287
338
  t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
288
339
  />
289
340
  </span>
@@ -335,11 +386,11 @@
335
386
  ('debit', '&lt;&gt;', 0)]"
336
387
  />
337
388
  <span
338
- t-att-domain="domain+aml_domain_common"
389
+ t-att-domain="domain+aml_domain_common+aml_domain_extra"
339
390
  res-model="account.move.line"
340
391
  >
341
392
  <t
342
- t-esc="balance['debit']"
393
+ t-out="balance['debit']"
343
394
  t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
344
395
  />
345
396
  </span>
@@ -395,11 +446,11 @@
395
446
  ('credit', '&lt;&gt;', 0)]"
396
447
  />
397
448
  <span
398
- t-att-domain="domain+aml_domain_common"
449
+ t-att-domain="domain+aml_domain_common+aml_domain_extra"
399
450
  res-model="account.move.line"
400
451
  >
401
452
  <t
402
- t-esc="balance['credit']"
453
+ t-out="balance['credit']"
403
454
  t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
404
455
  />
405
456
  </span>
@@ -455,11 +506,11 @@
455
506
  ('balance', '&lt;&gt;', 0)]"
456
507
  />
457
508
  <span
458
- t-att-domain="domain+aml_domain_common"
509
+ t-att-domain="domain+aml_domain_common+aml_domain_extra"
459
510
  res-model="account.move.line"
460
511
  >
461
512
  <t
462
- t-esc="balance['balance']"
513
+ t-out="balance['balance']"
463
514
  t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
464
515
  />
465
516
  </span>
@@ -512,11 +563,11 @@
512
563
  ('date', '&lt;=', date_to)]"
513
564
  />
514
565
  <span
515
- t-att-domain="domain+aml_domain_common"
566
+ t-att-domain="domain+aml_domain_common+aml_domain_extra"
516
567
  res-model="account.move.line"
517
568
  >
518
569
  <t
519
- t-esc="balance['ending_balance']"
570
+ t-out="balance['ending_balance']"
520
571
  t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
521
572
  />
522
573
  </span>
@@ -549,7 +600,7 @@
549
600
  res-model="account.move.line"
550
601
  >
551
602
  <t
552
- t-esc="total_amount[account_id][partner_id]['ending_balance']"
603
+ t-out="total_amount[account_id][partner_id]['ending_balance']"
553
604
  t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
554
605
  />
555
606
  </span>
@@ -570,11 +621,11 @@
570
621
  t-value="[('account_id', '=', balance['id'])]"
571
622
  />
572
623
  <span
573
- t-att-domain="domain+aml_domain_common"
624
+ t-att-domain="domain+aml_domain_common+aml_domain_extra"
574
625
  res-model="account.move.line"
575
626
  >
576
627
  <t
577
- t-esc="balance['initial_currency_balance']"
628
+ t-out="balance['initial_currency_balance']"
578
629
  t-options="{'widget': 'monetary', 'display_currency': balance_currency}"
579
630
  />
580
631
  </span>
@@ -629,7 +680,7 @@
629
680
  t-value="[('account_id', '=', balance['id'])]"
630
681
  />
631
682
  <span
632
- t-att-domain="domain+aml_domain_common"
683
+ t-att-domain="domain+aml_domain_common+aml_domain_extra"
633
684
  res-model="account.move.line"
634
685
  >
635
686
  <t
@@ -835,44 +886,101 @@
835
886
  <div class="act_as_row labels" style="font-weight: bold;">
836
887
  <!--## date-->
837
888
  <div class="act_as_cell first_column" style="width: 33%;">
838
- <span t-esc="accounts_data[account_id]['code']" />
839
- -
840
- <span t-esc="accounts_data[account_id]['name']" />
889
+ <t
890
+ t-if="grouped_by and balance['type'] in ('analytic_account_type', 'total')"
891
+ >
892
+ <span t-out="balance['name']" />
893
+ </t>
894
+ <t t-else="">
895
+ <span t-out="accounts_data[account_id]['code']" />
896
+ -
897
+ <span t-out="accounts_data[account_id]['name']" />
898
+ </t>
841
899
  </div>
842
900
  <!--## Initial Balance-->
843
901
  <div class="act_as_cell amount" style="width: 9%;">
844
- <span
845
- t-esc="total_amount[account_id]['initial_balance']"
846
- t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
847
- />
902
+ <t
903
+ t-if="grouped_by and balance['type'] in ('analytic_account_type', 'total')"
904
+ >
905
+ <span
906
+ t-out="balance['initial_balance']"
907
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
908
+ />
909
+ </t>
910
+ <t t-else="">
911
+ <span
912
+ t-out="total_amount[account_id]['initial_balance']"
913
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
914
+ />
915
+ </t>
848
916
  </div>
849
917
  <!--## Debit-->
850
918
  <div class="act_as_cell amount" style="width: 9%;">
851
- <span
852
- t-esc="total_amount[account_id]['debit']"
853
- t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
854
- />
919
+ <t
920
+ t-if="grouped_by and balance['type'] in ('analytic_account_type', 'total')"
921
+ >
922
+ <span
923
+ t-out="balance['debit']"
924
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
925
+ />
926
+ </t>
927
+ <t t-else="">
928
+ <span
929
+ t-out="total_amount[account_id]['debit']"
930
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
931
+ />
932
+ </t>
855
933
  </div>
856
934
  <!--## Credit-->
857
935
  <div class="act_as_cell amount" style="width: 9%;">
858
- <span
859
- t-esc="total_amount[account_id]['credit']"
860
- t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
861
- />
936
+ <t
937
+ t-if="grouped_by and balance['type'] in ('analytic_account_type', 'total')"
938
+ >
939
+ <span
940
+ t-out="balance['credit']"
941
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
942
+ />
943
+ </t>
944
+ <t t-else="">
945
+ <span
946
+ t-out="total_amount[account_id]['credit']"
947
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
948
+ />
949
+ </t>
862
950
  </div>
863
951
  <!--## Period balance-->
864
952
  <div class="act_as_cell amount" style="width: 9%;">
865
- <span
866
- t-esc="total_amount[account_id]['balance']"
867
- t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
868
- />
953
+ <t
954
+ t-if="grouped_by and balance['type'] in ('analytic_account_type', 'total')"
955
+ >
956
+ <span
957
+ t-out="balance['balance']"
958
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
959
+ />
960
+ </t>
961
+ <t t-else="">
962
+ <span
963
+ t-out="total_amount[account_id]['balance']"
964
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
965
+ />
966
+ </t>
869
967
  </div>
870
968
  <!--## Ending balance-->
871
969
  <div class="act_as_cell amount" style="width: 9%;">
872
- <span
873
- t-esc="total_amount[account_id]['ending_balance']"
874
- t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
875
- />
970
+ <t
971
+ t-if="grouped_by and balance['type'] in ('analytic_account_type', 'total')"
972
+ >
973
+ <span
974
+ t-out="balance['ending_balance']"
975
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
976
+ />
977
+ </t>
978
+ <t t-else="">
979
+ <span
980
+ t-out="total_amount[account_id]['ending_balance']"
981
+ t-options="{'widget': 'monetary', 'display_currency': res_company.currency_id}"
982
+ />
983
+ </t>
876
984
  </div>
877
985
  <t t-if="foreign_currency">
878
986
  <!--## amount_total_due_currency-->
@@ -218,10 +218,39 @@ class TrialBalanceReport(models.AbstractModel):
218
218
  total_amount[acc_id]["initial_balance"] = 0.0
219
219
  if foreign_currency:
220
220
  total_amount[acc_id]["initial_currency_balance"] = 0.0
221
+ if "__context" in tb and "group_by" in tb["__context"]:
222
+ group_by = tb["__context"]["group_by"][0]
223
+ gb_data = {}
224
+ tb_grouped = self.env["account.move.line"].read_group(
225
+ domain=tb["__domain"],
226
+ fields=[
227
+ group_by,
228
+ "debit",
229
+ "credit",
230
+ "balance",
231
+ "amount_currency:sum",
232
+ ],
233
+ groupby=[group_by],
234
+ )
235
+ for tb2 in tb_grouped:
236
+ gb_id = tb2[group_by][0] if tb2[group_by] else 0
237
+ gb_data[gb_id] = self._prepare_total_amount(tb2, foreign_currency)
238
+ gb_data[gb_id]["credit"] = tb2["credit"]
239
+ gb_data[gb_id]["debit"] = tb2["debit"]
240
+ gb_data[gb_id]["balance"] = tb2["balance"]
241
+ gb_data[gb_id]["initial_balance"] = 0.0
242
+ if foreign_currency:
243
+ gb_data[gb_id]["initial_currency_balance"] = 0.0
244
+ total_amount[acc_id]["group_by"] = group_by
245
+ total_amount[acc_id]["group_by_data"] = gb_data
221
246
  for tb in tb_initial_acc:
222
247
  acc_id = tb["account_id"]
223
248
  if acc_id not in total_amount.keys():
224
249
  total_amount[acc_id] = self._prepare_total_amount(tb, foreign_currency)
250
+ total_amount[acc_id]["group_by_data"] = {}
251
+ total_amount[acc_id]["group_by_data"][0] = self._prepare_total_amount(
252
+ tb, foreign_currency
253
+ )
225
254
  else:
226
255
  total_amount[acc_id]["initial_balance"] = tb["balance"]
227
256
  total_amount[acc_id]["ending_balance"] += tb["balance"]
@@ -232,6 +261,28 @@ class TrialBalanceReport(models.AbstractModel):
232
261
  total_amount[acc_id]["ending_currency_balance"] += round(
233
262
  tb["amount_currency"], 2
234
263
  )
264
+ if "group_by_data" in tb:
265
+ for gb_key in list(tb["group_by_data"]):
266
+ tb2 = tb["group_by_data"][gb_key]
267
+ if "group_by_data" in total_amount[acc_id]:
268
+ if gb_key not in total_amount[acc_id]["group_by_data"]:
269
+ total_amount[acc_id]["group_by_data"][
270
+ gb_key
271
+ ] = self._prepare_total_amount(tb2, foreign_currency)
272
+ else:
273
+ total_amount[acc_id]["group_by_data"][gb_key][
274
+ "initial_balance"
275
+ ] = tb2["balance"]
276
+ total_amount[acc_id]["group_by_data"][gb_key][
277
+ "ending_balance"
278
+ ] += tb2["balance"]
279
+ if foreign_currency:
280
+ total_amount[acc_id]["group_by_data"][gb_key][
281
+ "initial_currency_balance"
282
+ ] = round(tb2["amount_currency"], 2)
283
+ total_amount[acc_id]["group_by_data"][gb_key][
284
+ "ending_currency_balance"
285
+ ] += round(tb2["amount_currency"], 2)
235
286
  return total_amount
236
287
 
237
288
  @api.model
@@ -350,6 +401,7 @@ class TrialBalanceReport(models.AbstractModel):
350
401
  for account_id in accounts_to_remove:
351
402
  del total_amount[account_id]
352
403
 
404
+ # flake8: noqa: C901
353
405
  @api.model
354
406
  def _get_data(
355
407
  self,
@@ -365,6 +417,7 @@ class TrialBalanceReport(models.AbstractModel):
365
417
  hide_account_at_0,
366
418
  unaffected_earnings_account,
367
419
  fy_start_date,
420
+ grouped_by,
368
421
  ):
369
422
  accounts_domain = [("company_id", "=", company_id)]
370
423
  if account_ids:
@@ -378,6 +431,9 @@ class TrialBalanceReport(models.AbstractModel):
378
431
  tb_initial_acc.append(
379
432
  {"account_id": account.id, "balance": 0.0, "amount_currency": 0.0}
380
433
  )
434
+ groupby_fields = ["account_id"]
435
+ if grouped_by:
436
+ groupby_fields.append("analytic_account_ids")
381
437
  initial_domain_bs = self._get_initial_balances_bs_ml_domain(
382
438
  account_ids,
383
439
  journal_ids,
@@ -390,7 +446,7 @@ class TrialBalanceReport(models.AbstractModel):
390
446
  tb_initial_acc_bs = self.env["account.move.line"].read_group(
391
447
  domain=initial_domain_bs,
392
448
  fields=["account_id", "balance", "amount_currency:sum"],
393
- groupby=["account_id"],
449
+ groupby=groupby_fields,
394
450
  )
395
451
  initial_domain_pl = self._get_initial_balances_pl_ml_domain(
396
452
  account_ids,
@@ -405,7 +461,7 @@ class TrialBalanceReport(models.AbstractModel):
405
461
  tb_initial_acc_pl = self.env["account.move.line"].read_group(
406
462
  domain=initial_domain_pl,
407
463
  fields=["account_id", "balance", "amount_currency:sum"],
408
- groupby=["account_id"],
464
+ groupby=groupby_fields,
409
465
  )
410
466
  tb_initial_acc_rg = tb_initial_acc_bs + tb_initial_acc_pl
411
467
  for account_rg in tb_initial_acc_rg:
@@ -419,6 +475,22 @@ class TrialBalanceReport(models.AbstractModel):
419
475
  if element:
420
476
  element[0]["balance"] += account_rg["balance"]
421
477
  element[0]["amount_currency"] += account_rg["amount_currency"]
478
+ if "__context" in account_rg and "group_by" in account_rg["__context"]:
479
+ group_by = account_rg["__context"]["group_by"][0]
480
+ gb_data = {}
481
+ account_rg_grouped = self.env["account.move.line"].read_group(
482
+ domain=account_rg["__domain"],
483
+ fields=[group_by, "balance", "amount_currency:sum"],
484
+ groupby=[group_by],
485
+ )
486
+ for a_rg2 in account_rg_grouped:
487
+ gb_id = a_rg2[group_by][0] if a_rg2[group_by] else 0
488
+ gb_data[gb_id] = {
489
+ "balance": a_rg2["balance"],
490
+ "amount_currency": a_rg2["amount_currency"],
491
+ }
492
+ element[0]["group_by"] = group_by
493
+ element[0]["group_by_data"] = gb_data
422
494
  if hide_account_at_0:
423
495
  tb_initial_acc = [p for p in tb_initial_acc if p["balance"] != 0]
424
496
 
@@ -435,7 +507,7 @@ class TrialBalanceReport(models.AbstractModel):
435
507
  tb_period_acc = self.env["account.move.line"].read_group(
436
508
  domain=period_domain,
437
509
  fields=["account_id", "debit", "credit", "balance", "amount_currency:sum"],
438
- groupby=["account_id"],
510
+ groupby=groupby_fields,
439
511
  )
440
512
 
441
513
  if show_partner_details:
@@ -492,8 +564,22 @@ class TrialBalanceReport(models.AbstractModel):
492
564
  total_amount[unaffected_id]["debit"] = 0.0
493
565
  total_amount[unaffected_id]["ending_balance"] = 0.0
494
566
  if foreign_currency:
567
+ total_amount[unaffected_id]["amount_currency"] = 0
495
568
  total_amount[unaffected_id]["initial_currency_balance"] = 0.0
496
569
  total_amount[unaffected_id]["ending_currency_balance"] = 0.0
570
+ if grouped_by:
571
+ total_amount[unaffected_id]["group_by"] = grouped_by
572
+ total_amount[unaffected_id]["group_by_data"] = {}
573
+ # Fix to prevent side effects
574
+ if (
575
+ foreign_currency
576
+ and "amount_currency" not in total_amount[unaffected_id]
577
+ ):
578
+ total_amount[unaffected_id]["amount_currency"] = 0
579
+ group_by_data_item = self._prepare_total_amount(
580
+ total_amount[unaffected_id], foreign_currency
581
+ )
582
+ total_amount[unaffected_id]["group_by_data"][0] = group_by_data_item
497
583
  accounts_data = self._get_accounts_data(accounts_ids)
498
584
  (
499
585
  pl_initial_balance,
@@ -518,8 +604,88 @@ class TrialBalanceReport(models.AbstractModel):
518
604
  total_amount[unaffected_id][
519
605
  "initial_currency_balance"
520
606
  ] += pl_initial_currency_balance
607
+ if grouped_by:
608
+ total_amount[unaffected_id]["group_by_data"][0][
609
+ "ending_balance"
610
+ ] = total_amount[unaffected_id]["ending_balance"]
611
+ total_amount[unaffected_id]["group_by_data"][0][
612
+ "initial_balance"
613
+ ] = total_amount[unaffected_id]["initial_balance"]
614
+ if foreign_currency:
615
+ total_amount[unaffected_id]["group_by_data"][0][
616
+ "ending_currency_balance"
617
+ ] = total_amount[unaffected_id]["ending_currency_balance"]
618
+ total_amount[unaffected_id]["group_by_data"][0][
619
+ "initial_currency_balance"
620
+ ] = total_amount[unaffected_id]["initial_currency_balance"]
521
621
  return total_amount, accounts_data, partners_data
522
622
 
623
+ def _get_data_grouped(self, total_amount, accounts_data, foreign_currency):
624
+ """Get the data grouped by analytical account instead of as used
625
+ "without grouping".
626
+ """
627
+ trial_balance = {}
628
+ total_amount_grouped = {"type": "total", "name": _("TOTAL")}
629
+ f_names = [
630
+ "credit",
631
+ "debit",
632
+ "balance",
633
+ "initial_balance",
634
+ "ending_balance",
635
+ "initial_currency_balance",
636
+ "ending_currency_balance",
637
+ ]
638
+ for f_name in f_names:
639
+ total_amount_grouped[f_name] = 0
640
+ for a_id in list(total_amount.keys()):
641
+ for key in list(total_amount[a_id]["group_by_data"].keys()):
642
+ total_amount_item2 = total_amount[a_id]["group_by_data"][key]
643
+ if key not in trial_balance:
644
+ trial_balance[key] = {}
645
+ for f_name in f_names:
646
+ if f_name in total_amount_item2:
647
+ trial_balance[key][f_name] = 0
648
+ trial_balance[key]["account_data"] = {}
649
+ for f_name in f_names:
650
+ if f_name in total_amount_item2:
651
+ trial_balance[key][f_name] += total_amount_item2[f_name]
652
+ # Prepare data_item
653
+ data_item = total_amount_item2
654
+ data_item["type"] = "account_type"
655
+ data_item["id"] = a_id
656
+ data_item["name"] = accounts_data[a_id]["name"]
657
+ data_item["code"] = accounts_data[a_id]["code"]
658
+ if foreign_currency:
659
+ data_item["currency_id"] = accounts_data[a_id]["currency_id"]
660
+ data_item["currency_name"] = accounts_data[a_id]["currency_name"]
661
+ trial_balance[key]["account_data"][a_id] = data_item
662
+ analytic_account_ids = list(trial_balance.keys())
663
+ aa_data = {}
664
+ aaa_model = self.env["account.analytic.account"].with_context(active_test=False)
665
+ analytic_accounts = aaa_model.search_read(
666
+ domain=[("id", "in", analytic_account_ids)],
667
+ fields=["display_name"],
668
+ )
669
+ for aa in analytic_accounts:
670
+ aa_data[aa["id"]] = aa
671
+ for aa_id in analytic_account_ids:
672
+ trial_balance[aa_id]["id"] = aa_id
673
+ trial_balance[aa_id]["type"] = "analytic_account_type"
674
+ trial_balance[aa_id]["name"] = (
675
+ aa_data[aa_id]["display_name"]
676
+ if aa_id in aa_data
677
+ else _("Without analytic account")
678
+ )
679
+ account_data_item = list(trial_balance[aa_id]["account_data"].values())
680
+ account_data_item = sorted(account_data_item, key=lambda k: k["code"])
681
+ trial_balance[aa_id]["account_data"] = account_data_item
682
+ for f_name in f_names:
683
+ if f_name in trial_balance[aa_id]:
684
+ total_amount_grouped[f_name] += trial_balance[aa_id][f_name]
685
+ trial_balance = list(trial_balance.values())
686
+ trial_balance = sorted(trial_balance, key=lambda k: k["name"])
687
+ return trial_balance, total_amount_grouped
688
+
523
689
  def _get_hierarchy_groups(self, group_ids, groups_data, foreign_currency):
524
690
  for group_id in group_ids:
525
691
  parent_id = groups_data[group_id]["parent_id"]
@@ -692,6 +858,7 @@ class TrialBalanceReport(models.AbstractModel):
692
858
  only_posted_moves = data["only_posted_moves"]
693
859
  unaffected_earnings_account = data["unaffected_earnings_account"]
694
860
  fy_start_date = data["fy_start_date"]
861
+ grouped_by = data["grouped_by"]
695
862
  total_amount, accounts_data, partners_data = self._get_data(
696
863
  account_ids,
697
864
  journal_ids,
@@ -705,7 +872,14 @@ class TrialBalanceReport(models.AbstractModel):
705
872
  hide_account_at_0,
706
873
  unaffected_earnings_account,
707
874
  fy_start_date,
875
+ grouped_by,
708
876
  )
877
+ trial_balance_grouped = False
878
+ total_amount_grouped = False
879
+ if grouped_by:
880
+ trial_balance_grouped, total_amount_grouped = self._get_data_grouped(
881
+ total_amount, accounts_data, foreign_currency
882
+ )
709
883
  trial_balance = []
710
884
  if not show_partner_details:
711
885
  for account_id in accounts_data.keys():
@@ -716,6 +890,16 @@ class TrialBalanceReport(models.AbstractModel):
716
890
  "debit": total_amount[account_id]["debit"],
717
891
  "balance": total_amount[account_id]["balance"],
718
892
  "ending_balance": total_amount[account_id]["ending_balance"],
893
+ "group_by": (
894
+ total_amount[account_id]["group_by"]
895
+ if "group_by" in total_amount[account_id]
896
+ else False
897
+ ),
898
+ "group_by_data": (
899
+ total_amount[account_id]["group_by_data"]
900
+ if "group_by_data" in total_amount[account_id]
901
+ else False
902
+ ),
719
903
  "type": "account_type",
720
904
  }
721
905
  )
@@ -769,9 +953,12 @@ class TrialBalanceReport(models.AbstractModel):
769
953
  "show_hierarchy": show_hierarchy,
770
954
  "hide_parent_hierarchy_level": data["hide_parent_hierarchy_level"],
771
955
  "trial_balance": trial_balance,
956
+ "trial_balance_grouped": trial_balance_grouped,
772
957
  "total_amount": total_amount,
958
+ "total_amount_grouped": total_amount_grouped,
773
959
  "accounts_data": accounts_data,
774
960
  "partners_data": partners_data,
775
961
  "show_hierarchy_level": show_hierarchy_level,
776
962
  "currency_model": self.env["res.currency"],
963
+ "grouped_by": grouped_by,
777
964
  }
@@ -166,7 +166,9 @@ class TrialBalanceXslx(models.AbstractModel):
166
166
  "report.account_financial_report.trial_balance"
167
167
  ]._get_report_values(report, data)
168
168
  trial_balance = res_data["trial_balance"]
169
+ trial_balance_grouped = res_data["trial_balance_grouped"]
169
170
  total_amount = res_data["total_amount"]
171
+ total_amount_grouped = res_data["total_amount_grouped"]
170
172
  partners_data = res_data["partners_data"]
171
173
  accounts_data = res_data["accounts_data"]
172
174
  show_hierarchy = res_data["show_hierarchy"]
@@ -175,22 +177,40 @@ class TrialBalanceXslx(models.AbstractModel):
175
177
  foreign_currency = res_data["foreign_currency"]
176
178
  limit_hierarchy_level = res_data["limit_hierarchy_level"]
177
179
  hide_parent_hierarchy_level = res_data["hide_parent_hierarchy_level"]
180
+ grouped_by = res_data["grouped_by"]
178
181
  if not show_partner_details:
179
- # Display array header for account lines
180
- self.write_array_header(report_data)
181
-
182
- # For each account
183
- if not show_partner_details:
184
- for balance in trial_balance:
185
- if show_hierarchy and limit_hierarchy_level:
186
- if show_hierarchy_level > balance["level"] and (
187
- not hide_parent_hierarchy_level
188
- or (show_hierarchy_level - 1) == balance["level"]
189
- ):
190
- # Display account lines
182
+ if grouped_by:
183
+ # For each grouped
184
+ for grouped_item in trial_balance_grouped:
185
+ self.write_array_title(grouped_item["name"], report_data)
186
+ # Display array header for account lines
187
+ self.write_array_header(report_data)
188
+ # For each account
189
+ for balance in grouped_item["account_data"]:
190
+ self.write_line_from_dict(balance, report_data)
191
+ # Footer with totals
192
+ grouped_item["code"] = ""
193
+ grouped_item["currency_id"] = False
194
+ self.write_account_footer(grouped_item, _("Total"), report_data)
195
+ report_data["row_pos"] += 1
196
+ # Last line with totals
197
+ total_amount_grouped["currency_id"] = False
198
+ total_amount_grouped["code"] = ""
199
+ self.write_account_footer(total_amount_grouped, _("TOTAL"), report_data)
200
+ else:
201
+ # Display array header for account lines
202
+ self.write_array_header(report_data)
203
+ # For each account
204
+ for balance in trial_balance:
205
+ if show_hierarchy and limit_hierarchy_level:
206
+ if show_hierarchy_level > balance["level"] and (
207
+ not hide_parent_hierarchy_level
208
+ or (show_hierarchy_level - 1) == balance["level"]
209
+ ):
210
+ # Display account lines
211
+ self.write_line_from_dict(balance, report_data)
212
+ else:
191
213
  self.write_line_from_dict(balance, report_data)
192
- else:
193
- self.write_line_from_dict(balance, report_data)
194
214
  else:
195
215
  for account_id in total_amount:
196
216
  # Write account title
@@ -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:4d56adc35fff26b88020bebb3cd0fcb302b7c7c7483639925cfc4f9b850d8ac4
370
+ !! source digest: sha256:20ae22a108ec709b3bf88351495514d82435eb77953df3f3164d48b9c58886cc
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/17.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-17-0/account-financial-reporting-17-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=17.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
@@ -68,6 +68,15 @@ class TrialBalanceReportWizard(models.TransientModel):
68
68
  comodel_name="account.account",
69
69
  help="Ending account in a range",
70
70
  )
71
+ grouped_by = fields.Selection(
72
+ selection=[("analytic_account", "Analytic Account")], default=False
73
+ )
74
+
75
+ @api.onchange("grouped_by")
76
+ def onchange_grouped_by(self):
77
+ if self.grouped_by == "analytic_account":
78
+ self.show_partner_details = False
79
+ self.show_hierarchy = False
71
80
 
72
81
  @api.onchange("account_code_from", "account_code_to")
73
82
  def on_change_account_range(self):
@@ -208,6 +217,7 @@ class TrialBalanceReportWizard(models.TransientModel):
208
217
  """Handle partners change."""
209
218
  if self.show_partner_details:
210
219
  self.receivable_accounts_only = self.payable_accounts_only = True
220
+ self.grouped_by = False
211
221
  else:
212
222
  self.receivable_accounts_only = self.payable_accounts_only = False
213
223
 
@@ -264,6 +274,7 @@ class TrialBalanceReportWizard(models.TransientModel):
264
274
  "show_partner_details": self.show_partner_details,
265
275
  "unaffected_earnings_account": self.unaffected_earnings_account.id,
266
276
  "account_financial_report_lang": self.env.lang,
277
+ "grouped_by": self.grouped_by,
267
278
  }
268
279
 
269
280
  def _export(self, report_type):
@@ -6,6 +6,14 @@
6
6
  <field name="model">trial.balance.report.wizard</field>
7
7
  <field name="arch" type="xml">
8
8
  <form>
9
+ <div
10
+ class="alert alert-warning"
11
+ role="alert"
12
+ invisible="grouped_by!='analytic_account'"
13
+ >
14
+ <i class="fa fa-exclamation-triangle mr-3" />
15
+ Duplicate amounts may be shown because more than one analytical account may be defined in the journal items.
16
+ </div>
9
17
  <group name="main_info">
10
18
  <field
11
19
  name="company_id"
@@ -23,11 +31,16 @@
23
31
  </group>
24
32
  <group name="other_filters">
25
33
  <field name="target_move" widget="radio" />
34
+ <field name="grouped_by" invisible="1" />
35
+ <field
36
+ name="grouped_by"
37
+ groups="analytic.group_analytic_accounting"
38
+ />
26
39
  <field name="hide_account_at_0" />
27
- <field name="show_partner_details" />
40
+ <field name="show_partner_details" invisible="grouped_by" />
28
41
  <field
29
42
  name="show_hierarchy"
30
- invisible="show_partner_details == True"
43
+ invisible="show_partner_details == True or grouped_by"
31
44
  />
32
45
  <field
33
46
  name="limit_hierarchy_level"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-account_financial_report
3
- Version: 17.0.1.5.0
3
+ Version: 17.0.1.6.0
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: odoo-addon-date_range>=17.0dev,<17.1dev
6
6
  Requires-Dist: odoo-addon-report_xlsx>=17.0dev,<17.1dev
@@ -24,7 +24,7 @@ Account Financial Reports
24
24
  !! This file is generated by oca-gen-addon-readme !!
25
25
  !! changes will be overwritten. !!
26
26
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27
- !! source digest: sha256:4d56adc35fff26b88020bebb3cd0fcb302b7c7c7483639925cfc4f9b850d8ac4
27
+ !! source digest: sha256:20ae22a108ec709b3bf88351495514d82435eb77953df3f3164d48b9c58886cc
28
28
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29
29
 
30
30
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,9 +1,9 @@
1
- odoo/addons/account_financial_report/README.rst,sha256=nZXrW8JxWJui9gBbn10MiAz7hsXLb5PkGFXTlUQcFlw,6888
1
+ odoo/addons/account_financial_report/README.rst,sha256=oO_0SsxTQXpZU7kqNXsuTuVKs4lxAqpwZBiqNZU6l-M,6888
2
2
  odoo/addons/account_financial_report/__init__.py,sha256=YoL8hk5QxSifbFJL7gPzpOSk-3zB1OSHJBXyZK25G6Q,187
3
- odoo/addons/account_financial_report/__manifest__.py,sha256=cuKieDzYeIy5GEXp_PWkUbsDBqPFaKhtzKy5eu1AHCc,2061
3
+ odoo/addons/account_financial_report/__manifest__.py,sha256=JkCJTORSmkyiaMtEiyU-BYu3xmBTAMqUXrL0aAW6Yk8,2061
4
4
  odoo/addons/account_financial_report/menuitems.xml,sha256=k20N6cNRlDsnPhc378MVs7jwzJhbbJQ2k-P3WdsmF_M,1206
5
5
  odoo/addons/account_financial_report/reports.xml,sha256=c2KamS250rNzHUInjNwC0G2dhwiIqtYgbked51PtmVw,9254
6
- odoo/addons/account_financial_report/i18n/account_financial_report.pot,sha256=rEuc-R3lkOS3hEbLoR8Ja2BgKYQIPgCxkGsh9kbniPM,81999
6
+ odoo/addons/account_financial_report/i18n/account_financial_report.pot,sha256=Q3cZhChfXXBRwDPbea4jPIptKFLMIIA3A_Ax964oS6E,83076
7
7
  odoo/addons/account_financial_report/i18n/ar.po,sha256=kB3FxLaMBJfgiZh58x3M7jtbc_H8QoOQDBsymZ7ZuQ8,90247
8
8
  odoo/addons/account_financial_report/i18n/ca.po,sha256=0XI9oBHiwBwj0JThhCnZ0QVX6jBQkU_EZE54X0LXj2E,87050
9
9
  odoo/addons/account_financial_report/i18n/de.po,sha256=ioa7EX0xQijfCSWfyIWWb6Rm2APLqc17ASRsamnPz60,92934
@@ -47,8 +47,8 @@ odoo/addons/account_financial_report/report/journal_ledger.py,sha256=5_w9CmKy_eZ
47
47
  odoo/addons/account_financial_report/report/journal_ledger_xlsx.py,sha256=kY6c-56HHauIyHAc7q5iNerz0gJQrp4ahI4OB1XeCT8,10060
48
48
  odoo/addons/account_financial_report/report/open_items.py,sha256=kRM1kI17LI_LUj3zDFf4zxMtrqDXZAO9fbBAczr04PA,12218
49
49
  odoo/addons/account_financial_report/report/open_items_xlsx.py,sha256=ERlxxsY2ERTimVEpskyp_XdsNuRW0XcFih7pJ2VF914,8366
50
- odoo/addons/account_financial_report/report/trial_balance.py,sha256=Gg8x4JLw-CWRJx4eljA5iNcdbsj0f4zbKieQkHBWYLM,32102
51
- odoo/addons/account_financial_report/report/trial_balance_xlsx.py,sha256=-DcUdiCPAD9uXB1VsfN3EsPJHxgltz246zAUqV_zCxA,12028
50
+ odoo/addons/account_financial_report/report/trial_balance.py,sha256=uprKjuKc6qa2ku1CCSSSETrASJB2tGbmvjtHMdd5pg8,41724
51
+ odoo/addons/account_financial_report/report/trial_balance_xlsx.py,sha256=3wpHQ5JEM9g1pZpS9V7yo5Bed1JEKdMcfxzoq6I55_0,13246
52
52
  odoo/addons/account_financial_report/report/vat_report.py,sha256=eLWr9mk1bOQUPH4FEGDssfhqEfAeZUJV5ryCf8YYea0,10117
53
53
  odoo/addons/account_financial_report/report/vat_report_xlsx.py,sha256=ksdmiHDQZBBtk8fqkxSAS6-nFIyhT-wue4OTSV6xW9c,2307
54
54
  odoo/addons/account_financial_report/report/templates/aged_partner_balance.xml,sha256=IfeLCmOIFqyaEsRnRihb0pXo-deJD41id5qgjE3_Ftw,41020
@@ -56,12 +56,12 @@ odoo/addons/account_financial_report/report/templates/general_ledger.xml,sha256=
56
56
  odoo/addons/account_financial_report/report/templates/journal_ledger.xml,sha256=egiOr0CBtt7c4dY0Ghtf44LxF-ounCUjg77CUDUTpX0,21574
57
57
  odoo/addons/account_financial_report/report/templates/layouts.xml,sha256=gCejPAn8GLrySSve8pGcs0fY5nr48C3mmyuoEJVZkJ4,1526
58
58
  odoo/addons/account_financial_report/report/templates/open_items.xml,sha256=ku84beB5mDed_np9YhZuNygaUsdl1E-_AnlUQpq4Yy4,14834
59
- odoo/addons/account_financial_report/report/templates/trial_balance.xml,sha256=Hu1UeHAmOrvVfHLFfb4qf3eK1Q6aaF_hot_ryL8oQK4,47869
59
+ odoo/addons/account_financial_report/report/templates/trial_balance.xml,sha256=PPUAqjvhKiAbMNa4_oEw8l9YXXhPHEaZVmeLFLo7Tng,53386
60
60
  odoo/addons/account_financial_report/report/templates/vat_report.xml,sha256=2WeL6Njr8LFBtERKmfyi3IH-J1frSO4Gpew-ruzuWNk,8128
61
61
  odoo/addons/account_financial_report/security/ir.model.access.csv,sha256=S1VQLLwLeaOeAMYGqtoOqHUaZVrvDUVE4Z-0-SRjSGQ,1134
62
62
  odoo/addons/account_financial_report/security/security.xml,sha256=YQCXbOuTGHCWGYwGnXMie_0tnWG5zYJGdoeey3o1xaw,382
63
63
  odoo/addons/account_financial_report/static/description/icon.png,sha256=WW-eOIjW5-jo7tgBieNv6K2DUKMoHFSVctnp0htstHI,15230
64
- odoo/addons/account_financial_report/static/description/index.html,sha256=YaMfCifSnadC7tRLC3T6mF384QIMZGKLLA-VaUnPf6M,19748
64
+ odoo/addons/account_financial_report/static/description/index.html,sha256=I_gq_9LVEeKXUZFseDCrzg4jx4VDQ2nciY0sT4SFdN8,19748
65
65
  odoo/addons/account_financial_report/static/src/css/report.css,sha256=Cu4VmyY5tVXIddaojFDsg0Ute2qPCvKbLiimak_X9ik,2361
66
66
  odoo/addons/account_financial_report/static/src/css/report_html.css,sha256=I1kX1RsThtjGNLOaNJEWCvMnB9iAFW6nGkcyFYZzJoA,135
67
67
  odoo/addons/account_financial_report/static/src/js/report.esm.js,sha256=He488vLRaLv6IIuVaNSnNl8kJMIwJmMIv7GkmXyPJZs,2475
@@ -94,11 +94,11 @@ odoo/addons/account_financial_report/wizard/journal_ledger_wizard.py,sha256=CA44
94
94
  odoo/addons/account_financial_report/wizard/journal_ledger_wizard_view.xml,sha256=s3go3x-VSCcr1xNAE3Lzj1FnymyS76hxzazuWtNc91k,2957
95
95
  odoo/addons/account_financial_report/wizard/open_items_wizard.py,sha256=o7MMCsszyzkTCIAO44WgwXzjeLvIyYAbdx5lDn6iWUs,6604
96
96
  odoo/addons/account_financial_report/wizard/open_items_wizard_view.xml,sha256=zLl1eq0LSSnS2S_1lzu3Lwzn2jN1iiyEcbAvjiKqcuw,4689
97
- odoo/addons/account_financial_report/wizard/trial_balance_wizard.py,sha256=zTC-jzvVh3ty3YDtpJ9lN-PWN9eRqKfr1oArNmLjDrM,10824
98
- odoo/addons/account_financial_report/wizard/trial_balance_wizard_view.xml,sha256=HmwfFnzmQvw0wOILH2J1kY3aM8IGZKMBa7CHmMOigiQ,6577
97
+ odoo/addons/account_financial_report/wizard/trial_balance_wizard.py,sha256=YdJr9QeqH9p-AQhkYDWEuNVwxTCz5HSQRe3owx00szI,11224
98
+ odoo/addons/account_financial_report/wizard/trial_balance_wizard_view.xml,sha256=io5d8plYx9YktR79IJMoENQU1CV1HPwdBVamAN4zt7Y,7277
99
99
  odoo/addons/account_financial_report/wizard/vat_report_wizard.py,sha256=pJATDNWLcEWvctby5e5yvv4Kz7YDfCTi7YZP7slA8a4,3424
100
100
  odoo/addons/account_financial_report/wizard/vat_report_wizard_view.xml,sha256=T3P81O4csDGP7Jmf7eAtmbIIldja3IoXbBmweMMt8vA,2330
101
- odoo_addon_account_financial_report-17.0.1.5.0.dist-info/METADATA,sha256=ur-GdQbjzHjZXuU4ShzjAi4Fwu2HfvkuEkBTVgtpw8I,7565
102
- odoo_addon_account_financial_report-17.0.1.5.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
103
- odoo_addon_account_financial_report-17.0.1.5.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
104
- odoo_addon_account_financial_report-17.0.1.5.0.dist-info/RECORD,,
101
+ odoo_addon_account_financial_report-17.0.1.6.0.dist-info/METADATA,sha256=bCTlrPcMhiB0d2jBzzUzb7DdhDEnsN2wSA8j8TvKyuE,7565
102
+ odoo_addon_account_financial_report-17.0.1.6.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
103
+ odoo_addon_account_financial_report-17.0.1.6.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
104
+ odoo_addon_account_financial_report-17.0.1.6.0.dist-info/RECORD,,