odoo14-addon-ddmrp 14.0.1.22.6.dev1__py3-none-any.whl → 14.0.1.23.1.dev1__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.
Files changed (28) hide show
  1. odoo/addons/ddmrp/README.rst +1 -1
  2. odoo/addons/ddmrp/__manifest__.py +2 -2
  3. odoo/addons/ddmrp/demo/mrp_bom_demo.xml +0 -5
  4. odoo/addons/ddmrp/i18n/ddmrp.pot +46 -0
  5. odoo/addons/ddmrp/i18n/es.po +51 -2
  6. odoo/addons/ddmrp/i18n/es_AR.po +49 -0
  7. odoo/addons/ddmrp/i18n/fr.po +49 -0
  8. odoo/addons/ddmrp/i18n/id.po +49 -0
  9. odoo/addons/ddmrp/i18n/it.po +49 -0
  10. odoo/addons/ddmrp/i18n/pt_BR.po +49 -0
  11. odoo/addons/ddmrp/i18n/zh_Hans.po +49 -0
  12. odoo/addons/ddmrp/models/mrp_bom.py +49 -12
  13. odoo/addons/ddmrp/models/stock_buffer.py +2 -7
  14. odoo/addons/ddmrp/report/mrp_report_bom_structure.xml +3 -12
  15. odoo/addons/ddmrp/security/ir.model.access.csv +1 -0
  16. odoo/addons/ddmrp/static/description/index.html +1 -1
  17. odoo/addons/ddmrp/static/src/js/mrp_bom_report.js +33 -0
  18. odoo/addons/ddmrp/tests/test_ddmrp.py +49 -4
  19. odoo/addons/ddmrp/views/ddmrp_assets_backend.xml +4 -0
  20. odoo/addons/ddmrp/views/mrp_bom_view.xml +13 -2
  21. odoo/addons/ddmrp/views/stock_buffer_view.xml +1 -0
  22. odoo/addons/ddmrp/wizards/__init__.py +1 -0
  23. odoo/addons/ddmrp/wizards/mrp_bom_change_location.py +42 -0
  24. odoo/addons/ddmrp/wizards/mrp_bom_change_location.xml +31 -0
  25. {odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info → odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info}/METADATA +2 -3
  26. {odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info → odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info}/RECORD +28 -25
  27. {odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info → odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info}/WHEEL +0 -0
  28. {odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info → odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info}/top_level.txt +0 -0
@@ -234,6 +234,7 @@ class StockBuffer(models.Model):
234
234
  action = self.product_id.action_view_bom()
235
235
  boms = self._get_manufactured_bom(limit=100)
236
236
  action["domain"] = [("id", "in", boms.ids)]
237
+ action["context"] = {"location_id": self.location_id.id}
237
238
  return action
238
239
 
239
240
  @api.constrains("product_id")
@@ -924,18 +925,12 @@ class StockBuffer(models.Model):
924
925
  rec.order_spike_threshold = 0.5 * rec.red_zone_qty
925
926
 
926
927
  def _get_manufactured_bom(self, limit=1):
927
- locations = self.env["stock.location"].search(
928
- [("id", "child_of", [self.location_id.id])]
929
- )
930
928
  return self.env["mrp.bom"].search(
931
929
  [
932
930
  "|",
933
931
  ("product_id", "=", self.product_id.id),
934
932
  ("product_tmpl_id", "=", self.product_id.product_tmpl_id.id),
935
933
  "|",
936
- ("location_id", "in", locations.ids),
937
- ("location_id", "=", False),
938
- "|",
939
934
  ("company_id", "=", self.company_id.id),
940
935
  ("company_id", "=", False),
941
936
  ],
@@ -947,7 +942,7 @@ class StockBuffer(models.Model):
947
942
  for rec in self:
948
943
  if rec.buffer_profile_id.item_type == "manufactured":
949
944
  bom = rec._get_manufactured_bom()
950
- dlt = bom.dlt
945
+ dlt = bom.with_context(location_id=rec.location_id.id).dlt
951
946
  elif rec.buffer_profile_id.item_type == "distributed":
952
947
  dlt = rec.lead_days
953
948
  else:
@@ -1,9 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8" ?>
2
2
  <odoo>
3
- <template
4
- id="report_mrpbomstructure_ddmrp"
5
- inherit_id="mrp_bom_location.report_mrpbomstructure_location"
6
- >
3
+ <template id="report_mrpbomstructure_ddmrp" inherit_id="mrp.report_mrp_bom">
7
4
  <xpath expr="//thead/tr/th[last()]" position="before">
8
5
  <th
9
6
  t-if="data['report_structure'] != 'bom_cost'"
@@ -49,10 +46,7 @@
49
46
  </td>
50
47
  </xpath>
51
48
  </template>
52
- <template
53
- id="report_mrp_bom_line"
54
- inherit_id="mrp_bom_location.report_mrp_bom_line"
55
- >
49
+ <template id="report_mrp_bom_line" inherit_id="mrp.report_mrp_bom_line">
56
50
  <xpath expr="//tr/td[last()]" position="before">
57
51
  <td class="o_mrp_prod_cost text-right">
58
52
  <span>
@@ -87,10 +81,7 @@
87
81
  </span>
88
82
  </xpath>
89
83
  </template>
90
- <template
91
- id="report_mrp_bom_pdf_line"
92
- inherit_id="mrp_bom_location.report_mrp_bom_pdf_line"
93
- >
84
+ <template id="report_mrp_bom_pdf_line" inherit_id="mrp.report_mrp_bom_pdf_line">
94
85
  <xpath expr="//tr" position="inside">
95
86
  <t t-if="l['type'] == 'bom'">
96
87
  <td
@@ -15,6 +15,7 @@ access_stock_buffer_procurements_item,stock.buffer.procurements.item.user,model_
15
15
  access_stock_buffer_procurements_item_manager,stock.buffer.procurements.item.manager,model_make_procurement_buffer_item,stock.group_stock_manager,1,1,1,1
16
16
  access_ddmrp_duplicate_buffer,ddmrp.duplicate.buffer,model_ddmrp_duplicate_buffer,stock.group_stock_user,1,0,0,0
17
17
  access_ddmrp_duplicate_buffer_manager,ddmrp.duplicate.buffer,model_ddmrp_duplicate_buffer,ddmrp.group_stock_buffer_maintainer,1,1,1,1
18
+ access_mrp_bom_change_location_manager,mrp.bom.change.location,model_mrp_bom_change_location,stock.group_stock_user,1,1,1,1
18
19
  ddmrp_access_run,ddmrp.run,model_ddmrp_run,stock.group_stock_user,1,0,0,0
19
20
  ddmrp_access_run_manager,ddmrp.run.manager,model_ddmrp_run,stock.group_stock_manager,1,1,1,1
20
21
  access_ddmrp_mrp_move,mrp.move ddmrp,mrp_multi_level.model_mrp_move,stock.group_stock_user,1,0,0,0
@@ -366,7 +366,7 @@ ul.auto-toc {
366
366
  !! This file is generated by oca-gen-addon-readme !!
367
367
  !! changes will be overwritten. !!
368
368
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
369
- !! source digest: sha256:57c806b48bd65e34656cc0cefdd500c22953146ad6f42ed29665bb4e2623a2b2
369
+ !! source digest: sha256:4c70314805f95fe754b12ed4ae140fdb75d9becdb0ffbf954f388b050c68e33f
370
370
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
371
371
  <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/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/ddmrp/tree/14.0/ddmrp"><img alt="OCA/ddmrp" src="https://img.shields.io/badge/github-OCA%2Fddmrp-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/ddmrp-14-0/ddmrp-14-0-ddmrp"><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/ddmrp&amp;target_branch=14.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
372
372
  <p>Demand Driven Material Requirements Planning is a formal multi-echelon
@@ -0,0 +1,33 @@
1
+ odoo.define("ddmrp.mrp_bom_report", function (require) {
2
+ "use strict";
3
+
4
+ var core = require("web.core");
5
+ var MrpBomReport = require("mrp.mrp_bom_report");
6
+
7
+ var DdmrpBomReport = MrpBomReport.extend({
8
+ init: function (parent, action) {
9
+ this._super.apply(this, arguments);
10
+ this.given_context.location_id = action.context.location_id || false;
11
+ },
12
+ get_bom: function (event) {
13
+ var self = this;
14
+ var $parent = $(event.currentTarget).closest("tr");
15
+ var activeID = $parent.data("id");
16
+ var productID = $parent.data("product_id");
17
+ var lineID = $parent.data("line");
18
+ var qty = $parent.data("qty");
19
+ var level = $parent.data("level") || 0;
20
+ return this._rpc({
21
+ model: "report.mrp.report_bom_structure",
22
+ method: "get_bom",
23
+ args: [activeID, productID, parseFloat(qty), lineID, level + 1],
24
+ context: this.given_context,
25
+ }).then(function (result) {
26
+ self.render_html(event, $parent, result);
27
+ });
28
+ },
29
+ });
30
+
31
+ core.action_registry.add("mrp_bom_report", DdmrpBomReport);
32
+ return DdmrpBomReport;
33
+ });
@@ -436,7 +436,6 @@ class TestDdmrp(TestDdmrpCommon):
436
436
  def _check_red_zone(
437
437
  self, orderpoint, red_base_qty=0.0, red_safety_qty=0.0, red_zone_qty=0.0
438
438
  ):
439
-
440
439
  # red base_qty = dlt * adu * lead time factor
441
440
  self.assertEqual(orderpoint.red_base_qty, red_base_qty)
442
441
 
@@ -447,7 +446,6 @@ class TestDdmrp(TestDdmrpCommon):
447
446
  self.assertEqual(orderpoint.red_zone_qty, red_zone_qty)
448
447
 
449
448
  def _check_yellow_zone(self, orderpoint, yellow_zone_qty=0.0, top_of_yellow=0.0):
450
-
451
449
  # yellow_zone_qty = dlt * adu
452
450
  self.assertEqual(orderpoint.yellow_zone_qty, yellow_zone_qty)
453
451
 
@@ -463,7 +461,6 @@ class TestDdmrp(TestDdmrpCommon):
463
461
  green_zone_qty=0.0,
464
462
  top_of_green=0.0,
465
463
  ):
466
-
467
464
  # green_zone_oc = order_cycle * adu
468
465
  self.assertEqual(orderpoint.green_zone_oc, green_zone_oc)
469
466
 
@@ -853,7 +850,7 @@ class TestDdmrp(TestDdmrpCommon):
853
850
  "adu_calculation_method": self.adu_fixed.id,
854
851
  }
855
852
  )
856
- self.bom_a.location_id = self.supplier_location.id
853
+ self.bom_a.context_location_id = self.supplier_location.id
857
854
  self.assertTrue(self.bom_a.is_buffered)
858
855
  self.assertEqual(self.bom_a.buffer_id, new_buffer)
859
856
  new_bom = self.env["mrp.bom"].create(
@@ -989,6 +986,54 @@ class TestDdmrp(TestDdmrpCommon):
989
986
  self.assertTrue(bom_line.is_buffered)
990
987
  self.assertEqual(bom_line.buffer_id, component_buffer)
991
988
 
989
+ def test_38_bom_dlt_computation_multi_location(self):
990
+ """
991
+ If AS01 bom has no location it means that it can be manufactured
992
+ in more than one location.
993
+ """
994
+ bom_fp01 = self.env.ref("ddmrp.mrp_bom_fp01")
995
+ buffer1_fp01 = self.env.ref("ddmrp.stock_buffer_fp01")
996
+ self.assertEqual(bom_fp01.dlt, 22.0)
997
+ self.assertEqual(bom_fp01.buffer_id, buffer1_fp01)
998
+ self.assertEqual(len(bom_fp01.bom_line_ids), 1)
999
+ self.assertEqual(bom_fp01.bom_line_ids.is_buffered, False)
1000
+ # Now create buffers in another location and check in that context
1001
+ product_fp01 = self.env.ref("ddmrp.product_product_fp01")
1002
+ product_as01 = self.env.ref("ddmrp.product_product_as01")
1003
+ buffer2_fp01 = self.bufferModel.create(
1004
+ {
1005
+ "buffer_profile_id": self.buffer_profile_mmm.id,
1006
+ "product_id": product_fp01.id,
1007
+ "warehouse_id": self.warehouse.id,
1008
+ "location_id": self.supplier_location.id,
1009
+ "adu_calculation_method": self.adu_fixed.id,
1010
+ }
1011
+ )
1012
+ buffer_as01 = self.bufferModel.create(
1013
+ {
1014
+ "buffer_profile_id": self.buffer_profile_mmm.id,
1015
+ "product_id": product_as01.id,
1016
+ "warehouse_id": self.warehouse.id,
1017
+ "location_id": self.supplier_location.id,
1018
+ "adu_calculation_method": self.adu_fixed.id,
1019
+ }
1020
+ )
1021
+ bom_fp01.context_location_id = self.supplier_location.id
1022
+ bom_fp01.bom_line_ids._compute_is_buffered()
1023
+ bom_fp01._compute_dlt()
1024
+ bom_fp01.bom_line_ids._compute_dlt()
1025
+ self.assertEqual(bom_fp01.dlt, 2.0)
1026
+ self.assertEqual(bom_fp01.buffer_id, buffer2_fp01)
1027
+ self.assertEqual(len(bom_fp01.bom_line_ids), 1)
1028
+ self.assertEqual(bom_fp01.bom_line_ids.is_buffered, True)
1029
+ self.assertEqual(bom_fp01.bom_line_ids.buffer_id, buffer_as01)
1030
+ # Check at the same time the DLT of 2 buffers using the same bom:
1031
+ buffers = buffer1_fp01 + buffer2_fp01
1032
+ buffers.invalidate_cache()
1033
+ buffers._compute_dlt()
1034
+ self.assertEqual(buffer1_fp01.dlt, 22)
1035
+ self.assertEqual(buffer2_fp01.dlt, 2)
1036
+
992
1037
  def test_40_bokeh_charts(self):
993
1038
  """Check bokeh chart computation."""
994
1039
  date_move = datetime.today()
@@ -10,6 +10,10 @@
10
10
  type="text/javascript"
11
11
  src="/ddmrp/static/src/js/list_renderer_buffer_info.js"
12
12
  />
13
+ <script
14
+ type="text/javascript"
15
+ src="/ddmrp/static/src/js/mrp_bom_report.js"
16
+ />
13
17
  <link
14
18
  rel="stylesheet"
15
19
  type="text/scss"
@@ -7,10 +7,20 @@
7
7
  <field name="model">mrp.bom</field>
8
8
  <field name="inherit_id" ref="mrp.mrp_bom_form_view" />
9
9
  <field name="arch" type="xml">
10
- <field name="location_id" position="after">
10
+ <field name="product_id" position="after">
11
11
  <field name="is_buffered" />
12
12
  <field name="buffer_id" />
13
- <field name="dlt" />
13
+ <label for="dlt" />
14
+ <div class="o_row">
15
+ <field name="dlt" />
16
+ (<field name="context_location_id" options="{'no_open': True}" />)
17
+ <button
18
+ title="Change Location"
19
+ name="action_change_context_location"
20
+ icon="fa-exchange"
21
+ type="object"
22
+ />
23
+ </div>
14
24
  </field>
15
25
  <xpath
16
26
  expr="//field[@name='bom_line_ids']/tree/field[@name='product_uom_id']"
@@ -19,6 +29,7 @@
19
29
  <field name="is_buffered" />
20
30
  <field name="buffer_id" />
21
31
  <field name="dlt" />
32
+ <field name="context_location_id" />
22
33
  </xpath>
23
34
  </field>
24
35
  </record>
@@ -670,6 +670,7 @@
670
670
  <field name="name">Stock Buffers</field>
671
671
  <field name="res_model">stock.buffer</field>
672
672
  <field name="view_mode">tree,form</field>
673
+ <field name="context">{'location_id': False}</field>
673
674
  </record>
674
675
  <menuitem
675
676
  id="menu_stock_buffer"
@@ -1,5 +1,6 @@
1
1
  from . import multi_level_mrp
2
2
  from . import make_procurement_buffer
3
+ from . import mrp_bom_change_location
3
4
  from . import ddmrp_duplicate_buffer
4
5
  from . import ddmrp_run
5
6
  from . import res_config_settings
@@ -0,0 +1,42 @@
1
+ # Copyright 2023 ForgeFlow S.L. (http://www.forgeflow.com)
2
+ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
3
+
4
+ from odoo import api, fields, models
5
+
6
+
7
+ class MrpBomChangeLocation(models.TransientModel):
8
+ _name = "mrp.bom.change.location"
9
+ _description = "MRP Bom Change Location"
10
+
11
+ @api.model
12
+ def default_get(self, fields_list):
13
+ res = super().default_get(fields_list)
14
+ bom_obj = self.env["mrp.bom"]
15
+ bom_id = self.env.context.get("active_id", False)
16
+ active_model = self.env.context["active_model"]
17
+
18
+ if not bom_id:
19
+ return
20
+ assert active_model == "mrp.bom", "Bad context propagation"
21
+
22
+ bom = bom_obj.browse(bom_id)
23
+ res.update(
24
+ {
25
+ "location_id": bom.context_location_id.id,
26
+ }
27
+ )
28
+ return res
29
+
30
+ location_id = fields.Many2one(
31
+ comodel_name="stock.location",
32
+ )
33
+
34
+ def action_change_location(self):
35
+ bom_id = self.env.context.get("active_id", False)
36
+ return {
37
+ "type": "ir.actions.act_window",
38
+ "res_model": "mrp.bom",
39
+ "view_mode": "form",
40
+ "res_id": bom_id,
41
+ "context": {"location_id": self.location_id.id},
42
+ }
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <odoo>
3
+
4
+ <record id="mrp_bom_change_location_wizard" model="ir.ui.view">
5
+ <field name="name">Mrp Bom Change Location Wizard</field>
6
+ <field name="model">mrp.bom.change.location</field>
7
+ <field name="arch" type="xml">
8
+ <form string="Change Bom Location">
9
+ <p class="oe_grey">
10
+ Change the inventory location that it is considered to compute when a product is buffered or not.
11
+ This can potentially change the Decoupled Lead Time (DLT) value.
12
+ This change is only informative and won't affect any process or buffer size or recommendations.
13
+ </p>
14
+ <group>
15
+ <group>
16
+ <field name="location_id" />
17
+ </group>
18
+ </group>
19
+ <footer>
20
+ <button
21
+ name="action_change_location"
22
+ string="Change"
23
+ type="object"
24
+ class="btn-primary"
25
+ />
26
+ </footer>
27
+ </form>
28
+ </field>
29
+ </record>
30
+
31
+ </odoo>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo14-addon-ddmrp
3
- Version: 14.0.1.22.6.dev1
3
+ Version: 14.0.1.23.1.dev1
4
4
  Summary: Demand Driven Material Requirements Planning
5
5
  Home-page: https://github.com/OCA/ddmrp
6
6
  Author: ForgeFlow, Odoo Community Association (OCA)
@@ -14,7 +14,6 @@ Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGP
14
14
  Classifier: Development Status :: 4 - Beta
15
15
  Requires-Python: >=3.6
16
16
  Requires-Dist: odoo14-addon-base-cron-exclusion
17
- Requires-Dist: odoo14-addon-mrp-bom-location
18
17
  Requires-Dist: odoo14-addon-mrp-multi-level
19
18
  Requires-Dist: odoo14-addon-stock-demand-estimate
20
19
  Requires-Dist: odoo14-addon-stock-helper
@@ -31,7 +30,7 @@ DDMRP
31
30
  !! This file is generated by oca-gen-addon-readme !!
32
31
  !! changes will be overwritten. !!
33
32
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
34
- !! source digest: sha256:57c806b48bd65e34656cc0cefdd500c22953146ad6f42ed29665bb4e2623a2b2
33
+ !! source digest: sha256:4c70314805f95fe754b12ed4ae140fdb75d9becdb0ffbf954f388b050c68e33f
35
34
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
36
35
 
37
36
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,6 +1,6 @@
1
- odoo/addons/ddmrp/README.rst,sha256=xBN48d6lwqwATJXWf_nTez8QRTyN8NaXw7BL8JI5Z7c,12239
1
+ odoo/addons/ddmrp/README.rst,sha256=ceqeCcJehXN9OYiJkrhrOg6XFnLqU26Td653HuwfBKw,12239
2
2
  odoo/addons/ddmrp/__init__.py,sha256=nksc4q8fpyy8n5h1T3-Wl9lh_CpdgZj9bBt5fQGvW5Y,98
3
- odoo/addons/ddmrp/__manifest__.py,sha256=WUI5Rmnfe3Bkxw9tejDVrInedRqMRJUpBDEJg3AvIqk,2518
3
+ odoo/addons/ddmrp/__manifest__.py,sha256=sxhjNrue0CZFYhU0Hv-ggXsT6hrusiPw3hvnR14wLYQ,2537
4
4
  odoo/addons/ddmrp/hooks.py,sha256=81CupDt-4OpjEz7EXiAyqkUHzZ_cYLI5WiyEO6Y4DdQ,3269
5
5
  odoo/addons/ddmrp/data/decimal_precision_data.xml,sha256=mzYy_aam6bZLGPFl7HPhRv5XGTDCbHAKVZeAl0UYms4,528
6
6
  odoo/addons/ddmrp/data/ir_cron.xml,sha256=sW-Y2O0ZfpxQ6IcOOMGzgPX2k-vnSJbKxdcRD_6ybhY,1510
@@ -10,24 +10,24 @@ odoo/addons/ddmrp/data/stock_buffer_profile_data.xml,sha256=zn4449PamEWO208h--Gl
10
10
  odoo/addons/ddmrp/data/stock_buffer_profile_lead_time_data.xml,sha256=aOE280q8PE3mb_LbSDgVQDlz7pSPovV4VcJufimwnWE,703
11
11
  odoo/addons/ddmrp/data/stock_buffer_profile_variability_data.xml,sha256=48W7aW9J9JuK8lWQF7FJJP9OQwOTWQC9H0KLASdvw5Y,711
12
12
  odoo/addons/ddmrp/demo/ddmrp_demo_user.xml,sha256=BoSAwGlKyKljYqPfGP1qVRpueecoeDCsbgwmzdqCRK8,221
13
- odoo/addons/ddmrp/demo/mrp_bom_demo.xml,sha256=9asuSNCAK8eyj73nZB2GBPuXGf8ZA_NGV8ERyWjZA9A,1991
13
+ odoo/addons/ddmrp/demo/mrp_bom_demo.xml,sha256=LMpeqfvQB2pbZHqDtVHgjfxVUMBkGd6vnrNC4R0KA7s,1641
14
14
  odoo/addons/ddmrp/demo/product_category_demo.xml,sha256=0upcs9PHoNdjeyMmFg8myCf5-ii3f7ZfrSzEaPk58og,176
15
15
  odoo/addons/ddmrp/demo/product_product_demo.xml,sha256=-jp5RGrexRsHIITmPhUGKClatDT3m8s9fd9dDjR-Dbc,2050
16
16
  odoo/addons/ddmrp/demo/product_supplierinfo_demo.xml,sha256=cfbqUhoZbhvEqNUwX4jIu3fckMa9yvDUPh6Sfg1jUM0,768
17
17
  odoo/addons/ddmrp/demo/res_partner_demo.xml,sha256=9MG3stWjWBzbLm_94f7IIZ-1K6a19vwmq3XwAA1Nrrs,766
18
18
  odoo/addons/ddmrp/demo/stock_buffer_demo.xml,sha256=R5fo0T_M05zLKCKm2KREjx2QlFo-7zCOKIU46QvwluY,1366
19
- odoo/addons/ddmrp/i18n/ddmrp.pot,sha256=LSE_QQsA9tKoP1TauTjAhP-oZguyKzKwWA_jdqyahyo,68240
20
- odoo/addons/ddmrp/i18n/es.po,sha256=Jsa7IHbaUykuP_z7sBWK3fQwXz7ma07z7oguiX0YrVo,83982
21
- odoo/addons/ddmrp/i18n/es_AR.po,sha256=8m40eXUmro7Xm7guKq14E-K65NORV-2w6dMhTTM-ZO0,83310
22
- odoo/addons/ddmrp/i18n/fr.po,sha256=5HRMof-0HXH49aFgh3A33k-Eu5pcB7rG1pDWhGAkPc0,69588
23
- odoo/addons/ddmrp/i18n/id.po,sha256=tFEsF6Jmv56HJzjHnyRdYpOuLUtGpRpVYmN7-tl5XxY,68979
24
- odoo/addons/ddmrp/i18n/it.po,sha256=Y9j9LkSQIs8E8Dr6dWhqHPB3Vs-QotdjrNx1UXQzfa4,83329
25
- odoo/addons/ddmrp/i18n/pt_BR.po,sha256=s8nuNBNUeR9hbaAf1VVD5HTamOFyLFdRbz92RrIakTw,68268
26
- odoo/addons/ddmrp/i18n/zh_Hans.po,sha256=ZS0GAgY9wE4FlPrbq5H8QO2LO30iUM6rVs_eoAlG0CQ,71352
19
+ odoo/addons/ddmrp/i18n/ddmrp.pot,sha256=dlBe4b7t3ggIg2syyKKxA8YlEC46vT1ruVj_pmqakZ4,70300
20
+ odoo/addons/ddmrp/i18n/es.po,sha256=gZ2zTr81oS3hgEYX1r23lMCa8F6F8Nk6Xd-YG2NaEUw,86051
21
+ odoo/addons/ddmrp/i18n/es_AR.po,sha256=ONzEvp66cZqNW-s1n0lhmk2WNXP-n-GcVrf21mCtmUI,85379
22
+ odoo/addons/ddmrp/i18n/fr.po,sha256=4ZKxBm6nJVE2dlSrvHayx1BAFsBkyNcgNNDM7n3S5YM,71657
23
+ odoo/addons/ddmrp/i18n/id.po,sha256=jg9M4FeBSTlwQAyGvP69jvMezJRgX4tepUiyPSeWahM,71048
24
+ odoo/addons/ddmrp/i18n/it.po,sha256=UY0cL1hvoQrFc-fxrNRJQRtdMld_bwpoOAG5PSZ41kw,85398
25
+ odoo/addons/ddmrp/i18n/pt_BR.po,sha256=Diw7LsGrZs9YB3aRKeVnahLINVcQt6G2XavWdzGUVM4,70337
26
+ odoo/addons/ddmrp/i18n/zh_Hans.po,sha256=cxcwjYjI44xRlSvGb4dujiVIIlSFlmVpBnDLwvlaYJA,73421
27
27
  odoo/addons/ddmrp/migrations/14.0.1.14.1/post-fix_distributed_source_location.py,sha256=1c02vpmyKZeDpQ3E9oHMmFCn9ad2CUEh8vAL6HjbPhI,289
28
28
  odoo/addons/ddmrp/migrations/14.0.1.6.0/post-migration.py,sha256=nz4eRPsr2J_HwTwcJ3VZtH98xqpyPXndYuNgMH-U__A,533
29
29
  odoo/addons/ddmrp/models/__init__.py,sha256=KiU2xBuUtylJnncjZkELtZPkEG_CwPXA8k_0YbH4LT0,536
30
- odoo/addons/ddmrp/models/mrp_bom.py,sha256=mEmZExDIVGn9hFHQ49erjQF7p7DDTtZnUWKm4sgqSgg,5462
30
+ odoo/addons/ddmrp/models/mrp_bom.py,sha256=VVdH_jCC4IT9GDOSFMjoyyIParkhk9iPbK5y9eZR2nw,6951
31
31
  odoo/addons/ddmrp/models/mrp_production.py,sha256=hhTkhNb-cXl7cmWPa-ECh0EKSxE4B12Oza0XR9N3BZs,2732
32
32
  odoo/addons/ddmrp/models/procurement_group.py,sha256=nGmhn_ZGtYeRwNaV12PRFrC1bmVhsr9JVJ_c_Us2ZLA,2270
33
33
  odoo/addons/ddmrp/models/product_adu_calculation_method.py,sha256=AeQ-o78SfrjkW7R9OnzzkMXVUs9jKL5-loNTbQlEoHk,3736
@@ -35,7 +35,7 @@ odoo/addons/ddmrp/models/product_product.py,sha256=oMzmvqX6waFk3TXTrK6AeOzlBpHEJ
35
35
  odoo/addons/ddmrp/models/product_template.py,sha256=sUUZ8kO3V5Cd7phAopCtd_wuMS_7JUR1giVamnPrI54,975
36
36
  odoo/addons/ddmrp/models/purchase_order.py,sha256=9kLCSlskdC-1uDBgAdM4zna-Lw18EB3mIlvci5fo54E,3732
37
37
  odoo/addons/ddmrp/models/res_company.py,sha256=7yGp6UwS0mtoTRY4a4khfufqadLs80pJDEVUnw8icOY,657
38
- odoo/addons/ddmrp/models/stock_buffer.py,sha256=ATCKttVLjIrPN5cMdZtzzdgmQyz7zALA8SZieBH5fsw,78887
38
+ odoo/addons/ddmrp/models/stock_buffer.py,sha256=9O02Mj2TwCEpasXePl5v2D0BqJ8LfssQ7LLOee-yo38,78756
39
39
  odoo/addons/ddmrp/models/stock_buffer_profile.py,sha256=a4jPw9tmIPJxbIm89QKHLlpxY0coJmWu7sY88QfY_Lg,2855
40
40
  odoo/addons/ddmrp/models/stock_buffer_profile_lead_time.py,sha256=8ZQMuxU0a-mob6MIzDSnkTvC3-4KGn4NLtQ2D3Cuwi8,592
41
41
  odoo/addons/ddmrp/models/stock_buffer_profile_variability.py,sha256=vMz4mSk2h2GVqhFidlZgpC3BXGMlyu9zjHm0aO5B7is,601
@@ -54,25 +54,26 @@ odoo/addons/ddmrp/readme/ROADMAP.rst,sha256=3kFrhGiOZ38gO77B_jvqAhkTl-pFxMwt333p
54
54
  odoo/addons/ddmrp/readme/USAGE.rst,sha256=LZEqQD-sW2kDGnd_ixsduc2iDI_NqyH6VIrFCVRozHI,3350
55
55
  odoo/addons/ddmrp/report/__init__.py,sha256=IrxRkpZwUs2W4Pmvg6BDxk_MxiFnaLzpm9xq_sFgAMo,39
56
56
  odoo/addons/ddmrp/report/mrp_report_bom_structure.py,sha256=1ENtbKAPoVgGcTnXx0UbujEotW8WoLff9sb_28Cjhds,2295
57
- odoo/addons/ddmrp/report/mrp_report_bom_structure.xml,sha256=4gblpbvpqo5srIapQJqdyzB1LkLR2HkSBlm55FLno2o,4684
57
+ odoo/addons/ddmrp/report/mrp_report_bom_structure.xml,sha256=XVHdWYh-zdb0HUP7kazHKO_DuPkB3wTqXH58xD66CxY,4565
58
58
  odoo/addons/ddmrp/security/ddmrp_groups.xml,sha256=dW2V1aZD5w9ssvtfaxy73jRf53sNhMikABohIsOpxcw,1299
59
59
  odoo/addons/ddmrp/security/ddmrp_rules.xml,sha256=W1hYvw6WtAKMLytNHzpQgX0aCx9PTM3fWsmcxrqXL88,2079
60
- odoo/addons/ddmrp/security/ir.model.access.csv,sha256=d2FoZ2sCSNMUse9TWKEZJucRuV2aFULBf_1cM18ymkQ,2499
60
+ odoo/addons/ddmrp/security/ir.model.access.csv,sha256=r_v87wOkAnIUwxgJpyZB1nqxCMGIg-jivK4znBVZSKA,2623
61
61
  odoo/addons/ddmrp/static/description/icon.png,sha256=QThDd6zhQU48MY3Y7Ij5m6yWQACbl0BCyoaHLL9-hAQ,7006
62
- odoo/addons/ddmrp/static/description/index.html,sha256=om9PMmlOAwC0d1cuxwYciQRHKaoEaf2dSf7M1FvRhN4,26542
62
+ odoo/addons/ddmrp/static/description/index.html,sha256=v-R3JB_1zjMdGaKWD_rerzXox_efcnLp1V-gMb34-no,26542
63
63
  odoo/addons/ddmrp/static/img/has_mto_rule.png,sha256=IVYC3_qpiYrSTPfruURd7kQkwpaOnBlQ1Id3WAJisRo,4604
64
64
  odoo/addons/ddmrp/static/img/is_buffered.png,sha256=uGFYPIo5YIE9TO96uu8-LfHAlAtKN97H9j1Ik74hcHQ,5000
65
65
  odoo/addons/ddmrp/static/img/res_partner_eficent-image.jpg,sha256=ja8mU9YHbRwEDOHbXE5ROiKhABWqq4YFQ7cZwHWAqPA,24419
66
66
  odoo/addons/ddmrp/static/img/res_partner_forgeflow-image.png,sha256=0FZES_MW6RHiMHsVtbvKTEcwSfzut_I4nE507OUC_Rs,7356
67
67
  odoo/addons/ddmrp/static/src/js/list_renderer_buffer_info.js,sha256=BBCLCM0LkHew2QoGDUK7MIKtrQnLUxbdgWWvl8UgrJc,6676
68
+ odoo/addons/ddmrp/static/src/js/mrp_bom_report.js,sha256=Aibz74gqY8za4Vuu0wr_essCuAbfOxYbgw90o40oG7g,1250
68
69
  odoo/addons/ddmrp/static/src/scss/list_view.scss,sha256=Z-pJ16rXrnBxprxg9QEOHODf90fXUrMFnA1if1wGg2w,447
69
70
  odoo/addons/ddmrp/tests/__init__.py,sha256=-3cd_5sIPTRJYKEh4j7ipqKG_hNwXbAu_Gcr0ZM_DJ0,123
70
71
  odoo/addons/ddmrp/tests/common.py,sha256=X9PLlMxsC1xka9ji7g-FU5xuVs65phtko2fggQtAKc0,19234
71
- odoo/addons/ddmrp/tests/test_ddmrp.py,sha256=-I9eLBd2uEa6O5aPW-gJnbk4uzwOGYjyRz11Zs7cNrM,51687
72
+ odoo/addons/ddmrp/tests/test_ddmrp.py,sha256=m9xG8QTNQPzSY7XzMoBoRMWm5LrG3kzT7cjt079Xx68,53939
72
73
  odoo/addons/ddmrp/tests/test_ddmrp_distributed_source_location.py,sha256=vMDFxl7uPLVhQHje6coJbmVkN7zrwfozfPmLtDUQo8E,6933
73
74
  odoo/addons/ddmrp/tests/test_distributed_max_proc_time.py,sha256=nedWXD8iMcyuZAcNsU1O8W09oO2JZlg6EZ-KZrShJWE,5513
74
- odoo/addons/ddmrp/views/ddmrp_assets_backend.xml,sha256=IHuM6eKSo0QluTtp8B2Ndo3AE8CfTGUQD2b54NJjsB0,570
75
- odoo/addons/ddmrp/views/mrp_bom_view.xml,sha256=A7VMraZEU1MIojOWZLUAlXyFhWAjQoVX624Nv2MnUBE,1428
75
+ odoo/addons/ddmrp/views/ddmrp_assets_backend.xml,sha256=CrthyIA2S1VCbLtsMjZ4tae4T7ADvHsyNxlI5-SNXjM,705
76
+ odoo/addons/ddmrp/views/mrp_bom_view.xml,sha256=6pQ1i-CadPOCV_lPkWEDi8aneHcpYUVW2bzBTCOvBWo,1909
76
77
  odoo/addons/ddmrp/views/mrp_production_view.xml,sha256=-vuXrHErypEg1UWyW2dSO6Cv3oCSR4GZwV33GbllHkg,2009
77
78
  odoo/addons/ddmrp/views/product_adu_calculation_method_view.xml,sha256=tZ6-uGWhihRrz3kzaKnI4EbkjkBiQbjIgifTLTI7CS0,3278
78
79
  odoo/addons/ddmrp/views/product_view.xml,sha256=Q_bAA7jJ2ZzqAhb0mwO-Fa8QEGjwtYEHFhUvs3iAAJA,1059
@@ -81,21 +82,23 @@ odoo/addons/ddmrp/views/purchase_order_view.xml,sha256=mw0NRSKz_VilND3OG_sJHP_x1
81
82
  odoo/addons/ddmrp/views/stock_buffer_profile_lead_time_view.xml,sha256=uX0oEwJv3EUYYynV0WuWBuZMfpYGx9j-HuYXxzVaaFA,2919
82
83
  odoo/addons/ddmrp/views/stock_buffer_profile_variability_view.xml,sha256=BLMlWsQD2TwxkZ4U-LQLSGKwJzBUD9WtxLeOX2ajBF4,2987
83
84
  odoo/addons/ddmrp/views/stock_buffer_profile_view.xml,sha256=m14bFUZs6KVNtHX0YqaRsUIh5PNZr-Sp0iQs52BaJ3I,4129
84
- odoo/addons/ddmrp/views/stock_buffer_view.xml,sha256=dDYpPPo3AjR-zc478bkt_ohkhzGQWheOz2wwBj7ztZ0,35459
85
+ odoo/addons/ddmrp/views/stock_buffer_view.xml,sha256=bRyop_hyT-WdwBdHwtiTtSG_0f4G6M4g5OarxOMNPNs,35520
85
86
  odoo/addons/ddmrp/views/stock_move_views.xml,sha256=ZC0c_ACXQ7lzlFbBxiT0vgqSBTYnVDvG6NHprAUI2b8,2253
86
87
  odoo/addons/ddmrp/views/stock_picking.xml,sha256=CD82zoeS6Nnbxw_c53fE-L-0YgTSITW-78Y3c63JzuE,684
87
88
  odoo/addons/ddmrp/views/stock_warehouse_views.xml,sha256=wPLTji7AncZWhsWxbQSPJa7_pAhdybYblMxaeJIVQ5c,612
88
- odoo/addons/ddmrp/wizards/__init__.py,sha256=NnM0to5LovqqEdrqq43aqQPF4R_UJgJbz4x9p3vsDsE,163
89
+ odoo/addons/ddmrp/wizards/__init__.py,sha256=dYdY2HkhVuqQEUEx6wtSCOK9318VCiSFpG1JVddME0U,201
89
90
  odoo/addons/ddmrp/wizards/ddmrp_duplicate_buffer.py,sha256=DSm7L1LHHZ6k63auS1o8JkF3yU35028L6x-CyfkrM1s,3466
90
91
  odoo/addons/ddmrp/wizards/ddmrp_duplicate_buffer.xml,sha256=N8YM5OD6RoFoQ5U_uZ2BUj-Xu6bEvIi6607RgDxq9Ks,1635
91
92
  odoo/addons/ddmrp/wizards/ddmrp_run.py,sha256=iXz4oiM9_MypMFn1hgavKtT0VRYy4xgrG---RnvliZ4,437
92
93
  odoo/addons/ddmrp/wizards/ddmrp_run_view.xml,sha256=fhI2Y2FhLgdCOASxOZ5-pzHitfvoJUW59fJqq96IbQ8,1440
93
94
  odoo/addons/ddmrp/wizards/make_procurement_buffer.py,sha256=9sqfV0csIfdwRZQ7lkwjrsSuXPfjtDpJd_IjrZ_MMgo,8101
94
95
  odoo/addons/ddmrp/wizards/make_procurement_buffer_view.xml,sha256=wqaOv0Gq1IoaG0HKfS9CdRntow-WPv44A5cIs6o3KCk,3984
96
+ odoo/addons/ddmrp/wizards/mrp_bom_change_location.py,sha256=a3ugL-TtOHMQ9SzbztW12qoZrr-2NYDDRqFKJqFKTn8,1253
97
+ odoo/addons/ddmrp/wizards/mrp_bom_change_location.xml,sha256=a6YZ67nrCkO3MrKy9wNCIdLrsDqIUiRuyRbauf4WJjQ,1202
95
98
  odoo/addons/ddmrp/wizards/multi_level_mrp.py,sha256=7PjXJ4Gx8_DqK81eFSeeGTyN1YETSxWFEs6xddwbS2c,753
96
99
  odoo/addons/ddmrp/wizards/res_config_settings.py,sha256=WquTRzrSDWAUyd4Fk6qRBBkXRKVZiTcWumQNCzmyGGQ,1530
97
100
  odoo/addons/ddmrp/wizards/res_config_settings_views.xml,sha256=X8yZQpuF2xDeSSJWn9dtKt7WbSGc-vWZQjIr7J0y-yk,10278
98
- odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info/METADATA,sha256=i9lylVze-53flEu4S2aCU5_gG_qkZu2gQtXxsvwotDY,13167
99
- odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
100
- odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
101
- odoo14_addon_ddmrp-14.0.1.22.6.dev1.dist-info/RECORD,,
101
+ odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info/METADATA,sha256=nPz0FpCQ4VEPQZxQL7jxOz6tGHjq_Z1w8H5NEtfaMlA,13122
102
+ odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
103
+ odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
104
+ odoo14_addon_ddmrp-14.0.1.23.1.dev1.dist-info/RECORD,,