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