Отчёты в личном кабинете

Skip to end of metadata
Go to start of metadata

Для того, чтобы абонент мог получить доступ к отчету, необходимо:

  1. Создать отчет и поставить галочку "Разрешено выполнение в ЛК"
  2. Создать форму для отчета и выгрузить её на сервер
  3. Добавить в панели администратора WordPress страницу отчета

Рассмотрим добавление отчета в личный кабинет на примере запроса, показывающего количество заказанных из личного кабинета услуг (обещанных платежей и т.п.)

1. Создание отчёта

Для того чтобы определить абонента в отчете, необходимо в разделе SQL-запроса WHERE указать ID абонента равным полю ':Abonent_ID$'.

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

Пример:

select U.NAME as "Наименование", count(*) as "Количество"
from USERS_USLUGA UU
left join ABONENTS A on UU.ABONENT_ID = A.ID
left join USLUGA U on UU.USLUGA_ID = U.ID
where A.ID = ':Abonent_ID$' and UU.IS_ZAKAZANO = 1 and UU.CREATE_DATE between ':date_start|date$' and ':date_end|date$'
group by U.ID, U.NAME

Указывать поле Abonent_ID на форме в ЛК не нужно, оно заполняется автоматически и равно ID абонента, зашедшего в ЛК.

2. Создание формы

Необходимо создать файл в директории /app/asr_cabinet/var/cabinet_tmpl/

Форма пишется на PHP/HTML.

Для передачи данных в SQL-запрос, необходимо создать input с атрибутом name, в котором будет указано имя переменной.

Пример:

 <form class="form-inline" method="post" action="" role="form">
    <?$this->module_token()?>
    <div class="form-group">
        <legend><h2>Количество заказанных услуг</h2></legend>
        <label for="date_start">C:</label><input class="datepicker" id="date_start" name="date_start|date" type="text" />
        <label for="date_end">По:</label><input class="datepicker" id="date_end" name="date_end|date" type="text" />
    </div>
    <br />
    <button type="submit" class="btn btn-success">Выполнить</button>
</form>
3. Добавление страницы в личный кабинет

Нужно создать новую страницу, и указать в ней следующий код:

[cabinet_reports template="имя файла шаблона" report_id=номер отчета]

После этого можно расположить эту страницу в сайдбаре личного кабинета или ссылку на неё на любой удобной странице.

Примеры php шаблонов:

Передача в отчёт параметра date_start с помощью datepicker.

<form class="form-inline" method="post" action="" role="form">
	<?$this->module_token()?>
	<div class="form-group">
		<label for="date_start">Дата:</label><input class="datepicker" id="date_start" name="date_start|date" type="text" />
	</div>
	<button type="submit" class="btn btn-success">Выполнить</button>
</form>
Диагностика неисправностей.

В случае, если при выполнении отчёта в ЛК будет ошибка 404 страница не найдена, первым делом нужно проверить корректность php шаблона. Для этого необходимо выполнить следующие действия:
1) Открыть конфигурационный файл /app/asr_billing/cfg/config
2) Найти строку app['django.loglevel']='warning' и изменить слово warning на info
3) Перезапустить контейнер asr_billing командой /app/asr_billing/service restart
4) После перезапуска биллинга временно остановить контейнер /app/collector командой /app/collector/service stop
5) Открыть лог tail -n 1000 -f /app/asr_billing/var/log/django/system_api.log | grep -i report
6) Запустить отчёт в ЛК

Если при запуске отчёта в ЛК в лог не попадет никакая информация, значит форма php написана неверно, её необходимо изменить.

После диагностики проблемы не забудьте вернуть уровень логирования обратно на warning и запустить контейнер collector командой /app/collector/service start

Метки

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.