Регистр исполнения · P44-C03

Заказная мебель: аванс не закрывает остаток отгрузки

Платежи и отгруженные единицы проходят двумя независимыми потоками.

Задача и принятое решение

В заказе три изделия по 20000 ₽. Получен аванс 30000 ₽, отгружены два изделия, затем поступила окончательная оплата. Полная оплата сама по себе не делает третье изделие отгруженным.

Я считаю денежные поступления отдельно от количества исполнения. Стоимость отгруженного определяется количеством и ценой заказа; контроль не позволяет отгрузить больше заказанного. Отмена сохраняет историю платежей.

Стоимость исполнения — управленческое правило примера, не признание бухгалтерской выручки.

Проверить решение

Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.

60000Получено, ₽
2Отгружено изделий
1Осталось изделий
40000Стоимость исполнения, ₽
В исполненииСтатус заказа
0Ошибок
СобытиеТипДеньги накопленноОтгружено накопленноСтатус
P1платеж300000Учтено
S1отгрузка300002Учтено
P2платеж600002Учтено
W1в работе600002Учтено
P2платеж600002Повтор

Исходный набор

Авторский контрольный набор; не клиентские документы и не результаты внешней модели.

Изменить входные строки
Посмотреть исходные строки
СобытиеДатаТипСуммаКоличество
P12026-10-01платеж300000
S12026-10-12отгрузка02
P22026-10-14платеж300000
W12026-10-15в работе00
P22026-10-14платеж300000

Что получилось

Заказ оплачен на 60000 ₽, но исполнен на 40000 ₽: отгружены два изделия из трех. Окончательный платеж и его повтор не закрыли остаток. Отмена добавляет статус для сверки, сохраняя денежную историю.

Выполненная проверка

ПроверкаРезультат
Оплачено 60000, исполнено 40000, осталось одно изделиеПройдена
Лишняя отгрузка заблокированаПройдена
Отмена сохраняет деньги в историиПройдена
Отрицательная сумма не становится учтенным движениемПройдена
Нечисловая сумма останавливает расчетПройдена
Отрицательная отгрузка не уменьшает количествоПройдена
Дробная отгрузка не проходит молчаПройдена

Возврат денежных средств должен быть отдельным событием. Статус отмены сам по себе не означает выполненного возврата.

Скачать материалы и повторить проверку

source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css

Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.