From fbbad830a2203186780c33215d63f30d6d287a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 6 Oct 2024 12:37:11 +0200 Subject: [PATCH] Do not search for late moves when supplying stock if warning are skipped For example the cron job skips the warnings so we safe some resources by not searching for late moves. --- modules/stock_supply/stock.py | 54 ++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/modules/stock_supply/stock.py b/modules/stock_supply/stock.py index 81019ed76e..00b4f0b82d 100644 --- a/modules/stock_supply/stock.py +++ b/modules/stock_supply/stock.py @@ -3,7 +3,7 @@ from trytond.i18n import gettext from trytond.model import ModelView, fields from trytond.pool import Pool -from trytond.transaction import check_access +from trytond.transaction import Transaction, check_access from trytond.wizard import ( Button, StateAction, StateTransition, StateView, Wizard) @@ -41,31 +41,33 @@ class Supply(Wizard): ShipmentInternal = pool.get('stock.shipment.internal') Date = pool.get('ir.date') Warning = pool.get('res.user.warning') - today = Date.today() - with check_access(): - moves = Move.search([ - ('from_location.type', '=', 'supplier'), - ('to_location.type', '=', 'storage'), - ('state', '=', 'draft'), - ('planned_date', '<', today), - ], order=[], limit=1) - if moves: - name = '%s.supplier@%s' % (self.__name__, today) - if Warning.check(name): - raise SupplyWarning(name, - gettext('stock_supply.msg_late_supplier_moves')) - with check_access(): - moves = Move.search([ - ('from_location.type', '=', 'storage'), - ('to_location.type', '=', 'customer'), - ('state', '=', 'draft'), - ('planned_date', '<', today), - ], order=[], limit=1) - if moves: - name = '%s..customer@%s' % (self.__name__, today) - if Warning.check(name): - raise SupplyWarning(name, - gettext('stock_supply.msg_late_customer_moves')) + + if not Transaction().context.get('_skip_warnings'): + today = Date.today() + with check_access(): + moves = Move.search([ + ('from_location.type', '=', 'supplier'), + ('to_location.type', '=', 'storage'), + ('state', '=', 'draft'), + ('planned_date', '<', today), + ], order=[], limit=1) + if moves: + name = '%s.supplier@%s' % (self.__name__, today) + if Warning.check(name): + raise SupplyWarning(name, + gettext('stock_supply.msg_late_supplier_moves')) + with check_access(): + moves = Move.search([ + ('from_location.type', '=', 'storage'), + ('to_location.type', '=', 'customer'), + ('state', '=', 'draft'), + ('planned_date', '<', today), + ], order=[], limit=1) + if moves: + name = '%s..customer@%s' % (self.__name__, today) + if Warning.check(name): + raise SupplyWarning(name, + gettext('stock_supply.msg_late_customer_moves')) first = True created = False