126 lines
4.1 KiB
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):
|
|
|