changeset de4d807e71db in modules/stock:5.0
details: https://hg.tryton.org/modules/stock?cmd=changeset&node=de4d807e71db
description:
        Do not check access when checking for period closed

        issue11861
        review431871003
        (grafted from 4c66434fc3c739c80840165bfb4cfc48c5932e7b)
diffstat:

 move.py |  31 ++++++++++++++++---------------
 1 files changed, 16 insertions(+), 15 deletions(-)

diffs (41 lines):

diff -r d5f16d683630 -r de4d807e71db move.py
--- a/move.py   Fri Apr 15 23:19:17 2022 +0200
+++ b/move.py   Sat Nov 05 10:08:31 2022 +0100
@@ -469,21 +469,22 @@
     @classmethod
     def check_period_closed(cls, moves):
         Period = Pool().get('stock.period')
-        for company, moves in groupby(moves, lambda m: m.company):
-            periods = Period.search([
-                    ('state', '=', 'closed'),
-                    ('company', '=', company.id),
-                    ], order=[('date', 'DESC')], limit=1)
-            if periods:
-                period, = periods
-                for move in moves:
-                    date = (move.effective_date if move.effective_date
-                        else move.planned_date)
-                    if date and date <= period.date:
-                        cls.raise_user_error('period_closed', {
-                                'move': move.rec_name,
-                                'period': period.rec_name,
-                                })
+        with Transaction().set_context(_check_access=False):
+            for company, moves in groupby(moves, lambda m: m.company):
+                periods = Period.search([
+                        ('state', '=', 'closed'),
+                        ('company', '=', company.id),
+                        ], order=[('date', 'DESC')], limit=1)
+                if periods:
+                    period, = periods
+                    for move in moves:
+                        date = (move.effective_date if move.effective_date
+                            else move.planned_date)
+                        if date and date <= period.date:
+                            cls.raise_user_error('period_closed', {
+                                    'move': move.rec_name,
+                                    'period': period.rec_name,
+                                    })
 
     def get_rec_name(self, name):
         return ("%s%s %s"

Reply via email to