Задача 101.62606

Задача :101.62606

2017-10-25 12:24:13
Краткое описание :
ДО на закупку BASEDOC.TOTAL - Пользователь не может выставить нужную сумму к оплате
Описание :
Счета, ДО на закупку
Что измененно :

ДО на закупку BASEDOC.TOTAL - Пользователь не может выставить нужную сумму к оплате

Если в ДО много позиций , то пользователь часто не
может выставить нужную "сумму к оплате" - приходится
администратору править напрямую в таблице BASEDOC.TOTAL
Как измененно :

Сделан повторный пересчет суммы к оплате с корректировкой значений скидок для позиций спецификации после изменения пользователем поля "Сумма к оплате" в ДО. Производится для ДО на закупку и ДО на продажу только в случае простой скидки ручного типа.

Алгоритм пересчета приведен ниже.
1. Пользователь меняет значение поля "Сумма к оплате" = 'новая_сумма_к_оплате'.
2. Пересчитывается новое значение скидки по формуле 100 * (1 - 'новая_сумма_к_оплате' * 'значение_скидки'/'старая_сумма_к_оплате')%.
3. С учетом нового значения скидки пересчитываются значения стоимостей позиций спецификации со скидками и округляются в соответствии с настройками. Полученные стоимости позиций со скидками суммируются = 'расчетная_сумма_к_оплате'.
4. В случае, если абсолютная разница между 'расчетная_сумма_к_оплате' и 'новая_сумма_к_оплате' больше либо равна максимальной погрешности округления, появляется сообщение
"С учетом нового значения скидки ... рассчитано новое значение суммы к оплате ..... Для соответствия спецификации введенному значению будут скорректированы стоимости со скидкой для позиций на значение .... Продолжить?".
Максимальная погрешность округления составляет 0,5 последнего разряда, то есть если округление до 0,01, то погрешность будет 0,005.
5. В случае ответа "да" стоимости позиций спецификации со скидкой будут скорректированы на минимальное значение равное точности вычислений. В случае, если округление до 0,01, минимальное значение составляет 0,01. В случае, если разница между новой и расчетной суммами (из п.4) положительная, то минимальное значение вычитается из стоимости, иначе - прибавляется.
6. Корректировка начинается с позиций, для которых разница между округленным и неокругленным значениями наибольшая и совпадает по знаку с разницей из п.4. После корректировки стоимости позиции, корректируется разница (п.4). Корректировка продолжается до тех пор, пока разница (п.4) будет больше точности вычислений, то есть значения 0,01.
7. В случае ответа "нет", в ДО будет оставлена 'расчетная_сумма_к_оплате'.
8. Информация о скорректированных позициях будет выведена в протокол.

Название продукта Название компонента Тип Последняя версия Дата выхода
L_BASEDOCL_BASEDOCRES9.1.85.02017-10-25 12:24:13
L_BASEDOCL_BASEDOCRES9.1.085.0