mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
[IMP] mrp_multi_level:
* Stock Moves Domain moved to product mrp area
This commit is contained in:
committed by
JasminSForgeFlow
parent
b372d5da0d
commit
2a1c277c96
@@ -224,3 +224,38 @@ class ProductMRPArea(models.Model):
|
|||||||
lambda r: r.main_supplierinfo_id and r.supply_method == "buy"
|
lambda r: r.main_supplierinfo_id and r.supply_method == "buy"
|
||||||
):
|
):
|
||||||
rec.mrp_minimum_order_qty = rec.main_supplierinfo_id.min_qty
|
rec.mrp_minimum_order_qty = rec.main_supplierinfo_id.min_qty
|
||||||
|
|
||||||
|
def _in_stock_moves_domain(self):
|
||||||
|
self.ensure_one()
|
||||||
|
locations = self.mrp_area_id._get_locations()
|
||||||
|
return [
|
||||||
|
("product_id", "=", self.product_id.id),
|
||||||
|
("state", "not in", ["done", "cancel"]),
|
||||||
|
("product_qty", ">", 0.00),
|
||||||
|
("location_id", "not in", locations.ids),
|
||||||
|
("location_dest_id", "in", locations.ids),
|
||||||
|
]
|
||||||
|
|
||||||
|
def _out_stock_moves_domain(self):
|
||||||
|
self.ensure_one()
|
||||||
|
locations = self.mrp_area_id._get_locations()
|
||||||
|
return [
|
||||||
|
("product_id", "=", self.product_id.id),
|
||||||
|
("state", "not in", ["done", "cancel"]),
|
||||||
|
("product_qty", ">", 0.00),
|
||||||
|
("location_id", "in", locations.ids),
|
||||||
|
("location_dest_id", "not in", locations.ids),
|
||||||
|
]
|
||||||
|
|
||||||
|
def action_view_stock_moves(self, domain):
|
||||||
|
self.ensure_one()
|
||||||
|
action = self.env.ref("stock.stock_move_action").read()[0]
|
||||||
|
action["domain"] = domain
|
||||||
|
action["context"] = {}
|
||||||
|
return action
|
||||||
|
|
||||||
|
def action_view_incoming_stock_moves(self):
|
||||||
|
return self.action_view_stock_moves(self._in_stock_moves_domain())
|
||||||
|
|
||||||
|
def action_view_outgoing_stock_moves(self):
|
||||||
|
return self.action_view_stock_moves(self._out_stock_moves_domain())
|
||||||
|
|||||||
@@ -31,7 +31,22 @@
|
|||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Product MRP Area parameters">
|
<form string="Product MRP Area parameters">
|
||||||
<sheet>
|
<sheet>
|
||||||
<div class="oe_button_box" name="button_box" />
|
<div class="oe_button_box" name="button_box">
|
||||||
|
<button
|
||||||
|
name="action_view_incoming_stock_moves"
|
||||||
|
string="Incoming Moves"
|
||||||
|
type="object"
|
||||||
|
class="oe_stat_button"
|
||||||
|
icon="fa-list"
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
name="action_view_outgoing_stock_moves"
|
||||||
|
string="Outgoing Moves"
|
||||||
|
type="object"
|
||||||
|
class="oe_stat_button"
|
||||||
|
icon="fa-list"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<widget
|
<widget
|
||||||
name="web_ribbon"
|
name="web_ribbon"
|
||||||
title="Archived"
|
title="Archived"
|
||||||
|
|||||||
@@ -338,37 +338,13 @@ class MultiLevelMrp(models.TransientModel):
|
|||||||
"""This method is meant to be inherited to add a forecast mechanism."""
|
"""This method is meant to be inherited to add a forecast mechanism."""
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# TODO: move this methods to product_mrp_area?? to be able to
|
|
||||||
# show moves with an action
|
|
||||||
@api.model
|
|
||||||
def _in_stock_moves_domain(self, product_mrp_area):
|
|
||||||
locations = product_mrp_area.mrp_area_id._get_locations()
|
|
||||||
return [
|
|
||||||
("product_id", "=", product_mrp_area.product_id.id),
|
|
||||||
("state", "not in", ["done", "cancel"]),
|
|
||||||
("product_qty", ">", 0.00),
|
|
||||||
("location_id", "not in", locations.ids),
|
|
||||||
("location_dest_id", "in", locations.ids),
|
|
||||||
]
|
|
||||||
|
|
||||||
@api.model
|
|
||||||
def _out_stock_moves_domain(self, product_mrp_area):
|
|
||||||
locations = product_mrp_area.mrp_area_id._get_locations()
|
|
||||||
return [
|
|
||||||
("product_id", "=", product_mrp_area.product_id.id),
|
|
||||||
("state", "not in", ["done", "cancel"]),
|
|
||||||
("product_qty", ">", 0.00),
|
|
||||||
("location_id", "in", locations.ids),
|
|
||||||
("location_dest_id", "not in", locations.ids),
|
|
||||||
]
|
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _init_mrp_move_from_stock_move(self, product_mrp_area):
|
def _init_mrp_move_from_stock_move(self, product_mrp_area):
|
||||||
move_obj = self.env["stock.move"]
|
move_obj = self.env["stock.move"]
|
||||||
mrp_move_obj = self.env["mrp.move"]
|
mrp_move_obj = self.env["mrp.move"]
|
||||||
in_domain = self._in_stock_moves_domain(product_mrp_area)
|
in_domain = product_mrp_area._in_stock_moves_domain()
|
||||||
in_moves = move_obj.search(in_domain)
|
in_moves = move_obj.search(in_domain)
|
||||||
out_domain = self._out_stock_moves_domain(product_mrp_area)
|
out_domain = product_mrp_area._out_stock_moves_domain()
|
||||||
out_moves = move_obj.search(out_domain)
|
out_moves = move_obj.search(out_domain)
|
||||||
if in_moves:
|
if in_moves:
|
||||||
for move in in_moves:
|
for move in in_moves:
|
||||||
|
|||||||
Reference in New Issue
Block a user