trytond-patches/issue12271003_70001.diff

126 lines
4.1 KiB
Diff

Index: trytond/trytond/modules/stock_supply/purchase_request.py
===================================================================
--- a/trytond/trytond/modules/stock_supply/purchase_request.py
+++ b/trytond/trytond/modules/stock_supply/purchase_request.py
@@ -141,10 +141,16 @@
return res
@classmethod
- def generate_requests(cls, products=None):
+ def generate_requests(cls, products=None, warehouses=None):
"""
For each product compute the purchase request that must be
- create today to meet product outputs.
+ created today to meet product outputs.
+
+ If products is specified it will compute the purchase requests
+ for the selected products.
+
+ If warehouses is specified it will compute the purchase request
+ necessary for the selected warehouses.
"""
pool = Pool()
OrderPoint = pool.get('stock.order_point')
@@ -153,10 +159,11 @@
User = pool.get('res.user')
company = User(Transaction().user).company
- # fetch warehouses:
- warehouses = Location.search([
- ('type', '=', 'warehouse'),
- ])
+ if warehouses is None:
+ # fetch warehouses:
+ warehouses = Location.search([
+ ('type', '=', 'warehouse'),
+ ])
warehouse_ids = [w.id for w in warehouses]
# fetch order points
order_points = OrderPoint.search([
@@ -483,6 +490,10 @@
'late_supplier_moves': 'There are some late supplier moves.',
})
+ @property
+ def _requests_parameters(self):
+ return {}
+
def do_create_(self, action):
pool = Pool()
PurchaseRequest = pool.get('purchase.request')
@@ -497,7 +508,7 @@
], order=[]):
self.raise_user_warning('%s@%s' % (self.__name__, today),
'late_supplier_moves')
- PurchaseRequest.generate_requests()
+ PurchaseRequest.generate_requests(**self._requests_parameters)
return action, {}
def transition_create_(self):
Index: trytond/trytond/modules/stock_supply_production/production.py
===================================================================
--- a/trytond/trytond/modules/stock_supply_production/production.py
+++ b/trytond/trytond/modules/stock_supply_production/production.py
@@ -27,12 +27,15 @@
__name__ = 'production'
@classmethod
- def generate_requests(cls, clean=True):
+ def generate_requests(cls, clean=True, warehouses=None):
"""
For each product compute the production request that must be created
today to meet product outputs.
If clean is set, it will remove all previous requests.
+
+ If warehouses is specified it will compute the production requests
+ only for the selected warehouses.
"""
pool = Pool()
OrderPoint = pool.get('stock.order_point')
@@ -48,10 +51,11 @@
])
cls.delete(reqs)
- # fetch warehouse
- warehouses = Location.search([
- ('type', '=', 'warehouse'),
- ])
+ if warehouses is None:
+ # fetch warehouse
+ warehouses = Location.search([
+ ('type', '=', 'warehouse'),
+ ])
warehouse_ids = [w.id for w in warehouses]
# fetch order points
order_points = OrderPoint.search([
@@ -99,7 +103,7 @@
req.set_moves()
requests.append(req)
if requests:
- cls.generate_requests(clean=False)
+ cls.generate_requests(False, warehouses)
return requests
@classmethod
@@ -206,10 +210,14 @@
])
create_ = StateAction('stock_supply_production.act_production_request')
+ @property
+ def _requests_parameters(self):
+ return {}
+
def do_create_(self, action):
pool = Pool()
Production = pool.get('production')
- Production.generate_requests()
+ Production.generate_requests(**self._requests_parameters)
return action, {}
def transition_create_(self):