odoo14-addon-ddmrp 14.0.1.23.3.dev3__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 +55 -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.3.dev3.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/METADATA +2 -2
- {odoo14_addon_ddmrp-14.0.1.23.3.dev3.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/RECORD +12 -12
- {odoo14_addon_ddmrp-14.0.1.23.3.dev3.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/WHEEL +0 -0
- {odoo14_addon_ddmrp-14.0.1.23.3.dev3.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
|
@@ -927,6 +927,7 @@ class StockBuffer(models.Model):
|
|
927
927
|
def _get_manufactured_bom(self, limit=1):
|
928
928
|
return self.env["mrp.bom"].search(
|
929
929
|
[
|
930
|
+
("type", "=", "normal"),
|
930
931
|
"|",
|
931
932
|
("product_id", "=", self.product_id.id),
|
932
933
|
("product_tmpl_id", "=", self.product_id.product_tmpl_id.id),
|
@@ -1361,17 +1362,6 @@ class StockBuffer(models.Model):
|
|
1361
1362
|
"domain": str([("id", "in", lines.ids)]),
|
1362
1363
|
}
|
1363
1364
|
|
1364
|
-
def open_moves(self):
|
1365
|
-
self.ensure_one()
|
1366
|
-
# Utility method used to add an "Open Moves" button in the buffer
|
1367
|
-
# planning view
|
1368
|
-
domain = self._search_open_stock_moves_domain()
|
1369
|
-
moves = self.env["stock.move"].search(domain)
|
1370
|
-
moves = moves.filtered(
|
1371
|
-
lambda move: move.location_dest_id.is_sublocation_of(self.location_id)
|
1372
|
-
)
|
1373
|
-
return self._stock_move_tree_view(moves)
|
1374
|
-
|
1375
1365
|
def _get_horizon_adu_past_demand(self):
|
1376
1366
|
return self.adu_calculation_method.horizon_past or 0
|
1377
1367
|
|
@@ -1761,6 +1751,7 @@ class StockBuffer(models.Model):
|
|
1761
1751
|
def _procure_qty_to_order(self):
|
1762
1752
|
qty_to_order = self.procure_recommended_qty
|
1763
1753
|
rounding = self.procure_uom_id.rounding or self.product_uom.rounding
|
1754
|
+
qty_in_progress = self._quantity_in_progress()[self._origin.id]
|
1764
1755
|
if (
|
1765
1756
|
self.item_type == "distributed"
|
1766
1757
|
and self.buffer_profile_id.replenish_distributed_limit_to_free_qty
|
@@ -1781,6 +1772,16 @@ class StockBuffer(models.Model):
|
|
1781
1772
|
else:
|
1782
1773
|
# move only what we have in stock
|
1783
1774
|
return min(qty_to_order, self.distributed_source_location_qty)
|
1775
|
+
elif (
|
1776
|
+
float_compare(qty_in_progress, 0, precision_rounding=rounding) > 0
|
1777
|
+
and float_compare(
|
1778
|
+
qty_to_order, self.green_zone_qty, precision_rounding=rounding
|
1779
|
+
)
|
1780
|
+
< 0
|
1781
|
+
):
|
1782
|
+
# When there is qty in progress (e.g. RfQ sent), do not keep
|
1783
|
+
# auto-procuring small quantities, wait for the qty to be at least GZ.
|
1784
|
+
return 0
|
1784
1785
|
return qty_to_order
|
1785
1786
|
|
1786
1787
|
def do_auto_procure(self):
|
@@ -1809,72 +1810,72 @@ class StockBuffer(models.Model):
|
|
1809
1810
|
wizard.make_procurement()
|
1810
1811
|
return True
|
1811
1812
|
|
1812
|
-
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()
|
1813
1824
|
cut_date = self._get_incoming_supply_date_limit()
|
1814
1825
|
if not outside_dlt:
|
1815
1826
|
pols = self.purchase_line_ids.filtered(
|
1816
1827
|
lambda l: l.date_planned <= fields.Datetime.to_datetime(cut_date)
|
1817
|
-
and l.
|
1828
|
+
and l.state in ("draft", "sent")
|
1818
1829
|
)
|
1819
1830
|
else:
|
1820
1831
|
pols = self.purchase_line_ids.filtered(
|
1821
1832
|
lambda l: l.date_planned > fields.Datetime.to_datetime(cut_date)
|
1822
|
-
and l.
|
1833
|
+
and l.state in ("draft", "sent")
|
1823
1834
|
)
|
1824
1835
|
return pols
|
1825
1836
|
|
1826
|
-
def
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1837
|
-
|
1838
|
-
moves = self._search_stock_moves_incoming(outside_dlt)
|
1839
|
-
mos = moves.mapped("production_id")
|
1840
|
-
result = self.env["ir.actions.actions"]._for_xml_id(
|
1841
|
-
"mrp.mrp_production_action"
|
1842
|
-
)
|
1843
|
-
result["context"] = {}
|
1844
|
-
result["domain"] = [("id", "in", mos.ids)]
|
1845
|
-
else:
|
1846
|
-
moves = self._search_stock_moves_incoming(outside_dlt)
|
1847
|
-
picks = moves.mapped("picking_id")
|
1848
|
-
result = self.env["ir.actions.actions"]._for_xml_id(
|
1849
|
-
"stock.action_picking_tree_all"
|
1850
|
-
)
|
1851
|
-
result["context"] = {}
|
1852
|
-
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)]
|
1842
|
+
return result
|
1843
|
+
|
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)]
|
1853
1849
|
return result
|
1854
1850
|
|
1855
|
-
def
|
1856
|
-
|
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
|
1857
1858
|
|
1858
|
-
def
|
1859
|
-
|
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")
|
1863
|
+
result["context"] = {}
|
1864
|
+
result["domain"] = [("id", "in", pos.ids)]
|
1865
|
+
return result
|
1860
1866
|
|
1861
|
-
def
|
1862
|
-
|
1863
|
-
picks = moves.mapped("picking_id")
|
1864
|
-
result = self.env["ir.actions.actions"]._for_xml_id(
|
1865
|
-
"stock.action_picking_tree_all"
|
1866
|
-
)
|
1867
|
+
def action_view_qualified_demand_moves(self):
|
1868
|
+
result = self.env["ir.actions.actions"]._for_xml_id("stock.stock_move_action")
|
1867
1869
|
result["context"] = {}
|
1868
|
-
result["domain"] = [("id", "in",
|
1870
|
+
result["domain"] = [("id", "in", self.qualified_demand_stock_move_ids.ids)]
|
1869
1871
|
return result
|
1870
1872
|
|
1871
1873
|
def action_view_qualified_demand_mrp(self):
|
1872
|
-
mrp_moves = self.qualified_demand_mrp_move_ids
|
1873
1874
|
result = self.env["ir.actions.actions"]._for_xml_id(
|
1874
1875
|
"mrp_multi_level.mrp_move_action"
|
1875
1876
|
)
|
1876
1877
|
result["context"] = {}
|
1877
|
-
result["domain"] = [("id", "in",
|
1878
|
+
result["domain"] = [("id", "in", self.qualified_demand_mrp_move_ids.ids)]
|
1878
1879
|
return result
|
1879
1880
|
|
1880
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.3.dev3.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.3.dev3.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,,
|
{odoo14_addon_ddmrp-14.0.1.23.3.dev3.dist-info → odoo14_addon_ddmrp-14.0.1.24.0.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|