f0f1f2.studio Справочник шаблонов
Русский
Открыть приложение
Метод

GetSumInAdditionalCurrency

Определение

Пространство имён
Resto.Front.PrintTemplates.Cheques.Razor

Пересчитывает сумму в дополнительную валюту и округляет вниз до её точности.

decimal TemplateBaseCore<T>.GetSumInAdditionalCurrency(IAdditionalCurrency currency, decimal additionalCurrencyRate, decimal currentCurrencySum)
Возвращает
decimal
Допустимость null
Не null
Объявлено в
Resto.Front.PrintTemplates.Cheques.Razor.TemplateBaseCore<T>
Назначение модели
Базовый класс шаблонов печати RazorEngineCore. Model содержит данные документа типа T. Предоставляет методы форматирования и вывода разметки.

Параметры

IAdditionalCurrency currency
Дополнительная валюта; IsoName определяет дробную точность. Не должна быть null.
decimal additionalCurrencyRate
Количество единиц текущей валюты за одну единицу дополнительной; не должно быть нулём.
decimal currentCurrencySum
Сумма в текущей валюте.

Возвращаемое значение

currentCurrencySum / additionalCurrencyRate с округлением вниз до точности дополнительной валюты.

Особенности поведения

Читает только currency.IsoName. Создаёт описание валюты с нулевым минимальным номиналом. Округление вниз означает к минус бесконечности, в том числе для отрицательных сумм. Использует переданный курс без поиска курса и проверки его положительности.

Исключения

System.NullReferenceException
currency равен null (обёртка обращается к нему без проверки).
System.ArgumentNullException
currency.IsoName равен null.
System.Collections.Generic.KeyNotFoundException
ISO-код отсутствует в каталоге валют движка.
System.DivideByZeroException
additionalCurrencyRate равен нулю.
System.OverflowException
Частное или вычисление округления выходит за диапазон Decimal.

Пример

// additionalCurrency.IsoName == "USD" (2 дробных знака)
GetSumInAdditionalCurrency(additionalCurrency, 3m, 10m); // 3.33m
GetSumInAdditionalCurrency(additionalCurrency, 3m, -10m); // -3.34m