odoo-addon-mis-builder 17.0.1.2.0.2__py3-none-any.whl → 17.0.1.2.1__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.
@@ -7,7 +7,7 @@ MIS Builder
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:a2cbe7d88f7c0d1b932bbfb184b37bc218fd9a523c1e1b0a904448f996590942
10
+ !! source digest: sha256:b1c757f0e7b435600076d75a90bfb1bcc766368d4513957efb2316e2c3efd599
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
@@ -3,7 +3,7 @@
3
3
 
4
4
  {
5
5
  "name": "MIS Builder",
6
- "version": "17.0.1.2.0",
6
+ "version": "17.0.1.2.1",
7
7
  "category": "Reporting",
8
8
  "summary": """
9
9
  Build 'Management Information System' Reports and Dashboards
@@ -56,6 +56,13 @@ class Accumulator:
56
56
  custom_field: AccountingNone for custom_field in custom_field_names
57
57
  }
58
58
 
59
+ def has_data(self):
60
+ return (
61
+ self.debit is not AccountingNone
62
+ or self.credit is not AccountingNone
63
+ or any(v is not AccountingNone for v in self.custom_fields.values())
64
+ )
65
+
59
66
  def add_debit_credit(self, debit, credit):
60
67
  self.debit += debit
61
68
  self.credit += credit
@@ -579,7 +586,7 @@ class AccountingExpressionProcessor:
579
586
  key = (ml_domain, mode)
580
587
  account_ids_data = self._data[key]
581
588
  for account_id in self._account_ids_by_acc_domain[acc_domain]:
582
- if account_id in account_ids_data:
589
+ if account_ids_data[account_id].has_data():
583
590
  account_ids.add(account_id)
584
591
 
585
592
  for account_id in account_ids:
@@ -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:a2cbe7d88f7c0d1b932bbfb184b37bc218fd9a523c1e1b0a904448f996590942
370
+ !! source digest: sha256:b1c757f0e7b435600076d75a90bfb1bcc766368d4513957efb2316e2c3efd599
371
371
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372
372
  <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.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/mis-builder/tree/17.0/mis_builder"><img alt="OCA/mis-builder" src="https://img.shields.io/badge/github-OCA%2Fmis--builder-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/mis-builder-17-0/mis-builder-17-0-mis_builder"><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/mis-builder&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 allows you to build Management Information Systems
@@ -55,6 +55,14 @@ class TestAEP(common.TransactionCase):
55
55
  "account_type": "income",
56
56
  }
57
57
  )
58
+ self.account_in_no_data = self.account_model.create(
59
+ {
60
+ "company_id": self.company.id,
61
+ "code": "700INNODATA",
62
+ "name": "Income (no data)",
63
+ "account_type": "income",
64
+ }
65
+ )
58
66
  # create journal
59
67
  self.journal = self.journal_model.create(
60
68
  {
@@ -103,6 +111,7 @@ class TestAEP(common.TransactionCase):
103
111
  self.aep.parse_expr("crdp[700I%]")
104
112
  self.aep.parse_expr("bali[400%]")
105
113
  self.aep.parse_expr("bale[700%]")
114
+ self.aep.parse_expr("balp[700I%]")
106
115
  self.aep.parse_expr("fldp.quantity[700%]")
107
116
  self.aep.parse_expr("balp[]" "[('account_id.code', '=', '400AR')]")
108
117
  self.aep.parse_expr(
@@ -306,6 +315,17 @@ class TestAEP(common.TransactionCase):
306
315
  end = self._eval_by_account_id("bale[]")
307
316
  self.assertEqual(end, {self.account_ar.id: 900, self.account_in.id: -800})
308
317
 
318
+ def test_aep_by_account_no_data(self):
319
+ """Test that accounts with no data are not returned."""
320
+ self.aep.done_parsing()
321
+ self._do_queries(
322
+ datetime.date(self.curr_year, 3, 1), datetime.date(self.curr_year, 3, 31)
323
+ )
324
+ variation = self._eval("balp[700I%]")
325
+ self.assertEqual(variation, -500)
326
+ variation_by_account = self._eval_by_account_id("balp[700I%]")
327
+ self.assertEqual(variation_by_account, {self.account_in.id: -500})
328
+
309
329
  def test_aep_convenience_methods(self):
310
330
  initial = AEP.get_balances_initial(self.company, time.strftime("%Y") + "-03-01")
311
331
  self.assertEqual(
@@ -358,10 +378,13 @@ class TestAEP(common.TransactionCase):
358
378
  self.assertEqual(account_ids, {self.account_in.id})
359
379
  expr = "balp[700%]"
360
380
  account_ids = self.aep.get_account_ids_for_expr(expr)
361
- self.assertEqual(account_ids, {self.account_in.id})
381
+ self.assertEqual(account_ids, {self.account_in.id, self.account_in_no_data.id})
362
382
  expr = "bali[400%], bale[700%]" # subkpis combined expression
363
383
  account_ids = self.aep.get_account_ids_for_expr(expr)
364
- self.assertEqual(account_ids, {self.account_in.id, self.account_ar.id})
384
+ self.assertEqual(
385
+ account_ids,
386
+ {self.account_in.id, self.account_ar.id, self.account_in_no_data.id},
387
+ )
365
388
 
366
389
  def test_get_aml_domain_for_expr(self):
367
390
  self.aep.done_parsing()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-mis_builder
3
- Version: 17.0.1.2.0.2
3
+ Version: 17.0.1.2.1
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
@@ -25,7 +25,7 @@ MIS Builder
25
25
  !! This file is generated by oca-gen-addon-readme !!
26
26
  !! changes will be overwritten. !!
27
27
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28
- !! source digest: sha256:a2cbe7d88f7c0d1b932bbfb184b37bc218fd9a523c1e1b0a904448f996590942
28
+ !! source digest: sha256:b1c757f0e7b435600076d75a90bfb1bcc766368d4513957efb2316e2c3efd599
29
29
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
30
30
 
31
31
  .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
@@ -1,6 +1,6 @@
1
- odoo/addons/mis_builder/README.rst,sha256=_UWAM-W4BCGuRm9Za3zUQ1o6M3UazO61YAS2JWmTwc0,30016
1
+ odoo/addons/mis_builder/README.rst,sha256=RwfHCe7fFtBKeIppGuRDjHY5PMp4oTY9zvymrJ9NKY0,30016
2
2
  odoo/addons/mis_builder/__init__.py,sha256=-8wG-57WxKfMMA5_TFzpubBcfthcsAP5vjTkhXKf7ds,185
3
- odoo/addons/mis_builder/__manifest__.py,sha256=c9qmMqRjfOEUwDSp7cDLd06Ii-Ygn9nVmDLXkOvMTFg,1556
3
+ odoo/addons/mis_builder/__manifest__.py,sha256=OZ1gHD_P2zUWtAK7aFShBJnotRPnAAk_YD5ahU2mwH0,1556
4
4
  odoo/addons/mis_builder/datas/ir_cron.xml,sha256=H5nnz-4CqZPVveJdRoJ_DrBOOsihK4XwOjWcSMYv68A,558
5
5
  odoo/addons/mis_builder/i18n/ca.po,sha256=b51cobs_hMSWOzwBtOfAybGK6XkkQ8i5wDFrp907IOQ,91900
6
6
  odoo/addons/mis_builder/i18n/de.po,sha256=oz0ECpiPHS-sSR6UUJJSW5GnmFPUn1FRLG6yUCI2d1U,65115
@@ -20,7 +20,7 @@ odoo/addons/mis_builder/i18n/tr.po,sha256=NVl2xJmSb5fSf-AGBQfDEB6QvJefHN7KFT3z3F
20
20
  odoo/addons/mis_builder/i18n/zh_CN.po,sha256=oSLy8YOF5LV2p3iFiWtQNn8QWNdKTkuIpjCIFf661AA,72558
21
21
  odoo/addons/mis_builder/models/__init__.py,sha256=_h9tbt-H0JjtHL6kI7-wiEnd5u2qkP855DevyjxLBbI,331
22
22
  odoo/addons/mis_builder/models/accounting_none.py,sha256=6EE6x4slUbyP2TVnHpilsWu8XqWhGZMt79uBOmNLcVs,4156
23
- odoo/addons/mis_builder/models/aep.py,sha256=2quKRHL2mvbMaTQlnhN_YbAxit9gXhTYb10d0qxbZ0s,26305
23
+ odoo/addons/mis_builder/models/aep.py,sha256=8K3bzwCC8eSTIqMh1JpH8-dKB8UCGEKUZDI40Mu-z0c,26541
24
24
  odoo/addons/mis_builder/models/aggregate.py,sha256=ffOZq2-R7st-1Hsw-lFfiwkMa46ToJZ7m0K6Z9P_gwQ,2892
25
25
  odoo/addons/mis_builder/models/data_error.py,sha256=ltTIrFCbsxYXmdPTVFVJj3ejZxyc83NEsIFQs2s3-L0,442
26
26
  odoo/addons/mis_builder/models/expression_evaluator.py,sha256=bMCqqVwQ3_8JED2ddZPAaUz0jWaYRK1VcjYp9DXm_Kk,2458
@@ -52,7 +52,7 @@ odoo/addons/mis_builder/static/description/ex_report_preview.png,sha256=NKBRn70E
52
52
  odoo/addons/mis_builder/static/description/ex_report_settings.png,sha256=T7j_3DUUtdZ6XKsAvJ3uKsK_-GtRl0sRPD68ZOa6ebA,103790
53
53
  odoo/addons/mis_builder/static/description/ex_report_template.png,sha256=c8KgzyGD5QiZNCmxaVR4u3h1K0TJN50uXZWoNsieN8A,100278
54
54
  odoo/addons/mis_builder/static/description/icon.png,sha256=0OCahdqDvaS_CHV97ZCbajW0_AcBLVVvja_EJA2mC6s,4770
55
- odoo/addons/mis_builder/static/description/index.html,sha256=4OtrUMI5Ec-RZim_uclTDQ4L9qyim5JVOBoewDVZHVc,56611
55
+ odoo/addons/mis_builder/static/description/index.html,sha256=cvmphf3iD0S0rRDeZCvw3GlxTy9cNzsm0DWRwG1G3VM,56611
56
56
  odoo/addons/mis_builder/static/src/components/mis_report_widget.css,sha256=ew7iozGAv9ue3KPf_8qA_AhHlNGis7pJu8A7tc6CO4Y,1198
57
57
  odoo/addons/mis_builder/static/src/components/mis_report_widget.esm.js,sha256=RmXA9UKreBrKOT4RxjCumskqZMV0O8p4NiWD3ereCOg,5529
58
58
  odoo/addons/mis_builder/static/src/components/mis_report_widget.xml,sha256=mKgFff56wLRgJzq8Cdc9oZVajkTY73u_S1S0-Z-oHhQ,5648
@@ -61,7 +61,7 @@ odoo/addons/mis_builder/tests/__init__.py,sha256=ilgojed90T4NL_YXgVf3CACd8fo7nxp
61
61
  odoo/addons/mis_builder/tests/common.py,sha256=7LqnpPyJ8yOi5gA4CwiKZaep6NGY_vIDnK36u8WVC1o,1918
62
62
  odoo/addons/mis_builder/tests/fake_models.py,sha256=DWJsXiIVVXZwXfLQ-9TmUs3eM5KBCXibS2qRXgkFt1c,177
63
63
  odoo/addons/mis_builder/tests/test_accounting_none.py,sha256=satnhbRuI4DdWIOpe-mG7sW9KlamgnyvoVaPQlqZ9FA,239
64
- odoo/addons/mis_builder/tests/test_aep.py,sha256=jS0YSV3YUGdB5ljvjb8yiQNhCKvbvNZQcBeCGZ3LLnk,19641
64
+ odoo/addons/mis_builder/tests/test_aep.py,sha256=V_eBAdq7uRRmp7h_PWFEp7dXT4SwwVIxeAMypVZqcEA,20542
65
65
  odoo/addons/mis_builder/tests/test_aggregate.py,sha256=ZXEVW0hMZYUIJM6ikQpmBH9Xc9TaY46xYbBsH8vcXDQ,226
66
66
  odoo/addons/mis_builder/tests/test_data_sources.py,sha256=KK8sycuYtaa6o8s2Lzehi3XbYwGVViL-cE3eReOggAk,7792
67
67
  odoo/addons/mis_builder/tests/test_kpi_data.py,sha256=PrgfJIkrw5liJ8InLoXCGXMD-uc7y23J-7R-UYxWIO8,4860
@@ -80,7 +80,7 @@ odoo/addons/mis_builder/views/mis_report_style.xml,sha256=5cK60KTio96_roE0Xcm91W
80
80
  odoo/addons/mis_builder/wizard/__init__.py,sha256=qlc_LcwA6U3Wgv-qC9uacPjZXV3jShrV_RBiuKCBNPA,158
81
81
  odoo/addons/mis_builder/wizard/mis_builder_dashboard.py,sha256=DIas3iie9fb2WzJ2eGcrVc7y64IuRyxSG7tJrcV-53g,3404
82
82
  odoo/addons/mis_builder/wizard/mis_builder_dashboard.xml,sha256=ArG86hdyRWm531nK0hYU-j1N87yXtpDVpSuKTmOB47I,1440
83
- odoo_addon_mis_builder-17.0.1.2.0.2.dist-info/METADATA,sha256=f9eQ57RyJiQyxmQQ8NTnVRcABMzkd9nQu-1mEWH0i5Q,30732
84
- odoo_addon_mis_builder-17.0.1.2.0.2.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
85
- odoo_addon_mis_builder-17.0.1.2.0.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
86
- odoo_addon_mis_builder-17.0.1.2.0.2.dist-info/RECORD,,
83
+ odoo_addon_mis_builder-17.0.1.2.1.dist-info/METADATA,sha256=jUBucidFUbpw9Xy58GZH2DQ6JCMUESLjT7E-oRTZD7A,30730
84
+ odoo_addon_mis_builder-17.0.1.2.1.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
85
+ odoo_addon_mis_builder-17.0.1.2.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
86
+ odoo_addon_mis_builder-17.0.1.2.1.dist-info/RECORD,,