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

{toc:type=flat|separator=pipe|maxLevel=3}
h2. Описание конструктора отчетов
*Конструктор отчетов* позволяет делать запросы напрямую к БД. Описание ограничений, возможностей и синтаксиса используемого диалекта SQL Вы можете найти в документации Firebird 2.1.
* Конструктор отчетов находится на вкладке "Отчеты" в основном меню биллинга \\ \\
!report_builder_1.png|border=1,width=1000! \\ \\
* Отчеты разбиваются на группы. Не относящиеся ни к одной попадают в группу "Не определено". Группы настраиваются в справочниках: \\ \\
!report_builder_1_types.png|border=1,width=1000!


Есть готовые отчеты, также можно создать свой отчет.

Отличительная особенность отчета состоит в том, что можно указывать параметры. Если в настройках указать параметр (prm), то при нажатии запустить отчет, можно будет задать параметр. Задать название отчета и текст запроса, который вы можете уточнить у тех.поддержки (должен начинаться со слова "select").

!report_builder_2.png|border=1!

Данные в отчете можно выгрузить в csv.
!report_builder_3.png|border=1!

h3. Параметры полей формы

Переменные, отображаемые в виде формы:
{code:lang=sql}':title|type[params]$'{code}
* : - указывает, что это строка с переменной
* title - заголовок, отображаемый на форме
* \| - разделитель заголовка и типа
* type\[params\] - тип с параметрами:
** date - дата, без параметров, отображает на форме календарь выбора даты
{code}BILL_DATE between ':Начало|date$' and ':Конец|date$'{code}
** choices - список
{code:lang=sql}Homes.City = ':Город|choices[Москва^]Москва^[Волгоград^]Волгоград]$'
Abonents.Id = ':Абонент|choices[35^]Михаил^[40^]Володя]$'{code}
** select - список, построенный на основе модели, подобно работе [API|CarbonBilling:API REST v2.0], параметры содержат модель (обязательно) и фильтры
{code}a.parent_id = ':Группа|select[Abonents,is_folder=1]$'
h.id = ':Заявка|select[HDSK]$'{code}
* $ - флаг отмечает обязательную переменную

h3. Выполнение отчёта из консоли

Для того, чтобы запустить выполнение отчета из консоли, необходимо:
1) Перейти в контейнер биллинга
{code}
chroot /app/asr_billing/
{code}
2) Запустить скрипт
{code}
python /usr/lib/python2.6/site-packages/jobs_worker/jobs_scripts/make_reports.pyc -r 105
{code}
Где 105 - id отчёта.
Информация, выведенная на экран, будет иметь кодировку cp1251

h3. Описание полей

К большенсту полей БД существуют описания. Описание всех полей можно получить выполнив команду *sqlexeс "show comments"*, например:
{code}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 Номер договора;{code}
Поля, отраженные в веб-интерфейсе (настройки абонента, тарифов, услуг и тд) как правило имею описание согласно названию. На примере настроек тарифа, вкладка "Опции", параметры Обещанного платежа:
{code}sqlexec "show comments" | grep "Разрешать подключение обещанного платежа только один раз в текущий месяц"
COMMENT ON COLUMN TARIF.PROMISE_PAY_ONLY_THIS_MONTH IS Разрешать подключение обещанного платежа только один раз в текущий месяц;{code}

h2. Примеры
# h6. Список абонентов, подключенных к NAS с ip 172.16.0.6 в формате id, фио, номер телефона
{code}
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
{code}
# h6. Список абонентов, оплативших через платежную систему "Qiwiwallet" в формате логин, ФИО, сумма, дата
{code}
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
{code}