... Для того, чтобы абонент мог получить доступ к отчету, необходимо: # Создать отчет и поставить галочку "Разрешено выполнение в ЛК" # Создать форму для отчета и выгрузить её на сервер # Добавить в панели администратора WordPress страницу отчета Рассмотрим добавление отчета в личный кабинет на примере запроса, показывающего количество заказанных из личного кабинета услуг (обещанных платежей и т.п.) h6. 1. Создание отчёта Для того чтобы определить абонента в отчете, необходимо в разделе SQL-запроса WHERE указать ID абонента равным полю ':Abonent_ID$'. Остальные поля рекомендуется называть латиницей, иначе придется смотреть название переменных в исходном коде формы в биллинге. Пример: {code} 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 {code} Указывать поле _Abonent_ID_ на форме в ЛК не нужно, оно заполняется автоматически и равно ID абонента, зашедшего в ЛК. h6. 2. Создание формы Необходимо создать файл в директории _/app/asr_cabinet/var/cabinet_tmpl/_ Форма пишется на PHP/HTML. Для передачи данных в SQL-запрос, необходимо создать input с атрибутом name, в котором будет указано имя переменной. Пример: {code} <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> {code} h6. 3. Добавление страницы в личный кабинет Нужно создать новую страницу, и указать в ней следующий код: {code} [cabinet_reports template="имя файла шаблона" report_id=номер отчета] {code} Например, если шаблон /app/asr_cabinet/var/cabinet_tmpl/TraffReport.php и отчёт /admin/reports/AdminCustomReports/250005/: {code} [cabinet_reports template="TraffReport" report_id=250005] {code} После этого можно расположить эту страницу в сайдбаре личного кабинета или ссылку на неё на любой удобной странице. h6. Примеры php шаблонов: Передача в отчёт параметра *date_start* с помощью datepicker. {code} <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> {code} h6. Диагностика неисправностей. В случае, если при выполнении отчёта в ЛК будет ошибка 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 написана неверно, её необходимо изменить. {info}
|