odoo-addon-account-financial-report 16.0.1.11.0.1__py3-none-any.whl → 16.0.1.12.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:f09700927327f126c8625b22440d66ffdf4b57ba05e681e1bc7b07537aa8ff1b
10
+ !! source digest: sha256:30ddcc3122b2633ce0882f57c50d49c57f89f72bfdb43b2eabd18baedeaeec35
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": "16.0.1.11.0",
9
+ "version": "16.0.1.12.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
 
@@ -947,6 +955,7 @@ msgstr ""
947
955
  #. module: account_financial_report
948
956
  #: model:ir.model.fields,field_description:account_financial_report.field_general_ledger_report_wizard__grouped_by
949
957
  #: model:ir.model.fields,field_description:account_financial_report.field_open_items_report_wizard__grouped_by
958
+ #: model:ir.model.fields,field_description:account_financial_report.field_trial_balance_report_wizard__grouped_by
950
959
  msgid "Grouped By"
951
960
  msgstr ""
952
961
 
@@ -1614,6 +1623,14 @@ msgstr ""
1614
1623
  msgid "Starting account in a range"
1615
1624
  msgstr ""
1616
1625
 
1626
+ #. module: account_financial_report
1627
+ #. odoo-python
1628
+ #: code:addons/account_financial_report/report/trial_balance.py:0
1629
+ #: code:addons/account_financial_report/report/trial_balance_xlsx.py:0
1630
+ #, python-format
1631
+ msgid "TOTAL"
1632
+ msgstr ""
1633
+
1617
1634
  #. module: account_financial_report
1618
1635
  #: model_terms:ir.ui.view,arch_db:account_financial_report.report_general_ledger_lines
1619
1636
  msgid "Tags"
@@ -1774,7 +1791,10 @@ msgid "To:"
1774
1791
  msgstr ""
1775
1792
 
1776
1793
  #. module: account_financial_report
1794
+ #. odoo-python
1795
+ #: code:addons/account_financial_report/report/trial_balance_xlsx.py:0
1777
1796
  #: model_terms:ir.ui.view,arch_db:account_financial_report.report_aged_partner_balance_account_ending_cumul
1797
+ #, python-format
1778
1798
  msgid "Total"
1779
1799
  msgstr ""
1780
1800
 
@@ -1908,6 +1928,13 @@ msgstr ""
1908
1928
  msgid "With Account Name"
1909
1929
  msgstr ""
1910
1930
 
1931
+ #. module: account_financial_report
1932
+ #. odoo-python
1933
+ #: code:addons/account_financial_report/report/trial_balance.py:0
1934
+ #, python-format
1935
+ msgid "Without analytic account"
1936
+ msgstr ""
1937
+
1911
1938
  #. module: account_financial_report
1912
1939
  #. odoo-python
1913
1940
  #: 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:f09700927327f126c8625b22440d66ffdf4b57ba05e681e1bc7b07537aa8ff1b
370
+ !! source digest: sha256:30ddcc3122b2633ce0882f57c50d49c57f89f72bfdb43b2eabd18baedeaeec35
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/16.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-16-0/account-financial-reporting-16-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=16.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
@@ -67,6 +67,15 @@ class TrialBalanceReportWizard(models.TransientModel):
67
67
  comodel_name="account.account",
68
68
  help="Ending account in a range",
69
69
  )
70
+ grouped_by = fields.Selection(
71
+ selection=[("analytic_account", "Analytic Account")], default=False
72
+ )
73
+
74
+ @api.onchange("grouped_by")
75
+ def onchange_grouped_by(self):
76
+ if self.grouped_by == "analytic_account":
77
+ self.show_partner_details = False
78
+ self.show_hierarchy = False
70
79
 
71
80
  @api.onchange("account_code_from", "account_code_to")
72
81
  def on_change_account_range(self):
@@ -202,6 +211,7 @@ class TrialBalanceReportWizard(models.TransientModel):
202
211
  """Handle partners change."""
203
212
  if self.show_partner_details:
204
213
  self.receivable_accounts_only = self.payable_accounts_only = True
214
+ self.grouped_by = False
205
215
  else:
206
216
  self.receivable_accounts_only = self.payable_accounts_only = False
207
217
 
@@ -258,6 +268,7 @@ class TrialBalanceReportWizard(models.TransientModel):
258
268
  "show_partner_details": self.show_partner_details,
259
269
  "unaffected_earnings_account": self.unaffected_earnings_account.id,
260
270
  "account_financial_report_lang": self.env.lang,
271
+ "grouped_by": self.grouped_by,
261
272
  }
262
273
 
263
274
  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
+ attrs="{'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"
@@ -25,11 +33,19 @@
25
33
  </group>
26
34
  <group name="other_filters">
27
35
  <field name="target_move" widget="radio" />
36
+ <field name="grouped_by" invisible="1" />
37
+ <field
38
+ name="grouped_by"
39
+ groups="analytic.group_analytic_accounting"
40
+ />
28
41
  <field name="hide_account_at_0" />
29
- <field name="show_partner_details" />
42
+ <field
43
+ name="show_partner_details"
44
+ attrs="{'invisible':[('grouped_by','!=',False)]}"
45
+ />
30
46
  <field
31
47
  name="show_hierarchy"
32
- attrs="{'invisible':[('show_partner_details','=',True)]}"
48
+ attrs="{'invisible':['|', ('show_partner_details','=',True),('grouped_by','!=',False)]}"
33
49
  />
34
50
  <field
35
51
  name="limit_hierarchy_level"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-account_financial_report
3
- Version: 16.0.1.11.0.1
3
+ Version: 16.0.1.12.0
4
4
  Summary: OCA Financial Reports
5
5
  Home-page: https://github.com/OCA/account-financial-reporting
6
6
  Author: Camptocamp,initOS GmbH,redCOR AG,ForgeFlow,Odoo Community Association (OCA)
@@ -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:f09700927327f126c8625b22440d66ffdf4b57ba05e681e1bc7b07537aa8ff1b
27
+ !! source digest: sha256:30ddcc3122b2633ce0882f57c50d49c57f89f72bfdb43b2eabd18baedeaeec35
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=YrPx_wNLKPaHficOB26yXNRvVDO0flItMU6p71yJOfA,6972
1
+ odoo/addons/account_financial_report/README.rst,sha256=HuO8JolKxLYLKfivttj6OUXmKQESI3OLwVMUSiolIlE,6972
2
2
  odoo/addons/account_financial_report/__init__.py,sha256=YoL8hk5QxSifbFJL7gPzpOSk-3zB1OSHJBXyZK25G6Q,187
3
- odoo/addons/account_financial_report/__manifest__.py,sha256=GJHjQ9O_Yf4zueWs2YwqyZBf0pWxxXQa7HGoqffQ-Vc,2062
3
+ odoo/addons/account_financial_report/__manifest__.py,sha256=UUo-gACinBRo0on7qy6Gu-X52KPLuV_OTuoIISC3qdc,2062
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=bLPftbmVVx8olSZ-QCVKZQx1Io4ZfQSwhzvaCo2bWy0,83771
6
+ odoo/addons/account_financial_report/i18n/account_financial_report.pot,sha256=pdvz6OIbOJwgx0NqT6EX83PEu3LtW-SJdzucQu7ihk8,84848
7
7
  odoo/addons/account_financial_report/i18n/ar.po,sha256=NZeQk53pe7f2gZvxTaLH0WANLATy_lEtA7EDITH7N1Q,91684
8
8
  odoo/addons/account_financial_report/i18n/ca.po,sha256=rrafvhfR1Y7wN6ri5539ilx-44O-NL5Z3kRdwi4_euo,90545
9
9
  odoo/addons/account_financial_report/i18n/de.po,sha256=stXVO3YQWuFlJUxaTUaF22BQAgKAyLsKpNnl1-Rifgw,94371
@@ -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=Pp7iDkBjSk0BqZkSPAiKI2hBHNcjKYjZoBxuL_ENz5E,10126
48
48
  odoo/addons/account_financial_report/report/open_items.py,sha256=JjPpILfCbXf1Dx8JB_K8Muy2uGkfchh802Ghr2EoN0c,12561
49
49
  odoo/addons/account_financial_report/report/open_items_xlsx.py,sha256=iv32561UaRppS5XyclMnYwLHJ2icYUA1hNeUOkcl8ng,14960
50
- odoo/addons/account_financial_report/report/trial_balance.py,sha256=nW9EGutFp3X9-uYniYZtta3xXl4PwWtgmLDQ7KE4vPQ,32102
51
- odoo/addons/account_financial_report/report/trial_balance_xlsx.py,sha256=phPDqy4pXbd94oFmwjPNe_XKoMCgcTXPE6HOkGJJDko,12060
50
+ odoo/addons/account_financial_report/report/trial_balance.py,sha256=8LZzdyv_udBdE4JiUtRYm4cGj_hf7mcVDnaxZJWMpqc,41724
51
+ odoo/addons/account_financial_report/report/trial_balance_xlsx.py,sha256=iGn0bVz63eMNL6Xdnjk8r4JdZrX2ojnEm9E0BaOcDoY,13278
52
52
  odoo/addons/account_financial_report/report/vat_report.py,sha256=pDwcCqbWTOveJD6GbOwJxU35kt8gMnzZ0rbRu2_h3KI,10317
53
53
  odoo/addons/account_financial_report/report/vat_report_xlsx.py,sha256=aa0dLzYdywjmO63ONRYUBTpSGmsPfEjX60CkUbULuo8,2317
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=03oeGZDxEysS8TVpm012DGQVlEYby_OC2Ob_WsnKX6o,21559
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=-xlvfxA0kPLQTbQ7PgiAFIM8u9r0rTXvzHXLn9biknQ,8190
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=gpNJnzruXfeYskn26FqY9U04FiuTf8vgLCKEGY8PADM,422
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=yGTSdbm4-LCrJ8yb9VrxkEG5E7Cnv6YaFSBMq3Qehr0,20035
64
+ odoo/addons/account_financial_report/static/description/index.html,sha256=fyOrD1a2BUjkjlNc4HNjgXDjoZsoFvfYxEl1g9cmfKU,20035
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=zaQ1zjcEViK6hUybGu38gFCy9tSTLcBNt8LED7RBPW8,7383
96
96
  odoo/addons/account_financial_report/wizard/open_items_wizard_view.xml,sha256=8dMmYxRm0u8jkhSZ8NVq8_SG6Ll_HPDGjhaql5_JgoU,4741
97
- odoo/addons/account_financial_report/wizard/trial_balance_wizard.py,sha256=k4SVHSblodaFgtE3v-oPqVW_wuNA4HcrYWInQvQlTcE,10583
98
- odoo/addons/account_financial_report/wizard/trial_balance_wizard_view.xml,sha256=7oNGPs3s8DVw3movVGe2ryRUNl1MtN7O76UH8zaFFtI,7048
97
+ odoo/addons/account_financial_report/wizard/trial_balance_wizard.py,sha256=ej-W_bLNQ2Dcfe38JxORGRwjc-bncqwWU00Hx-Mu658,10983
98
+ odoo/addons/account_financial_report/wizard/trial_balance_wizard_view.xml,sha256=5c2fn2T-rVoj_VYbibKphXVWh78ia-m4MoZW6P1hM8A,7904
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-16.0.1.11.0.1.dist-info/METADATA,sha256=JJYRAiKLRo0JhE5e6EVWfz7wp612GUpEkt4MdwABRbU,7652
102
- odoo_addon_account_financial_report-16.0.1.11.0.1.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
103
- odoo_addon_account_financial_report-16.0.1.11.0.1.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
104
- odoo_addon_account_financial_report-16.0.1.11.0.1.dist-info/RECORD,,
101
+ odoo_addon_account_financial_report-16.0.1.12.0.dist-info/METADATA,sha256=DxEjND6DVKomHT8fNfJGqr7oPBgp0ufDr88XSMOxt6g,7650
102
+ odoo_addon_account_financial_report-16.0.1.12.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
103
+ odoo_addon_account_financial_report-16.0.1.12.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
104
+ odoo_addon_account_financial_report-16.0.1.12.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.44.0)
2
+ Generator: bdist_wheel (0.45.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5