changeset e7ada7ded819 in modules/stock_supply:default
details:
https://hg.tryton.org/modules/stock_supply?cmd=changeset;node=e7ada7ded819
description:
Add cron job to supply stock
issue9122
review307131002
diffstat:
CHANGELOG | 2 ++
__init__.py | 2 ++
ir.py | 14 ++++++++++++++
order_point.py | 9 +++++++++
tests/scenario_stock_internal_supply.rst | 15 +++++++++++++++
5 files changed, 42 insertions(+), 0 deletions(-)
diffs (91 lines):
diff -r 256a823235fc -r e7ada7ded819 CHANGELOG
--- a/CHANGELOG Thu Mar 19 19:16:29 2020 +0100
+++ b/CHANGELOG Mon Apr 06 12:58:34 2020 +0200
@@ -1,3 +1,5 @@
+* Add cron job to supply stock
+
Version 5.4.0 - 2019-11-04
* Bug fixes (see mercurial logs for details)
* Make order point's minimal quantity required
diff -r 256a823235fc -r e7ada7ded819 __init__.py
--- a/__init__.py Thu Mar 19 19:16:29 2020 +0100
+++ b/__init__.py Mon Apr 06 12:58:34 2020 +0200
@@ -3,6 +3,7 @@
from trytond.pool import Pool
from . import order_point
+from . import ir
from . import product
from . import purchase_request
from . import shipment
@@ -22,6 +23,7 @@
location.Location,
location.LocationLeadTime,
stock.SupplyStart,
+ ir.Cron,
module='stock_supply', type_='model')
Pool.register(
stock.Supply,
diff -r 256a823235fc -r e7ada7ded819 ir.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ir.py Mon Apr 06 12:58:34 2020 +0200
@@ -0,0 +1,14 @@
+# The COPYRIGHT file at the top level of this repository contains the full
+# copyright notices and license terms.
+from trytond.pool import PoolMeta
+
+
+class Cron(metaclass=PoolMeta):
+ __name__ = 'ir.cron'
+
+ @classmethod
+ def __setup__(cls):
+ super().__setup__()
+ cls.method.selection.extend([
+ ('stock.order_point|supply_stock', "Supply Stock"),
+ ])
diff -r 256a823235fc -r e7ada7ded819 order_point.py
--- a/order_point.py Thu Mar 19 19:16:29 2020 +0100
+++ b/order_point.py Mon Apr 06 12:58:34 2020 +0200
@@ -4,6 +4,7 @@
from trytond.i18n import gettext
from trytond.model import ModelView, ModelSQL, fields
+from trytond.pool import Pool
from trytond.pyson import If, Equal, Eval, Not, In
from trytond.transaction import Transaction
@@ -249,3 +250,11 @@
@staticmethod
def default_company():
return Transaction().context.get('company')
+
+ @classmethod
+ def supply_stock(cls):
+ pool = Pool()
+ StockSupply = pool.get('stock.supply', type='wizard')
+ session_id, _, _ = StockSupply.create()
+ StockSupply.execute(session_id, {}, 'create_')
+ StockSupply.delete(session_id)
diff -r 256a823235fc -r e7ada7ded819 tests/scenario_stock_internal_supply.rst
--- a/tests/scenario_stock_internal_supply.rst Thu Mar 19 19:16:29 2020 +0100
+++ b/tests/scenario_stock_internal_supply.rst Mon Apr 06 12:58:34 2020 +0200
@@ -178,3 +178,18 @@
'Provisioning Location'
>>> move.to_location.name
'Second Storage'
+
+Create stock_supply cron and execute it::
+
+ >>> Cron = Model.get('ir.cron')
+ >>> admin_user, = User.find([('login', '=', 'admin')])
+ >>> set_user(admin_user)
+ >>> shipment.delete()
+ >>> cron = Cron(method='stock.order_point|supply_stock')
+ >>> cron.interval_number = 1
+ >>> cron.interval_type = 'months'
+ >>> cron.click('run_once')
+ >>> shipment, = ShipmentInternal.find(
+ ... [('to_location', '=', sec_storage_loc.id)])
+ >>> shipment.state
+ 'request'