From To
This commit is contained in:
@@ -1000,28 +1000,51 @@ class Sale(metaclass=PoolMeta):
|
||||
@classmethod
|
||||
def _check_lines_delivery_period_values(cls, values):
|
||||
line_commands = values.get('lines') or []
|
||||
logger.info(
|
||||
"SALE_PARENT_LINES_PERIOD_CHECK values=%s commands=%s ",
|
||||
values,
|
||||
line_commands,
|
||||
)
|
||||
if not line_commands:
|
||||
return
|
||||
Line = Pool().get('sale.line')
|
||||
for command in line_commands:
|
||||
action = command[0]
|
||||
logger.info("SALE_PARENT_LINES_COMMAND action=%s command=%s",
|
||||
action, command)
|
||||
if action == 'create':
|
||||
for line_values in command[1]:
|
||||
logger.info(
|
||||
"SALE_PARENT_LINES_CREATE_VALUES values=%s",
|
||||
line_values,
|
||||
)
|
||||
Line._check_delivery_period_values([Line()], line_values)
|
||||
elif action == 'write':
|
||||
actions = iter(command[1:])
|
||||
for line_ids, line_values in zip(actions, actions):
|
||||
logger.info(
|
||||
"SALE_PARENT_LINES_WRITE_VALUES ids=%s values=%s",
|
||||
line_ids,
|
||||
line_values,
|
||||
)
|
||||
lines = Line.browse(line_ids)
|
||||
Line._check_delivery_period_values(lines, line_values)
|
||||
elif action == 'add':
|
||||
logger.info("SALE_PARENT_LINES_ADD ids=%s", command[1])
|
||||
lines = Line.browse(command[1])
|
||||
Line._check_delivery_period_values(lines)
|
||||
|
||||
@classmethod
|
||||
def write(cls, *args):
|
||||
logger.info("SALE_PARENT_WRITE_START args=%s", args)
|
||||
actions = iter(args)
|
||||
args = []
|
||||
for sales, values in zip(actions, actions):
|
||||
logger.info(
|
||||
"SALE_PARENT_WRITE_GROUP sales=%s values=%s",
|
||||
[getattr(sale, 'id', None) for sale in sales],
|
||||
values,
|
||||
)
|
||||
cls._check_lines_delivery_period_values(values)
|
||||
args.extend((sales, values))
|
||||
super().write(*args)
|
||||
@@ -1776,6 +1799,12 @@ class SaleLine(metaclass=PoolMeta):
|
||||
Pnl = Pool().get('valuation.valuation')
|
||||
super(SaleLine, cls).validate(salelines)
|
||||
for line in salelines:
|
||||
logger.info(
|
||||
"SALE_LINE_VALIDATE_PERIOD line=%s from=%s to=%s",
|
||||
getattr(line, 'id', None),
|
||||
getattr(line, 'from_del', None),
|
||||
getattr(line, 'to_del', None),
|
||||
)
|
||||
if cls._has_invalid_delivery_period(line):
|
||||
raise UserError(
|
||||
"Delivery period From date must be before To date.")
|
||||
|
||||
Reference in New Issue
Block a user