Перейти к содержимому

Округление и точность стоимости звонков

Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию

Стоимость каждого звонка округляется один раз, при тарификации, до количества знаков после запятой, заданного в тарифе или вендоре. Именно эта округлённая сумма попадает в CDR и именно она списывается с баланса или добавляется к нему. Задайте точность в соответствии с тем, как вы выставляете счета, а у вендоров - в соответствии с тем, как они выставляют счета вам, чтобы ваши итоги совпадали с их итогами до цента.

Screenshot "concepts/tariff-advanced-parameters" has not been generated yet — see scripts/screenshots/screens.yml.
  1. Коммутатор вычисляет точную стоимость. Плата за соединение, интервалы, бесплатные секунды и надбавка дают стоимость с большим количеством знаков после запятой. См. Тарификация и биллинг.
  2. Он округляет стоимость до точности прайс-листа. Для аккаунта и каждого клиента над ним действуют Cost Decimal Precision (точность стоимости) и Calls Cost (стоимость звонков) их тарифа. Для вендора действуют те же два поля вендора.
  3. Он записывает округлённую стоимость. CDR хранит округлённую сумму, и баланс меняется ровно на эту сумму.

Cost Decimal Precision - это количество сохраняемых знаков после запятой, от 0 до 20. По умолчанию для новых тарифов и вендоров - 20, что на практике означает отсутствие округления. Значения по умолчанию меняются в System Management → System Parameters → Billing полями Tariffs Cost Precision (точность стоимости тарифов) и Vendors Cost Precision (точность стоимости вендоров); существующие тарифы и вендоры сохраняют собственное значение.

Calls Cost выбирает способ округления:

Стоимость до округления Round (округление), точность 2 Round-Up (округление вверх), точность 2 Точность 20
1.0123456789012345678811 1.01 1.02 1.01234567890123456788
1.0153456789012345678899 1.02 1.02 1.01534567890123456789
1.0173456789012345678899 1.02 1.02 1.01734567890123456789

Round округляет до ближайшего значения. Round-Up никогда не округляет вниз, так что звонок никогда не стоит меньше своей точной цены; для короткого звонка и низкой точности разница может быть большой по сравнению с ценой звонка.

Точность отображения - отдельная настройка

Заголовок раздела «Точность отображения - отдельная настройка»

Панель показывает денежные суммы с количеством знаков после запятой, заданным в Display Precision (точность отображения), от 0 до 10, в System Management → System Parameters → Web Interface. Это меняет только то, что вы видите в списках, отчётах и формах. Сохранённые цены и стоимости сохраняют полную точность. Увеличьте её, когда продаёте посекундные ставки вроде 0.0035, а списки показывают 0.00.

Screenshot "operations/web-interface" has not been generated yet — see scripts/screenshots/screens.yml.
  • Тариф - именованный набор ставок, который определяет цены звонков для клиента (тариф клиента) или вендора (тариф вендора).
  • Вендор - оператор, на которого вы терминируете звонки. У вендоров есть подключения, и они тарифицируются по тарифу вендора.
  • CDR (запись о звонке) - одна строка на каждый звонок со временем, длительностью, направлением, стоимостью и причиной разъединения.
  • Баланс - текущая сумма денег клиента или аккаунта. Отрицательные значения означают долг в пределах кредитного лимита.
  • Шаг тарификации - интервал в секундах (например, 60/1, 1/1, 30/6), по которому округляется длительность звонка при тарификации.

Счета показывают центы, но итоги CDR отличаются на несколько центов

Заголовок раздела «Счета показывают центы, но итоги CDR отличаются на несколько центов»

При точности по умолчанию 20 каждый CDR хранит доли цента, а счёт-фактура округляет только итог. Задайте в тарифе Cost Decimal Precision 2, если каждый звонок должен тарифицироваться в целых центах, или оставьте полную точность и примите то, что итог счёта округляется один раз.

Вероятно, вендор округляет каждый звонок вверх. Задайте у вендора Calls Cost Round-Up и Cost Decimal Precision, равную точности вендора, часто 4. Проверьте у вендора также Calls Duration (длительность звонков): это поле округляет доли секунды через Round или Round-Up до применения интервалов.

Цена сохранена правильно; её округляет отображение. Увеличьте Display Precision.