odoo14-addon-ddmrp 14.0.1.23.4__py3-none-any.whl → 14.0.1.24.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.
- odoo/addons/ddmrp/README.rst +1 -1
- odoo/addons/ddmrp/__manifest__.py +1 -1
- odoo/addons/ddmrp/i18n/ddmrp.pot +32 -15
- odoo/addons/ddmrp/models/stock_buffer.py +43 -54
- odoo/addons/ddmrp/models/stock_move.py +67 -1
- odoo/addons/ddmrp/static/description/index.html +1 -1
- odoo/addons/ddmrp/views/stock_buffer_view.xml +36 -19
- odoo/addons/ddmrp/views/stock_move_views.xml +7 -4
- {odoo14_addon_ddmrp-14.0.1.23.4.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/METADATA +2 -2
- {odoo14_addon_ddmrp-14.0.1.23.4.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/RECORD +12 -12
- {odoo14_addon_ddmrp-14.0.1.23.4.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/WHEEL +0 -0
- {odoo14_addon_ddmrp-14.0.1.23.4.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/top_level.txt +0 -0
odoo/addons/ddmrp/README.rst
CHANGED
@@ -7,7 +7,7 @@ DDMRP
|
|
7
7
|
!! This file is generated by oca-gen-addon-readme !!
|
8
8
|
!! changes will be overwritten. !!
|
9
9
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
10
|
-
!! source digest: sha256:
|
10
|
+
!! source digest: sha256:81c9f86d5d94033c4e599e426d7a95628e63ebcb642deff966a8e49a5b951476
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
odoo/addons/ddmrp/i18n/ddmrp.pot
CHANGED
@@ -629,6 +629,11 @@ msgstr ""
|
|
629
629
|
msgid "Get configuration warnings for stock buffers."
|
630
630
|
msgstr ""
|
631
631
|
|
632
|
+
#. module: ddmrp
|
633
|
+
#: model_terms:ir.ui.view,arch_db:ddmrp.view_move_tree
|
634
|
+
msgid "Go to Source"
|
635
|
+
msgstr ""
|
636
|
+
|
632
637
|
#. module: ddmrp
|
633
638
|
#: model:ir.model.fields.selection,name:ddmrp.selection__mrp_production__execution_priority_level__3_green
|
634
639
|
#: model:ir.model.fields.selection,name:ddmrp.selection__purchase_order_line__execution_priority_level__3_green
|
@@ -1071,7 +1076,7 @@ msgstr ""
|
|
1071
1076
|
|
1072
1077
|
#. module: ddmrp
|
1073
1078
|
#: model_terms:ir.ui.view,arch_db:ddmrp.stock_buffer_view_tree
|
1074
|
-
msgid "No stock available
|
1079
|
+
msgid "No stock available in source location for distributed buffer"
|
1075
1080
|
msgstr ""
|
1076
1081
|
|
1077
1082
|
#. module: ddmrp
|
@@ -1136,11 +1141,6 @@ msgstr ""
|
|
1136
1141
|
msgid "On-Hand Alert: Yellow"
|
1137
1142
|
msgstr ""
|
1138
1143
|
|
1139
|
-
#. module: ddmrp
|
1140
|
-
#: model_terms:ir.ui.view,arch_db:ddmrp.stock_buffer_view_tree
|
1141
|
-
msgid "Open Non-completed Moves"
|
1142
|
-
msgstr ""
|
1143
|
-
|
1144
1144
|
#. module: ddmrp
|
1145
1145
|
#: code:addons/ddmrp/hooks.py:0
|
1146
1146
|
#, python-format
|
@@ -1421,11 +1421,6 @@ msgstr ""
|
|
1421
1421
|
msgid "RFQ Qty (Outside DLT)"
|
1422
1422
|
msgstr ""
|
1423
1423
|
|
1424
|
-
#. module: ddmrp
|
1425
|
-
#: model_terms:ir.ui.view,arch_db:ddmrp.stock_buffer_view_tree
|
1426
|
-
msgid "RFQ Qty Outside DLT"
|
1427
|
-
msgstr ""
|
1428
|
-
|
1429
1424
|
#. module: ddmrp
|
1430
1425
|
#: model:product.product,name:ddmrp.product_product_rm01
|
1431
1426
|
#: model:product.template,name:ddmrp.product_product_rm01_product_template
|
@@ -1601,12 +1596,28 @@ msgid ""
|
|
1601
1596
|
"Shows the current on-hand for stock buffers expressed as coverage days."
|
1602
1597
|
msgstr ""
|
1603
1598
|
|
1599
|
+
#. module: ddmrp
|
1600
|
+
#: model_terms:ir.ui.view,arch_db:ddmrp.stock_buffer_view_tree
|
1601
|
+
msgid ""
|
1602
|
+
"Some RFQ quantities are outside of the DLT Horizon and may require "
|
1603
|
+
"rescheduling. Press this button to display the involved "
|
1604
|
+
"RFQs"
|
1605
|
+
msgstr ""
|
1606
|
+
|
1604
1607
|
#. module: ddmrp
|
1605
1608
|
#: model_terms:ir.ui.view,arch_db:ddmrp.stock_buffer_view_form
|
1606
1609
|
msgid ""
|
1607
|
-
"Some incoming
|
1608
|
-
"rescheduling.
|
1609
|
-
"to display the involved supply orders"
|
1610
|
+
"Some incoming RFQs are outside of the DLT Horizon and may require "
|
1611
|
+
"rescheduling. Press this button"
|
1612
|
+
" to display the involved supply orders"
|
1613
|
+
msgstr ""
|
1614
|
+
|
1615
|
+
#. module: ddmrp
|
1616
|
+
#: model_terms:ir.ui.view,arch_db:ddmrp.stock_buffer_view_form
|
1617
|
+
msgid ""
|
1618
|
+
"Some incoming qty is outside of the DLT Horizon and may require "
|
1619
|
+
"rescheduling. Press this button"
|
1620
|
+
" to display the involved supply orders"
|
1610
1621
|
msgstr ""
|
1611
1622
|
|
1612
1623
|
#. module: ddmrp
|
@@ -1696,6 +1707,12 @@ msgstr ""
|
|
1696
1707
|
msgid "Stock Move Last Year Consumption"
|
1697
1708
|
msgstr ""
|
1698
1709
|
|
1710
|
+
#. module: ddmrp
|
1711
|
+
#: code:addons/ddmrp/models/stock_move.py:0
|
1712
|
+
#, python-format
|
1713
|
+
msgid "Stock Move Source"
|
1714
|
+
msgstr ""
|
1715
|
+
|
1699
1716
|
#. module: ddmrp
|
1700
1717
|
#: model_terms:ir.ui.view,arch_db:ddmrp.view_move_consumption_pivot
|
1701
1718
|
msgid "Stock Moves Yearly Consumption"
|
@@ -1920,7 +1937,7 @@ msgstr ""
|
|
1920
1937
|
|
1921
1938
|
#. module: ddmrp
|
1922
1939
|
#: model_terms:ir.ui.view,arch_db:ddmrp.stock_buffer_view_form
|
1923
|
-
msgid "View Incoming (Within DLT)"
|
1940
|
+
msgid "View Incoming Moves (Within DLT)"
|
1924
1941
|
msgstr ""
|
1925
1942
|
|
1926
1943
|
#. module: ddmrp
|
@@ -1362,17 +1362,6 @@ class StockBuffer(models.Model):
|
|
1362
1362
|
"domain": str([("id", "in", lines.ids)]),
|
1363
1363
|
}
|
1364
1364
|
|
1365
|
-
def open_moves(self):
|
1366
|
-
self.ensure_one()
|
1367
|
-
# Utility method used to add an "Open Moves" button in the buffer
|
1368
|
-
# planning view
|
1369
|
-
domain = self._search_open_stock_moves_domain()
|
1370
|
-
moves = self.env["stock.move"].search(domain)
|
1371
|
-
moves = moves.filtered(
|
1372
|
-
lambda move: move.location_dest_id.is_sublocation_of(self.location_id)
|
1373
|
-
)
|
1374
|
-
return self._stock_move_tree_view(moves)
|
1375
|
-
|
1376
1365
|
def _get_horizon_adu_past_demand(self):
|
1377
1366
|
return self.adu_calculation_method.horizon_past or 0
|
1378
1367
|
|
@@ -1821,72 +1810,72 @@ class StockBuffer(models.Model):
|
|
1821
1810
|
wizard.make_procurement()
|
1822
1811
|
return True
|
1823
1812
|
|
1824
|
-
def
|
1813
|
+
def action_view_supply_moves(self):
|
1814
|
+
result = self.env["ir.actions.actions"]._for_xml_id("stock.stock_move_action")
|
1815
|
+
result["context"] = {}
|
1816
|
+
moves = self._search_stock_moves_incoming() + self._search_stock_moves_incoming(
|
1817
|
+
outside_dlt=True
|
1818
|
+
)
|
1819
|
+
result["domain"] = [("id", "in", moves.ids)]
|
1820
|
+
return result
|
1821
|
+
|
1822
|
+
def _get_rfq_dlt(self, outside_dlt=False):
|
1823
|
+
self.ensure_one()
|
1825
1824
|
cut_date = self._get_incoming_supply_date_limit()
|
1826
1825
|
if not outside_dlt:
|
1827
1826
|
pols = self.purchase_line_ids.filtered(
|
1828
1827
|
lambda l: l.date_planned <= fields.Datetime.to_datetime(cut_date)
|
1829
|
-
and l.
|
1828
|
+
and l.state in ("draft", "sent")
|
1830
1829
|
)
|
1831
1830
|
else:
|
1832
1831
|
pols = self.purchase_line_ids.filtered(
|
1833
1832
|
lambda l: l.date_planned > fields.Datetime.to_datetime(cut_date)
|
1834
|
-
and l.
|
1833
|
+
and l.state in ("draft", "sent")
|
1835
1834
|
)
|
1836
1835
|
return pols
|
1837
1836
|
|
1838
|
-
def
|
1839
|
-
|
1840
|
-
|
1841
|
-
|
1842
|
-
|
1843
|
-
moves = moves.mapped("move_orig_ids")
|
1844
|
-
pos = pols.mapped("order_id") + moves.mapped("purchase_line_id.order_id")
|
1845
|
-
result = self.env["ir.actions.actions"]._for_xml_id("purchase.purchase_rfq")
|
1846
|
-
# Remove the context since the action display RFQ and not PO.
|
1847
|
-
result["context"] = {}
|
1848
|
-
result["domain"] = [("id", "in", pos.ids)]
|
1849
|
-
elif self.item_type == "manufactured":
|
1850
|
-
moves = self._search_stock_moves_incoming(outside_dlt)
|
1851
|
-
mos = moves.mapped("production_id")
|
1852
|
-
result = self.env["ir.actions.actions"]._for_xml_id(
|
1853
|
-
"mrp.mrp_production_action"
|
1854
|
-
)
|
1855
|
-
result["context"] = {}
|
1856
|
-
result["domain"] = [("id", "in", mos.ids)]
|
1857
|
-
else:
|
1858
|
-
moves = self._search_stock_moves_incoming(outside_dlt)
|
1859
|
-
picks = moves.mapped("picking_id")
|
1860
|
-
result = self.env["ir.actions.actions"]._for_xml_id(
|
1861
|
-
"stock.action_picking_tree_all"
|
1862
|
-
)
|
1863
|
-
result["context"] = {}
|
1864
|
-
result["domain"] = [("id", "in", picks.ids)]
|
1837
|
+
def action_view_supply_moves_inside_dlt_window(self):
|
1838
|
+
result = self.env["ir.actions.actions"]._for_xml_id("stock.stock_move_action")
|
1839
|
+
moves = self._search_stock_moves_incoming()
|
1840
|
+
result["context"] = {}
|
1841
|
+
result["domain"] = [("id", "in", moves.ids)]
|
1865
1842
|
return result
|
1866
1843
|
|
1867
|
-
def
|
1868
|
-
|
1844
|
+
def action_view_supply_moves_outside_dlt_window(self):
|
1845
|
+
result = self.env["ir.actions.actions"]._for_xml_id("stock.stock_move_action")
|
1846
|
+
moves = self._search_stock_moves_incoming(outside_dlt=True)
|
1847
|
+
result["context"] = {}
|
1848
|
+
result["domain"] = [("id", "in", moves.ids)]
|
1849
|
+
return result
|
1869
1850
|
|
1870
|
-
def
|
1871
|
-
|
1851
|
+
def action_view_supply_rfq_inside_dlt_window(self):
|
1852
|
+
result = self.env["ir.actions.actions"]._for_xml_id("purchase.purchase_rfq")
|
1853
|
+
pols = self._get_rfq_dlt()
|
1854
|
+
pos = pols.mapped("order_id")
|
1855
|
+
result["context"] = {}
|
1856
|
+
result["domain"] = [("id", "in", pos.ids)]
|
1857
|
+
return result
|
1872
1858
|
|
1873
|
-
def
|
1874
|
-
|
1875
|
-
|
1876
|
-
|
1877
|
-
"stock.action_picking_tree_all"
|
1878
|
-
)
|
1859
|
+
def action_view_supply_rfq_outside_dlt_window(self):
|
1860
|
+
result = self.env["ir.actions.actions"]._for_xml_id("purchase.purchase_rfq")
|
1861
|
+
pols = self._get_rfq_dlt(outside_dlt=True)
|
1862
|
+
pos = pols.mapped("order_id")
|
1879
1863
|
result["context"] = {}
|
1880
|
-
result["domain"] = [("id", "in",
|
1864
|
+
result["domain"] = [("id", "in", pos.ids)]
|
1865
|
+
return result
|
1866
|
+
|
1867
|
+
def action_view_qualified_demand_moves(self):
|
1868
|
+
result = self.env["ir.actions.actions"]._for_xml_id("stock.stock_move_action")
|
1869
|
+
result["context"] = {}
|
1870
|
+
result["domain"] = [("id", "in", self.qualified_demand_stock_move_ids.ids)]
|
1881
1871
|
return result
|
1882
1872
|
|
1883
1873
|
def action_view_qualified_demand_mrp(self):
|
1884
|
-
mrp_moves = self.qualified_demand_mrp_move_ids
|
1885
1874
|
result = self.env["ir.actions.actions"]._for_xml_id(
|
1886
1875
|
"mrp_multi_level.mrp_move_action"
|
1887
1876
|
)
|
1888
1877
|
result["context"] = {}
|
1889
|
-
result["domain"] = [("id", "in",
|
1878
|
+
result["domain"] = [("id", "in", self.qualified_demand_mrp_move_ids.ids)]
|
1890
1879
|
return result
|
1891
1880
|
|
1892
1881
|
def action_view_past_adu_direct_demand(self):
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Copyright 2019-20 ForgeFlow S.L. (http://www.forgeflow.com)
|
2
2
|
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
|
3
3
|
|
4
|
-
from odoo import api, fields, models
|
4
|
+
from odoo import _, api, fields, models
|
5
5
|
|
6
6
|
|
7
7
|
class StockMove(models.Model):
|
@@ -84,3 +84,69 @@ class StockMove(models.Model):
|
|
84
84
|
buffer.cron_actions(only_nfp="out")
|
85
85
|
for buffer in in_buffers.with_context(no_ddmrp_history=True):
|
86
86
|
buffer.cron_actions(only_nfp="in")
|
87
|
+
|
88
|
+
def _get_all_linked_moves(self):
|
89
|
+
"""Retrieve all linked moves both origin and destination recursively."""
|
90
|
+
|
91
|
+
def get_moves(move_set, attr):
|
92
|
+
new_moves = move_set.mapped(attr)
|
93
|
+
while new_moves:
|
94
|
+
move_set |= new_moves
|
95
|
+
new_moves = new_moves.mapped(attr)
|
96
|
+
return move_set
|
97
|
+
|
98
|
+
all_moves = (
|
99
|
+
self | get_moves(self, "move_orig_ids") | get_moves(self, "move_dest_ids")
|
100
|
+
)
|
101
|
+
return all_moves
|
102
|
+
|
103
|
+
def _get_source_field_candidates(self):
|
104
|
+
"""Extend for more source field candidates."""
|
105
|
+
return [
|
106
|
+
"sale_line_id.order_id",
|
107
|
+
"purchase_line_id.order_id",
|
108
|
+
"production_id",
|
109
|
+
"raw_material_production_id",
|
110
|
+
"unbuild_id",
|
111
|
+
"repair_id",
|
112
|
+
"rma_line_id",
|
113
|
+
"picking_id",
|
114
|
+
]
|
115
|
+
|
116
|
+
def _has_nested_field(self, field):
|
117
|
+
"""Check if an object has a nested chain of fields."""
|
118
|
+
current_object = self
|
119
|
+
try:
|
120
|
+
for field in field.split("."):
|
121
|
+
current_object = getattr(current_object, field)
|
122
|
+
return True
|
123
|
+
except AttributeError:
|
124
|
+
return False
|
125
|
+
|
126
|
+
def _get_source_record(self):
|
127
|
+
"""Find the first source record in the field candidates linked with the moves,
|
128
|
+
prioritizing the order of field candidates."""
|
129
|
+
moves = self._get_all_linked_moves()
|
130
|
+
field_candidates = self._get_source_field_candidates()
|
131
|
+
# Iterate over the prioritized list of candidate fields
|
132
|
+
for field in field_candidates:
|
133
|
+
if self._has_nested_field(field):
|
134
|
+
for move in moves:
|
135
|
+
record = move.mapped(field)
|
136
|
+
if record:
|
137
|
+
return record
|
138
|
+
return False
|
139
|
+
|
140
|
+
def action_open_stock_move_source(self):
|
141
|
+
"""Open the source record of the stock move, if it exists."""
|
142
|
+
self.ensure_one()
|
143
|
+
record = self._get_source_record()
|
144
|
+
if record:
|
145
|
+
return {
|
146
|
+
"name": getattr(record, "name", _("Stock Move Source")),
|
147
|
+
"view_mode": "form",
|
148
|
+
"res_model": record._name,
|
149
|
+
"type": "ir.actions.act_window",
|
150
|
+
"res_id": record.id,
|
151
|
+
}
|
152
|
+
return False
|
@@ -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:81c9f86d5d94033c4e599e426d7a95628e63ebcb642deff966a8e49a5b951476
|
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
|
@@ -38,24 +38,19 @@
|
|
38
38
|
type="object"
|
39
39
|
/>
|
40
40
|
<field name="incoming_dlt_qty" string="Incoming Within DLT" />
|
41
|
-
<field
|
42
|
-
name="incoming_total_qty"
|
43
|
-
string="Total Incoming"
|
44
|
-
optional="show"
|
45
|
-
/>
|
46
41
|
<field
|
47
42
|
name="incoming_outside_dlt_qty"
|
48
43
|
string="Incoming Outside DLT"
|
49
44
|
optional="hide"
|
50
45
|
/>
|
51
46
|
<field
|
52
|
-
name="
|
53
|
-
string="
|
54
|
-
optional="
|
47
|
+
name="incoming_total_qty"
|
48
|
+
string="Total Incoming"
|
49
|
+
optional="show"
|
55
50
|
/>
|
56
51
|
<button
|
57
|
-
title="
|
58
|
-
name="
|
52
|
+
title="Total Incoming"
|
53
|
+
name="action_view_supply_moves"
|
59
54
|
icon="fa-exchange"
|
60
55
|
type="object"
|
61
56
|
/>
|
@@ -71,13 +66,22 @@
|
|
71
66
|
/>
|
72
67
|
<button
|
73
68
|
title="Some incoming quantities are outside of the DLT Horizon and may require rescheduling. Press this button to display the involved supply orders"
|
74
|
-
name="
|
69
|
+
name="action_view_supply_moves_outside_dlt_window"
|
75
70
|
icon="fa-warning"
|
76
71
|
type="object"
|
77
|
-
attrs="{'invisible':[('incoming_outside_dlt_qty', '=', 0)
|
72
|
+
attrs="{'invisible':[('incoming_outside_dlt_qty', '=', 0)]}"
|
78
73
|
/>
|
74
|
+
<field name="rfq_outside_dlt_qty" invisible="1" />
|
79
75
|
<button
|
80
|
-
title="
|
76
|
+
title="Some RFQ quantities are outside of the DLT Horizon and may require rescheduling.
|
77
|
+
Press this button to display the involved RFQs"
|
78
|
+
name="action_view_supply_rfq_outside_dlt_window"
|
79
|
+
icon="fa-warning"
|
80
|
+
type="object"
|
81
|
+
attrs="{'invisible':[('rfq_outside_dlt_qty', '=', 0)]}"
|
82
|
+
/>
|
83
|
+
<button
|
84
|
+
title="No stock available in source location for distributed buffer"
|
81
85
|
name="action_dummy"
|
82
86
|
icon="fa-warning"
|
83
87
|
type="object"
|
@@ -397,8 +401,8 @@
|
|
397
401
|
<div name="incoming_dlt_qty" class="o_row">
|
398
402
|
<field name="incoming_dlt_qty" />
|
399
403
|
<button
|
400
|
-
title="View Incoming (Within DLT)"
|
401
|
-
name="
|
404
|
+
title="View Incoming Moves (Within DLT)"
|
405
|
+
name="action_view_supply_moves_inside_dlt_window"
|
402
406
|
icon="fa-search"
|
403
407
|
type="object"
|
404
408
|
attrs="{'invisible': [('incoming_dlt_qty', '=', 0)]}"
|
@@ -409,11 +413,24 @@
|
|
409
413
|
attrs="{'invisible':[('incoming_outside_dlt_qty', '=', 0), ('rfq_outside_dlt_qty', '=', 0)]}"
|
410
414
|
>
|
411
415
|
<button
|
412
|
-
title="Some incoming
|
413
|
-
|
414
|
-
name="
|
416
|
+
title="Some incoming qty is outside of the DLT Horizon and may require rescheduling.
|
417
|
+
Press this button to display the involved supply orders"
|
418
|
+
name="action_view_supply_moves_outside_dlt_window"
|
419
|
+
icon="fa-warning"
|
420
|
+
type="object"
|
421
|
+
attrs="{'invisible':[('incoming_outside_dlt_qty', '=', 0)]}"
|
422
|
+
/>
|
423
|
+
<field
|
424
|
+
name="rfq_outside_dlt_qty"
|
425
|
+
invisible="1"
|
426
|
+
/>
|
427
|
+
<button
|
428
|
+
title="Some incoming RFQs are outside of the DLT Horizon and may require rescheduling.
|
429
|
+
Press this button to display the involved supply orders"
|
430
|
+
name="action_view_supply_rfq_outside_dlt_window"
|
415
431
|
icon="fa-warning"
|
416
432
|
type="object"
|
433
|
+
attrs="{'invisible':[('rfq_outside_dlt_qty', '=', 0)]}"
|
417
434
|
/>
|
418
435
|
(Outside DLT:
|
419
436
|
<field
|
@@ -436,7 +453,7 @@
|
|
436
453
|
/>
|
437
454
|
<button
|
438
455
|
title="View Qualified Demand from Pickings"
|
439
|
-
name="
|
456
|
+
name="action_view_qualified_demand_moves"
|
440
457
|
icon="fa-search"
|
441
458
|
type="object"
|
442
459
|
attrs="{'invisible': ['|', ('qualified_demand', '=', 0), ('qualified_demand_stock_move_ids', '=', [])]}"
|
@@ -2,15 +2,18 @@
|
|
2
2
|
<!-- Copyright 2018-20 ForgeFlow S.L. (http://www.forgeflow.com)
|
3
3
|
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl-3.0) -->
|
4
4
|
<odoo>
|
5
|
-
<!--Fixes to show date on stock move report-->
|
6
|
-
<!--If someday Odoo corrects this, we could remove this views-->
|
7
5
|
<record id="view_move_tree" model="ir.ui.view">
|
8
6
|
<field name="name">stock.move.tree</field>
|
9
7
|
<field name="model">stock.move</field>
|
10
8
|
<field name="inherit_id" ref="stock.view_move_tree" />
|
11
9
|
<field name="arch" type="xml">
|
12
|
-
<field name="
|
13
|
-
<
|
10
|
+
<field name="state" position="after">
|
11
|
+
<button
|
12
|
+
title="Go to Source"
|
13
|
+
name="action_open_stock_move_source"
|
14
|
+
icon="fa-arrow-right"
|
15
|
+
type="object"
|
16
|
+
/>
|
14
17
|
</field>
|
15
18
|
</field>
|
16
19
|
</record>
|
{odoo14_addon_ddmrp-14.0.1.23.4.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/METADATA
RENAMED
@@ -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.24.0
|
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)
|
@@ -30,7 +30,7 @@ DDMRP
|
|
30
30
|
!! This file is generated by oca-gen-addon-readme !!
|
31
31
|
!! changes will be overwritten. !!
|
32
32
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
33
|
-
!! source digest: sha256:
|
33
|
+
!! source digest: sha256:81c9f86d5d94033c4e599e426d7a95628e63ebcb642deff966a8e49a5b951476
|
34
34
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
35
35
|
|
36
36
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
{odoo14_addon_ddmrp-14.0.1.23.4.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/RECORD
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
odoo/addons/ddmrp/README.rst,sha256=
|
1
|
+
odoo/addons/ddmrp/README.rst,sha256=GCqN7b4B9CaTh6gw0j9Yn4SmfsdNd41CvqcupY5ce8M,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=-tBy7-mJFYQKRZHvmj6Fzn9A36YPsBMDw1mgLFLp7Ts,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
|
@@ -16,7 +16,7 @@ odoo/addons/ddmrp/demo/product_product_demo.xml,sha256=-jp5RGrexRsHIITmPhUGKClat
|
|
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=
|
19
|
+
odoo/addons/ddmrp/i18n/ddmrp.pot,sha256=lJwFDt0BGl1ZIc9JQfQI0kXWyDNdfVVqMRe-6RxA7jI,71220
|
20
20
|
odoo/addons/ddmrp/i18n/es.po,sha256=meizuFjF2h4jRKKPOuxAkLY2U82qvouqHmzEZL_KVjY,87057
|
21
21
|
odoo/addons/ddmrp/i18n/es_AR.po,sha256=p6ZDjy2tdg9_XLxG4EQhu19Lostr5PBYGYKj-_GKScQ,85815
|
22
22
|
odoo/addons/ddmrp/i18n/fr.po,sha256=wFTkGx3rVWuycqkh7INaIHT9SMFAp0-qYjMCGg9kzDw,72057
|
@@ -35,11 +35,11 @@ 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=1p98SshO7TxvK0X-NLz_MwNzB29UBdwibDOTlGjb6Bo,78726
|
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
|
42
|
-
odoo/addons/ddmrp/models/stock_move.py,sha256=
|
42
|
+
odoo/addons/ddmrp/models/stock_move.py,sha256=Xofbwa8qSmxTh9vGQ4gRWA_GueNLWylYamKgbrXZz6c,5915
|
43
43
|
odoo/addons/ddmrp/models/stock_move_line.py,sha256=dJleguJeIUkfzl4dqeFQvLYo60gO4mjYVBukrkJhYFY,339
|
44
44
|
odoo/addons/ddmrp/models/stock_picking.py,sha256=nZg-VTJvlWPYi0U_9JyTaVLww-fCGyy_ONgaf5MpV48,710
|
45
45
|
odoo/addons/ddmrp/models/stock_rule.py,sha256=GHeUZFKfO0IS26epDMLYhJ-bjRjhs-j9uf4DioLoCcQ,2811
|
@@ -60,7 +60,7 @@ odoo/addons/ddmrp/security/ddmrp_groups.xml,sha256=dW2V1aZD5w9ssvtfaxy73jRf53sNh
|
|
60
60
|
odoo/addons/ddmrp/security/ddmrp_rules.xml,sha256=W1hYvw6WtAKMLytNHzpQgX0aCx9PTM3fWsmcxrqXL88,2079
|
61
61
|
odoo/addons/ddmrp/security/ir.model.access.csv,sha256=r_v87wOkAnIUwxgJpyZB1nqxCMGIg-jivK4znBVZSKA,2623
|
62
62
|
odoo/addons/ddmrp/static/description/icon.png,sha256=QThDd6zhQU48MY3Y7Ij5m6yWQACbl0BCyoaHLL9-hAQ,7006
|
63
|
-
odoo/addons/ddmrp/static/description/index.html,sha256=
|
63
|
+
odoo/addons/ddmrp/static/description/index.html,sha256=egSzf2N9XOc2JdmCMvKrfngdsqttF3h__OBUT5rRfjc,26542
|
64
64
|
odoo/addons/ddmrp/static/img/has_mto_rule.png,sha256=IVYC3_qpiYrSTPfruURd7kQkwpaOnBlQ1Id3WAJisRo,4604
|
65
65
|
odoo/addons/ddmrp/static/img/is_buffered.png,sha256=uGFYPIo5YIE9TO96uu8-LfHAlAtKN97H9j1Ik74hcHQ,5000
|
66
66
|
odoo/addons/ddmrp/static/img/res_partner_eficent-image.jpg,sha256=ja8mU9YHbRwEDOHbXE5ROiKhABWqq4YFQ7cZwHWAqPA,24419
|
@@ -83,8 +83,8 @@ odoo/addons/ddmrp/views/purchase_order_view.xml,sha256=mw0NRSKz_VilND3OG_sJHP_x1
|
|
83
83
|
odoo/addons/ddmrp/views/stock_buffer_profile_lead_time_view.xml,sha256=uX0oEwJv3EUYYynV0WuWBuZMfpYGx9j-HuYXxzVaaFA,2919
|
84
84
|
odoo/addons/ddmrp/views/stock_buffer_profile_variability_view.xml,sha256=BLMlWsQD2TwxkZ4U-LQLSGKwJzBUD9WtxLeOX2ajBF4,2987
|
85
85
|
odoo/addons/ddmrp/views/stock_buffer_profile_view.xml,sha256=m14bFUZs6KVNtHX0YqaRsUIh5PNZr-Sp0iQs52BaJ3I,4129
|
86
|
-
odoo/addons/ddmrp/views/stock_buffer_view.xml,sha256=
|
87
|
-
odoo/addons/ddmrp/views/stock_move_views.xml,sha256=
|
86
|
+
odoo/addons/ddmrp/views/stock_buffer_view.xml,sha256=Ecx6IodOkGvaKggcJXDq8CrrgaJ7eIIM21XTQtx-p80,36795
|
87
|
+
odoo/addons/ddmrp/views/stock_move_views.xml,sha256=p_BHBEX1msl2TBosW_VV6ynHYHjC_q0_608NL1RCKXk,2313
|
88
88
|
odoo/addons/ddmrp/views/stock_picking.xml,sha256=CD82zoeS6Nnbxw_c53fE-L-0YgTSITW-78Y3c63JzuE,684
|
89
89
|
odoo/addons/ddmrp/views/stock_warehouse_views.xml,sha256=wPLTji7AncZWhsWxbQSPJa7_pAhdybYblMxaeJIVQ5c,612
|
90
90
|
odoo/addons/ddmrp/wizards/__init__.py,sha256=dYdY2HkhVuqQEUEx6wtSCOK9318VCiSFpG1JVddME0U,201
|
@@ -99,7 +99,7 @@ odoo/addons/ddmrp/wizards/mrp_bom_change_location.xml,sha256=a6YZ67nrCkO3MrKy9wN
|
|
99
99
|
odoo/addons/ddmrp/wizards/multi_level_mrp.py,sha256=7PjXJ4Gx8_DqK81eFSeeGTyN1YETSxWFEs6xddwbS2c,753
|
100
100
|
odoo/addons/ddmrp/wizards/res_config_settings.py,sha256=WquTRzrSDWAUyd4Fk6qRBBkXRKVZiTcWumQNCzmyGGQ,1530
|
101
101
|
odoo/addons/ddmrp/wizards/res_config_settings_views.xml,sha256=X8yZQpuF2xDeSSJWn9dtKt7WbSGc-vWZQjIr7J0y-yk,10278
|
102
|
-
odoo14_addon_ddmrp-14.0.1.
|
103
|
-
odoo14_addon_ddmrp-14.0.1.
|
104
|
-
odoo14_addon_ddmrp-14.0.1.
|
105
|
-
odoo14_addon_ddmrp-14.0.1.
|
102
|
+
odoo14_addon_ddmrp-14.0.1.24.0.dist-info/METADATA,sha256=F3k7_reeZgP3eiayISH-E8AFGQ_2csac_Lj0HvXPhZw,13117
|
103
|
+
odoo14_addon_ddmrp-14.0.1.24.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
104
|
+
odoo14_addon_ddmrp-14.0.1.24.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
105
|
+
odoo14_addon_ddmrp-14.0.1.24.0.dist-info/RECORD,,
|
File without changes
|
{odoo14_addon_ddmrp-14.0.1.23.4.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/top_level.txt
RENAMED
File without changes
|