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'

Reply via email to