diff --git a/stock_warehouse_procurement/README.rst b/stock_warehouse_procurement/README.rst new file mode 100644 index 00000000..11985e25 --- /dev/null +++ b/stock_warehouse_procurement/README.rst @@ -0,0 +1,28 @@ +*********************************** +Hibou - Reorder Rules Per Warehouse +*********************************** + +Run the inventory scheduler per warehouse. + +For more information and add-ons, visit `Hibou.io `_. + + +============= +Main Features +============= + +* Extends the `stock.scheduler.compute` wizard to allow the inventory scheduler to run on demand per warehouse. + +.. image:: https://user-images.githubusercontent.com/15882954/45578023-f353d300-b833-11e8-8007-48fa3d96495a.png + :alt: 'Run Scheduler Wizard' + :width: 988 + :align: left + + +======= +License +======= + +Please see `LICENSE `_. + +Copyright Hibou Corp. 2018 diff --git a/stock_warehouse_procurement/__init__.py b/stock_warehouse_procurement/__init__.py new file mode 100644 index 00000000..134df274 --- /dev/null +++ b/stock_warehouse_procurement/__init__.py @@ -0,0 +1,2 @@ +from . import wizard +from . import models diff --git a/stock_warehouse_procurement/__manifest__.py b/stock_warehouse_procurement/__manifest__.py new file mode 100644 index 00000000..4a97df55 --- /dev/null +++ b/stock_warehouse_procurement/__manifest__.py @@ -0,0 +1,20 @@ +{ + 'name': 'Reorder Rules per Warehouse', + 'version': '12.0.1.0.0', + 'category': 'Warehouse', + 'depends': [ + 'stock', + ], + 'description': """ +Extends `stock.scheduler.compute` wizard to allow running on demand per-warehouse. + +""", + 'author': "Hibou Corp.", + 'license': 'AGPL-3', + 'website': 'https://hibou.io/', + 'data': [ + 'wizard/stock_scheduler_compute_views.xml', + ], + 'installable': True, + 'application': False, +} diff --git a/stock_warehouse_procurement/models/__init__.py b/stock_warehouse_procurement/models/__init__.py new file mode 100644 index 00000000..2cac6b05 --- /dev/null +++ b/stock_warehouse_procurement/models/__init__.py @@ -0,0 +1 @@ +from . import procurement diff --git a/stock_warehouse_procurement/models/procurement.py b/stock_warehouse_procurement/models/procurement.py new file mode 100644 index 00000000..3b56006b --- /dev/null +++ b/stock_warehouse_procurement/models/procurement.py @@ -0,0 +1,12 @@ +from odoo import models + + +class ProcurementGroup(models.Model): + _inherit = 'procurement.group' + + def _get_orderpoint_domain(self, company_id=False): + domain = super(ProcurementGroup, self)._get_orderpoint_domain(company_id) + warehouse_id = self.env.context.get('warehouse_id', None) + if warehouse_id: + domain.append(('warehouse_id', '=', warehouse_id)) + return domain diff --git a/stock_warehouse_procurement/wizard/__init__.py b/stock_warehouse_procurement/wizard/__init__.py new file mode 100644 index 00000000..26d21bd5 --- /dev/null +++ b/stock_warehouse_procurement/wizard/__init__.py @@ -0,0 +1 @@ +from . import stock_scheduler_compute diff --git a/stock_warehouse_procurement/wizard/stock_scheduler_compute.py b/stock_warehouse_procurement/wizard/stock_scheduler_compute.py new file mode 100644 index 00000000..408b3d9b --- /dev/null +++ b/stock_warehouse_procurement/wizard/stock_scheduler_compute.py @@ -0,0 +1,14 @@ +from odoo import api, fields, models + + +class StockSchedulerCompute(models.TransientModel): + _inherit = 'stock.scheduler.compute' + + warehouse_id = fields.Many2one('stock.warehouse', string='Warehouse') + + @api.multi + def procure_calculation(self): + self.ensure_one() + if self.warehouse_id: + self = self.with_context(warehouse_id=self.warehouse_id.id) + return super(StockSchedulerCompute, self).procure_calculation() diff --git a/stock_warehouse_procurement/wizard/stock_scheduler_compute_views.xml b/stock_warehouse_procurement/wizard/stock_scheduler_compute_views.xml new file mode 100644 index 00000000..65960b24 --- /dev/null +++ b/stock_warehouse_procurement/wizard/stock_scheduler_compute_views.xml @@ -0,0 +1,15 @@ + + + + Run Schedulers Manually + stock.scheduler.compute + + + + + + + + + + \ No newline at end of file