Skip to content

Commit

Permalink
[8.0.1.0.1][stock_push_rule_extend] Fix push rule search mechanism
Browse files Browse the repository at this point in the history
  • Loading branch information
andhit-r committed May 19, 2017
1 parent 5b43d26 commit 0347761
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 30 deletions.
2 changes: 1 addition & 1 deletion stock_push_rule_extend/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Push Rule Monkeypatch",
"version": "8.0.1.0.0",
"version": "8.0.1.0.1",
"category": "Stock Management",
"website": "https://opensynergy-indonesia.com",
"author": "OpenSynergy Indonesia",
Expand Down
43 changes: 14 additions & 29 deletions stock_push_rule_extend/models/stock_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,50 +40,35 @@ def _prepare_init_domain(self):
def _find_push_rule(self):
obj_rule = self.env["stock.location.path"]
domain = self._prepare_init_domain()
product_routes = self._find_product_related_push_rule_route()
if product_routes[0]:
domain += product_routes[1]
sequence = product_routes[2]
else:
wh_routes = self._find_wh_related_push_rule_route()
if wh_routes[0]:
domain += wh_routes[1]
sequence = wh_routes[2]
else:
rules = self._find_product_related_push_rule(domain)
if len(rules) == 0:
rules = self._find_wh_related_push_rule(domain)
if rules == 0:
domain += [("route_id", "=", False)]
sequence = "sequence"
rules = obj_rule.search(
domain, order=sequence)
rules = obj_rule.search(
domain, order="sequence")
if len(rules) > 0:
rule = rules[0]
else:
rule = False
return rule

@api.multi
def _find_product_related_push_rule_route(self):
def _find_product_related_push_rule(self, domain):
self.ensure_one()
flag = False
domain = []
sequence = ""
obj_rule = self.env["stock.location.path"]
routes = self.product_id.route_ids + \
self.product_id.categ_id.total_route_ids
if len(routes) > 0:
flag = True
domain = [("route_id", "in", routes.ids)]
return [flag, domain, sequence]
dom = domain + [("route_id", "in", routes.ids)]
return obj_rule.search(dom)

@api.multi
def _find_wh_related_push_rule_route(self):
def _find_wh_related_push_rule(self, domain):
self.ensure_one()
flag = False
domain = []
sequence = ""
obj_rule = self.env["stock.location.path"]
if self.warehouse_id:
routes = self.warehouse_id.route_ids
elif self.picking_type_id and self.picking_type_id.warehouse_id:
routes = self.picking_type_id.warehouse_id.route_ids
if len(routes) > 0:
flag = True
domain = [("route_id", "in", routes.ids)]
return [flag, domain, sequence]
dom = domain + [("route_id", "in", routes.ids)]
return obj_rule.search(dom)

0 comments on commit 0347761

Please sign in to comment.