From To & Price component

This commit is contained in:
2026-04-28 21:06:15 +02:00
parent 35fe191939
commit ea31706ff8

View File

@@ -1000,51 +1000,28 @@ 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)
@@ -1142,23 +1119,7 @@ class SaleLine(metaclass=PoolMeta):
for line in lines:
from_del = values.get('from_del', getattr(line, 'from_del', None))
to_del = values.get('to_del', getattr(line, 'to_del', None))
logger.info(
"SALE_LINE_DELIVERY_PERIOD_CHECK line=%s values=%s "
"current_from=%s current_to=%s computed_from=%s computed_to=%s",
getattr(line, 'id', None),
values,
getattr(line, 'from_del', None),
getattr(line, 'to_del', None),
from_del,
to_del,
)
if from_del and to_del and from_del > to_del:
logger.info(
"SALE_LINE_DELIVERY_PERIOD_INVALID line=%s from=%s to=%s",
getattr(line, 'id', None),
from_del,
to_del,
)
raise UserError(
"Delivery period From date must be before To date.")
@@ -1672,15 +1633,9 @@ class SaleLine(metaclass=PoolMeta):
@classmethod
def write(cls, *args):
logger.info("SALE_LINE_WRITE_START args=%s", args)
actions = iter(args)
args = []
for records, values in zip(actions, actions):
logger.info(
"SALE_LINE_WRITE_GROUP records=%s values=%s",
[getattr(record, 'id', None) for record in records],
values,
)
cls._check_delivery_period_values(records, values)
args.extend((records, values))
@@ -1799,12 +1754,6 @@ 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.")