This commit is contained in:
2026-04-28 20:42:37 +02:00
parent 062b42f83f
commit 35fe191939

View File

@@ -1000,28 +1000,51 @@ class Sale(metaclass=PoolMeta):
@classmethod @classmethod
def _check_lines_delivery_period_values(cls, values): def _check_lines_delivery_period_values(cls, values):
line_commands = values.get('lines') or [] line_commands = values.get('lines') or []
logger.info(
"SALE_PARENT_LINES_PERIOD_CHECK values=%s commands=%s ",
values,
line_commands,
)
if not line_commands: if not line_commands:
return return
Line = Pool().get('sale.line') Line = Pool().get('sale.line')
for command in line_commands: for command in line_commands:
action = command[0] action = command[0]
logger.info("SALE_PARENT_LINES_COMMAND action=%s command=%s",
action, command)
if action == 'create': if action == 'create':
for line_values in command[1]: 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) Line._check_delivery_period_values([Line()], line_values)
elif action == 'write': elif action == 'write':
actions = iter(command[1:]) actions = iter(command[1:])
for line_ids, line_values in zip(actions, actions): 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) lines = Line.browse(line_ids)
Line._check_delivery_period_values(lines, line_values) Line._check_delivery_period_values(lines, line_values)
elif action == 'add': elif action == 'add':
logger.info("SALE_PARENT_LINES_ADD ids=%s", command[1])
lines = Line.browse(command[1]) lines = Line.browse(command[1])
Line._check_delivery_period_values(lines) Line._check_delivery_period_values(lines)
@classmethod @classmethod
def write(cls, *args): def write(cls, *args):
logger.info("SALE_PARENT_WRITE_START args=%s", args)
actions = iter(args) actions = iter(args)
args = [] args = []
for sales, values in zip(actions, actions): 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) cls._check_lines_delivery_period_values(values)
args.extend((sales, values)) args.extend((sales, values))
super().write(*args) super().write(*args)
@@ -1776,6 +1799,12 @@ class SaleLine(metaclass=PoolMeta):
Pnl = Pool().get('valuation.valuation') Pnl = Pool().get('valuation.valuation')
super(SaleLine, cls).validate(salelines) super(SaleLine, cls).validate(salelines)
for line in 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): if cls._has_invalid_delivery_period(line):
raise UserError( raise UserError(
"Delivery period From date must be before To date.") "Delivery period From date must be before To date.")