Возможность произвольного округления суммы заказа
[ ]В API V7 добавлен новый метод, IOperationService.RegisterCustomRoundingHandler
, позволяющий регистрировать обработчик применения округления к заказу во фронте.
Пример использования:
var toDispose = PluginContext.Operations.RegisterCustomRoundingHandler(order =>
{
// Можно придумать какое-то другое округление, например, чтобы округлялось до десятков копеек, или сумма всегда была кратна 5.
// https://docs.microsoft.com/en-us/dotnet/api/system.math.round?view=netframework-4.7.2
// Отбрасываем копейки всегда.
int roundedResultSum = (int)order.ResultSum;
decimal roundSum = roundedResultSum - order.ResultSum;
return roundSum;
});
Если сумма возвращаемого округления равна 0, никакое округление не должно примениться.
Если в обработчике выкинуть какое-либо исключение, то применится округление, настроенное в беке.