Описание конструктора отчетов
Конструктор отчетов позволяет делать запросы напрямую к БД. Описание ограничений, возможностей и синтаксиса используемого диалекта SQL Вы можете найти в документации Firebird 2.1.
- Конструктор отчетов находится на вкладке "Отчеты" в основном меню биллинга
- Отчеты разбиваются на группы. Не относящиеся ни к одной попадают в группу "Не определено". Группы настраиваются в справочниках:
Есть готовые отчеты, также можно создать свой отчет.
Отличительная особенность отчета состоит в том, что можно указывать параметры. Если в настройках указать параметр (prm), то при нажатии запустить отчет, можно будет задать параметр. Задать название отчета и текст запроса, который вы можете уточнить у тех.поддержки (должен начинаться со слова "select").
Данные в отчете можно выгрузить в csv.
Параметры полей формы
Переменные, отображаемые в виде формы:
':title|type[params]$'
- : - указывает, что это строка с переменной
- title - заголовок, отображаемый на форме
- | - разделитель заголовка и типа
- type[params] - тип с параметрами:
- date - дата, без параметров, отображает на форме календарь выбора даты
BILL_DATE between ':Начало|date$' and ':Конец|date$'
- choices - список
Homes.City = ':Город|choices[Москва^]Москва^[Волгоград^]Волгоград]$' Abonents.Id = ':Абонент|choices[35^]Михаил^[40^]Володя]$'
- select - список, построенный на основе модели, подобно работе API, параметры содержат модель (обязательно) и фильтры
a.parent_id = ':Группа|select[Abonents,is_folder=1]$' h.id = ':Заявка|select[HDSK]$'
- date - дата, без параметров, отображает на форме календарь выбора даты
- $ - флаг отмечает обязательную переменную
Выполнение отчёта из консоли
Для того, чтобы запустить выполнение отчета из консоли, необходимо:
1) Перейти в контейнер биллинга
chroot /app/asr_billing/
2) Запустить скрипт
python /usr/lib/python2.6/site-packages/jobs_worker/jobs_scripts/make_reports.pyc -r 105
Где 105 - id отчёта.
Информация, выведенная на экран, будет иметь кодировку cp1251
Описание полей
К большенсту полей БД существуют описания. Описание всех полей можно получить выполнив команду sqlexeс "show comments", например:
sqlexec "show comments" | head -n 5
COMMENT ON DOMAIN RAD_ATTRIB IS Radius-attribute;
COMMENT ON COLUMN ABONENTS.ID IS №;
COMMENT ON COLUMN ABONENTS.NAME IS Название/ФИО;
COMMENT ON COLUMN ABONENTS.PARENT_ID IS Группа;
COMMENT ON COLUMN ABONENTS.CONTRACT_NUMBER IS Номер договора;
Поля, отраженные в веб-интерфейсе (настройки абонента, тарифов, услуг и тд) как правило имею описание согласно названию. На примере настроек тарифа, вкладка "Опции", параметры Обещанного платежа:
sqlexec "show comments" | grep "Разрешать подключение обещанного платежа только один раз в текущий месяц" COMMENT ON COLUMN TARIF.PROMISE_PAY_ONLY_THIS_MONTH IS Разрешать подключение обещанного платежа только один раз в текущий месяц;
Примеры
Список абонентов, подключенных к NAS с ip 172.16.0.6 в формате id, фио, номер телефона
select UR.user_id as ID, U.identify as FIO, AV.attribute_value as TELEFON from users_radiusauth UR left join USERS U on U.id=UR.user_id left join ATTRIBUTE_VALUES AV on AV.user_id=UR.user_id and AV.ATTRIBUTE_ID=1 where UF_IP2STRING(UR.NAS_IP_ADDRESS)='172.16.0.6' order by U.identify
Список абонентов, оплативших через платежную систему "Qiwiwallet" в формате логин, ФИО, сумма, дата
select LOGIN_IN as LOGIN, USER_NAME_OUT as FIO, SUMMA_IN as SUMMA, OPERATOR_DATE_IN as DATA from PAY_LOG where MSG_OUT='ACCEPTED' and ACT_IN='PAY' and PAY_OPERATOR='Qiwiwallet' order by USER_NAME_OUT