Почасовой биллинг

Материал из ISPWiki
Перейти к: навигация, поиск

Данный функционал позволяет учитывать время работы услуги и списывать оплату только за фактически потребленные ресурсы. Почасовой биллинг доступен только на тарифах с включенным флагом "Ежедневно снимать оплату".

Настройка тарифа

Для включения почасового биллинга в тарифном плане установите флаг "Разрешить клиенту запуск/остановку". Теперь у ваших клиентов появится возможность самостоятельно запускать и останавливать свои услуги, относящиеся к данному тарифу. Биллинг будет учитывать время простоя таких услуг. Если вы установили флаг "Разрешить клиенту запуск/остановку", то у тарифа и всех его дополнений появляется дополнительный флаг "Списывать средства при остановке" (по умолчанию он включен). Данный флаг говорит о том, что деньги за время остановки данной услуги не будут возвращаться клиенту. Если же требуется, чтобы клиент не оплачивал часы простоя услуги или каких-либо дополнений по ней - следует этот флаг снять.

Spisanie galka tarif.png

Помните, флаг "Списывать средства при остановке" в тарифе и эти же флаги в дополнениях не связаны друг с другом.

Расчет при почасовом биллинге

Сам расчет изначально ничем не отличается от обычного ежедневного. В начале дня биллинг списывает средства по полной стоимости текущего дня. Но, в начале следующего дня, перед запуском цикла биллинга, будет произведен перерасчет и возврат средств за время остановки услуги и ресурсов.

Расчет реального расхода по услуге или ресурса, если мы не списываем за простой, считается так:

(Стоимость услуги + Стоимость ресурса)/Количество часов в сутки*Количество часов, когда услуга была включена + Стоимость ресурсов со списанием при простое

То есть сначала считаем сколько стоит час работы услуги и дополнений, затем умножаем на количество часов, сколько услуга действительно проработала.

Пересчет и возврат происходит по заданию Crona billdaily. Оно запускается раз в сутки, при этом для услуг с почасовым билингом данное задание меняется дату остановки услуги. Пересчет и возврат денег происходит для услуг, у которых дата остановки равна текущей дате. После выполнения задания дата остановки станет равна завтрашней дате. Для того, чтобы повторного сделать перерасчет, необходимо править даты остановки услуги в базе данных и запускать billdaily через консоль, чего мы крайне не рекомендуем. Это может нарушить логику списания расходов, а так же затронуть расходы на услугах, которые не стоят на ежедневном типе учета!

Возврат средств клиенту выполняется через редактирование расходов, которые были созданы днем ранее для оплаты услуги и ее дополнений.

Пример работы тарифа с почасовым биллингом

К примеру, мы продаем виртуальные машины, и за саму услугу при остановке не списываем денег (в тарифе флаг "Списывать средства при остановке" не стоит).

В сутки услуга стоит 10 USD.

Для данной услуги мы также продаем два дополнения - место на жестком диске за 5 USD и публичный ip за 10 USD. При остановке место на жестком диске продолжает использоваться, поэтому флаг "Списывать средства при остановке" у этого дополнения включен. А для публичного ip наоборот, выключен, т.е. за время простоя услуги мы вернем клиенту деньги за ip.

Итого наша виртуальная машина за сутки стоит Услуга(10)+ЖД(5)+IP(10)=25 USD.

Вчера услуга была включена только 12 часов.

Поэтому сегодня мы вернем клиенту половину стоимости самой услуги (10:24*12=5) и половину стоимости дополнения Публичный ip (10:24*12=5). Итого за прошедшие сутки с учетом остановки клиент заплатил нам Услуга(5)+ЖД(5)+IP(5)=15 USD.