Управленческий регистр · P44-C01

Сертификаты: деньги, оказанные услуги и остаток обязательств

Покупка сертификата, частичное погашение и возврат остатка проходят как разные события с проверяемым балансом.

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

В журнале двух сертификатов есть покупка, услуга, доплата и возврат. При сложении покупки и погашения оборот завысился бы; повтор погашения добавил бы еще одну несуществующую услугу.

Я веду три накопителя: денежный поток, оказанные услуги и обязательство по сертификату. Погашение переносит сумму из обязательства в услугу, не создает деньги. Возврат ограничен неиспользованным остатком.

Это управленческая модель заданного примера, без налогового и бухгалтерского заключения.

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

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

7500Деньги, ₽
5000Услуги, ₽
2500Остаток обязательств, ₽
0Контрольная разница
0Ошибок
СобытиеТипДеньги, ₽Услуги, ₽Изменение обязательств, ₽Статус
E1продажа500005000Учтено
E2погашение03000-3000Учтено
E3доплата за услугу5005000Учтено
E4возврат остатка-20000-2000Учтено
E5продажа400004000Учтено
E6погашение01500-1500Учтено
E6погашение000Повтор исключен
E7запись на визит000Учтено

CERT-A: остаток 0 ₽

CERT-B: остаток 2500 ₽

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

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

Изменить входные строки
Посмотреть исходные строки
СобытиеДатаСертификатТипСумма
E12026-10-01CERT-Aпродажа5000
E22026-10-03CERT-Aпогашение3000
E32026-10-03доплата за услугу500
E42026-10-05CERT-Aвозврат остатка2000
E52026-10-06CERT-Bпродажа4000
E62026-10-07CERT-Bпогашение1500
E62026-10-07CERT-Bпогашение1500
E72026-10-08CERT-Bзапись на визит0

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

После возврата по CERT-A и частичного погашения CERT-B денежный поток равен 7500 ₽, услуги — 5000 ₽, обязательства — 2500 ₽. Контрольная разница нулевая; повтор E6 не изменил показатели.

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

ПроверкаРезультат
Деньги 7500 равны услугам 5000 плюс обязательствам 2500Пройдена
Повтор погашения не добавляет услугуПройдена
Возврат сверх остатка не уводит обязательство в минусПройдена
Отрицательная сумма не становится учтенным движениемПройдена
Нечисловая сумма останавливает расчетПройдена

Модель предполагает, что доплата сразу относится к оказанной услуге. Для аванса или иных условий нужен отдельный тип события.

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

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

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