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.
- odoo/addons/ddmrp/README.rst +1 -1
- odoo/addons/ddmrp/__manifest__.py +2 -2
- odoo/addons/ddmrp/demo/mrp_bom_demo.xml +0 -5
- odoo/addons/ddmrp/i18n/ddmrp.pot +46 -0
- odoo/addons/ddmrp/i18n/es.po +51 -2
- odoo/addons/ddmrp/i18n/es_AR.po +49 -0
- odoo/addons/ddmrp/i18n/fr.po +49 -0
- odoo/addons/ddmrp/i18n/id.po +49 -0
- odoo/addons/ddmrp/i18n/it.po +49 -0
- odoo/addons/ddmrp/i18n/pt_BR.po +49 -0
- odoo/addons/ddmrp/i18n/zh_Hans.po +49 -0
- odoo/addons/ddmrp/models/mrp_bom.py +49 -12
- odoo/addons/ddmrp/models/stock_buffer.py +2 -7
- odoo/addons/ddmrp/report/mrp_report_bom_structure.xml +3 -12
- odoo/addons/ddmrp/security/ir.model.access.csv +1 -0
- odoo/addons/ddmrp/static/description/index.html +1 -1
- odoo/addons/ddmrp/static/src/js/mrp_bom_report.js +33 -0
- odoo/addons/ddmrp/tests/test_ddmrp.py +49 -4
- odoo/addons/ddmrp/views/ddmrp_assets_backend.xml +4 -0
- odoo/addons/ddmrp/views/mrp_bom_view.xml +13 -2
- odoo/addons/ddmrp/views/stock_buffer_view.xml +1 -0
- odoo/addons/ddmrp/wizards/__init__.py +1 -0
- odoo/addons/ddmrp/wizards/mrp_bom_change_location.py +42 -0
- odoo/addons/ddmrp/wizards/mrp_bom_change_location.xml +31 -0
- {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
- {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
- {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
- {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:
|
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&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.
|
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()
|
@@ -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="
|
10
|
+
<field name="product_id" position="after">
|
11
11
|
<field name="is_buffered" />
|
12
12
|
<field name="buffer_id" />
|
13
|
-
<
|
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>
|
@@ -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.
|
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:
|
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=
|
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=
|
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=
|
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=
|
20
|
-
odoo/addons/ddmrp/i18n/es.po,sha256=
|
21
|
-
odoo/addons/ddmrp/i18n/es_AR.po,sha256=
|
22
|
-
odoo/addons/ddmrp/i18n/fr.po,sha256=
|
23
|
-
odoo/addons/ddmrp/i18n/id.po,sha256=
|
24
|
-
odoo/addons/ddmrp/i18n/it.po,sha256=
|
25
|
-
odoo/addons/ddmrp/i18n/pt_BR.po,sha256=
|
26
|
-
odoo/addons/ddmrp/i18n/zh_Hans.po,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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
|
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=
|
75
|
-
odoo/addons/ddmrp/views/mrp_bom_view.xml,sha256=
|
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=
|
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=
|
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.
|
99
|
-
odoo14_addon_ddmrp-14.0.1.
|
100
|
-
odoo14_addon_ddmrp-14.0.1.
|
101
|
-
odoo14_addon_ddmrp-14.0.1.
|
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,,
|
File without changes
|
File without changes
|