Check period closed per company

issue5934
review30611002
This commit is contained in:
Cédric Krier
2016-10-11 18:10:02 +02:00
parent f43c4d2e4e
commit 8db7d9bcdb
+16 -13
View File
@@ -5,6 +5,7 @@ import operator
from decimal import Decimal
from functools import partial
from collections import OrderedDict, defaultdict
from itertools import groupby
from sql import Literal, Union, Column, Null
from sql.aggregate import Sum
@@ -514,19 +515,21 @@ class Move(Workflow, ModelSQL, ModelView):
@classmethod
def check_period_closed(cls, moves):
Period = Pool().get('stock.period')
periods = Period.search([
('state', '=', 'closed'),
], 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,
})
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"