Начиная с версии 5.x возможно выполнение отчетов в личном кабинете.
Для того, чтобы абонент мог получить доступ к отчету, необходимо:
- Создать отчет и поставить галочку "Разрешено выполнение в ЛК"
- Создать форму для отчета и выгрузить её на сервер
- Добавить в панели администратора 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. Создание формы
Форма пишется на 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>
Хранится в /app/asr_cabinet/var/cabinet_tmpl/
3. Добавление страницы в личный кабинет
Нужно создать новую страницу, и указать в ней следующий код:[cabinet_reports template="имя файла шаблона" report_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