Перенос погрузки: запрос не меняет подтвержденную дату
TR18 остается на 6 ноября до подтверждения; одобренное изменение на 7 ноября сохраняет одну заявку и один переход.
Задача и принятое решение
Новое письмо просит перенести погрузку. Если сразу заменить дату, диспетчер увидит неподтвержденное изменение как действующее.
Я разделил requested и approved, связал их одним ключом изменения и сохранил первоначальную дату. Повтор одобрения возвращает состояние без второго перехода; отклонение не переписывает подтвержденный план.
Это авторский журнал переходов. Реальный перевозчик и система бронирования не подключены.
Проверить решение
Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.
| Событие | Заявка | Запрошено | Действует | Решение |
|---|---|---|---|---|
| E1 | TR18 | 2026-11-07 | 2026-11-06 | Запрошено, прежняя дата действует |
| E2 | TR18 | 2026-11-07 | 2026-11-07 | Изменение подтверждено |
| E2 | TR18 | 2026-11-07 | 2026-11-07 | Повтор события |
Исходный набор
Авторский контрольный набор; не клиентские документы и не результаты внешней модели.
Изменить входные строки
Посмотреть исходные строки
| Событие | Заявка | Изменение | Тип | Дата |
|---|---|---|---|---|
| E1 | TR18 | CH1 | requested | 2026-11-07 |
| E2 | TR18 | CH1 | approved | 2026-11-07 |
| E2 | TR18 | CH1 | approved | 2026-11-07 |
Что получилось
TR18 сохраняет 6 ноября до подтверждения связанной пары TR18/CH1. Одобрение меняет дату один раз; повтор не создает переход. Чужая заявка, отклоненный запрос, невозможная дата и другой payload прежнего события не изменяют подтвержденное состояние.
Выполненная проверка
| Проверка | Результат |
|---|---|
| Запрос оставляет 6 ноября, одобрение меняет на 7, повтор не дублирует | Пройдена |
| Без одобрения действует исходная дата | Пройдена |
| Одобрение другой даты не совпадает с запросом | Пройдена |
| Одобрение другой заявки с тем же change ID не меняет TR18 | Пройдена |
| Отклонение удаляет pending; последующее одобрение не проходит | Пройдена |
| Тот же event ID с другой датой дает конфликт, не повтор | Пройдена |
| Невозможная дата не подтверждается | Пройдена |
Одобрение — явно заданное событие набора. Достоверность внешнего согласования и конкурентные серверные изменения не проверяются.
Скачать материалы и повторить проверку
source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css
Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.