Миксин MoneyUtilsMixin
Glossary Item Box
Общие сведения
Миксин MoneyUtilsMixin содержит общую логику денежных расчетов.
Методы
Метод getCurrencyDivision
Метод getCurrencyDivision используется для получения номинала (кратности) валюты. Возвращает номинал (кратность) валюты. Тип возвращаемого значения — Number.
К СВЕДЕНИЮ
Номинал (кратность) валюты — количество валюты, для которого будет производиться расчет курса. Например, 1, 10, 100.
Формат метода: this.getCurrencyDivision([config]);
Возможные свойства конфигурационного объекта, передаваемого в качестве парамета, приведены в таблице 1.
Табли. 1. — Свойства объекта-параметра метода getCurrencyDivision
Название | Тип | Описание | Значение по умолчанию |
---|---|---|---|
config | Object | Объект с дополнительными свойствами-параметрами | |
config.currencyAttribute (опционально) | String | Название атрибута модели представления, содержащего объект валюты. | Currency |
config.currencyDivisionProp (опционально) | Number | Название свойства объекта валюты, содержащее номинал (кратность) валюты. Если указано, будет возвращено именно это значение. | Division |
config.currencyDivision (опционально) | Number | Значение номинала (кратности) валюты. Если указано, будет возвращено именно это значение. |
Метод recalculatePrimaryValue
Метод recalculatePrimaryValue рассчитывает значение указанного атрибута в базовой валюте.
К СВЕДЕНИЮ
Базовая валюта — валюта, относительно которой устанавливается курс для всех остальных валют. Базовая валюта указывается в системной настройке [Базовая валюта].
Формат метода: this.recalculatePrimaryValue(attribute [, config]);
Возможные параметры метода приведены в таблице 2.
Табл. 2. — Параметры метода recalculatePrimaryValue
Название | Тип | Описание | Значение по умолчанию |
---|---|---|---|
attribute | String | Название атрибута модели представления, для которого необходимо выполнить перерасчет значения в базовой валюте. | |
config (опционально) | Object | Объект с дополнительными свойствами-параметрами. Может включать в себя параметры для метода getCurrencyDivision. | |
config.modelInstance (опционально) | Terrasoft.BaseModel | Модель представления, для которой будет осуществляться перерасчет. | this |
config.primaryValueAttribute (опционально) |
String | Название атрибута, содержащего значение в базовой валюте. | “Primary” + attribute |
config.currencyRateAttribute (опционально) | String | Название атрибута, содержащего значение курса валюты. | CurrencyRate |
Метод recalculateValue
Метод recalculateValue рассчитывает значение указанного атрибута по базовой валюте.
Формат метода: this.recalculateValue(attribute [, config]);
Возможные параметры метода приведены в таблице 3.
Табл. 3. — Параметры метода recalculateValue
Название | Тип | Описание |
---|---|---|
attribute | String | Название атрибута, для которого необходимо выполнить перерасчет значения в базовой валюте. |
config (опционально) | Object | Объект с дополнительными параметрами. Может включать в себя параметры для метода recalculatePrimaryValue, включая параметры для метода getCurrencyDivision. |
Метод getPercentage
Метод getPercentage рассчитывает процент от общего количества по его части. Возвращает процент. Тип возвращаемого значения — Number.
Формат метода: this.getPercentage(amount, part);
Возможные параметры метода приведены в таблице 4.
Табл. 4. — Параметры метода getPercentage
Название | Тип | Описание |
---|---|---|
amount | Number | Общее количество. |
part | Number | Часть от общего. |
Примеры использования:
// Вернет 20. this.getPercentage(10, 2); // Вернет 100. this.getPercentage(10, 10); // Вернет 0.0001. this.getPercentage(100, 0.0001);
Метод getPercentagePart
Метод getPercentagePart рассчитывает часть от общего количества по проценту. Возвращает часть. Тип возвращаемого значения — Number.
Формат метода: this.getPercentagePart(amount, percent);
Возможные параметры метода приведены в таблице 5.
Табл. 5. — Параметры метода getPercentagePart
Название | Тип | Описание |
---|---|---|
amount | Number | Общее количество. |
percent | Number | Процент. |
Примеры использования:
// Вернет 2. this.getPercentagePart(10, 0.2);
Метод getIncludedPercentagePart
Метод getIncludedPercentagePart разделяет общее количество на две части, при этом одна из частей является процентной частью второй (по указанному проценту). Возвращает часть количества. Тип возвращаемого значения — Number.
Формат метода: this.getIncludedPercentagePart(amount, percent);
Возможные параметры метода приведены в таблице 6.
Табл. 6. — Параметры метода getIncludedPercentagePart
Название | Тип | Описание |
---|---|---|
amount | Number | Общее количество. |
percent | Number | Процент. |
Примеры использования:
// Вернет 1, т.к. 1 это 10% от 10, 10 + 1 = 11. this.getIncludedPercentagePart(11, 10);
Метод roundMoney
Метод roundMoney округляет значение с точностью, указанной в Terrasoft.data.constants.MONEY_PRECISION. Используется банковское округление. Тип возвращаемого значения — Number.
Формат метода: this.roundMoney(amount);
Возможные параметры метода приведены в таблице 7.
Табл. 7. — Параметры метода roundMoney
Название | Тип | Описание |
---|---|---|
amount | Number | Общее количество. |
Примеры использования:
// Если Terrasoft.data.constants.MONEY_PRECISION = 4 (по-умолчанию): // Вернет 0.1235. this.roundMoney(0.123456789); // Вернет 0.1234. this.roundMoney(0.123449);
Метод roundValue
Метод roundValue округляет значение с точностью, заданной в конфигурационном объекте, или с точностью Terrasoft.data.constants.MONEY_PRECISION. Используется банковское округление. Тип возвращаемого значения — Number.
Формат метода: this.roundValue(amount [,config]);
Возможные параметры метода приведены в таблице 8.
Табл. 8. — Параметры метода roundValue
Название | Тип | Описание |
---|---|---|
amount | Number | Общее количество. |
config (опционально) | Object | Объект с дополнительными параметрами |
config.targetColumnName (опционально) | String | Имя колонки модели представления, для которой производится расчет. Будет использована точность данной колонки. В случае, если у колонки нет свойства precision, будет использована точность Terrasoft.data.constants.MONEY_PRECISION |
config.decimalPlaces (опционально) | Number | Точность (количество разрядов дробной части), с которой необходимо округлить значение. |
Примеры использования:
// Вернет 0.12. this.roundValue(0.123456789, {decimalPlaces: 2}); // В случае, если колонка с именем SomeColumnName имеет свойство // precision = 4, вернет 0.1235. this.roundValue(0.123456789, {targetColumnName: “SomeColumnName”});
Метод getMoneyCalculator
Метод getMoneyCalculator возвращает объект DecimalUtils, настроенный с точностью Terrasoft.data.constants.MONEY_PRECISION. Тип возвращаемого значения — DecimalUtils.
Более подробно об объекте DecimalUtils можно узнать из статьи "Модуль DecimalUtils".
Формат метода: this.getMoneyCalculator();
Примеры использования:
var calculator = this.getMoneyCalculator(); // Вернет 3. calculator.add(1, 2); // Вернет 0.3. calculator.add(0.1, 0.2);