Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8.0.1.0.0][stock_pull_rule_picking_type] #25

Merged
merged 1 commit into from
May 22, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions stock_pull_rule_picking_type/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3

=========================
Push Rule by Picking Type
=========================



Installation
============

To install this module, you need to:

1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-stock-logistics-workflow
2. Add the path to this repository in your configuration (addons-path)
3. Update the module list
4. Go to menu *Setting -> Modules -> Local Modules*
5. Search For *Push Rule by Picking Type*
6. Install the module

Bug Tracker
===========

Bugs are tracked on `GitHub Issues
<https://github.com/open-synergy/opnsynid-stock-logistics-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed
and welcomed feedback.


Credits
=======

Contributors
------------

* Andhitia Rama <andhitia.r@gmail.com>

Maintainer
----------

.. image:: https://opensynergy-indonesia.com/logo.png
:alt: OpenSynergy Indonesia
:target: https://opensynergy-indonesia.com

This module is maintained by the OpenSynergy Indonesia.
5 changes: 5 additions & 0 deletions stock_pull_rule_picking_type/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Copyright 2017 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import models
18 changes: 18 additions & 0 deletions stock_pull_rule_picking_type/__openerp__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# Copyright 2017 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Pull Rule Filter by Picking Type",
"version": "8.0.1.0.0",
"category": "Stock Management",
"website": "https://opensynergy-indonesia.com",
"author": "OpenSynergy Indonesia",
"license": "AGPL-3",
"installable": True,
"depends": [
"stock_pull_rule_extend",
],
"data": [
"views/procurement_rule_views.xml",
],
}
5 changes: 5 additions & 0 deletions stock_pull_rule_picking_type/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Copyright 2017 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import procurement_order, procurement_rule
65 changes: 65 additions & 0 deletions stock_pull_rule_picking_type/models/procurement_order.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
# Copyright 2017 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from openerp import models, api


class ProcurementOrder(models.Model):
_inherit = "procurement.order"

@api.multi
def _find_procurement_pull_rules(self, domain):
self.ensure_one()
obj_rule = self.env["procurement.rule"]
dom = self._prepare_procurement_pull_rule_domain(domain)
if self.move_dest_id and self.move_dest_id.picking_type_id:
pick_type = self.move_dest_id.picking_type_id
dom1 = dom + [("picking_type_ids", "in", [pick_type.id])]
rules = obj_rule.search(dom1, order="route_sequence, sequence")
if not rules:
return obj_rule.search(dom, order="route_sequence, sequence")
else:
return obj_rule.search(dom, order="route_sequence, sequence")

@api.multi
def _find_product_pull_rules(self, domain):
self.ensure_one()
obj_rule = self.env["procurement.rule"]
dom = self._prepare_product_pull_rule_domain(domain)
if self.move_dest_id and self.move_dest_id.picking_type_id:
pick_type = self.move_dest_id.picking_type_id
dom1 = dom + [("picking_type_ids", "in", [pick_type.id])]
rules = obj_rule.search(dom1, order="route_sequence, sequence")
if not rules:
return obj_rule.search(dom, order="route_sequence, sequence")
else:
return obj_rule.search(dom, order="route_sequence, sequence")

@api.multi
def _find_warehouse_pull_rules(self, domain):
self.ensure_one()
obj_rule = self.env["procurement.rule"]
dom = self._prepare_warehouse_pull_rule_domain(domain)
if self.move_dest_id and self.move_dest_id.picking_type_id:
pick_type = self.move_dest_id.picking_type_id
dom1 = dom + [("picking_type_ids", "in", [pick_type.id])]
rules = obj_rule.search(dom1, order="route_sequence, sequence")
if not rules:
return obj_rule.search(dom, order="route_sequence, sequence")
else:
return obj_rule.search(dom, order="route_sequence, sequence")

@api.multi
def _find_global_pull_rules(self, domain):
self.ensure_one()
obj_rule = self.env["procurement.rule"]
dom = self._prepare_global_pull_rule_domain(domain)
if self.move_dest_id and self.move_dest_id.picking_type_id:
pick_type = self.move_dest_id.picking_type_id
dom1 = dom + [("picking_type_ids", "in", [pick_type.id])]
rules = obj_rule.search(dom1, order="route_sequence, sequence")
if not rules:
return obj_rule.search(dom, order="route_sequence, sequence")
else:
return obj_rule.search(dom, order="route_sequence, sequence")
17 changes: 17 additions & 0 deletions stock_pull_rule_picking_type/models/procurement_rule.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
# Copyright 2017 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from openerp import models, fields


class ProcurementRule(models.Model):
_inherit = "procurement.rule"

picking_type_ids = fields.Many2many(
string="Picking Type",
comodel_name="stock.picking.type",
relation="rel_pull_rule_2_type",
col1="pullid",
col2="picking_type_id",
)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions stock_pull_rule_picking_type/views/procurement_rule_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="procurement_rule_view_form" model="ir.ui.view">
<field name="name">Procurement Rule Form</field>
<field name="model">procurement.rule</field>
<field name="inherit_id" ref="stock.view_procurement_rule_form_stock_inherit"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='route_id']" position="after">
<field name="picking_type_ids" widget="many2many_tags"/>
</xpath>
</data>
</field>
</record>
</data>
</openerp>