From 9cd63fbc57fccf1c9e2ee501f345d94d28b22592 Mon Sep 17 00:00:00 2001 From: Raimon Esteve Date: Wed, 23 Jun 2021 16:29:48 +0200 Subject: [PATCH] issue9122.diff [stock_supply] Add cron job to supply stock #043029 --- issue9122.diff | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++ series | 1 + 2 files changed, 88 insertions(+) create mode 100644 issue9122.diff diff --git a/issue9122.diff b/issue9122.diff new file mode 100644 index 0000000..eca2346 --- /dev/null +++ b/issue9122.diff @@ -0,0 +1,87 @@ + diff --git a/trytond/trytond/modules/stock_supply/__init__.py b/trytond/trytond/modules/stock_supply/__init__.py + index 48ced90..0d646e9 100644 + --- a/trytond/trytond/modules/stock_supply/__init__.py + +++ b/trytond/trytond/modules/stock_supply/__init__.py + @@ -8,6 +8,7 @@ from .purchase_request import * + from .shipment import * + from .location import * + from . import stock + +from . import ir + + + def register(): + @@ -22,6 +23,7 @@ def register(): + Location, + LocationLeadTime, + stock.StockSupplyStart, + + ir.Cron, + module='stock_supply', type_='model') + Pool.register( + stock.StockSupply, +diff --git a/trytond/trytond/modules/stock_supply/ir.py b/trytond/trytond/modules/stock_supply/ir.py +new file mode 100644 +index 0000000..27960e0 +--- /dev/null ++++ b/trytond/trytond/modules/stock_supply/ir.py +@@ -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 --git a/trytond/trytond/modules/stock_supply/order_point.py b/trytond/trytond/modules/stock_supply/order_point.py +index 78edc42..e310f0a 100644 +--- a/trytond/trytond/modules/stock_supply/order_point.py ++++ b/trytond/trytond/modules/stock_supply/order_point.py +@@ -4,6 +4,7 @@ from sql import Null + + 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 + +@@ -251,3 +252,11 @@ class OrderPoint(ModelSQL, ModelView): + @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 --git a/trytond/trytond/modules/stock_supply/tests/scenario_stock_internal_supply.rst b/trytond/trytond/modules/stock_supply/tests/scenario_stock_internal_supply.rst +index d1681fd..eed49a5 100644 +--- a/trytond/trytond/modules/stock_supply/tests/scenario_stock_internal_supply.rst ++++ b/trytond/trytond/modules/stock_supply/tests/scenario_stock_internal_supply.rst +@@ -178,3 +178,18 @@ Execute internal supply:: + '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' diff --git a/series b/series index a0fc6a8..972e1eb 100644 --- a/series +++ b/series @@ -99,5 +99,6 @@ issue10338.diff # [bank] Search on rec_name of other model in search_rec_name issue9146.diff # [account_stock_landed_cost] Use field digits on secondary unit stock_lot_sled_ca_locale.diff # [stock_lot_sled] Fix wrong translation [#044921] +issue9122.diff # [stock_supply] Add cron job to supply stock issue10500.diff # [account_invoice] Fix msg_invoice_same_account_line variables name