changeset 314ac23addbe in modules/stock_supply:default
details:
https://hg.tryton.org/modules/stock_supply?cmd=changeset;node=314ac23addbe
description:
Make order point's minimal quantity required
issue8405
review259611017
diffstat:
CHANGELOG | 2 +
order_point.py | 6 ++-
tests/scenario_stock_supply_purchase_request.rst | 57 ++++++++++++++++++++++++
tests/test_stock_supply.py | 1 +
4 files changed, 65 insertions(+), 1 deletions(-)
diffs (107 lines):
diff -r cebaf61bb2d0 -r 314ac23addbe CHANGELOG
--- a/CHANGELOG Mon May 06 15:17:36 2019 +0200
+++ b/CHANGELOG Fri Jun 28 10:17:10 2019 +0200
@@ -1,3 +1,5 @@
+* Make order point's minimal quantity required
+
Version 5.2.0 - 2019-05-06
* Bug fixes (see mercurial logs for details)
diff -r cebaf61bb2d0 -r 314ac23addbe order_point.py
--- a/order_point.py Mon May 06 15:17:36 2019 +0200
+++ b/order_point.py Fri Jun 28 10:17:10 2019 +0200
@@ -71,11 +71,15 @@
'Type', select=True, required=True)
min_quantity = fields.Float('Minimal Quantity',
digits=(16, Eval('unit_digits', 2)),
+ states={
+ # required for purchase and production types
+ 'required': Eval('type') != 'internal',
+ },
domain=['OR',
('min_quantity', '=', None),
('min_quantity', '<=', Eval('target_quantity', 0)),
],
- depends=['unit_digits', 'target_quantity'])
+ depends=['unit_digits', 'target_quantity', 'type'])
target_quantity = fields.Float('Target Quantity', required=True,
digits=(16, Eval('unit_digits', 2)),
domain=[
diff -r cebaf61bb2d0 -r 314ac23addbe
tests/scenario_stock_supply_purchase_request.rst
--- a/tests/scenario_stock_supply_purchase_request.rst Mon May 06 15:17:36
2019 +0200
+++ b/tests/scenario_stock_supply_purchase_request.rst Fri Jun 28 10:17:10
2019 +0200
@@ -162,6 +162,63 @@
>>> pr.quantity
1.0
+Create an order point with negative minimal quantity::
+
+ >>> set_user(stock_admin_user)
+ >>> OrderPoint = Model.get('stock.order_point')
+ >>> order_point = OrderPoint()
+ >>> order_point.type = 'purchase'
+ >>> order_point.product = product
+ >>> order_point.warehouse_location = warehouse_loc
+ >>> order_point.min_quantity = -1
+ >>> order_point.target_quantity = 10
+ >>> order_point.save()
+
+Create production request::
+
+ >>> create_pr = Wizard('stock.supply')
+ >>> create_pr.execute('create_')
+
+There is no more production request::
+
+ >>> set_user(purchase_user)
+ >>> PurchaseRequest.find([])
+ []
+
+Set a postive minimal quantity on order point create purchase request::
+
+ >>> set_user(stock_admin_user)
+ >>> order_point.min_quantity = 5
+ >>> order_point.save()
+ >>> create_pr = Wizard('stock.supply')
+ >>> create_pr.execute('create_')
+
+There is now a draft purchase request::
+
+ >>> set_user(purchase_user)
+ >>> pr, = PurchaseRequest.find([('state', '=', 'draft')])
+ >>> pr.product == product
+ True
+ >>> pr.quantity
+ 11.0
+
+Using zero as minimal quantity on order point also creates purchase request::
+
+ >>> set_user(stock_admin_user)
+ >>> order_point.min_quantity = 0
+ >>> order_point.save()
+ >>> create_pr = Wizard('stock.supply')
+ >>> create_pr.execute('create_')
+
+There is now a draft purchase request::
+
+ >>> set_user(purchase_user)
+ >>> pr, = PurchaseRequest.find([('state', '=', 'draft')])
+ >>> pr.product == product
+ True
+ >>> pr.quantity
+ 11.0
+
Re-run with purchased request::
>>> create_purchase = Wizard('purchase.request.create_purchase', [pr])
diff -r cebaf61bb2d0 -r 314ac23addbe tests/test_stock_supply.py
--- a/tests/test_stock_supply.py Mon May 06 15:17:36 2019 +0200
+++ b/tests/test_stock_supply.py Fri Jun 28 10:17:10 2019 +0200
@@ -148,6 +148,7 @@
'product': product.id,
'type': 'purchase',
'warehouse_location': warehouse.id,
+ 'min_quantity': 0.0,
'target_quantity': 5.0,
}])