Просмотр Исходного

h1. Создание услуги
h5. Предположим, необходимо создать услугу, по которой каждый день производилось бы списание по 3 рубля за 1 объект на стороне Wialon. Для этого необходимо:
# Перейти на вкладку "Управление абонентами и тарифами - справочники - типы сенсоров". Ввести название сенсора (подойдет любое, например sensor_1) и сохранить
!type_sensor.png|border=1!
# Перейти на вкладку "Управление абонентами и тарифами - тарификация - услуги/бонусы"
# В открывшемся меню перейти на вкладку "Счетчик" и нажать добавить
!add_service.png|border=1!
# В меню добавления услуги необходимо заполнить следующие поля:
*Вид сервиса* - Sensor
*Тип сенсора* - Выбрать созданный на 1 этапе sensor_1
*Цена за единицу* - Указать цену за 1 объект. В данном случае цена будет *3*
*Метод списания* - Указываем ежедневный
!service_1.png|border=1!
# Так же в услуге на вкладке "Для разработчиков" необходимо выбрать пункте *Единица измерения* шт.
!service_3.png|border=1!
# После этого услугу можно сохранить и добавить её в необходимый тариф

h1. Описание
h5. Описание работы тарифа:
* В планировщике задач стоит запись о выполнении скрипта один раз в день
* Данный скрипт получает список ext_id всех абонентов, у которых активна услуга с типом счетчик и у которых указан метод списания *Ежедневно*
Запрос, который получает данные:
{code}
select distinct u.ext_id from users u left join abonents a on a.id=u.abonent_id left join tarif t on t.id=a.tarif_id left join tarif_users_usluga tuu on tuu.tarif_id=t.id left join usluga us on us.id=tuu.usluga_id where us.usluga_abon_type_id=3 and us.service_type_id=4 and u.deleted=0
{code}
* По каждому ext_id Carbon Billing 5 отправляет запрос на Wialon и запрашивает количество объектов, которые привязаны к этому ext_id
* Далее полученные значения скрипт записывает в cdr файл в следующем порядке:
{code}
ext_id;5;1;cdr_v
{code}
где:
5 - идентификатор единиц измерения у услуге (5 - шт.)
1 - идентификатор созданного тип сенсора

h5. Пример конкретного абонента.
Предположим, у абонента на стороне Wialon создано 6 объектов и он имеет ext_id 777. При этом абоненту присвоен тариф, который описан выше. В таком случае биллинг будет выполнять следующий алгоритм:
# Будет запущен скрипт в 3 часа 30 минут, исходя из планировщика задач
# Скрипт получит, что у абонента с id 777 на стороне Wialon есть 6 объектов
# Скрипт запишет в cdr следующие параметры и перенесет их в папку */var/cdr/Wialon_1/*:
{code}
777;5;1;6
{code}
# Биллинг найдет абонента по идентификатору 777 и умножит количество объектов (6) на стоимость одного объекта(3). После этого полученное значение запишет в *расход/предоплату*
!rash_pred.png|border=1!
# Так же это значение попадет на вкладку *Расход*
!rashod.png|border=1!
# В стандартном акте данный расход будет отображаться следующим образом
!act.png|border=1!